Strukturierte Datentypen und Funktionszeiger
|
|
- Heiko Walther Giese
- vor 8 Jahren
- Abrufe
Transkript
1
2 Zusammengehörige Daten Anstatt logisch zusammengehörende Daten in mehreren unabhängigen Variablen zu speichern, kann man für sie einen eigenen Datentyp ( Verbund, Record ) definieren, der diesen Zusammenhang explizit macht. Zum Beispiel kann bei einem Prüfungsergebnis der Name des Prüflings und die erreichte Punktzahl zusammengefasst werden: ergebnis /* Schlüsselwort + "Etikett" */ char name[20]; /* Felder der Struktur wie */ int punkte; /* in Variablendeklaration */ }; /* Semikolon beachten! */
3 Variablendeklarationen mit Jetzt ist ergebnis ein Datentyp wie z.b. int und kann genauso zur Deklaration von einfachen Variablen, Zeigern, Arrays, etc. benutzt werden: ergebnis e; /* e ist ein Ergebnis */ ergebnis *ep; /* ep ist Zeiger auf ein Ergebnis */ ergebnis ea[10]; /* ea ist ein Array von 10 Ergebnissen */
4 Zugriff auf -Elemente Um auf eine Komponente einer Struktur zuzugreifen, wird die Struktur, gefolgt von einem Punkt und dem Namen der Komponente hingeschrieben. /* Beispiel 1 - einfache Variable */ strcpy( e.name, "Claire" ); /* aus string.h */ e.punkte = 16; /* Beispiel 2 - Array */ for (i=0; i<20; i++) printf( "%s hat %d Punkte\n", ea[i].name, ea[i].punkte );
5 Zugriff auf -Elemente Um auf eine Komponente einer Struktur zuzugreifen, wird die Struktur, gefolgt von einem Punkt und dem Namen der Komponente hingeschrieben. /* Beispiel 1 - einfache Variable */ strcpy( e.name, "Claire" ); /* aus string.h */ e.punkte = 16; /* Beispiel 2 - Array */ for (i=0; i<20; i++) printf( "%s hat %d Punkte\n", ea[i].name, ea[i].punkte );
6 Zugriff über Zeiger Im Falle eines Zeigers auf eine Struktur kann man mit ep->name auf eine Komponente zugreifen. Zu dieser Notation ist (*ep).name äquivalent die Klammern sind aufgrund der Vorrangregeln von C erforderlich. Der Punkt. und der Pfeil -> sind Operatoren.
7 Zuweisungen Strukturen können insgesamt zugewiesen werden: ea[5] = e; Dabei wird der gesamte Inhalt der Struktur kopiert. (Falls die Struktur Zeiger enthält, werden diese kopiert, nicht das, worauf diese Zeiger zeigen!) Strukturen können als Parameter an Funktionen übergeben sowie von Funktionen zurückgegeben werden. Auch hierbei wird der gesamte Inhalt kopiert. (Es gilt also die übliche call-by-value-semantik.) Das vollständige Kopieren ist bei umfangreicheren Strukturen zu aufwendig und sollte vermieden werden. In solchen Fällen werden nur Zeiger auf Strukturen übergeben, auch wenn diese Strukturen nicht geändert werden sollen. Ein Vergleich mit == oder!= ist nicht möglich.
8 Zuweisungen Strukturen können insgesamt zugewiesen werden: ea[5] = e; Dabei wird der gesamte Inhalt der Struktur kopiert. (Falls die Struktur Zeiger enthält, werden diese kopiert, nicht das, worauf diese Zeiger zeigen!) Strukturen können als Parameter an Funktionen übergeben sowie von Funktionen zurückgegeben werden. Auch hierbei wird der gesamte Inhalt kopiert. (Es gilt also die übliche call-by-value-semantik.) Das vollständige Kopieren ist bei umfangreicheren Strukturen zu aufwendig und sollte vermieden werden. In solchen Fällen werden nur Zeiger auf Strukturen übergeben, auch wenn diese Strukturen nicht geändert werden sollen. Ein Vergleich mit == oder!= ist nicht möglich.
9 Zuweisungen Strukturen können insgesamt zugewiesen werden: ea[5] = e; Dabei wird der gesamte Inhalt der Struktur kopiert. (Falls die Struktur Zeiger enthält, werden diese kopiert, nicht das, worauf diese Zeiger zeigen!) Strukturen können als Parameter an Funktionen übergeben sowie von Funktionen zurückgegeben werden. Auch hierbei wird der gesamte Inhalt kopiert. (Es gilt also die übliche call-by-value-semantik.) Das vollständige Kopieren ist bei umfangreicheren Strukturen zu aufwendig und sollte vermieden werden. In solchen Fällen werden nur Zeiger auf Strukturen übergeben, auch wenn diese Strukturen nicht geändert werden sollen. Ein Vergleich mit == oder!= ist nicht möglich.
10 Zuweisungen Strukturen können insgesamt zugewiesen werden: ea[5] = e; Dabei wird der gesamte Inhalt der Struktur kopiert. (Falls die Struktur Zeiger enthält, werden diese kopiert, nicht das, worauf diese Zeiger zeigen!) Strukturen können als Parameter an Funktionen übergeben sowie von Funktionen zurückgegeben werden. Auch hierbei wird der gesamte Inhalt kopiert. (Es gilt also die übliche call-by-value-semantik.) Das vollständige Kopieren ist bei umfangreicheren Strukturen zu aufwendig und sollte vermieden werden. In solchen Fällen werden nur Zeiger auf Strukturen übergeben, auch wenn diese Strukturen nicht geändert werden sollen. Ein Vergleich mit == oder!= ist nicht möglich.
11 Funktionen und Strukturen /* Gib eine neue Ergebnisstruktur mit gegenüber e um n erhöhter Punktezahl zurück. */ ergebnis verbessert( ergebnis e, int n ) e.punkte += n; /* Original bleibt unverändert! */ return e; } /* Erhöhe das Ergebnis, auf das der Zeiger ep zeigt, um n Punkte. */ void verbesserung( ergebnis *ep, int n ) ep->punkte += n; }
12 Funktionen und Strukturen /* Gib eine neue Ergebnisstruktur mit gegenüber e um n erhöhter Punktezahl zurück. */ ergebnis verbessert( ergebnis e, int n ) e.punkte += n; /* Original bleibt unverändert! */ return e; } /* Erhöhe das Ergebnis, auf das der Zeiger ep zeigt, um n Punkte. */ void verbesserung( ergebnis *ep, int n ) ep->punkte += n; }
13 Sofortige Initialisierung Ähnlich wie bei Arrays kann eine -Variable gleich bei der Deklaration initialisiert werden, indem die Startwerte innerhalb geschweifter Klammern angegeben werden: ergebnis e = "Claire", 16 }; ergebnis liste[] = "Anton", 13 }, "Berta", 17 }, "Carla", 15 } }; Bei der Initialisierung des Arrays können die inneren Klammern auch weggelassen werden. Der gcc warnt dann allerdings, sofern die Option -Wall benutzt wird.
14 Sofortige Variablendeklaration bei Strukturdefinition Strukturdefinition und zugehörige Variablendeklaration könnnen gemeinsam geschehen: ergebnis char name[20]; int punkte; } e, *ep, ea[10]; Wenn man den Strukturtyp nicht noch an anderer Stelle braucht, kann man dabei das Etikett (hier: ergebnis) auch weglassen.
15 Strukturtypen und Header-Files In der Regel wird ein Strukturtyp in mehreren Dateien benutzt. Eine Datei stellt elementare Operationen zur Verfügung, und andere benutzen sie. Dann kann die Strukturdefinition in ein Header-File geschrieben werden. Alternativ kann man den Strukturtyp im Header nur deklarieren, dazu schreibt man etwa ergebnis; In anderen Dateien kann dann auf die Komponenten der Struktur nicht zugegriffen werden, und es können nur Zeiger auf die Struktur angelegt werden.
16 Strukturtypen und Header-Files In der Regel wird ein Strukturtyp in mehreren Dateien benutzt. Eine Datei stellt elementare Operationen zur Verfügung, und andere benutzen sie. Dann kann die Strukturdefinition in ein Header-File geschrieben werden. Alternativ kann man den Strukturtyp im Header nur deklarieren, dazu schreibt man etwa ergebnis; In anderen Dateien kann dann auf die Komponenten der Struktur nicht zugegriffen werden, und es können nur Zeiger auf die Struktur angelegt werden.
17 Weitere Beispiele /* Stackelemente und Stackpointer zusammen */ stack double values[stacksize]; int sp; }; /* Matrix, die ihre Größe mitspeichert */ matrix int rows, cols; double **M; };
18 Weitere Beispiele /* Stackelemente und Stackpointer zusammen */ stack double values[stacksize]; int sp; }; /* Matrix, die ihre Größe mitspeichert */ matrix int rows, cols; double **M; };
19 Namensräume Die Komponentennamen verschiedener Strukturtypen sind unabhängig. /* erlaubt: */ point2d double x, y; }; point3d double x, y, z; }; Etiketten, Komponentennamen und gewöhnliche Bezeichner sind unabhängig. /* nicht schön, aber erlaubt: */ i int i; } i;
20 Namensräume Die Komponentennamen verschiedener Strukturtypen sind unabhängig. /* erlaubt: */ point2d double x, y; }; point3d double x, y, z; }; Etiketten, Komponentennamen und gewöhnliche Bezeichner sind unabhängig. /* nicht schön, aber erlaubt: */ i int i; } i;
21 Geschachtelte Strukturen Strukturen können andere Strukturen beeinhalten: /* Ein Punkt in der Ebene ist festgelegt durch zwei Koordinaten */ point double x, y; }; /* Ein Dreieck ist festgelegt durch drei Punkte */ triangle point p1, p2, p3; };
22 Beispiel: Komplexe Zahlen Headerfile /* complex.h */ complex double real, imag; }; complex mkcomplex( double real, double imag ); void printcomplex( complex z ); complex addcomplex( complex a, complex b);
23 Beispiel: Komplexe Zahlen - Erzeugen /* complex.c */ #include <stdio.h> #include "complex.h" complex mkcomplex( double real, double imag ) complex z; z.real = real; z.imag = imag; return z; }...
24 Beispiel: Komplexe Zahlen - Ausgabe und Addition... void printcomplex( complex z ) printf( "%g%+gi", z.real, z.imag ); } complex addcomplex( complex a, complex b); complex z; z.real = a.real + b.real; z.imag = a.imag + b.imag; return z; }
25 Hinweis: Komplexe Zahlen in C99 In C99 und als Erweiterung beim gcc gibt es eingebaute komplexe Zahlen. Sie können mit den normalen Operatorzeichen verknüpft werden. #include <stdio.h> #include <complex.h> int main( void ) complex double a = * I; /* oder nur complex */ complex double b = 1 - I; complex double z = a*b; printf( "%g%+gi\n", creal(z), cimag(z) ); return 0; }
26 Alternative Daten - Manchmal will man in einer Variablen abwechselnd verschiedene Arten von Werten speichern können, z.b. entweder eine Fließkommazahl oder ein Zeichen. Anstatt einer Struktur, die Platz für jeden Datentyp gleichzeitig hat, gibt es hierfür die Union, in der der Platz geteilt wird, so dass nur immer nur ein Datentyp gespeichert werden kann. val /* Schlüsselwort + "Etikett" */ double f; /* Alternativen der Union wie */ char c; /* in Variablendeklaration */ }; /* Semikolon beachten! */
27 Deklaration und Zugriff Deklaration (in allen Varianten) und Zugriff (auch über Zeiger) ist wie bei Strukturen. val v; v.f = 2.7; printf( "%g\n", v.f ); v.c = x ; printf( "%c\n", v.c ); Sofern man nicht gerade raffinierte implementationsabhängige Tricks macht, darf man nur auf die Alternative zugreifen, der man zuletzt etwas zugewiesen hat.
28 Verfolgen des aktuellen Typs Man kann bei einer Union nicht herausfinden, welcher Alternative als letztes etwas zugewiesen wurde. Unter Umständen ist die Programmlogik so, dass man es immer weiß. Ansonsten muss man es sich extra im Programm merken. Hierfür bietet es sich an, die Union in eine Struktur einzubetten: valx int isnum; /* 1 für Zahl, * * 0 für Zeichen in u */ val u; };
29 Verfolgen des aktuellen Typs Man kann bei einer Union nicht herausfinden, welcher Alternative als letztes etwas zugewiesen wurde. Unter Umständen ist die Programmlogik so, dass man es immer weiß. Ansonsten muss man es sich extra im Programm merken. Hierfür bietet es sich an, die Union in eine Struktur einzubetten: valx int isnum; /* 1 für Zahl, * * 0 für Zeichen in u */ val u; };
30 Sofortige Initialisierung Eine sofortige Initialisierung ist nur für die erste Alternative möglich und erfordert geschweifte Klammern: val v = 3.1 }; (C99 bietet weitere Möglichkeiten.)
31 Sortieren Funktionszeiger und Vergleichsfunktionen Quicksort vergleiche CoMa /* qsort: sortiere v[l]...v[r] aufsteigend */ void qsort( int v[], int l, int r ) int i, m; if ( l >= r ) /* nichts zu sortieren */ return; swap( v, l, (l+r)/2 ); /* zentrales El. */ m = l; for ( i = l+1; i<=r; i++ ) /* aufteilen */ if ( v[i] < v[l] ) swap( v, ++m, i ); swap( v, l, m ); /* zentrales El. */ qsort( v, l, m-1 ); qsort( v, m+1, r ); }
32 Sortieren Funktionszeiger und Vergleichsfunktionen Sortieren von Ergebnislisten Was, wenn Ergebnislisten ergebnis liste[] sortiert werden sollen? Ändern des Arraytyps kein Problem Anpassen von swap kein Problem Vergleichen von Strukturen mit einer eigenen Funktion statt mit < Brauchen wir mehrere Sortierfunktionen, um mal nach Punkten und mal alphabetisch nach Namen zu sortieren? (Wir könnten jede sinnvolle Vergleichsfunktion einbauen und anhand einer übergebenen Nummer angeben, welche genommen werden soll, aber es soll etwas allgemeineres gemacht werden: Übergabe der Vergleichsfunktion)
33 Sortieren Funktionszeiger und Vergleichsfunktionen Sortieren von Ergebnislisten Was, wenn Ergebnislisten ergebnis liste[] sortiert werden sollen? Ändern des Arraytyps kein Problem Anpassen von swap kein Problem Vergleichen von Strukturen mit einer eigenen Funktion statt mit < Brauchen wir mehrere Sortierfunktionen, um mal nach Punkten und mal alphabetisch nach Namen zu sortieren? (Wir könnten jede sinnvolle Vergleichsfunktion einbauen und anhand einer übergebenen Nummer angeben, welche genommen werden soll, aber es soll etwas allgemeineres gemacht werden: Übergabe der Vergleichsfunktion)
34 Sortieren Funktionszeiger und Vergleichsfunktionen Sortieren von Ergebnislisten Was, wenn Ergebnislisten ergebnis liste[] sortiert werden sollen? Ändern des Arraytyps kein Problem Anpassen von swap kein Problem Vergleichen von Strukturen mit einer eigenen Funktion statt mit < Brauchen wir mehrere Sortierfunktionen, um mal nach Punkten und mal alphabetisch nach Namen zu sortieren? (Wir könnten jede sinnvolle Vergleichsfunktion einbauen und anhand einer übergebenen Nummer angeben, welche genommen werden soll, aber es soll etwas allgemeineres gemacht werden: Übergabe der Vergleichsfunktion)
35 Sortieren Funktionszeiger und Vergleichsfunktionen Funktionszeiger Genauso, wie double g( double ); besagt, dass g eine Funktion ist, die einen double-wert nimmt und einen double-wert als Ergebnis hat, wird durch double (*f)( double ); besagt, dass f ein Zeiger auf eine derartige Funktion ist. f kann dann wie folgt benutzt werden: double x; f = sin; /* oder: f = &sin */ x = f( 1.5 ); /* oder: x = (*f)( 1.5 ); */
36 Sortieren Funktionszeiger und Vergleichsfunktionen Funktionszeiger Genauso, wie double g( double ); besagt, dass g eine Funktion ist, die einen double-wert nimmt und einen double-wert als Ergebnis hat, wird durch double (*f)( double ); besagt, dass f ein Zeiger auf eine derartige Funktion ist. f kann dann wie folgt benutzt werden: double x; f = sin; /* oder: f = &sin */ x = f( 1.5 ); /* oder: x = (*f)( 1.5 ); */
37 Sortieren Funktionszeiger und Vergleichsfunktionen Vergleichsfunktionen In C wird das Ergebnis eines Vergleichs compare(e1,e2) durch einen int-wert dargestellt. Das Ergebnis ist positiv, falls e1 nach e2 kommt, negativ, falls e1 vor e2 kommt, Null, falls sie gleich sind. (Falls man die Werte Subtrahieren kann, stimmen die Vorzeichen von compare(e1,e2) und e1-e2 überein.) In unserem Fall wird ein Zeiger auf eine passende Vergleichsfunktion deklariert durch: int (*cmp)( ergebnis, ergebnis ); Da wir eine solche Funktion übergeben wollen, taucht diese Deklaration innerhalb der Deklaration des erweiterten qsort auf.
38 Sortieren Funktionszeiger und Vergleichsfunktionen Vergleichsfunktionen In C wird das Ergebnis eines Vergleichs compare(e1,e2) durch einen int-wert dargestellt. Das Ergebnis ist positiv, falls e1 nach e2 kommt, negativ, falls e1 vor e2 kommt, Null, falls sie gleich sind. (Falls man die Werte Subtrahieren kann, stimmen die Vorzeichen von compare(e1,e2) und e1-e2 überein.) In unserem Fall wird ein Zeiger auf eine passende Vergleichsfunktion deklariert durch: int (*cmp)( ergebnis, ergebnis ); Da wir eine solche Funktion übergeben wollen, taucht diese Deklaration innerhalb der Deklaration des erweiterten qsort auf.
39 Sortieren Funktionszeiger und Vergleichsfunktionen Vergleichsfunktionen In C wird das Ergebnis eines Vergleichs compare(e1,e2) durch einen int-wert dargestellt. Das Ergebnis ist positiv, falls e1 nach e2 kommt, negativ, falls e1 vor e2 kommt, Null, falls sie gleich sind. (Falls man die Werte Subtrahieren kann, stimmen die Vorzeichen von compare(e1,e2) und e1-e2 überein.) In unserem Fall wird ein Zeiger auf eine passende Vergleichsfunktion deklariert durch: int (*cmp)( ergebnis, ergebnis ); Da wir eine solche Funktion übergeben wollen, taucht diese Deklaration innerhalb der Deklaration des erweiterten qsort auf.
40 Sortieren Funktionszeiger und Vergleichsfunktionen Quicksort für Ergebnislisten void qsort( ergebnis v[], int l, int r, int (*cmp)( ergebnis, ergebnis ) ) int i, m; if ( l >= r ) /* nichts zu sortieren */ return; swap( v, l, (l+r)/2 ); /* zentrales El. */ m = l; for ( i = l+1; i<=r; i++ ) /* aufteilen */ if ( cmp( v[i], v[l] ) < 0 ) swap( v, ++m, i ); swap( v, l, m ); /* zentrales El. */ qsort( v, l, m-1, cmp ); qsort( v, m+1, r, cmp ); }
41 Sortieren Funktionszeiger und Vergleichsfunktionen Quicksort für Ergebnislisten void qsort( ergebnis v[], int l, int r, int (*cmp)( ergebnis, ergebnis ) ) int i, m; if ( l >= r ) /* nichts zu sortieren */ return; swap( v, l, (l+r)/2 ); /* zentrales El. */ m = l; for ( i = l+1; i<=r; i++ ) /* aufteilen */ if ( cmp( v[i], v[l] ) < 0 ) swap( v, ++m, i ); swap( v, l, m ); /* zentrales El. */ qsort( v, l, m-1, cmp ); qsort( v, m+1, r, cmp ); }
42 Sortieren Funktionszeiger und Vergleichsfunktionen /* Vergleich der Punkte */ int punkte_cmp( ergebnis e1, ergebnis e2 ) return e1.punkte - e2.punkte; /* Vorsicht: wenn der Wertebereich ausgeschöpft wird, drohen bei dieser Technik Fehler durch Überläufe! */ } Vergleichsfunktionen in unserem Beispiel #include <string.h> /* für strcmp */ /* Alphabetischer Vergleich der Namen */ int name_cmp( ergebnis e1, ergebnis e2 ) return strcmp( e1.name, e2.name ); }
43 Sortieren Funktionszeiger und Vergleichsfunktionen /* Vergleich der Punkte */ int punkte_cmp( ergebnis e1, ergebnis e2 ) return e1.punkte - e2.punkte; /* Vorsicht: wenn der Wertebereich ausgeschöpft wird, drohen bei dieser Technik Fehler durch Überläufe! */ } Vergleichsfunktionen in unserem Beispiel #include <string.h> /* für strcmp */ /* Alphabetischer Vergleich der Namen */ int name_cmp( ergebnis e1, ergebnis e2 ) return strcmp( e1.name, e2.name ); }
44 Sortieren Funktionszeiger und Vergleichsfunktionen Anwendung int main( void ) ergebnis liste[]= "Claire", 16 }, "Anna", 18 }, "Berta", 13 }, "Carla", 16 }, "Dieter", 17 } }; int size = sizeof( liste ) / sizeof( liste[0] ); printlist( liste, size ); qsort( liste, 0, size-1, name_cmp ); printlist( liste, size ); qsort( liste, 0, size-1, punkte_cmp ); printlist( liste, size ); return 0; }
45 Sortieren Funktionszeiger und Vergleichsfunktionen /* Ausgabe der Ergebnisliste v der Größe n */ void printlist( ergebnis v[], int n ) int i; for (i=0; i<n; i++) printf( "%10s: %d\n", v[i].name, v[i].punkte ); printf("\n"); } Hilfsfunktionen /* vertausche v[i] und v[j] */ void swap( ergebnis v[], int i, int j ) ergebnis tmp = v[i]; v[i] = v[j]; v[j] = tmp; }
46 qsort in der C-Bibliothek qsort in der C-Bibliothek void * Anwendung Eine noch allgemeinere Sortierfunktion, wie sie in der C-Bibliothek zu finden ist, darf nicht vom Datentyp der zu sortierenden Elemente abhängen. Hierfür wird der spezielle Zeigertyp void * benutzt. Zeiger auf Daten können (auch implizit) in diesen Zeigertyp umgewandelt werden und zurück. qsort (aus stdlib.h) ist deklariert als void qsort(void *base, size_t nmemb, size_t size, int(*compar)(const void *, const void *)); Hierbei ist nmemb die Anzahl der Elemente, die zu sortieren sind, und size die Größe eines Elements. size_t ist ein Integertyp, der für Speichergrößen verwendet wird.
47 qsort in der C-Bibliothek qsort in der C-Bibliothek void * Anwendung Eine noch allgemeinere Sortierfunktion, wie sie in der C-Bibliothek zu finden ist, darf nicht vom Datentyp der zu sortierenden Elemente abhängen. Hierfür wird der spezielle Zeigertyp void * benutzt. Zeiger auf Daten können (auch implizit) in diesen Zeigertyp umgewandelt werden und zurück. qsort (aus stdlib.h) ist deklariert als void qsort(void *base, size_t nmemb, size_t size, int(*compar)(const void *, const void *)); Hierbei ist nmemb die Anzahl der Elemente, die zu sortieren sind, und size die Größe eines Elements. size_t ist ein Integertyp, der für Speichergrößen verwendet wird.
48 qsort in der C-Bibliothek qsort in der C-Bibliothek void * Anwendung Eine noch allgemeinere Sortierfunktion, wie sie in der C-Bibliothek zu finden ist, darf nicht vom Datentyp der zu sortierenden Elemente abhängen. Hierfür wird der spezielle Zeigertyp void * benutzt. Zeiger auf Daten können (auch implizit) in diesen Zeigertyp umgewandelt werden und zurück. qsort (aus stdlib.h) ist deklariert als void qsort(void *base, size_t nmemb, size_t size, int(*compar)(const void *, const void *)); Hierbei ist nmemb die Anzahl der Elemente, die zu sortieren sind, und size die Größe eines Elements. size_t ist ein Integertyp, der für Speichergrößen verwendet wird.
49 qsort in der C-Bibliothek void * Anwendung Vergleichsfunktionen für dieses qsort Eine entsprechende Vergleichsfunktion muss Parameter vom Typ const void * akzeptieren. In unserer Anwendung werden diese in const ergebnis * umgewandelt. (Durch const wird angegeben, dass die Variablen nur gelesen, aber nicht geändert werden.) /* Alphabetischer Vergleich der Namen */ int name_cmp_x( const void *x1, const void *x2 ) const ergebnis *e1 = x1, *e2 = x2; return strcmp( e1->name, e2->name ); }
50 qsort in der C-Bibliothek void * Anwendung Anwendung des Bibliotheks-qsort #include <stdlib.h> int main( void ); ergebnis liste[] =...; } int size = sizeof( liste ) / sizeof( liste[0] ); qsort( liste, size, sizeof(liste[0]), name_cmp_x );...
Zusammengehörige Daten struct. Strukturierte Datentypen und Funktionszeiger. Zugriff auf struct-elemente. Variablendeklarationen mit struct
Zusammengehörige Daten Anstatt logisch zusammengehörende Daten in mehreren unabhängigen Variablen zu speichern, kann man für sie einen eigenen Datentyp ( Verbund, Record ) definieren, der diesen Zusammenhang
Mehr1 Vom Problem zum Programm
Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren
MehrII. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:
Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen
Mehr2. Semester, 2. Prüfung, Lösung
2. Semester, 2. Prüfung, Lösung Name Die gesamte Prüfung bezieht sich auf die Programmierung in C++! Prüfungsdauer: 90 Minuten Mit Kugelschreiber oder Tinte schreiben Lösungen können direkt auf die Aufgabenblätter
MehrM. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung
M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales
Mehr5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu
Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten
MehrLineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
MehrEinführung in die C++ Programmierung für Ingenieure
Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF
MehrDeklarationen in C. Prof. Dr. Margarita Esponda
Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.
MehrDatenbanken Kapitel 2
Datenbanken Kapitel 2 1 Eine existierende Datenbank öffnen Eine Datenbank, die mit Microsoft Access erschaffen wurde, kann mit dem gleichen Programm auch wieder geladen werden: Die einfachste Methode ist,
MehrOutlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang
sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18
Kapitel 3 Datentypen und Variablen Seite 1 von 18 Datentypen - Einführung - Für jede Variable muss ein Datentyp festgelegt werden. - Hierdurch werden die Wertemenge und die verwendbaren Operatoren festgelegt.
MehrAGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b
AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113
MehrRundung und Casting von Zahlen
W E R K S T A T T Rundung und Casting von Zahlen Intrexx 7.0 1. Einleitung In diesem Werkstattbeitrag erfahren Sie, wie Zahlenwerte speziell in Velocity, aber auch in Groovy, gerundet werden können. Für
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {
MehrZählen von Objekten einer bestimmten Klasse
Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --
MehrStellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster
Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.
MehrAnleitung über den Umgang mit Schildern
Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte
MehrSo gehts Schritt-für-Schritt-Anleitung
So gehts Schritt-für-Schritt-Anleitung Software WISO Mein Büro Thema Eigene Auswertungen, Tabellenauswertungen Version/Datum V 13.00.05.101 Über die Tabellen-Auswertungen ist es möglich eigene Auswertungen
MehrEinführung in die Programmierung (EPR)
Goethe-Center for Scientific Computing (G-CSC) Goethe-Universität Frankfurt am Main Einführung in die Programmierung (EPR) (Übung, Wintersemester 2014/2015) Dr. S. Reiter, M. Rupp, Dr. A. Vogel, Dr. K.
MehrEinführung in die Programmierung
Name, Vorname Matrikelnummer Probeklausur zur Vorlesung Einführung in die Programmierung WS 2008/09 Dauer: 2 Stunden Hinweise: Schreiben Sie Ihren Namen und Ihre Matrikelnummer auf dieses Deckblatt und
MehrDatenexport aus JS - Software
Datenexport aus JS - Software Diese Programm-Option benötigen Sie um Kundendaten aus der JS-Software in andere Programme wie Word, Works oder Excel zu exportieren. Wählen Sie aus dem Programm-Menu unter
Mehr1. Einführung. 2. Alternativen zu eigenen Auswertungen. 3. Erstellen eigener Tabellen-Auswertungen
1. Einführung Über die Tabellen-Auswertungen können Sie eigene Auswertungen nach Ihren Wünschen erstellen. Diese Auswertungen werden immer anhand der aktuellen Daten aus orgamax ermittelt, Sie können also
MehrDatenbanken Microsoft Access 2010
Datenbanken Microsoft Access 2010 Abfragen Mithilfe von Abfragen kann ich bestimmte Informationen aus einer/mehrerer Tabellen auswählen und nur diese anzeigen lassen die Daten einer/mehrerer Tabellen sortieren
MehrLehrer: Einschreibemethoden
Lehrer: Einschreibemethoden Einschreibemethoden Für die Einschreibung in Ihren Kurs gibt es unterschiedliche Methoden. Sie können die Schüler über die Liste eingeschriebene Nutzer Ihrem Kurs zuweisen oder
MehrBinäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
Mehr6.2 Scan-Konvertierung (Scan Conversion)
6.2 Scan-Konvertierung (Scan Conversion) Scan-Konvertierung ist die Rasterung von einfachen Objekten (Geraden, Kreisen, Kurven). Als Ausgabemedium dient meist der Bildschirm, der aus einem Pixelraster
MehrErstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])
3.7 Erstellen einer Collage Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu]) Dann Größe des Dokuments festlegen beispielsweise A4 (weitere
MehrDas Festkomitee hat die Abi-Seite neu konzipiert, die nun auf einem (gemieteten) Share Point Server
Hallo Leute Das Festkomitee hat die Abi-Seite neu konzipiert, die nun auf einem (gemieteten) Share Point Server (= echtes - zeug ) liegt! Die neue Form hat insbesondere folgende Vorteile: Du bekommst einen
MehrSysteme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss
Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige
MehrInformatik Kurs Simulation. Hilfe für den Consideo Modeler
Hilfe für den Consideo Modeler Consideo stellt Schulen den Modeler kostenlos zur Verfügung. Wenden Sie sich an: http://consideo-modeler.de/ Der Modeler ist ein Werkzeug, das nicht für schulische Zwecke
MehrFunktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:
Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Der Sourcecode wird an den entsprechenden Stellen im Programm wiederholt Programm wird lang
MehrMdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.
Programm Die Bedienung des Programms geht über das Hauptmenü. Datenbank Schnittstelle Die Datenbank wir über die Datenbank- Schnittstelle von Office angesprochen. Von Office 2000-2003 gab es die Datenbank
MehrPrimzahlen und RSA-Verschlüsselung
Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also
Mehr4 Aufzählungen und Listen erstellen
4 4 Aufzählungen und Listen erstellen Beim Strukturieren von Dokumenten und Inhalten stellen Listen und Aufzählungen wichtige Werkzeuge dar. Mit ihnen lässt sich so ziemlich alles sortieren, was auf einer
MehrDiana Lange. Generative Gestaltung Operatoren
Diana Lange Generative Gestaltung Operatoren Begriffserklärung Verknüpfungsvorschrift im Rahmen logischer Kalküle. Quelle: google Operatoren sind Zeichen, die mit einer bestimmten Bedeutung versehen sind.
MehrStand: 28.11.2012. Adressnummern ändern Modulbeschreibung
Seite 1 Inhalt Allgemein...3 Installation...3 manuelle Eingabe von alten und neuen Adressnummern...4 Vorbereiten von Adressnummern-Änderungen in Tabellen...5 Seite 2 Allgemein Das INKS-Modul ermöglicht
MehrDas Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala
Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:
MehrDatentypen: Enum, Array, Struct, Union
Datentypen: Enum, Array, Struct, Union C-Kurs 2013, 2. Tutorium Freitagsrunde http://wiki.freitagsrunde.org 10. September 2013 This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
MehrWie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann.
Wie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann. Einleitung Es kommt vor, dass im Handel Disketten angeboten werden, die Styles und Registrationen
MehrEine Einführung in C-Funktionen
Eine Einführung in C-Funktionen CGK-Proseminar 2014 Philip Gawehn 04.07.2014, Hamburg Inhaltsverzeichnis 1 Einleitung 2 2 Grundlagen 2 2.1 Der Aufbau einer Funktion....................... 2 2.2 Schlüsselwörter.............................
MehrViele Bilder auf der FA-Homepage
Viele Bilder auf der FA-Homepage Standardmäßig lassen sich auf einer FA-Homepage nur 2 Bilder mit zugehörigem Text unterbringen. Sollen es mehr Bilder sein, muss man diese als von einer im Internet
MehrStarten Sie Eclipse: Hier tragen sie Ihr Arbeitsverzeichnis ein. Zu Hause z.b. c:\workspace.
Starten Sie Eclipse: Abgesehen vom Kommandozeilenfenster, auf welches wir später eingehen, öffnet sich ein Dialog (in der FH vermutlich nicht, überspringen Sie in diesem Fall): Hier tragen sie Ihr Arbeitsverzeichnis
MehrQuadratische Gleichungen
Quadratische Gleichungen Aufgabe: Versuche eine Lösung zu den folgenden Zahlenrätseln zu finden:.) Verdoppelt man das Quadrat einer Zahl und addiert, so erhält man 00..) Addiert man zum Quadrat einer Zahl
MehrÜbungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag
Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:
MehrErweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:
VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt
MehrDer Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.
Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.
Mehrteamsync Kurzanleitung
1 teamsync Kurzanleitung Version 4.0-19. November 2012 2 1 Einleitung Mit teamsync können Sie die Produkte teamspace und projectfacts mit Microsoft Outlook synchronisieren.laden Sie sich teamsync hier
MehrWir arbeiten mit Zufallszahlen
Abb. 1: Bei Kartenspielen müssen zu Beginn die Karten zufällig ausgeteilt werden. Wir arbeiten mit Zufallszahlen Jedesmal wenn ein neues Patience-Spiel gestartet wird, muss das Computerprogramm die Karten
MehrObjektorientierte Programmierung. Kapitel 12: Interfaces
12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/
MehrAutoCAD 2007 - Dienstprogramm zur Lizenzübertragung
AutoCAD 2007 - Dienstprogramm zur Lizenzübertragung Problem: Um AutoCAD abwechselnd auf mehreren Rechnern einsetzen zu können konnte man bis AutoCAD 2000 einfach den Dongle umstecken. Seit AutoCAD 2000i
MehrFelder, Rückblick Mehrdimensionale Felder. Programmieren in C
Übersicht Felder, Rückblick Mehrdimensionale Felder Rückblick Vereinbarung von Feldern: typ name [anzahl]; typ name = {e1, e2, e3,..., en} Die Adressierung von Feldelementen beginnt bei 0 Die korrekte
MehrInternationales Altkatholisches Laienforum
Internationales Altkatholisches Laienforum Schritt für Schritt Anleitung für die Einrichtung eines Accounts auf admin.laienforum.info Hier erklären wir, wie ein Account im registrierten Bereich eingerichtet
MehrFakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012
WS 2011/2012 Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 Prof. Dr. Robert Lorenz Musterlösung zur Vorlesung Informatik I, Extrablatt zu komplexen Datenstrukturen Aufgabe 45 **
MehrProfessionelle Seminare im Bereich MS-Office
Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion
MehrJava Kurs für Anfänger Einheit 4 Klassen und Objekte
Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse
MehrJederzeit Ordnung halten
Kapitel Jederzeit Ordnung halten 6 auf Ihrem Mac In diesem Buch war bereits einige Male vom Finder die Rede. Dieses Kapitel wird sich nun ausführlich diesem so wichtigen Programm widmen. Sie werden das
MehrMORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH
MORE Profile Pass- und Lizenzverwaltungssystem erstellt von: Thorsten Schumann erreichbar unter: thorsten.schumann@more-projects.de Stand: MORE Projects GmbH Einführung Die in More Profile integrierte
MehrDr. Monika Meiler. Inhalt
Inhalt 11 Dynamische Feldvereinbarung... 11-2 11.1 Dynamische Vereinbarung von Vektoren... 11-3 11.2 Dynamische Vereinbarung von Matrizen... 11-5 11.3 Die Kommandozeile... 11-8 Propädeutikum 11-1/8 11
MehrAnleitung zum Herunterladen von DIN-Vorschriften außerhalb des internen Hochschulnetzes
Anleitung zum Herunterladen von DIN-Vorschriften außerhalb des internen Hochschulnetzes Als Professor, Mitarbeiter oder Student der HTWK Leipzig ist es möglich über eine Datenbank auf verschiedene DIN-Normen
MehrDatei Erweiterungen Anzeigen!
Einleitung Beim Kauf eines PCs werden die Dateierweiterungen sowie einige Dateien nicht angezeigt. Grund: Es gibt sehr viele Dateien die für das System ganz wichtig sind. Diese Dateien und auch Ordner
MehrProgrammierung in C. Grundlagen. Stefan Kallerhoff
Programmierung in C Grundlagen Stefan Kallerhoff Vorstellungsrunde Name Hobby/Beruf Schon mal was programmiert? Erwartungen an den Kurs Lieblingstier Für zu Hause C-Buch online: http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/
MehrGleichungen und Ungleichungen
Gleichungen Ungleichungen. Lineare Gleichungen Sei die Gleichung ax = b gegeben, wobei x die Unbekannte ist a, b reelle Zahlen sind. Diese Gleichung hat als Lösung die einzige reelle Zahl x = b, falls
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
MehrInfo-Veranstaltung zur Erstellung von Zertifikaten
Info-Veranstaltung zur Erstellung von Zertifikaten Prof. Dr. Till Tantau Studiengangsleiter MINT Universität zu Lübeck 29. Juni 2011 Gliederung Zertifikate Wer, Wann, Was Ablauf der Zertifikaterstellung
Mehr1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.
Der Serienversand Was kann man mit der Maske Serienversand machen? 1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden. 2. Adressen auswählen,
MehrBevor lineare Gleichungen gelöst werden, ein paar wichtige Begriffe, die im Zusammenhang von linearen Gleichungen oft auftauchen.
R. Brinkmann http://brinkmann-du.de Seite 1 13.0.010 Lineare Gleichungen Werden zwei Terme durch ein Gleichheitszeichen miteinander verbunden, so entsteht eine Gleichung. Enthält die Gleichung die Variable
MehrEinfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"
MehrDelegatesund Ereignisse
Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses
MehrÜbungspaket 31 Entwicklung eines einfachen Kellerspeiches (Stacks)
Übungspaket 31 Entwicklung eines einfachen Kellerspeiches (Stacks) Übungsziele: Skript: 1. Definieren einer dynamischen Datenstruktur 2. Dynamische Speicher Speicherallokation 3. Implementierung eines
MehrArge Betriebsinformatik GmbH & Co.KG, CAP News 40, Februar 2013. CAP-News 40
CAP-News 40 CAP-News ist in unrägelmäßigen Abständen erscheinende Information zum Produktkonfigurator CAP/VARIANTS. Hier werden die neuen Befehle, Funktionen und Möglichkeiten beschrieben. In CAP-News
MehrAdvoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank
Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank Die Entscheidung Advoware über VPN direkt auf dem lokalen PC / Netzwerk mit Zugriff auf die Datenbank des zentralen Servers am anderen
MehrUnterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur
Unterprogramme Unterprogramme sind abgekapselte Programmfragmente, welche es erlauben, bestimmte Aufgaben in wiederverwendbarer Art umzusetzen. Man unterscheidet zwischen Unterprogrammen mit Rückgabewert
Mehr4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:
4. AUSSAGENLOGIK: SYNTAX 4.1 Objektsprache und Metasprache 4.2 Gebrauch und Erwähnung 4.3 Metavariablen: Verallgemeinerndes Sprechen über Ausdrücke von AL 4.4 Die Sprache der Aussagenlogik 4.5 Terminologie
MehrLU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.
Zusätze zum Gelben Rechenbuch LU-Zerlegung Peter Furlan Verlag Martina Furlan Inhaltsverzeichnis Definitionen 2 (Allgemeine) LU-Zerlegung 2 3 Vereinfachte LU-Zerlegung 3 4 Lösung eines linearen Gleichungssystems
MehrMenü Macro. WinIBW2-Macros unter Windows7? Macros aufnehmen
Menü Macro WinIBW2-Macros unter Windows7?... 1 Macros aufnehmen... 1 Menübefehle und Schaltflächen in Macros verwenden... 4 Macros bearbeiten... 4 Macros löschen... 5 Macro-Dateien... 5 Macros importieren...
MehrAufgaben zur C-Programmierung für die Praktikumsperiode des 1.Semesters
Prof. Dr. Ulrich Breitschuh Hochschule Anhalt(FH) Fachbereich Informatik Aufgaben zur C-Programmierung für die Praktikumsperiode des 1.Semesters Hinweis: Die Aufgaben 3, 6 und 8 sind testatpichtige Aufgaben.
MehrEnigmail Konfiguration
Enigmail Konfiguration 11.06.2006 Steffen.Teubner@Arcor.de Enigmail ist in der Grundkonfiguration so eingestellt, dass alles funktioniert ohne weitere Einstellungen vornehmen zu müssen. Für alle, die es
MehrÜbung 9 - Lösungsvorschlag
Universität Innsbruck - Institut für Informatik Datenbanken und Informationssysteme Prof. Günther Specht, Eva Zangerle Besprechung: 15.12.2008 Einführung in die Informatik Übung 9 - Lösungsvorschlag Aufgabe
MehrEinführungskurs MOODLE Themen:
Einführungskurs MOODLE Themen: Grundlegende Einstellungen Teilnehmer in einen Kurs einschreiben Konfiguration der Arbeitsunterlagen Konfiguration der Lernaktivitäten Die Einstellungen für einen Kurs erreichst
MehrEinrichten einer mehrsprachigen Webseite mit Joomla (3.3.6)
Einrichten einer mehrsprachigen Webseite mit Joomla (3.3.6) 1. Loggen Sie sich im Administratorbereich ein und gehen Sie auf Extension > Extension Manager 2. Wählen Sie Install languages 3. Klicken Sie
MehrZwischenablage (Bilder, Texte,...)
Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen
MehrÜber Arrays und verkettete Listen Listen in Delphi
Über Arrays und verkettete Listen Listen in Delphi Michael Puff mail@michael-puff.de 2010-03-26 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einführung 3 2 Arrays 4 3 Einfach verkettete Listen 7 4 Doppelt verkettete
Mehr1. Einführung 2. 2. Erstellung einer Teillieferung 2. 3. Erstellung einer Teilrechnung 6
Inhalt 1. Einführung 2 2. Erstellung einer Teillieferung 2 3. Erstellung einer Teilrechnung 6 4. Erstellung einer Sammellieferung/ Mehrere Aufträge zu einem Lieferschein zusammenfassen 11 5. Besonderheiten
MehrZeichen bei Zahlen entschlüsseln
Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren
Mehr2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)
MehrUmzug der abfallwirtschaftlichen Nummern /Kündigung
Umzug der abfallwirtschaftlichen Nummern /Kündigung Um sich bei ebegleitschein abzumelden/ zu kündigen sind folgende Schritte notwendig: Schritt 1: Sie erteilen bifa Umweltinstitut GmbH den Auftrag, Ihre
MehrFH-SY Chapter 2.4 - Version 3 - FH-SY.NET - FAQ -
FH-SY Chapter 2.4 - Version 3 - FH-SY.NET - FAQ - Version vom 02.02.2010 Inhaltsverzeichnis 1. KANN ICH BEI EINER EIGENEN LEKTION NACHTRÄGLICH NOCH NEUE LERNINHALTE ( WAS WURDE BEHANDELT? ) EINFÜGEN?...
MehrHandbuch zur Anlage von Turnieren auf der NÖEV-Homepage
Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Inhaltsverzeichnis 1. Anmeldung... 2 1.1 Startbildschirm... 3 2. Die PDF-Dateien hochladen... 4 2.1 Neue PDF-Datei erstellen... 5 3. Obelix-Datei
MehrDas sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert
Beamen in EEP Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert Zuerst musst du dir 2 Programme besorgen und zwar: Albert, das
MehrLeichte-Sprache-Bilder
Leichte-Sprache-Bilder Reinhild Kassing Information - So geht es 1. Bilder gucken 2. anmelden für Probe-Bilder 3. Bilder bestellen 4. Rechnung bezahlen 5. Bilder runterladen 6. neue Bilder vorschlagen
MehrDer neue persönliche Bereich/die CommSy-Leiste
Der neue persönliche Bereich/die CommSy-Leiste Mit der neue CommSy-Version wurde auch der persönliche Bereich umstrukturiert. Sie finden all Ihre persönlichen Dokumente jetzt in Ihrer CommSy-Leiste. Ein
MehrInformationen zum Ambulant Betreuten Wohnen in leichter Sprache
Informationen zum Ambulant Betreuten Wohnen in leichter Sprache Arbeiterwohlfahrt Kreisverband Siegen - Wittgenstein/ Olpe 1 Diese Information hat geschrieben: Arbeiterwohlfahrt Stephanie Schür Koblenzer
MehrTYPO3 Tipps und Tricks
TYPO3 Tipps und Tricks Seiten als Shortcut. Hiermit ist gemeint, dass eine Oberseite direkt auf eine tiefere Unterseite verlinkt. Dies kann bei Themen ohne gesonderte Übersichtsseite hilfreich sein. Zum
MehrIm Original veränderbare Word-Dateien
Objekte einer Datenbank Microsoft Access Begriffe Wegen seines Bekanntheitsgrades und der großen Verbreitung auch in Schulen wird im Folgenden eingehend auf das Programm Access von Microsoft Bezug genommen.
MehrHandbuch Fischertechnik-Einzelteiltabelle V3.7.3
Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3
MehrNutzerhandbuch Zentrale Klassenverwaltung
Nutzerhandbuch Zentrale Klassenverwaltung Nutzerhandbuch Zentrale Klassenverwaltung...1 1. Allgemeines...2 2. Startseite...2 3. Posteingang...2 4. Klassenübersicht...3 4.1. Klassendetailansicht...4 4.2.
Mehr