Strukturierte Datentypen und Funktionszeiger

Größe: px
Ab Seite anzeigen:

Download "Strukturierte Datentypen und Funktionszeiger"

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 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

Mehr

1 Vom Problem zum Programm

1 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

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. 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

Mehr

2. Semester, 2. Prüfung, Lösung

2. 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

Mehr

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung

M. 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

Mehr

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

5 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

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Einführung in die C++ Programmierung für Ingenieure

Einfü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

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen 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.

Mehr

Datenbanken Kapitel 2

Datenbanken 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,

Mehr

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Outlook. 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

Mehr

Objektorientierte Programmierung

Objektorientierte 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

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 18

Wintersemester 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.

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS 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

Mehr

Einführung in die Java- Programmierung

Einfü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

Mehr

Rundung und Casting von Zahlen

Rundung 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

Mehr

Modellierung und Programmierung 1

Modellierung 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; {

Mehr

Zählen von Objekten einer bestimmten Klasse

Zä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 --

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen 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.

Mehr

Anleitung über den Umgang mit Schildern

Anleitung ü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

Mehr

Einführung in die Programmierung

Einfü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

Mehr

So gehts Schritt-für-Schritt-Anleitung

So 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

Mehr

Einführung in die Programmierung (EPR)

Einfü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.

Mehr

Einführung in die Programmierung

Einfü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

Mehr

Datenexport aus JS - Software

Datenexport 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

Mehr

1. Einführung. 2. Alternativen zu eigenen Auswertungen. 3. Erstellen eigener Tabellen-Auswertungen

1. 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

Mehr

Datenbanken Microsoft Access 2010

Datenbanken 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

Mehr

Lehrer: Einschreibemethoden

Lehrer: 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

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binä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

Mehr

6.2 Scan-Konvertierung (Scan Conversion)

6.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

Mehr

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Erstellen 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

Mehr

Das Festkomitee hat die Abi-Seite neu konzipiert, die nun auf einem (gemieteten) Share Point Server

Das 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

Mehr

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Systeme 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

Mehr

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

Informatik 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

Mehr

Funktionen 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: 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

Mehr

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

MdtTax 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

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen 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

Mehr

4 Aufzählungen und Listen erstellen

4 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

Mehr

Diana Lange. Generative Gestaltung Operatoren

Diana 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.

Mehr

Stand: 28.11.2012. Adressnummern ändern Modulbeschreibung

Stand: 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

Mehr

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Das 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:

Mehr

Datentypen: Enum, Array, Struct, Union

Datentypen: 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

Mehr

Wie 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. 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

Mehr

Eine Einführung in C-Funktionen

Eine 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.............................

Mehr

Viele Bilder auf der FA-Homepage

Viele 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

Mehr

Starten Sie Eclipse: Hier tragen sie Ihr Arbeitsverzeichnis ein. Zu Hause z.b. c:\workspace.

Starten 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

Mehr

Quadratische Gleichungen

Quadratische 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

Ü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:

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung 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

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der 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.

Mehr

teamsync Kurzanleitung

teamsync 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

Mehr

Wir arbeiten mit Zufallszahlen

Wir 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

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte 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/

Mehr

AutoCAD 2007 - Dienstprogramm zur Lizenzübertragung

AutoCAD 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

Mehr

Felder, Rückblick Mehrdimensionale Felder. Programmieren in C

Felder, 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

Mehr

Internationales Altkatholisches Laienforum

Internationales 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

Mehr

Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012

Fakultä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 **

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle 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

Mehr

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java 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

Mehr

Jederzeit Ordnung halten

Jederzeit 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

Mehr

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH

MORE 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

Mehr

Dr. Monika Meiler. Inhalt

Dr. 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

Mehr

Anleitung zum Herunterladen von DIN-Vorschriften außerhalb des internen Hochschulnetzes

Anleitung 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

Mehr

Datei Erweiterungen Anzeigen!

Datei 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

Mehr

Programmierung in C. Grundlagen. Stefan Kallerhoff

Programmierung 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/

Mehr

Gleichungen und Ungleichungen

Gleichungen 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

Mehr

Einführung in die Programmierung

Einfü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

Mehr

Info-Veranstaltung zur Erstellung von Zertifikaten

Info-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

Mehr

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

1. 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,

Mehr

Bevor lineare Gleichungen gelöst werden, ein paar wichtige Begriffe, die im Zusammenhang von linearen Gleichungen oft auftauchen.

Bevor 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

Mehr

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einfache 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"

Mehr

Delegatesund Ereignisse

Delegatesund 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) Übungspaket 31 Entwicklung eines einfachen Kellerspeiches (Stacks) Übungsziele: Skript: 1. Definieren einer dynamischen Datenstruktur 2. Dynamische Speicher Speicherallokation 3. Implementierung eines

Mehr

Arge Betriebsinformatik GmbH & Co.KG, CAP News 40, Februar 2013. CAP-News 40

Arge 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

Mehr

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Advoware 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

Mehr

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Unterprogramme. 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

Mehr

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

4. 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

Mehr

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

LU-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

Mehr

Menü Macro. WinIBW2-Macros unter Windows7? Macros aufnehmen

Menü 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...

Mehr

Aufgaben zur C-Programmierung für die Praktikumsperiode des 1.Semesters

Aufgaben 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.

Mehr

Enigmail Konfiguration

Enigmail 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

Ü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

Mehr

Einführungskurs MOODLE Themen:

Einfü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

Mehr

Einrichten einer mehrsprachigen Webseite mit Joomla (3.3.6)

Einrichten 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

Mehr

Zwischenablage (Bilder, Texte,...)

Zwischenablage (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 Ü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

Mehr

1. Einführung 2. 2. Erstellung einer Teillieferung 2. 3. Erstellung einer Teilrechnung 6

1. 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

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen 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

Mehr

2. Programmierung in C

2. 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)

Mehr

Umzug der abfallwirtschaftlichen Nummern /Kündigung

Umzug 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

Mehr

FH-SY Chapter 2.4 - Version 3 - FH-SY.NET - FAQ -

FH-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?...

Mehr

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Handbuch 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

Mehr

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Das 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

Mehr

Leichte-Sprache-Bilder

Leichte-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

Mehr

Der neue persönliche Bereich/die CommSy-Leiste

Der 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

Mehr

Informationen zum Ambulant Betreuten Wohnen in leichter Sprache

Informationen 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

Mehr

TYPO3 Tipps und Tricks

TYPO3 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

Mehr

Im Original veränderbare Word-Dateien

Im 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.

Mehr

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch 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

Mehr

Nutzerhandbuch Zentrale Klassenverwaltung

Nutzerhandbuch 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