Systemnahe Programmierung in C/C++
|
|
|
- Klaus Biermann
- vor 9 Jahren
- Abrufe
Transkript
1 Systemnahe Programmierung in C/C++ Fehlerbehandlung, Internationalisierung und Programmende Knut Stolze Lehrstuhl für Datenbanken und Informationssysteme Fakultät für Mathematik und Informatik Knut Stolze (DBIS) C/C++ Programmierung / 36
2 Agenda 1 Fehlerbehandlung Grundsatz Mechanismen zur Fehlererkennung Tipps & Hinweise 2 Internationalisierung Internationalisierung vs. Lokalisierung X/Open Message Catalogs GNU gettext 3 Programmende 4 Aufgaben Knut Stolze (DBIS) C/C++ Programmierung / 36
3 Outline 1 Fehlerbehandlung Grundsatz Mechanismen zur Fehlererkennung Tipps & Hinweise 2 Internationalisierung Internationalisierung vs. Lokalisierung X/Open Message Catalogs GNU gettext 3 Programmende 4 Aufgaben Knut Stolze (DBIS) C/C++ Programmierung / 36
4 Grundsatz beim Programmieren Jeder(!) Funktionsaufruf kann Fehler/Warnungen produzieren. = Also ist nach jedem Funktionsaufruf auf Fehler zu prüfen. (Ausnahmen bestätigen die Regel.) Knut Stolze (DBIS) C/C++ Programmierung / 36
5 Grundsatz beim Programmieren Jeder(!) Funktionsaufruf kann Fehler/Warnungen produzieren. = Also ist nach jedem Funktionsaufruf auf Fehler zu prüfen. (Ausnahmen bestätigen die Regel.) Knut Stolze (DBIS) C/C++ Programmierung / 36
6 Grundsatz beim Programmieren Jeder(!) Funktionsaufruf kann Fehler/Warnungen produzieren. = Also ist nach jedem Funktionsaufruf auf Fehler zu prüfen. (Ausnahmen bestätigen die Regel.) Knut Stolze (DBIS) C/C++ Programmierung / 36
7 Fehler von Systemfunktionen Alle Systemfunktionen geben Fehlerinformationen zurück, z. B. strchr NULL-Zeiger fopen NULL-Zeiger malloc NULL-Zeiger strtol 0 shmget -1 Zusätzliche Informationen werden über errno (vom Typ int) an Anwendung übermittelt Knut Stolze (DBIS) C/C++ Programmierung / 36
8 errno Header <errno.h> muss eingebunden werden Wird von keiner Systemfunktion auf 0 gesetzt, aber jede Funktion kann potentiell errno ändern errno in Fehlerbehandlung sichern bzw. Kopie verwenden Wenn Funktion 1 als valides Ergebnis liefern kann errno auf 0 setzen vor Funktionsaufruf errno ist keine explizit deklarierte (globale) Variable, aber modifiable lvalue Wäre nicht re-entrant & thread-safe Abhängig von Plattform und Implementierung, z. B. von libc Linux/Cygwin: Als Macro implementiert: #define errno (* errno_location()) Knut Stolze (DBIS) C/C++ Programmierung / 36
9 errno Header <errno.h> muss eingebunden werden Wird von keiner Systemfunktion auf 0 gesetzt, aber jede Funktion kann potentiell errno ändern errno in Fehlerbehandlung sichern bzw. Kopie verwenden Wenn Funktion 1 als valides Ergebnis liefern kann errno auf 0 setzen vor Funktionsaufruf errno ist keine explizit deklarierte (globale) Variable, aber modifiable lvalue Wäre nicht re-entrant & thread-safe Abhängig von Plattform und Implementierung, z. B. von libc Linux/Cygwin: Als Macro implementiert: #define errno (* errno_location()) Knut Stolze (DBIS) C/C++ Programmierung / 36
10 errno Header <errno.h> muss eingebunden werden Wird von keiner Systemfunktion auf 0 gesetzt, aber jede Funktion kann potentiell errno ändern errno in Fehlerbehandlung sichern bzw. Kopie verwenden Wenn Funktion 1 als valides Ergebnis liefern kann errno auf 0 setzen vor Funktionsaufruf errno ist keine explizit deklarierte (globale) Variable, aber modifiable lvalue Wäre nicht re-entrant & thread-safe Abhängig von Plattform und Implementierung, z. B. von libc Linux/Cygwin: Als Macro implementiert: #define errno (* errno_location()) Knut Stolze (DBIS) C/C++ Programmierung / 36
11 errno Header <errno.h> muss eingebunden werden Wird von keiner Systemfunktion auf 0 gesetzt, aber jede Funktion kann potentiell errno ändern errno in Fehlerbehandlung sichern bzw. Kopie verwenden Wenn Funktion 1 als valides Ergebnis liefern kann errno auf 0 setzen vor Funktionsaufruf errno ist keine explizit deklarierte (globale) Variable, aber modifiable lvalue Wäre nicht re-entrant & thread-safe Abhängig von Plattform und Implementierung, z. B. von libc Linux/Cygwin: Als Macro implementiert: #define errno (* errno_location()) Knut Stolze (DBIS) C/C++ Programmierung / 36
12 errno (cont.) Jeder Thread eines Prozesses hat eigene errno Definitionen der Fehlercodes in /usr/include/errno.h, z. B. #define EPERM #define ENOENT #define ESRCH #define EINTR #define EIO 1 // Operation not perm. 2 // No such file or dir 3 // No such process 4 // Interrupted call 5 // I/O error Fehlercodes können systemabhängig sein Immer Macros wie EPERM etc. verwenden Knut Stolze (DBIS) C/C++ Programmierung / 36
13 strerror et al. strerror bildet Fehlercode (errno) auf Text ab Aktuelle Locale wird verwendet Nutzt globalen Systempuffer String sollte nicht direkt modifiziert werden; kann Konstante sein String in Speicherblock der Anwendung kopieren Wird nie von Systemfunktionen selbst aufgerufen strerror_r sehr ähnlich zu strerror Nutzt von Anwendung bereitgestellter Puffer Ist thread-safe perror schreibt Meldung auf Standardfehlerausgabe (stderr) NULL-Zeiger oder leerer String: Ergebnis von strerror() wird ausgegeben In Bibliotheken üblicherweise nicht sehr brauchbar Späterer Einsatz nicht klar; Existenz von stderr nicht gesichert Knut Stolze (DBIS) C/C++ Programmierung / 36
14 strerror et al. strerror bildet Fehlercode (errno) auf Text ab Aktuelle Locale wird verwendet Nutzt globalen Systempuffer String sollte nicht direkt modifiziert werden; kann Konstante sein String in Speicherblock der Anwendung kopieren Wird nie von Systemfunktionen selbst aufgerufen strerror_r sehr ähnlich zu strerror Nutzt von Anwendung bereitgestellter Puffer Ist thread-safe perror schreibt Meldung auf Standardfehlerausgabe (stderr) NULL-Zeiger oder leerer String: Ergebnis von strerror() wird ausgegeben In Bibliotheken üblicherweise nicht sehr brauchbar Späterer Einsatz nicht klar; Existenz von stderr nicht gesichert Knut Stolze (DBIS) C/C++ Programmierung / 36
15 strerror et al. strerror bildet Fehlercode (errno) auf Text ab Aktuelle Locale wird verwendet Nutzt globalen Systempuffer String sollte nicht direkt modifiziert werden; kann Konstante sein String in Speicherblock der Anwendung kopieren Wird nie von Systemfunktionen selbst aufgerufen strerror_r sehr ähnlich zu strerror Nutzt von Anwendung bereitgestellter Puffer Ist thread-safe perror schreibt Meldung auf Standardfehlerausgabe (stderr) NULL-Zeiger oder leerer String: Ergebnis von strerror() wird ausgegeben In Bibliotheken üblicherweise nicht sehr brauchbar Späterer Einsatz nicht klar; Existenz von stderr nicht gesichert Knut Stolze (DBIS) C/C++ Programmierung / 36
16 Tipps Vorsicht bei geschachtelten Funktionen strcpy(malloc(strlen(my_str)+1, my_str)); malloc kann natürlich fehlschlagen strcpy würde auf NULL-Zeiger arbeiten Einzelne Schritte separieren size_t str_len = strlen(my_str); char *ptr = (char *)malloc(str_len); if (!ptr) /* Fehlerbehandlung */ strcpy(ptr, my_str); Knut Stolze (DBIS) C/C++ Programmierung / 36
17 Beispiel DB2 Code sqlzrc myfunction(...) { sqlzrc rc = SQL_OK; char *buffer = NULL;... buffer = (char *)malloc(length); if (buffer!= NULL) { rc = SQLZ_OUT_OF_MEMORY; goto cleanup; } Knut Stolze (DBIS) C/C++ Programmierung / 36
18 Beispiel DB2 Code (cont.) rc = sqluimpr(...); if (rc!= SQL_OK) { goto cleanup; }... } cleanup: if (buffer!= NULL) { free(buffer); } Knut Stolze (DBIS) C/C++ Programmierung / 36
19 Fehlerbehandlung in Anwendungen Im Fehlerfall muss jede Funktion einen wohldefinierten Zustand hinterlassen, z. B. Allokierten Speicher wieder freigeben Geänderte Signal-Handler zurücksetzen Fehlermeldungen und -informationen setzen Nie, nie und nie exit und abort verwenden!! Funktion kann (irgendwann) in Bibliothek landen Bibliotheken werden von verschiedenen Programmen verwendet exit/abort würde Programm beenden, dass Bibliothek nur verwendet Fehler einfach zum Aufrufen durchreichen Erfordert entsprechendes Design von Grund auf Knut Stolze (DBIS) C/C++ Programmierung / 36
20 Fehlerbehandlung in Anwendungen Im Fehlerfall muss jede Funktion einen wohldefinierten Zustand hinterlassen, z. B. Allokierten Speicher wieder freigeben Geänderte Signal-Handler zurücksetzen Fehlermeldungen und -informationen setzen Nie, nie und nie exit und abort verwenden!! Funktion kann (irgendwann) in Bibliothek landen Bibliotheken werden von verschiedenen Programmen verwendet exit/abort würde Programm beenden, dass Bibliothek nur verwendet Fehler einfach zum Aufrufen durchreichen Erfordert entsprechendes Design von Grund auf Knut Stolze (DBIS) C/C++ Programmierung / 36
21 Numerische Fehler Keine Laufzeitüberprüfungen bei numerischen Operationen Überläufe und Unterläufe möglich; werden nicht automatisch erkannt Muss von Anwendung explizit abgefangen werden Integer-Zahlen (signed/unsigned) char, short, int, long, long long Grenzen (min/max) in <limits.h> definiert Numerische Genauigkeit von Fliesskommazahlen Test auf Gleichheit zweier Zahlen nicht exakt if (fabs(flt1 - flt2) <= ɛ) {... } Vordefinierte Macros (kleinste Zahl > 1, die darstellbar ist): FLT_EPSILON und DBL_EPSILON Knut Stolze (DBIS) C/C++ Programmierung / 36
22 Numerische Fehler Keine Laufzeitüberprüfungen bei numerischen Operationen Überläufe und Unterläufe möglich; werden nicht automatisch erkannt Muss von Anwendung explizit abgefangen werden Integer-Zahlen (signed/unsigned) char, short, int, long, long long Grenzen (min/max) in <limits.h> definiert Numerische Genauigkeit von Fliesskommazahlen Test auf Gleichheit zweier Zahlen nicht exakt if (fabs(flt1 - flt2) <= ɛ) {... } Vordefinierte Macros (kleinste Zahl > 1, die darstellbar ist): FLT_EPSILON und DBL_EPSILON Knut Stolze (DBIS) C/C++ Programmierung / 36
23 Numerische Fehler Keine Laufzeitüberprüfungen bei numerischen Operationen Überläufe und Unterläufe möglich; werden nicht automatisch erkannt Muss von Anwendung explizit abgefangen werden Integer-Zahlen (signed/unsigned) char, short, int, long, long long Grenzen (min/max) in <limits.h> definiert Numerische Genauigkeit von Fliesskommazahlen Test auf Gleichheit zweier Zahlen nicht exakt if (fabs(flt1 - flt2) <= ɛ) {... } Vordefinierte Macros (kleinste Zahl > 1, die darstellbar ist): FLT_EPSILON und DBL_EPSILON Knut Stolze (DBIS) C/C++ Programmierung / 36
24 Outline 1 Fehlerbehandlung Grundsatz Mechanismen zur Fehlererkennung Tipps & Hinweise 2 Internationalisierung Internationalisierung vs. Lokalisierung X/Open Message Catalogs GNU gettext 3 Programmende 4 Aufgaben Knut Stolze (DBIS) C/C++ Programmierung / 36
25 Grundlagen Alle Texte eines Programms müssen an jeweilige Sprache angepasst werden. Internationalization (I18N) Programm vorbereiten auf dynamische Meldungen/Texte Localization (L10N) Übersetzen der Meldungen in die jeweilige Sprache Knut Stolze (DBIS) C/C++ Programmierung / 36
26 Grundlagen Alle Texte eines Programms müssen an jeweilige Sprache angepasst werden. Internationalization (I18N) Programm vorbereiten auf dynamische Meldungen/Texte Localization (L10N) Übersetzen der Meldungen in die jeweilige Sprache Knut Stolze (DBIS) C/C++ Programmierung / 36
27 Grundlagen Alle Texte eines Programms müssen an jeweilige Sprache angepasst werden. Internationalization (I18N) Programm vorbereiten auf dynamische Meldungen/Texte Localization (L10N) Übersetzen der Meldungen in die jeweilige Sprache Knut Stolze (DBIS) C/C++ Programmierung / 36
28 Internationalisierung Unterschiedliche Länge von Texten Unterschiedliche Darstellungsformate für Datum, Uhrzeit, Zahlen, Währungen,... 11/01/06 vs vs :20 PM vs. 13:20 123, vs , vs. (890) oft bei negativen Geldbeträgen 120 EUR vs. $120 Richtung des Textes kann variieren: 1 Von links nach rechts (z. B. English, Deutsch,... ) 2 Von rechts nach links (z. B. Arabische Sprachen) 3 Von oben nach unten (z. B. Japanisch) Statische Annahmen nicht haltbar. Knut Stolze (DBIS) C/C++ Programmierung / 36
29 Internationalisierung Unterschiedliche Länge von Texten Unterschiedliche Darstellungsformate für Datum, Uhrzeit, Zahlen, Währungen,... 11/01/06 vs vs :20 PM vs. 13:20 123, vs , vs. (890) oft bei negativen Geldbeträgen 120 EUR vs. $120 Richtung des Textes kann variieren: 1 Von links nach rechts (z. B. English, Deutsch,... ) 2 Von rechts nach links (z. B. Arabische Sprachen) 3 Von oben nach unten (z. B. Japanisch) Statische Annahmen nicht haltbar. Knut Stolze (DBIS) C/C++ Programmierung / 36
30 Internationalisierung Unterschiedliche Länge von Texten Unterschiedliche Darstellungsformate für Datum, Uhrzeit, Zahlen, Währungen,... 11/01/06 vs vs :20 PM vs. 13:20 123, vs , vs. (890) oft bei negativen Geldbeträgen 120 EUR vs. $120 Richtung des Textes kann variieren: 1 Von links nach rechts (z. B. English, Deutsch,... ) 2 Von rechts nach links (z. B. Arabische Sprachen) 3 Von oben nach unten (z. B. Japanisch) Statische Annahmen nicht haltbar. Knut Stolze (DBIS) C/C++ Programmierung / 36
31 Internationalisierung Unterschiedliche Länge von Texten Unterschiedliche Darstellungsformate für Datum, Uhrzeit, Zahlen, Währungen,... 11/01/06 vs vs :20 PM vs. 13:20 123, vs , vs. (890) oft bei negativen Geldbeträgen 120 EUR vs. $120 Richtung des Textes kann variieren: 1 Von links nach rechts (z. B. English, Deutsch,... ) 2 Von rechts nach links (z. B. Arabische Sprachen) 3 Von oben nach unten (z. B. Japanisch) Statische Annahmen nicht haltbar. Knut Stolze (DBIS) C/C++ Programmierung / 36
32 Lokalisierung LOCALE beeinflusst verschiedene Darstellungsarten Regionaleinstellung Meldungen müssen speziell übersetzt werden Reihenfolge von Tokens in Meldungen kann sich ändern Anderer Satzbau Message Catalogs sammeln Meldungen in einer spezifischen Sprache bzw. Dialekt Knut Stolze (DBIS) C/C++ Programmierung / 36
33 Message Catalogs a la X/Open Textdatei mit Meldungen Jede Meldung erhält eindeutigen numerischen Identifier set + msg-id Programme arbeiten nur mit Identifier Formatierung der Meldungen kann mit printf-funktionen erfolgen Arbeit mit Katalogen ähnlich zu read-only Dateien: 1 open 2 get message 3 close Header-Datei <nl_types.h> Knut Stolze (DBIS) C/C++ Programmierung / 36
34 catopen nl_catd catopen(const char *cat_name, int flag) Öffnet angegebenen Katalog Gibt Katalogdeskriptor zurück Lokation des Katalogs im Dateisystem: Absoluter oder relativer Pfad, oder Umgebungsvariable NLSPATH Pfade sollten nie verwendet werden da nicht portabel. Knut Stolze (DBIS) C/C++ Programmierung / 36
35 catgets char *catgets(nl_catd cat, int set, int msg, const char *str) Ermittelt identifizierte Meldung Falls Meldung nicht existiert, dann wird str zurückgegeben Muss zur Fehlerbehandlung verwendet werden char *msg = catgets(..., default); if (msg == default) { /* Fehler: fehlende Meldung */ } Meldung sollte für Modifikationen in eigenen Puffer kopiert werden Formatierung: Some error encountered at position %1d. sprintf(formattedmsg, msg, tokens,...) Knut Stolze (DBIS) C/C++ Programmierung / 36
36 catclose int catclose(nl_catd cat) Schliesst Katalog Gibt Resourcen frei Knut Stolze (DBIS) C/C++ Programmierung / 36
37 gettext char *gettext(char *) Ähnlich zu X/Open Meldungen in Katalogen separat von Programmcode gesammelt Auswahl des entsprechenden Katalogs Funktion zum ermittelt der korrekten, übersetzten Meldung Probleme bei X/Open Pflege der eindeutigen Nummern der Meldungen gettext verwendet Meldung als Identifier Identifier ist gleichzeitig Default-Meldung Werkzeuge: xgettext erkennt alle (markierten) Meldungen eines Programms; erzeugt Template für Übersetzung msgmerge aktualisiert Katalog mit neuen Meldungen msgfmt erzeugt Binärformat des Katalogs, welchen gettext zur Laufzeit konsultiert Knut Stolze (DBIS) C/C++ Programmierung / 36
38 gettext char *gettext(char *) Ähnlich zu X/Open Meldungen in Katalogen separat von Programmcode gesammelt Auswahl des entsprechenden Katalogs Funktion zum ermittelt der korrekten, übersetzten Meldung Probleme bei X/Open Pflege der eindeutigen Nummern der Meldungen gettext verwendet Meldung als Identifier Identifier ist gleichzeitig Default-Meldung Werkzeuge: xgettext erkennt alle (markierten) Meldungen eines Programms; erzeugt Template für Übersetzung msgmerge aktualisiert Katalog mit neuen Meldungen msgfmt erzeugt Binärformat des Katalogs, welchen gettext zur Laufzeit konsultiert Knut Stolze (DBIS) C/C++ Programmierung / 36
39 gettext char *gettext(char *) Ähnlich zu X/Open Meldungen in Katalogen separat von Programmcode gesammelt Auswahl des entsprechenden Katalogs Funktion zum ermittelt der korrekten, übersetzten Meldung Probleme bei X/Open Pflege der eindeutigen Nummern der Meldungen gettext verwendet Meldung als Identifier Identifier ist gleichzeitig Default-Meldung Werkzeuge: xgettext erkennt alle (markierten) Meldungen eines Programms; erzeugt Template für Übersetzung msgmerge aktualisiert Katalog mit neuen Meldungen msgfmt erzeugt Binärformat des Katalogs, welchen gettext zur Laufzeit konsultiert Knut Stolze (DBIS) C/C++ Programmierung / 36
40 gettext char *gettext(char *) Ähnlich zu X/Open Meldungen in Katalogen separat von Programmcode gesammelt Auswahl des entsprechenden Katalogs Funktion zum ermittelt der korrekten, übersetzten Meldung Probleme bei X/Open Pflege der eindeutigen Nummern der Meldungen gettext verwendet Meldung als Identifier Identifier ist gleichzeitig Default-Meldung Werkzeuge: xgettext erkennt alle (markierten) Meldungen eines Programms; erzeugt Template für Übersetzung msgmerge aktualisiert Katalog mit neuen Meldungen msgfmt erzeugt Binärformat des Katalogs, welchen gettext zur Laufzeit konsultiert Knut Stolze (DBIS) C/C++ Programmierung / 36
41 Outline 1 Fehlerbehandlung Grundsatz Mechanismen zur Fehlererkennung Tipps & Hinweise 2 Internationalisierung Internationalisierung vs. Lokalisierung X/Open Message Catalogs GNU gettext 3 Programmende 4 Aufgaben Knut Stolze (DBIS) C/C++ Programmierung / 36
42 Programmende Programm endet wenn Funktion main wird verlassen Funktion exit wird aufgerufen Funktion abort wird aufgerufen Programm muss Exit-Status zurückgeben main muss mit return-operation beendet werden exit erhält expliziten Status als Parameter abort sendet SIGABRT Signal Betriebssystem räumt nach Programm auf File-Deskriptoren Speicher... Knut Stolze (DBIS) C/C++ Programmierung / 36
43 Programmende Programm endet wenn Funktion main wird verlassen Funktion exit wird aufgerufen Funktion abort wird aufgerufen Programm muss Exit-Status zurückgeben main muss mit return-operation beendet werden exit erhält expliziten Status als Parameter abort sendet SIGABRT Signal Betriebssystem räumt nach Programm auf File-Deskriptoren Speicher... Knut Stolze (DBIS) C/C++ Programmierung / 36
44 Programmende Programm endet wenn Funktion main wird verlassen Funktion exit wird aufgerufen Funktion abort wird aufgerufen Programm muss Exit-Status zurückgeben main muss mit return-operation beendet werden exit erhält expliziten Status als Parameter abort sendet SIGABRT Signal Betriebssystem räumt nach Programm auf File-Deskriptoren Speicher... Knut Stolze (DBIS) C/C++ Programmierung / 36
45 Verlassen von main Erfolgreiches Ende mit 0 gekennzeichnet; sonst Fehler Header-Datei <stdlib.h> definiert (POSIX): EXIT_SUCCESS EXIT_FAILURE Alles andere systemspezifisch; potentiell nicht portabel Rückgabewert kann abgefragt werden In Shell/Perl z. B. Variable $? Knut Stolze (DBIS) C/C++ Programmierung / 36
46 exit void exit(int status) Ende des Programms aus beliebiger (geschachtelter) Routine Interne Funktion _exit() wird aufgerufen Exit-Handler werden abgearbeitet Status wird als Exit-Status des Programms zurückgegeben exit sollte nie verwendet werden. Vergleichbar zu Javas System.exit() Aber kein Security Manager o.ä. vorhanden Knut Stolze (DBIS) C/C++ Programmierung / 36
47 exit void exit(int status) Ende des Programms aus beliebiger (geschachtelter) Routine Interne Funktion _exit() wird aufgerufen Exit-Handler werden abgearbeitet Status wird als Exit-Status des Programms zurückgegeben exit sollte nie verwendet werden. Vergleichbar zu Javas System.exit() Aber kein Security Manager o.ä. vorhanden Knut Stolze (DBIS) C/C++ Programmierung / 36
48 exit void exit(int status) Ende des Programms aus beliebiger (geschachtelter) Routine Interne Funktion _exit() wird aufgerufen Exit-Handler werden abgearbeitet Status wird als Exit-Status des Programms zurückgegeben exit sollte nie verwendet werden. Vergleichbar zu Javas System.exit() Aber kein Security Manager o.ä. vorhanden Knut Stolze (DBIS) C/C++ Programmierung / 36
49 Exit Handler Registrierte Funktionen, die beim Ende des Programms abgearbeitet werden Funktionen atexit() und on_exit() int atexit(void (*function)(void)) Registriert lediglich die angegebene Funktion function int on_exit(void (*function)(int, void *), void *arg) Registriert die angegebene Funktion function und den Zeiger auf einen Speicherbereich arg Speicherbereich wird Funktion als Parameter beim Aufruf übergeben arg muss beim exit auf gültigen Bereich zeigen Knut Stolze (DBIS) C/C++ Programmierung / 36
50 Funktionszeiger Deklaration: return-type (*name)(parameter-type,...) Verwendung: name(parameter-value,...) Oft in typedef verborgen typedef int (*function_type)(int, char); int my_fct(int i, char c) {... } int main() { function_type f = my_fct; res = f(1, a ); } Knut Stolze (DBIS) C/C++ Programmierung / 36
51 abort void abort(void) Abnormales Beenden des Programms Programm erhält abort Signal (SIGABRT) Signal-Handler für SIGABRT kann verwendet werden Kein Aufräumen Keine Exit-Handler Knut Stolze (DBIS) C/C++ Programmierung / 36
52 Outline 1 Fehlerbehandlung Grundsatz Mechanismen zur Fehlererkennung Tipps & Hinweise 2 Internationalisierung Internationalisierung vs. Lokalisierung X/Open Message Catalogs GNU gettext 3 Programmende 4 Aufgaben Knut Stolze (DBIS) C/C++ Programmierung / 36
53 Aufgabe 1 Schreiben Sie ein Programm, welches versucht eine Datei zu öffnen, deren Name als Kommandozeilenparameter an das Programm übergeben wurde. a) Wenn die Datei geöffnet werden kann, so sind alle Zahlen in der Datei zu ermitteln. Die Anzahl dieser Zahlen ist zu ermitteln und auf die Standardausgabe auszugeben. b) Wenn die Datei nicht geöffnet werden kann, so ist eine detailierte Fehlermeldung auszugeben, warum die Datei nicht geöffnet werden konnte. Verwenden Sie einen Exit Handler, um die Datei beim Beenden des Programms korrekt zu schliessen. Knut Stolze (DBIS) C/C++ Programmierung / 36
54 Aufgabe 2 Legen Sie zwei Message Catalogs an, die jeweils 1 Set mit 10 verschiedenen Meldungen (in Deutsch und Englisch) enthalten. Die Meldungen sollen es ermöglichen, den Ablauf eines kurzen, selbst geschriebenen Programms nachzuverfolgen, also eine Art Trace produzieren für: a) das Betreten einer Funktion, b) das Verlassen einer Funktion, und c) eine funktionsspezifische Meldung Zeigen Sie dabei, dass abhängig von den Einstellungen in der Umgebung einmal die Englischen und einmal die Deutschen Meldungen ausgegeben werden. Verwenden Sie dabei die X/Open Schnittstelle für Message Catalogs. Knut Stolze (DBIS) C/C++ Programmierung / 36
55 Aufgabe 3 Lösen Sie die gleiche Aufgabenstellung wie zuvor in Aufgabe 2, verwenden Sie jedoch diesmal das GNU gettext Interface. Knut Stolze (DBIS) C/C++ Programmierung / 36
56 Aufgabe 4 Schreiben Sie ein Programm, welches ein Array mit 5 Funktionszeigern dynamisch (per malloc) anlegt. Jedem der Array-Elemente ist eine Funktion zuzuordnen. Rufen Sie anschliessend die Funktionen in einer Schleife auf und geben Sie deren Ergebnis im Schleifenrumpf (nicht in der Funktion selbst) auf die Standardausgabe aus. Knut Stolze (DBIS) C/C++ Programmierung / 36
57 Aufgabe 5 Implementieren Sie ein Programm, welches eine Struktur definiert, die entweder für eine Datei (FILE *) oder einen String (char *) die folgenden Operationen zur Verfügung stellt: a) Ermitteln des nächsten zu lesenden Zeichens (Bytes) b) Ermitteln der Länge der noch nicht gelesenen Daten c) Schliessen der Datei bzw. Freigeben des Strings Zwei separate Funktionen zur Initialisieren der Struktur in Abhängigkeit ven Datei bzw. String sind umzusetzen. Diese beiden Funktionen setzen die Funktionszeiger in der Struktur auf die spezifischen Routinen. Die Struktur ist nach Bedarf mit eigenen Erweiterungen zu versehen. Knut Stolze (DBIS) C/C++ Programmierung / 36
58 Aufgabe 5 (cont.) Die Struktur implementiert einen Mechanismus, der vergleichbar zu der Vererbungshierarchie in folgendem Bild ist (ohne jedoch Vererbung zu nutzen). Die gezeigten Attribute nehmen Funktionszeiger auf, die als Callback-Funktionen Verwendung finden, d. h. abhängig vom jeweiligen Einsatz/Initialisierung wird die entsprechende spezifische Funktion aufgerufen. my_stream get_next_byte get_remaining_length close FILE_stream String_stream Knut Stolze (DBIS) C/C++ Programmierung / 36
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
Technische Dokumentation SilentStatistikTool
Technische Dokumentation SilentStatistikTool Version 1.0 Marko Schröder 1115063 Inhalt Einleitung... 3 Klasse Program... 3 Klasse ArgumentHandler... 3 Bereitgestellte Variablen... 3 Bereitgestellte Methoden...
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
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
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 --
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
Die Programmiersprache C99: Zusammenfassung
Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 7. Dezember 2010, 19:30 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.youtube.com/joernloviscach
Ü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:
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
Automatisierung ( Fernsteuerung ) von Excel unter Microsoft Windows Tilman Küpper ([email protected])
HMExcel Automatisierung ( Fernsteuerung ) von Excel unter Microsoft Windows Tilman Küpper ([email protected]) Inhalt 1. Einleitung...1 2. Beispiele...2 2.1. Daten in ein Tabellenblatt schreiben...2
Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff
Programmieren in C Macros, Funktionen und modulare Programmstruktur Prof. Dr. Nikolaus Wulff Der C Präprozessor Vor einem Compile Lauf werden alle Präprozessor Kommandos/Makros ausgewertet. Diese sind
Erweiterung AE WWS Lite Win: AES Security Verschlüsselung
Erweiterung AE WWS Lite Win: AES Security Verschlüsselung Handbuch und Dokumentation Beschreibung ab Vers. 1.13.5 Am Güterbahnhof 15 D-31303 Burgdorf Tel: +49 5136 802421 Fax: +49 5136 9776368 Seite 1
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.
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 **
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
Tritt beim Aufruf ein Fehler aus, so wird eine MessageBox mit dem Fehlercode und der Kommandozeile angezeigt.
WinCC UniAddIn Motivation Add-ins für WinCC können in VBA und VB6 programmiert werden. Andere Entwicklungsumgebungen werden nicht standardmäßig unterstützt. Die Entwicklung in VBA hat den Nachteil, dass
FILE *fp; char fname[100];... fp = fopen (fname, rb ); if( fp == NULL ) { perror( fopen );... } // Fehlernachricht auf letzten Fehler, der aufkam
Aktuelle Fileposition ermitteln long pos; pos=ftell(fp); //aktuelle Bytenummer Filelaenge in Bytes fseek(fp,0,seek_end); pos=ftell(fp); Fileendeerkennung int rc; rc = feof (fp) //!= 0 bei Fileende // ==
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
Informatik Grundlagen, WS04, Seminar 13
Informatik Grundlagen, WS04, Seminar 13 Informatik Informatik Grundlagen, Seminar 13 WS04 1 Was wir heute besprechen Nachbesprechen von Übungsblatt 11 Rekursion Grundprinzipien Übung Besprechung Übungsblatt
Übersicht Programmablaufsteuerung
Übersicht Programmablaufsteuerung Konditionale Verzweigung: if - else switch-anweisung Schleifenkonstrukte: while, do - while for Schleife Sprung-Anweisungen: break, continue, goto, return Anweisungen
Ein Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch
Ein Blick voraus des Autors von C++: Bjarne Stroustrup 04.06.2005 Conrad Kobsch Inhalt Einleitung Rückblick Nur eine Übergangslösung? Was würde C++ effektiver machen? Quelle 2 Einleitung Wo steht C++,
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.
Monitore. Klicken bearbeiten
Sascha Kretzschmann Institut für Informatik Monitore Formatvorlage und deren Umsetzung des Untertitelmasters durch Klicken bearbeiten Inhalt 1. Monitore und Concurrent Pascal 1.1 Warum Monitore? 1.2 Monitordefinition
Übung 1 mit C# 6.0 MATTHIAS RONCORONI
Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,
Inhaltserzeichnis. Datenübernahme
Inhaltserzeichnis 1. Feststellen der Installationsart...2 1.1 Sichern der bereits installierten Version von V-LOG 5.0...2 1.2 Deinstallation der alten Version von V-LOG 5.0...3 1.3 Installation der neuen
Anleitung Einrichtung Datenschnittstelle VereinsWK <-> SiusData
Anleitung Einrichtung Datenschnittstelle VereinsWK SiusData V1.6 Das Programm VWKRes ermöglicht die automatische Resultatverarbeitung zwischen VereinsWK und SiusData. Voraussetzungen: - Separater Computer
Melde- und Veröffentlichungsplattform Portal (MVP Portal) Hochladen einer XML-Datei
Seite 1 Melde- und Veröffentlichungsplattform Portal (MVP Portal) Hochladen einer XML-Datei Seite 2 1 Inhalt Melde- und Veröffentlichungsplattform Portal... 1 (MVP Portal)... 1 Hochladen einer XML-Datei...
Vererbung & Schnittstellen in C#
Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung
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; {
Testen mit JUnit. Motivation
Test First Design for Test in Eclipse (eigentlich: ) zu einer Klasse Beispiel zur Demonstration Ergänzungen Test First "Immer dann, wenn Du in Versuchung kommst, etwas wie eine print- Anweisung oder einen
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
Hinweise zur Datensicherung für die - Prüfmittelverwaltung - Inhalt
Hinweise zur Datensicherung für die - Prüfmittelverwaltung - Inhalt 1. Vorbetrachtungen... 2 2. Die Installation... 2 3. Einstellungen - Erstellung der Verknüpfung... 3 3.1 Benutzung des Konfigurationsprogramms
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
S7-Hantierungsbausteine für R355, R6000 und R2700
S7-Hantierungsbausteine für R355, R6000 und R2700 1. FB90, Zyklus_R/W Dieser Baustein dient zur zentralen Kommunikation zwischen Anwenderprogramm und dem Modul R355 sowie den Geräten R6000 und R2700 über
Zugriff auf die Modul-EEPROMs
MAX-P- und P-Bibliotheken EEPROM-Zugriff 1 Zugriff auf die Modul-EEPROMs Jedes X-Bus-Modul verfügt über ein EEPROM, in dem modulspezifische Daten gespeichert werden. Neben einigen Bereichen, die vom Betriebssystem
Virtuelle COM-Schnittstelle umbenennen
Virtuelle COM-Schnittstelle umbenennen COM-Nummer eines USB/Seriell-Wandlers verändern Wenn man ein Gerät mit einem USB/Seriell-Wandler neu anschließt, wird meist eine neue virtuelle COM- Schnittstelle
Elexis-BlueEvidence-Connector
Elexis-BlueEvidence-Connector Gerry Weirich 26. Oktober 2012 1 Einführung Dieses Plugin dient dazu, den Status Hausarztpatient zwischen der BlueEvidence- Anwendung und Elexis abzugleichen. Das Plugin markiert
Barcodedatei importieren
Barcodedatei importieren Inhaltsverzeichnis 1 Schnittstelle Barcodedatei importieren... 2 1.1 Funktion... 2 1.2 Konfiguration... 2 1.2.1 Lizenz... 2 1.2.2 Einstellungen... 2 1.2.3 Vorarbeiten... 3 1.2.3.1
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
Bereich METIS (Texte im Internet) Zählmarkenrecherche
Bereich METIS (Texte im Internet) Zählmarkenrecherche Über die Zählmarkenrecherche kann man nach der Eingabe des Privaten Identifikationscodes einer bestimmten Zählmarke, 1. Informationen zu dieser Zählmarke
Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6
Gudrun Fischer Sascha Kriewel [email protected] Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in
GITS Steckbriefe 1.9 - Tutorial
Allgemeines Die Steckbriefkomponente basiert auf der CONTACTS XTD Komponente von Kurt Banfi, welche erheblich modifiziert bzw. angepasst wurde. Zuerst war nur eine kleine Änderung der Komponente für ein
PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN
PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN 2. UNIX/Linux-Prozessverwaltung und zugehörige Systemaufrufe Wintersemester 2015/16 2. Die UNIX/LINUX-Prozessverwaltung Aufgaben: 1. Erzeugen neuer Prozesse
Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter
Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter Aufgabe 3: Konto Um Geldbeträge korrekt zu verwalten, sind zwecks Vermeidung von Rundungsfehlern entweder alle Beträge in Cents umzuwandeln und
Übung: Verwendung von Java-Threads
Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum
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
Speicher in der Cloud
Speicher in der Cloud Kostenbremse, Sicherheitsrisiko oder Basis für die unternehmensweite Kollaboration? von Cornelius Höchel-Winter 2013 ComConsult Research GmbH, Aachen 3 SYNCHRONISATION TEUFELSZEUG
Durchführung der Datenübernahme nach Reisekosten 2011
Durchführung der Datenübernahme nach Reisekosten 2011 1. Starten Sie QuickSteuer Deluxe 2010. Rufen Sie anschließend über den Menüpunkt /Extras/Reisekosten Rechner den QuickSteuer Deluxe 2010 Reisekosten-Rechner,
Inventur. Bemerkung. / Inventur
Inventur Die beliebige Aufteilung des Artikelstamms nach Artikeln, Lieferanten, Warengruppen, Lagerorten, etc. ermöglicht es Ihnen, Ihre Inventur in mehreren Abschnitten durchzuführen. Bemerkung Zwischen
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:
Delegatesund Ereignisse
Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses
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
Programmieren I. Kapitel 15. Ein und Ausgabe
Programmieren I Kapitel 15. Ein und Ausgabe Kapitel 15: Ein und Ausgabe Ziel: einen kleinen Einblick in die vielfältigen IO Klassen geben Grober Überblick Klasse File zur Verwaltung von Dateien Random
Tutorium Rechnerorganisation
Woche 2 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu
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
ecaros2 - Accountmanager
ecaros2 - Accountmanager procar informatik AG 1 Stand: FS 09/2012 Inhaltsverzeichnis 1 Aufruf des ecaros2-accountmanager...3 2 Bedienung Accountmanager...4 procar informatik AG 2 Stand: FS 09/2012 1 Aufruf
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
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
7DVWH.HOOQHU. Kassensystem SANYO (X&D6RIWKapitel 42
7DVWH.HOOQHU Sie befinden sich im Dialog 5DXP%LOG Sie Tippen auf die Taste.HOOQHU Sie gelangen danach in den Dialog.HOOQHU/RJLQ. Alle Handlungen, die YRQ,KQHQ durchgeführt werden können sind schwarz dargestellt.
Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.
Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen
Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.
Übersicht Struts Forms Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen. Allgemeines Autor: Sascha Wolski http://www.laliluna.de/tutorials.html
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
Kurzanleitung. Toolbox. T_xls_Import
Kurzanleitung Toolbox T_xls_Import März 2007 UP GmbH Anleitung_T_xls_Import_1-0-5.doc Seite 1 Toolbox T_xls_Import Inhaltsverzeichnis Einleitung...2 Software Installation...2 Software Starten...3 Das Excel-Format...4
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
Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager
Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager Dateiname: ecdl2_03_05_documentation Speicherdatum: 22.11.2004 ECDL 2003 Modul 2 Computermanagement und Dateiverwaltung
Grundlagen verteilter Systeme
Universität Augsburg Insitut für Informatik Prof. Dr. Bernhard Bauer Wolf Fischer Christian Saad Wintersemester 08/09 Übungsblatt 3 12.11.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1: a)
affilinet_ Flash-Spezifikationen
affilinet_ Flash-Spezifikationen Inhaltsverzeichnis Allgemeines...2 Klickzählung...2 Lead/Sale Programme... 2 PPC und Kombi Programme...3 Übergabe von Formulardaten...4 clicktag Variante Sale/Lead Programm...4
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
Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.
040304 Übung 9a Analysis, Abschnitt 4, Folie 8 Die Wahrscheinlichkeit, dass bei n - maliger Durchführung eines Zufallexperiments ein Ereignis A ( mit Wahrscheinlichkeit p p ( A ) ) für eine beliebige Anzahl
Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler
Downloadfehler in DEHSt-VPSMail Workaround zum Umgang mit einem Downloadfehler Downloadfehler bremen online services GmbH & Co. KG Seite 2 Inhaltsverzeichnis Vorwort...3 1 Fehlermeldung...4 2 Fehlerbeseitigung...5
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
Warenwirtschaft Verkauf Einkauf Projektverwaltung Artikelverwaltung Kundenspezifische Artikel Verwaltung der Serien- u. Chargennummern Lagerverwaltung
Warenwirtschaft Verkauf Einkauf Projektverwaltung Artikelverwaltung Kundenspezifische Artikel Verwaltung der Serien- u. Chargennummern Lagerverwaltung Wenn Sie Fragen haben dann rufen Sie uns an, wir helfen
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
CMS.R. Bedienungsanleitung. Modul Cron. Copyright 10.09.2009. www.sruttloff.de CMS.R. - 1 - Revision 1
CMS.R. Bedienungsanleitung Modul Cron Revision 1 Copyright 10.09.2009 www.sruttloff.de CMS.R. - 1 - WOZU CRON...3 VERWENDUNG...3 EINSTELLUNGEN...5 TASK ERSTELLEN / BEARBEITEN...6 RECHTE...7 EREIGNISSE...7
1. Aktionen-Palette durch "Fenster /Aktionen ALT+F9" öffnen. 2. Anlegen eines neuen Set über "Neues Set..." (über das kleine Dreieck zu erreichen)
Tipp: Aktionen (c) 2005 Thomas Stölting, Stand: 25.4. 2005 In Photoshop werden häufig immer wieder die gleichen Befehlssequenzen benötigt. Um sie nicht jedesmal manuell neu eingeben zu müssen, können diese
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
Antolin-Titel jetzt automatisch in WinBIAP kennzeichnen
& Antolin-Titel jetzt automatisch in WinBIAP kennzeichnen Immer mehr Schulen setzen das erfolgreiche Leseförderungsprojekt "Antolin" ein - und die Bibliotheken verzeichnen große Nachfrage nach den Kinderbüchern,
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/
Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007
Fachhochschule Bonn-Rhein-Sieg University of Applied Sciences Fachbereich Informatik Prof. Dr. Peter Becker Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007
Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe
Aufgabenstellung Für eine Hausverwaltung sollen für maximal 500 Wohnungen Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Art Baujahr Wohnung Whnginfo Nebenkosten
Java: Vererbung. Teil 3: super() www.informatikzentrale.de
Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und
ec@ros2-installer ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg 7 64331 Weiterstadt
ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Inhaltsverzeichnis 1 Download des ecaros2-installer...3 2 Aufruf des ecaros2-installer...3 2.1 Konsolen-Fenster (Windows)...3 2.2 Konsolen-Fenster
Installation OMNIKEY 3121 USB
Installation OMNIKEY 3121 USB Vorbereitungen Installation PC/SC Treiber CT-API Treiber Einstellungen in Starke Praxis Testen des Kartenlesegeräts Vorbereitungen Bevor Sie Änderungen am System vornehmen,
Linux Prinzipien und Programmierung
Linux Prinzipien und Programmierung Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2014 1 / 25 2 / 25 Pipes Die Bash kennt drei Standard-Dateideskriptoren: Standard In (stdin) Standard-Eingabe,
Handbuch zum Statistiktool Pentaho Stand: Dezember 2013
Handbuch zum Statistiktool Pentaho Stand: Dezember 2013 Sie erreichen das Tool über folgenden Link http://reports.onleihe.de/pentaho/login Anmeldung Startbildschirm Oben: Navigation Linke Spalte: Ordner
Einführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger [email protected] WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113
Vorabversion. Schulung am 06.08.13. www.winterhoff.de. Homepage Administration und Pflege
Vorabversion Schulung am 06.08.13 www.winterhoff.de Homepage Administration und Pflege 1. Anmeldung auf der Homepage Die Anmeldung auf der Homepage erfolgt über den nachfolgenden Link durch Eingabe des
1. So beginnen Sie eine Kalkulation
KASSE Eine iphone Apps von a-mass Dieses kleine Programm kann zur Buchführung, als Haushalts- oder Registrierkasse verwendet werden Es können laufende Kosten genauso wie jegliche Ausgaben oder Einnahmen
Einführung in die C-Programmierung
Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).
Softwarelösungen: Versuch 4
Softwarelösungen: Versuch 4 Nichtstun in Schleife wird ersetzt durch zeitweilige Zurücknahme der Anforderung, um es anderen Prozessen zu erlauben, die Ressource zu belegen: /* Prozess 0 */ wiederhole flag[0]
Algorithmische Mathematik
Algorithmische Mathematik Wintersemester 2013 Prof. Dr. Marc Alexander Schweitzer und Dr. Einar Smith Patrick Diehl und Daniel Wissel Übungsblatt 6. Abgabe am 02.12.2013. Aufgabe 1. (Netzwerke und Definitionen)
Dokumentation IBIS Monitor
Dokumentation IBIS Monitor Seite 1 von 16 11.01.06 Inhaltsverzeichnis 1. Allgemein 2. Installation und Programm starten 3. Programmkonfiguration 4. Aufzeichnung 4.1 Aufzeichnung mitschneiden 4.1.1 Inhalt
SIMP 1.01 Protokollspezifikation (Mindestanforderung)
SIMP 1.01 Protokollspezifikation (Mindestanforderung) Autor: Harald Pittesser, Dokumentversion: 0.5 beta Eigenschaften SIMP (Simple Instant Message Protocol) ist ein Instant Message Protokol welches folgende
NCDiff Testmanagement leicht gemacht
Testmanagement leicht gemacht Nagler & Company Thomas Gebhard & Anton Garra Complexity Die stetige Anpassung an neue Anforderungen der IT und das Bestreben Marktgegebenheiten zu folgen oder voraus zu sein,
17.1.2014 Einführung in die Programmierung Laborübung bei Korcan Y. Kirkici. 12.Übung 13.1. bis 17.1.2014
17.1.2014 Einführung in die Programmierung Laborübung bei Korcan Y. Kirkici 12.Übung 13.1. bis 17.1.2014 1 BEFRAGUNG http://1.bp.blogspot.com/- waaowrew9gc/tuhgqro4u_i/aaaaaaaaaey/3xhl 4Va2SOQ/s1600/crying%2Bmeme.png
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
