INE1 Ein-/Ausgabe, Dateien (Files) Einführung Datenstruktur und Operationen Textdateien Binärdateien Standard Streams

Größe: px
Ab Seite anzeigen:

Download "INE1 Ein-/Ausgabe, Dateien (Files) Einführung Datenstruktur und Operationen Textdateien Binärdateien Standard Streams"

Transkript

1 INE1 Ein-/Ausgabe, Dateien (Files) Einführung Datenstruktur und Operationen Textdateien Binärdateien Standard Streams

2 Einführung 2 von 42

3 Einführung Wie kann ein Programm mit seiner Umgebung Information austauschen? Prog.-Aufruf-Argumente (Kommandozeile) Strings (argv[ ])! Input-Kanäle (Datenströme, Streams) Tastatur, Dateien Programm Return-Wert von main (int) Output-Kanäle (Datenströme, Streams) Bildschirm, Dateien geordnete geordnete Folge Folge von von Bytes Bytes Datei, Verzeichnis (File) Datenstrom (Stream) hello how.. Files Files werden werden oft oft sequentiell sequentiell verarbeitet verarbeitet ein ein Byte Byte nach nach dem dem anderen anderen lesen/schrieben lesen/schrieben und und dann dann den den "Arbeitskopf" "Arbeitskopf" zum zum nächsten nächsten Byte/Record Byte/Record automatisch automatisch verschieben verschieben 3 von 42

4 Einführung Dateien werden physikalisch auf der Speicherplatte gespeichert (Blöcke von z.b Bytes in Sektoren auf den Spuren, verteilt über die ganze Speicherplatte) Betriebssystem (z.b. Windows, OSX) verbirgt diese Komplexität: Die Dateien werden in einer logischen hierarchischen Verzeichnisstruktur angeordnet Wir können eine Datei mit dem Datei-Pfadnamen ansprechen und BS sucht die Dateiteile auf der Disk. Es stehen Systemfunktionen für die grundlegenden Operationen (Öffnen, Lesen, Schreiben, Positionieren, Zumachen) zur Verfügung. Programmsicht: Sicht Programm-Sicht Anwendungen/Shells/UNIX - Werkzeuge Prozessverwaltung (Scheduler, Memory Management, IPC) Bibliotheken Schnittstelle für Systemaufrufe Dateisystem Treiber Hardwaresteuerung (Behandlung der Interrupts und Kommunikation mit der Hardware) Hardware z.b. z.b. stdio-library stdio-library in in C C Dateizugriffsfunktionen Dateisystem A Dateisystem B 4 von 42

5 Dateitypen In C werden die Dateien als einfacher Strom von Bytes (Char-Stream) aufgefasst. Die Organisation der Datei in Records und die Interpretation des Dateiinhaltes ist die Sache des Programmes. Grundsätzlich wird im Programm unterschieden zwischen Textdateien Die kein festes Binärformat haben, sondern aus menschenlesbaren Zeichensequenzen (Textzeilen unterschiedlicher Länge (mit Zeilenende markiert) ) aufgebaut sind. Binärdateien solche, die ein festes Datenformat besitzen und meist ein Speicherabbild eines Arrays oder einer struct darstellen (d.h. aus gleichen sog "Records" bestehen) 5 von 42

6 Dateitypen Textdateien enthalten ASCII-Zeichen und können auf dem Bildschirm oder Drucker direkt ausgegeben werden. Der Text ist normalerweise in Zeilen gegliedert. Ein Zeilenende wird mit EOLN ('\n') markiert. Unter Linux werden die Zeilen im Textfile mit dem <LF>-Zeichen abgeschlossen. Unter DOS/Windows wird das Zeilenende im Textfile mit Bytes zwei Zeichen markiert <CR> und <LF>. Bytes mit mit ASCII-Code ASCII-Code der der Ziffern; Ziffern; 10=LF 10=LF Unter Apple/Macintosh OS werden die Zeilenenden mit <CR> markiert abgespeichert in einer Texdatei: Binärdateien enthalten Datenstrukturen und Variablen in der Maschinendarstellung und können nur von Programmen, welche die File-Struktur und Darstellung der dort gespeicherten Variablen verstehen, gelesen werden abgespeichert in einer Binärdatei:.... Record Record mit mit nur nur 4 4 Bytes, Bytes, die die eine eine Integer- Integer- Zahl Zahl enthalten enthalten effizienter effizienter 6 von 42

7 FILE Datenstruktur und Operationen 7 von 42

8 Dateien: FILE - Datenstruktur Für die Arbeit mit Dateien wird ein Zeiger auf die FILE-Datenstruktur benötigt: Diese ist in stdio.h wie folgt deklariert: FILE FILE *file *file typedef struct{ short level; unsigned flags; char fd; unsigned char hold; short bsize; unsigned char *buffer, *curp; unsigned istemp; short token; FILE; File- Pointer (stream) Struktur vom Typ FILE Dateideskriptor Pointer auf Dateipuffer Akt. Dateipositionszeiger Anzahl Zeichen im Puffer Flags... Programmvariable, die in Programmvariable, die in fopen initialisiert und fopen initialisiert und anschliessen in allen Fileanschliessen in allen File- Funktionen verwendet wird Funktionen verwendet wird Dateipuffer Datei Alle File-Operationen verwenden den FILE Zeiger 8 von 42

9 Dateien: Grundoperationen Wichtigste File-Operationen Öffnen einer Datei fopen Ein-/Ausgabe fprintf fscanf formatiert Pufferinhalt schreiben putc, fputc getc, fgetc stringweise zeichenweise fflush fputs fgets fwrite fread binär fseek ftell rewind ferror feof clearerr Positionieren Fehlerbehandlung Schließen einer Datei Löschen einer Datei fclose remove Dateioperationen Weitere File-Operationen: copy rename remove 9 von 42

10 Datei öffnen FILE *fopen (const char *filename, const char *mode) Filename steht für den Namen inkl. Path lokales (zum Ausführungspfade) Verzeichnis: z.b. "output_file.dat" Absoluter Pfad: "c:\\temp\\out.txt" - um Verzeichnisse in Windows abzutrennen, "\\" in Stringkonstante Die Funktion fopen Pointer zum File zurück Im Fehlerfall gibt NULL zurück, wenn die Datei nicht geöffnet werden konnte Ändern bedeutet, dass die gleiche Datei gelesen und geschrieben werden darf 10 von 42

11 Modes für fopen mode für den Dateityp und die Zugriffsart "r" Textdatei wird zum Lesen geöffnet. "w" Textdatei wird zum Schreiben geöffnet. "a" Textdatei wird zum Anhängen geöffnet (Wenn Datei vorhanden, dann bewirkt eine Schreiboperation das Anhängen des Textes am Dateiende). "rb" Binärdatei wird zum Lesen geöffnet. "wb" Binärdatei wird zum Schreiben geöffnet. Siehe Anhang für weitere Modes 11 von 42

12 Binärdateien Die fopen-anweisung unterscheidet durch die Angabe des "b"-parameter zwischen beiden Dateitypen: "b"-parameter: Die Datei wird als Binärdatei interpretiert. Die Zeichen (Bytes) werden ohne jeglicher Interpretierung und Konversionen gelesen und geschrieben. kein "b"-parameter: Die Datei wird als Textdatei interpretiert und es finden evtl. Konversionen statt: Unter DOS/Windows werden bei der Ausgabe von '\n' jeweils 2 Zeichen (<CR> und <LF>) in die Datei geschrieben. Unter DOS/Windows wird beim Lesen einer Zeichenkombination (<CR><LF>) das <CR>-Zeichen entfernt. Unter Unix hat der Parameter "b" keine Auswirkung, da die Zeilenenden dort nur mit dem <LF>-Zeichen ('\n') abgeschlossen werden. Regel: wenn man mit Binärdateien arbeitet, so müssen diese unter DOS/Windows immer mit dem "b"-parameter geöffnet werden! 12 von 42

13 In Datei schreiben int fprintf (FILE *stream, const char *format,...) fprintf wandelt Ausgaben um und schreibt sie in stream unter Kontrolle von format Der Resultatwert ist die Anzahl der geschriebenen Zeichen; er ist negativ, wenn ein Fehler passiert ist 13 von 42

14 String I/O Operationen Es gibt zahlreiche weitere Funktionen für die Ein- und Ausgabe von Strings Schreibe ein einzelnes Zeichen int fputc(const char c, FILE* stream); Lese ein einzelnes Zeichen (int kann char zugewiesen werden) int fgetc(file* stream); Schreibe einen String in das File int fputs ( const char * str, FILE * stream ); Leseaus einer Datei in einen String-Buffer, maximal num-1 Zeichen oder bis zum nächsten Zeilenwechsel Achtung! Das EOLN-Char ('\n') wird auch in den String eingelesen! char * fgets ( char * str, int num, FILE *stream ); 14 von 42

15 Aus Text Datei formatiert lesen int fscanf (FILE *stream, const char *format,...) fscanf liest von stream unter Kontrolle von format Nachfolgende Argumente müssen Zeiger sein fscanf liefert EOF, wenn vor der ersten Umwandlung das Dateiende erreicht wird oder ein Fehler passiert Andernfalls liefert die Funktion die Anzahl der umgewandelten und abgelegten Eingaben Bemerkung: die fscanf-funktion sollte besser nicht für die direkte Bearbeitung der Textdateien verwendet werden! (Probleme mit EOLN und "white spaces"). Lösung: eine Zeile mit fgets einlesen (bis Zeilenumbruch '\n') und anschliessend den eingelesenen String mit strtoc in die einzelnen Komponenten zerlegen (parsing) 15 von 42

16 String Tokenizer char *strtok(string, "<delimitors>"); in <string.h> definiert Lesen der ganzen Zeile als String Zum Zerlegen der Strings kann der String-Tokenizer strtok aus der Bibliothek string.h verwendet werden Auch mehrere Deliminatoren erlaubt char s[256]; strcpy(s, "one,two,three"); char* token = strtok(s, ","); while (token) { printf("token: %s\n", token); token = strtok(null, ","); 16 von 42

17 Positionierung innerhalb Datei int fseek (FILE *stream, long int offset,int origin) Wenn eine Datei zum Lesen und Schreiben geöffnet wird, benötigt man eine Möglichkeit, die aktuelle Position in der Datei zu setzen 17 von 42

18 Datei schliessen int fclose(file *stream) fclose schreibt noch nicht geschriebene Daten für stream, wirft noch nicht gelesene, gepufferte Eingaben weg, gibt automatisch angelegte Puffer frei und schliesst den Datenstrom Die Funktion liefert EOF bei Fehlern und sonst 0 Eine geöffnete Datei muss nach dem Gebrauch wieder geschlossen werden Sehr wichtig beim schreibenden Zugriff, da ansonsten noch Daten im Schreibpuffer stecken bleiben könnten. 18 von 42

19 Gepufferte Daten schreiben int fflush(file *stream) fflush schreibt noch nicht geschriebene Daten für stream, wirft noch nicht gelesene, gepufferte Eingaben weg Die Funktion liefert Fehlercode bei Fehlern und sonst 0 19 von 42

20 Zugriffsmethoden Zwei Zugriffsmethoden auf File sequentieller Zugriff: sequential access Textdateien + Binärdateien current position Datei, Verzeichnis (File) Datenstrom (Stream) hello how.. rewind direkter Zugriff random access (direct access) Binärdateien read or write (ab momentaner Position) dann Zeiger verstellen aufs nächste Record read or write gleich lange logische Records zuerst Positionierung (Berechnung der Startposition) mit seek (Record-Nr) 20 von 42

21 Textdateien 21 von 42

22 Beispiel: Aus Text-Datei lesen #include <stdio.h> int main (void) { FILE *datei; int zahl; datei = fopen("testdatei.txt", "r"); if (datei!= NULL) { fscanf(datei, "%d", &zahl); printf("%d\n", zahl); fclose(datei); return 0; 22 von 42

23 Beispiel: In Text-Datei schreiben #include <stdio.h> int main (void) { FILE *datei; datei = fopen("testdatei.txt", "w"); if (datei == NULL) { printf("fehler beim Oeffnen der Datei."); return 1; fprintf(datei, "Hallo, Welt\n"); fclose(datei); return 0; 23 von 42

24 Beispiel: In Text-Datei schreiben /* Dieses Program schreibt 10 Textzeilen mit Zahlen in die Datei out.txt*/ #include <stdio.h> #define MAX 10 int main(void) { FILE *fout; int x; fout = fopen("out.txt","w"); for(x=1; x<=max; x++){ fprintf(fout,"%d\n",x); fclose(fout); fprint fprint wandelt wandelt eine eine int-zahl int-zahl x x in in einen einen String, String, der der als als Zeichenkette Zeichenkette in in die die Textdatei Textdatei geschrieben geschrieben wird. wird. Die Die Textzeile Textzeile wird wird mit mit '\n' '\n' abgeschlossen abgeschlossen fprintf-anweisung funktioniert gleich wie printf ; es enthält aber zusätzlich die File- Zeigervariable als ersten Parameter. Die fclose-anweisung macht die Datei wieder zu (zuerst alle Buffers in die Datei schreiben). 24 von 42

25 Beispiel: Daten in Text Datei speichern int speichern (struct artikel liste[], int anzahl) { int i; FILE *fp = fopen(datei, "w"); if (fp == NULL) { return -1; for (i=0; i<anzahl; i++) { fprintf(fp,"%d,%s,%d,%d\n", liste[i].nr, liste[i].bez, liste[i].preis,liste[i].anz); fclose(fp); return 0; 25 von 42

26 Beispiel: Text Kopierprogramm #include <stdio.h> #include <stdlib.h> int main(void){ char c; FILE *fin;// zwei File-Vars. (für In- und Out-File FILE *fout; fin=fopen("test.txt", "r"); fout=fopen("out.txt", "w"); if(fin == NULL) { printf("error in-file\n"); exit(4); Aufrufparameter. Aufrufparameter. Definieren Definieren hier, hier, ob ob die die Datei Datei nur nur zum zum Lesen Lesen (r) (r) oder oder zum zum Schreiben Schreiben (w) (w) geöffnet geöffnet wird wird // Datei öffnen und die Referenzen // auf die File-Var.-Strukturen initialisieren Zeichenweise Zeichenweise in in der der Schleife Schleife kopieren: kopieren: Ein Ein Zeichen Zeichen mit mit fgetc fgetc lesen lesen und und mit mit fputc fputc schreiben schreiben sequentieller sequentieller Dateizugriff: Dateizugriff: nach nach jeder jeder fgetc-, fgetc-, fpuc-op. fpuc-op. Verschiebt Verschiebt sich sich der der Bearbeitungszeiger Bearbeitungszeiger while ((c=fgetc(fin))!=eof){ fputc(c, fout); fclose (fin); fclose(fout); Ein Zeichen wird mit getc() gelesen und in die Var. c Ein Zeichen wird mit getc() gelesen und in die Var. c gespeichert. gespeichert. Anschliessend wird c mit der Konstante des EOF-Zeichen Anschliessend wird c mit der Konstante des EOF-Zeichen verglichen (EOF markiert Dateiende und ist als Konstante in verglichen (EOF markiert Dateiende und ist als Konstante in stdlib.h definiert). stdlib.h definiert). 26 von 42

27 Beispiel: Text zeilenweise lesen und ausgeben #include <stdio.h> int main(void) { FILE *f; char zeile[1000]; // Zeilen-Buffer char s[200]; // Dateiname /* Dateiname einlesen und die Datei aufmachen */ printf("dateiname =? "); scanf("%s",s); f=fopen(s,"r"); printf("\n\ninhalt der Datei %s : \n\n",s); /* zeilenweise lesen und ausgeben, max. Zeilenlänge = 998 char */ while (fgets(zeile,1000,f)!=null) { // File-Zeile lesen printf("%s",zeile); // zum Bildschirm ausgeben fclose(f); 27 von 42

28 Beispiel: Daten aus Text Datei laden int laden (struct artikel liste[]) { int i = 0, count; FILE *fp = fopen(datei, "r"); if (fp == NULL) { return -1; while (fscanf(fp,"%d,%s,%d,%d", &liste[i].nr, liste[i].bez,&liste[i].preis,&liste[i].anz)!= 0) { i += 1; fclose(fp); return i; 28 von 42

29 Binärdateien 29 von 42

30 Binärdateien Sind ähnlich einem Array mit struct-variablen, gespeichert auf dem Disk Möglichkeit des "random-access"-zugriffes -> seek-funktion Schnellerer, effizienter Zugriff, da alle Konversionen entfallen Ein Mensch kann sie nicht direkt lesen (interne Rechnerdarstellung) man kann auch unterschiedlich grosse Records schreiben und lesen (z.b. ein int, double und struct nacheinander hineinschreiben Lesen: in der gleichen Reihenfolge ein int, doube und struct Die Position des Dateizeigers wird in Bytes (char) angegeben. seek()-fkt. Beim Lesen und Schreiben mit fread und fwrite muss die Grösse und die Anzahl des zu schreibenden/lesenden Records angegeben werden (es können auch mehr als ein Record aufs mal gelesen/geschrieben werden) nach jedem Dateizugriff wird der Dateizeiger um die(anzahl * sizeof(record) ) Bytes versetzt. (= Anzahl Records * Record-Grösse) 30 von 42

31 Binärdateien fread Syntax int fread(void *ptr, int size, int n, FILE *f); Description Reads data from a stream. size = size of struct fread reads n items of data each of length size bytes from the given input stream into a data block pointed to by ptr. The total number of bytes read (n * size). Return Value: On success fread returns the number of items (not bytes) actually read. On end-of-file or error returns 0. while (fread ( )!=0) { file lesen und bearbeiten 31 von 42

32 Binärdateien fwrite Syntax int fwrite(const void *ptr, int size, int n, FILE *f); Description Writes to a stream. fwrite appends n items of data each of length size bytes to the given output file. The data written begins at ptr. The total number of bytes written is (n * size). "ptr" in the declarations is a pointer to any object. Return Value On successful completion fwrite returns the number of items (not bytes) actually written. On error it returns a short count. 32 von 42

33 Binärdateien: Funktion fseek Syntax int fseek(file *f, long offset, int whence); Description Repositions a file pointer on a stream. seek sets the file pointer associated with stream to a new position that is offset bytes from the file location given by whence. For text mode streams offset should be 0 or a value returned by ftell. "whence" must be one of the values 0, 1, or 2 which represent three symbolic constants (defined in stdio.h) as follows: Constant whence File location SEEK_SET 0 File beginning ( moves the pointer offset bytes down from the beginning of the file (from byte 0 in the file)). SEEK_CUR 1 Current file pointer position (moves the pointer offset bytes down from the current pointer position) SEEK_END 2 End-of-file (moves the pointer from the end of the file (so you must use negative offsets with this option!! ). Return Value fseek returns 0 if the pointer is successfully moved and nonzero on failure. After fseek the next operation on an update file can be either input or output. 33 von 42

34 ... Binärdateien: Programmbeispiel #include <stdio.h> Die typedef struct { /* Die Datei beliebige Datei wird wird solche solche struct Recordstruktur struct als als Records Records enthalten */ enthalten int x; double y,z; Data ; x, y, z x, y, z x, y, z x, y, z x, y, z. void main(void) { Schreib- Lese-Zeiger (durch Read/Write oder seek() positioniert int i,j; FILE *f; Data d; /*..writes and then reads 10 arbitrary records from the file "junk". */ /*...create the file of 10 records */ f=fopen("junk","wb"); for (i=1;i<=10; i++) { d.x=i; d.y=0.1*i; d.z=0.01*i; /* record füllen */ fwrite(&d,sizeof(data),1,f); /* record in die Datei schreiben */ fclose(f); Param: Pointer auf Record, Länge des Records, Anzahl Records, File-Var Param: Pointer auf Record, Länge des Records, Anzahl Records, File-Var /*...Records von der Datei "junk" zurücklesen und ausgeben */ f=fopen("junk","rb"); for (i=1;i<=10; i++) { fread(&d,sizeof(data),1,f); printf("recordinhalt = %d %f %f\n",d.x, d.y, d.z); fclose(f); Param: Pointer auf Record, Länge des Records, Anzahl Records, File-Var Param: Pointer auf Record, Länge des Records, Anzahl Records, File-Var 34 von 42

35 Programmbeispiel (Fortsetzung) /* Records von der Datei "junk" in umgekehrter Reihenfolge lesen und ausgeben */ printf("\n 2.: read the 10 records in reverse order \n\n"); /*...use fseek to read the 10 records in reverse order */ f=fopen("junk","rb"); for (i=9; i>=0; i--) { fseek(f,sizeof(data)*i,seek_set); fread(&r,sizeof(data),1,f); printf("recordinhalt = %d %f %f\n",d.x, d.y, d.z); fclose(f); printf("\n 3.: read every other record \n\n"); /*...use fseek to read every other record */ f=fopen("junk","rb"); fseek(f,0,seek_set); for (i=0;i<5; i++) { fread(&d,sizeof(data),1,f); printf("recordinhalt = %d %f %f\n",d.x, d.y, d.z); fseek(f,sizeof(data),seek_cur); fclose(f); Posit. Posit. auf auf i-ten i-ten Record Record vom vom Anfang Anfang der der Datei, Datei, (1.Rec: (1.Rec: i=0) i=0) Ein Record in die Var. d einlesen Ein Record in die Var. d einlesen Positionieren Positionieren auf auf Anfang Anfang der der Datei Datei (index=0) (index=0) Positionieren Positionieren um um ein ein Record Record weiter weiter (von (von momentanen momentanen Position). Position). Zusätzlich Zusätzlich wurde wurde die die Position Position schon schon beim beim Lesen Lesen um um 1 1 Rec. Rec. verändert verändert 35 von 42

36 Programmbeispiel (Fortsetzung) /*..use fseek to read 4th record, change it, and write it back */ printf("\n read 4th record, change it, and write it back\n"); f=fopen("junk","rb+"); Parameter Parameter "+" "+" erlaubt erlaubt den den Lese- Leseund und Schreibzugriff: Schreibzugriff: Teile Teile der der Datei Datei können können somit somit modifiziert modifiziert werden werden fseek(f,sizeof(data)*3,seek_set); /* 4.Rec. von Anf.; von 0 aus numeriert*/ fread(&r,sizeof(data),1,f); d.x=100; /* eingelesene struct modifizieren */ fseek(f,sizeof(data)*3,seek_set); /* Repositionieren auf 4.Rec. von Anf. */ fwrite(&r,sizeof(data),1,f); /* Zurückschreiben */ fclose(f); /*...read sequentiell and print all 10 records to insure 4th record was changed */ printf("\nrecord-inhalte nach der Änderung des 4.Records\n"); f=fopen("junk","rb"); while (fread(&r,sizeof(data),1,f)!=0){ printf("recordinhalt = %d %f %f\n",d.x, d.y, d.z); fclose(f); detektiert, detektiert, wenn wenn das das Ende Ende der der Datei Datei erreicht erreicht wird wird nützlich, nützlich, wenn wenn man man die die ganze ganze Datei Datei einlesen einlesen möchte möchte 36 von 42

37 Standard-Streams 37 von 42

38 Standard-Streams Die drei Standard-Files stdin, stdout und stderr stehen automatisch zur Verfügung Das sind die üblichen Ein-/Ausgabekanäle einer Konsolenanwendung: Tastatur für die Eingabe und der Bildschirm bzw. das Konsolenfenster für die Ausgabe Anwendungen mit fflush(stdin) kann die Eingabe "geleert" werden (manchmal notwendig, wenn noch Zeichen im Tastaturbuffer) Der Fehlerkanal stderr dient zur Ausgabe von Fehlermeldungen 38 von 42

39 Standard-Streams Die Ausgabe der Fehlermeldung aus einem der Beispielprogramme lautete: printf("fehler beim Oeffnen der Datei."); Die Fehlermeldung sollte man also besser so ausgeben: fprintf(stderr, "Fehler beim Oeffnen der Datei."); 39 von 42

40 Standard-Streams Beim Aufruf einer Konsolenanwendung können diese Kanäle umgeleitet werden: programm < datei programm > datei programm 2> datei programm 2> NUL Standardeingabe stdin aus Datei statt von der Tastatur Standardausgabe stdout auf Dateiumleiten Nur Fehlermeldungen in Date umleiten Fehlermeldungen ignorieren (Windows) (/dev/null in Linux) 40 von 42

41 Noch Fragen? 41 von 42

42 Zugriffsmodes auf Textdateien 42 von 42

182. stdio. 183. stdio. Eingabe. Ausgabe. Typisch für Zeileneingabe und Analyse: #include <stdio.h>

182. stdio. 183. stdio. Eingabe. Ausgabe. Typisch für Zeileneingabe und Analyse: #include <stdio.h> 182. stdio Eingabe int getchar (), getc (FILE * fp), fgetc (FILE * fp); char * gets (char * buf), * fgets (char * buf, int len, FILE * fp); int scanf (const char * fmt,...); int fscanf (FILE * fp, const

Mehr

Modellierung und Programmierung

Modellierung und Programmierung Modellierung und Programmierung Dr. Martin Riplinger 9.1.2013 IAM Institut für Angewandte Mathematik Fortgeschrittene Ein- und Ausgabe Bisher: Ein- und Ausgabe nur über die Kommandozeile Erweiterung: Konzept

Mehr

Übersicht. Informatik 1 Teil 10 Dateien

Übersicht. Informatik 1 Teil 10 Dateien Übersicht 10.1 Permanente Datenspeicher 10.2 Festplatte (Bild) 10.3 Dateien 10.4 Dateien öffnen 10.5 Der Filepointer 10.6 Schreiben in Dateien - die Funktion fprintf( ) 10.7 Lesen aus Dateien die Funktion

Mehr

Inhalt Streams Eingabe / Ausgbe in C Dateizugriff in C Eingabe / Ausgabe in C++ Dateizugriff in C++ Error Handling

Inhalt Streams Eingabe / Ausgbe in C Dateizugriff in C Eingabe / Ausgabe in C++ Dateizugriff in C++ Error Handling Input / Output in C, C++ Inhalt Streams Eingabe / Ausgbe in C Dateizugriff in C Eingabe / Ausgabe in C++ Dateizugriff in C++ Error Handling Page 1 Ausgaben in C,C++ - generell Fuer C basierte Ausgaben:

Mehr

Zusammenfassung des Handzettels für Programmieren in C

Zusammenfassung des Handzettels für Programmieren in C Zusammenfassung des Handzettels für Programmieren in C In der handschriftlichen Kopie werden mehr Abkürzungen verwendet. Alles Grün markierte dient zum lernen und wird nicht auf den Handzettel übertragen.

Mehr

Dienstspezifikation nach RFC 2396 193

Dienstspezifikation nach RFC 2396 193 Dienstspezifikation nach RFC 2396 193 Für die Kombination aus Rechnernamen (oder alternativ einer IP-Adresse) und einer Portnummer gibt es mit RFC 2396 einen Standard: hostport host [ : port ] host hostname

Mehr

10 Lesen und Schreiben von Dateien

10 Lesen und Schreiben von Dateien 10 Lesen und Schreiben von Dateien 10 Lesen und Schreiben von Dateien 135 10.1 Mit load und save Binäre Dateien Mit save können Variableninhalte binär im Matlab-Format abgespeichert werden. Syntax: save

Mehr

FILE *fp; char fname[100];... fp = fopen (fname, rb ); if( fp == NULL ) { perror( fopen );... } // Fehlernachricht auf letzten Fehler, der aufkam

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

Mehr

Netzwerksicherheit Musterlösung Übungsblatt 4: Viren

Netzwerksicherheit Musterlösung Übungsblatt 4: Viren Institut für Informatik Alina Barendt und Philipp Hagemeister Netzwerksicherheit Musterlösung Übungsblatt 4: Viren 1 Vorbereitung msg db "Virus" mov ah, 40h mov bx, 1 mov cx, $5 mov dx, msg int 21h ; Write

Mehr

Linux/Unix Systemprogrammierung

Linux/Unix Systemprogrammierung Linux/Unix Systemprogrammierung Pablo Yánez Trujillo Poolmanager Team Universität Freiburg August 14, 2006 Pablo Yánez Trujillo Linux/Unix Systemprogrammierung Slide 1 of 48 Einführung Wer mehr über sein

Mehr

C allgemein. C wurde unter und für Unix entwickelt. Vorläufer sind BCPL und B.

C allgemein. C wurde unter und für Unix entwickelt. Vorläufer sind BCPL und B. C-Crash-Kurs Eine kurze, keinesfalls erschöpfende Einführung in die Sprache C für Studierende, die eine strukturierte imperative Programmiersprache beherrschen. Die Vorstellung erfolgt am Beispiel von

Mehr

2. Interaktive Web Seiten. action in Formularen. Formular. Superglobale Variablen $ POST, $ GET und $ REQUEST. GET und POST

2. Interaktive Web Seiten. action in Formularen. Formular. Superglobale Variablen $ POST, $ GET und $ REQUEST. GET und POST 2. Interaktive Web Seiten GET und POST Die Übertragungsmethoden GET und POST sind im http Protokoll definiert: POST: gibt an, dass sich weitere Daten im Körper der übertragenen Nachricht befinden: z.b.

Mehr

C Überlebenstraining

C Überlebenstraining C Überlebenstraining Dies ist nur ein Schnellkurs in C, der genug Einstiegswissen vermitteln soll, daß weiterführende Literatur schnell benutzt werden kann. Dies ist kein vollständiger Programmier oder

Mehr

Microcontroller / C-Programmierung Selbststudium Semesterwoche 1

Microcontroller / C-Programmierung Selbststudium Semesterwoche 1 Microcontroller / C-Programmierung Selbststudium Semesterwoche 1 1. Aufgabe 1-15 (Buch S. 26)*: Umrechnung Fahrenheit Celsius mit Funktion. #include float CelsiusToFahrenheit(float value); float

Mehr

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm Programmiersprachen Einführung in C Teil 2: Prof. Dr. int main (int argc, char *argv[]) int sum = 0; for (i = 0; i

Mehr

entweder: zeilenweise fgets() oder: zeichenweise fgetc()

entweder: zeilenweise fgets() oder: zeichenweise fgetc() PHP stellt viele Funktionen zur Verfügung, um mit Dateien effektiv zu arbeiten. Die grundsätzliche Vorgehensweise beim Auslesen einer Datei sieht wie folgt aus: 1. Öffnen der Datei fopen() 2. schrittweises

Mehr

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de Aufgaben: Ein Ausgabe Ein Rechner verwaltet nicht nur Daten, die während der Laufzeit des Programms erzeugt werden. Die meisten Programme greifen auf ältere Datenbestände zurück oder erzeugen für einen

Mehr

Dateiverarbeitung. 2006 Pearson Education, Inc. All rights reserved.

Dateiverarbeitung. 2006 Pearson Education, Inc. All rights reserved. 1 9 Dateiverarbeitung 2 9.1 Einführung 9.2 Die Datenhierarchie 9.3 Daten und Ströme 9.4 Erzeugung einer sequenziellen Datei 9.5 Daten von einer sequenziellen Datei lesen 9.6 Eine sequenzielle Datei aktualisieren

Mehr

Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller

Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller Datum, Zeit, 08:00 09:30 Uhr (90 min) Aufgabenblätter 14 Seiten (einschl. Deckblatt) erreichbare Punktzahl 54 zugelassene

Mehr

Einführung in die C-Programmierung

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

Mehr

MATLAB driver for Spectrum boards

MATLAB driver for Spectrum boards MATLAB driver for Spectrum boards User Manual deutsch/english SPECTRUM SYSTEMENTWICKLUNG MICROELECTRONIC GMBH AHRENSFELDER WEG 13-17 22927 GROSSHANSDORF GERMANY TEL.: +49 (0)4102-6956-0 FAX: +49 (0)4102-6956-66

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

Hello world. Sebastian Dyroff. 21. September 2009

Hello world. Sebastian Dyroff. 21. September 2009 Hello world Sebastian Dyroff 21. September 2009 1 / 35 Inhaltsverzeichnis Organisatorisches Hello World Typen und Operatoren Programmfluss Weitere Konstrukte Nützliche Tipps 2 / 35 Inhalte dieser Veranstaltung

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

Praktikum Betriebssysteme 1. Aufgabe (1)

Praktikum Betriebssysteme 1. Aufgabe (1) FG TECHNISCHE INFORMATIK U BS 041 01 TH 09 Praktikum Betriebssysteme 1. Aufgabe (1) Es wird ein unter LINUX lauffähiges C++-Programm ptab, mit dem Informationen über die Partitionierung von Festplatten

Mehr

Übersicht. Einführung in die Programmierung. Die Standardbibliothek. Ein- und Ausgabe. Ein- und Ausgabe. Dateioperationen.

Übersicht. Einführung in die Programmierung. Die Standardbibliothek. Ein- und Ausgabe. Ein- und Ausgabe. Dateioperationen. Übersicht Einführung in die Programmierung Bachelor of Science Prof. Dr. Rethmann Fachbereich Elektrotechnik und Informatik Hochschule Niederrhein Arrays Datentypen, Operatoren und Kontrollstrukturen Funktionen

Mehr

Linux Prinzipien und Programmierung

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,

Mehr

stattdessen: geräteunabhängiges, abstraktes Format für Speicherung und Transfer von Daten Datei

stattdessen: geräteunabhängiges, abstraktes Format für Speicherung und Transfer von Daten Datei Dateiverwaltung Dateiverwaltung 2002 Prof. Dr. Rainer Manthey Informatik II 1 Dateien weitere zentrale Aufgabe des Betriebssystems: "Verbergen" der Details der Struktur von und der Zugriffe auf Sekundärspeicher-Medien

Mehr

Softwareentwicklung in C Teil2. 28. April 2003

Softwareentwicklung in C Teil2. 28. April 2003 Softwareentwicklung in C Teil2 Markus Zuber Harald Glock 28. April 2003 Inhaltsverzeichnis 2 Inhaltsverzeichnis 1. Verfeinerung von Algorithmen und Datenstrukturen 5 1.1. Programmablaufplan (PAP).........................

Mehr

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel. Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)

Mehr

Programmieren in Python

Programmieren in Python % Vorlesung 4: Input/ Output und Filehandling % Matthias Bieg Programmieren in Python Interaktiver Modus Code wird Zeile für Zeile programmiert und direkt ausgeführt Vorteil: Das Verhalten von Codefragmenten

Mehr

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe Aufgabenstellung Für ein Baumkataster sollen für maximal 500 Bäume Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Nummer Bauminfo Baumart Hoehe Baum Umfang

Mehr

VORLESUNGSUNTERLAGEN ZU PROGRAMMIEREN 2

VORLESUNGSUNTERLAGEN ZU PROGRAMMIEREN 2 STUDIENGANG ANGEWANDTE INFORMATIK STUDIENGANG INFORMATIONS- UND KOMMUNIKATIONSTECHNIK VORLESUNGSUNTERLAGEN ZU PROGRAMMIEREN 2 Grundlagen der Programmierung und Einführung in die Sprache C Prof. Dr.-Ing.

Mehr

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

Grundlagen. Die Komponenten eines C Programms. Das erste Programm Grundlagen 1. Die Komponenten eines C Programms 2. Ein Programm erzeugen und übersetzen 3. Variablen Deklarieren und Werte zuweisen 4. Zahlen eingeben mit der Tastatur 5. Arithmetische Ausdrücke und Berechnungen

Mehr

Zugriff auf die Modul-EEPROMs

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

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

rechtsbündige Leerzeichen mit einlesen im Datastep

rechtsbündige Leerzeichen mit einlesen im Datastep News Artikel Foren Projekte Links Über Redscope Join List Random Previous Next Startseite Foren ETL & Base SAS rechtsbündige Leerzeichen mit einlesen im Datastep 1 June, 2010-19:00 marcosch Hallo, wahrscheinlich

Mehr

Sichere Programmierung in C 296

Sichere Programmierung in C 296 Sichere Programmierung in C 296 Systemnahe Software ist in vielen Fällen in Besitz von Privilegien und gleichzeitig im Kontakt mit potentiell gefährlichen Nutzern, denen diese Privilegien nicht zustehen.

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

Kurzeinführung in C. Johannes J. Schneider 27.10.2004

Kurzeinführung in C. Johannes J. Schneider 27.10.2004 Kurzeinführung in C Johannes J. Schneider 27.10.2004 1 Einleitung C ist eine in vielen Bereichen sehr häufig verwendete Programmiersprache, die von der Betriebssystemprogrammierung bis hin zur Programmierung

Mehr

Schleifenprogrammierung in C/C++, Fortran und Pascal

Schleifenprogrammierung in C/C++, Fortran und Pascal Schleifenprogrammierung in C/C++, Fortran und Pascal Stefan Ackermann Mathematisches Institut der Universität Leipzig 8. April 2009 1 Die kopfgesteuerte Schleife Bei der kopfgesteuerten Schleife steht

Mehr

Hochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe

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

Mehr

Interprozesskommunikation

Interprozesskommunikation Interprozesskommunikation Inhalt 1. Überblick... 2 2. Pipes... 5 3. Fifo...22 3.1. Übung IPC-2...39 Unix für Entwickler: Interprozesskommunikation Prof Dr. Alois Schütte 1/40 1. Überblick Hier werden die

Mehr

Einführung in die Programmierung Arrays, Zeiger, Strings. Arvid Terzibaschian

Einführung in die Programmierung Arrays, Zeiger, Strings. Arvid Terzibaschian Einführung in die Programmierung Arvid Terzibaschian 1 Arrays 2 Arrays: Motivation Gegeben: monatliche Durchschnittstemperaturen der letzten 5 Jahre Gesucht: Mittelwerte für Jahre, Monate, Jahreszeiten,

Mehr

Programmieren in C. Die C-Standardbibliothek. Prof. Dr. Nikolaus Wulff

Programmieren in C. Die C-Standardbibliothek. Prof. Dr. Nikolaus Wulff Programmieren in C Die C-Standardbibliothek Prof. Dr. Nikolaus Wulff Die C-Standard Bibliothek Mit dem C Compiler werden viel fertige Bibliotheksfunktionen ausgeliefert. Eine genaue Kenntnis dieser Funktionen

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

C++-Zusammenfassung. H. Schaudt. August 18, 2005

C++-Zusammenfassung. H. Schaudt. August 18, 2005 C++-Zusammenfassung H. Schaudt August 18, 2005 1 Datentypen 1.1 Grunddatentypen int (-32xxx bis +32xxx, implementerungs-abhängig) char -128 bis +128 float double bool (C++) int und char sind austauschbar:

Mehr

Shell-Programmierung

Shell-Programmierung Shell-Programmierung Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2009 Shell-Programmierung 1/34 2009-04-27 Inhalt Einleitung

Mehr

TIn 1: Feedback Laboratories. Lecture 4 Data transfer. Question: What is the IP? Institut für Embedded Systems. Institut für Embedded Systems

TIn 1: Feedback Laboratories. Lecture 4 Data transfer. Question: What is the IP? Institut für Embedded Systems. Institut für Embedded Systems Mitglied der Zürcher Fachhochschule TIn 1: Lecture 4 Data transfer Feedback Laboratories Question: What is the IP? Why do we NEED an IP? Lecture 3: Lernziele Moving data, the why s and wherefores Moving

Mehr

Inhalte. Einführung. Algorithmus, Programmiersprache, Compiler und Linker. Kontrollstrukturen. Präprozessoranweisungen. Libraries

Inhalte. Einführung. Algorithmus, Programmiersprache, Compiler und Linker. Kontrollstrukturen. Präprozessoranweisungen. Libraries INFIO.1 Informatik I Einführung Algorithmus, Programmiersprache, Compiler und Linker Datentypen Kontrollstrukturen Präprozessoranweisungen Libraries Funktionen und Klassen Inhalte INFIO.2 Auszug Daten

Mehr

Inhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler

Inhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler Inhaltsverzeichnis Grundbegriffe der C-Programmierung 1. Grundsätzliches... 2 1.1 Darstellung von Werten... 2 1.1.1 Dezimale Zahlendarstellung... 2 1.1.2 Binäre Zahlendarstellung... 3 1.1.3 Hexadezimale

Mehr

Prozedurale Datenbank- Anwendungsprogrammierung

Prozedurale Datenbank- Anwendungsprogrammierung Idee: Erweiterung von SQL um Komponenten von prozeduralen Sprachen (Sequenz, bedingte Ausführung, Schleife) Bezeichnung: Prozedurale SQL-Erweiterung. In Oracle: PL/SQL, in Microsoft SQL Server: T-SQL.

Mehr

11: Echtzeitbetriebssystem ucos-ii

11: Echtzeitbetriebssystem ucos-ii 11: Echtzeitbetriebssystem ucos-ii Sie lernen anhand aufeinander aufbauender Übungen, welche Möglichkeiten ein Echtzeitbetriebssystem wie das ucosii bietet und wie sich damit MC-Applikationen realisieren

Mehr

Übungen zur Vorlesung Computergrundlagen WS 2008/09 Fakultät Physik, Universität Stuttgart Jens Harting, Martin Hecht, Bibhu Biswal Blatt 14

Übungen zur Vorlesung Computergrundlagen WS 2008/09 Fakultät Physik, Universität Stuttgart Jens Harting, Martin Hecht, Bibhu Biswal Blatt 14 Übungen zur Vorlesung Computergrundlagen WS 2008/09 Fakultät Physik, Universität Stuttgart Jens Harting, Martin Hecht, Bibhu Biswal Blatt 14 Aufgabe 33: Felder Felder (oder auch Arrays ) werden dazu benutzt,

Mehr

Selbststudium OOP5 21.10.2011 Programmieren 1 - H1103 Felix Rohrer

Selbststudium OOP5 21.10.2011 Programmieren 1 - H1103 Felix Rohrer Kapitel 4.1 bis 4.3 1. zu bearbeitende Aufgaben: 4.1 4.1: done 2. Was verstehen Sie unter einem "Java-Package"? Erweiterungen verschiedener Klassen welche in Java benutzt werden können. 3. Sie möchten

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Dateien lesen und schreiben 2 Übersicht der heutigen Inhalte File Streams try-with-resources Properties csv-dateien 3 Klasse File Die Klasse java.io.file bietet Unterstützung im Umgang

Mehr

Sichere Programmierung in C

Sichere Programmierung in C Sichere Programmierung in C Systemnahe Software ist in vielen Fällen in Besitz von Privilegien und gleichzeitig im Kontakt mit potentiell gefährlichen Nutzern, denen diese Privilegien nicht zustehen. Daher

Mehr

Angewandte IT-Sicherheit

Angewandte IT-Sicherheit Angewandte IT-Sicherheit Johannes Stüttgen Lehrstuhl für praktische Informatik I 30.11.2010 Lehrstuhl für praktische Informatik I Angewandte IT-Sicherheit 1 / 28 Aufgabe 1 Betrachten sie folgendes Programm:

Mehr

Automatisierung ( Fernsteuerung ) von Excel unter Microsoft Windows Tilman Küpper (tilman.kuepper@hm.edu)

Automatisierung ( Fernsteuerung ) von Excel unter Microsoft Windows Tilman Küpper (tilman.kuepper@hm.edu) HMExcel Automatisierung ( Fernsteuerung ) von Excel unter Microsoft Windows Tilman Küpper (tilman.kuepper@hm.edu) Inhalt 1. Einleitung...1 2. Beispiele...2 2.1. Daten in ein Tabellenblatt schreiben...2

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

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff

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

Mehr

Die Programmiersprache C

Die Programmiersprache C Die Programmiersprache C höhere Programmiersprache (mit einigen Assembler-ähnlichen Konstrukten) gut verständliche Kommandos muss von Compiler in maschinenlesbaren Code (Binärdatei) übersetzt werden universell,

Mehr

Distributed Computing Group

Distributed Computing Group JAVA TUTORIAL Distributed Computing Group Vernetzte Systeme - SS 06 Übersicht Warum Java? Interoperabilität grosse und gut dokumentierte Library weit verbreitet Syntax sehr nahe an C Erfahrung: Java wird

Mehr

Lösung Übungszettel 6

Lösung Übungszettel 6 Lösungen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik SS 03 AG Betriebssysteme FB3 Kirsten Berkenkötter Lösung Übungszettel 6 1 Aufgabe 1: Parallel-Server 1.1 Client #include

Mehr

Modellierung und Programmierung

Modellierung und Programmierung Modellierung und Programmierung Dr. Martin Riplinger 19.12.2012 IAM Institut für Angewandte Mathematik Funktionszeiger: Vorüberlegungen Funktionsaufrufe sind bis jetzt im Code mit Name explizit angegeben

Mehr

Moderne C-Programmierung

Moderne C-Programmierung Xpert.press Moderne C-Programmierung Kompendium und Referenz Bearbeitet von Helmut Schellong 1. Auflage 2005. Buch. xii, 280 S. ISBN 978 3 540 23785 3 Format (B x L): 15,5 x 23,5 cm Weitere Fachgebiete

Mehr

Objektorientiertes Programmieren für Ingenieure

Objektorientiertes Programmieren für Ingenieure Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen

Mehr

Variablen - %Hashes Was ist ein Hash? 'Assoziative Arrays'

Variablen - %Hashes Was ist ein Hash? 'Assoziative Arrays' Was ist ein Hash? 'Assoziative Arrays' Hashes sind array-ähnliche Datenstrukturen, die aus Schlüssel-Wert Paaren bestehen. Artikel + Preis Apfel 0,45 Banane 0,75 Ananas 1,49 Birne 0,59 %Artikel = Apfel

Mehr

Die Sicherung d. Programms obliegt d. IDE; die Sicherung d. Ergebnisse obliegt d. Programm(iererIn).

Die Sicherung d. Programms obliegt d. IDE; die Sicherung d. Ergebnisse obliegt d. Programm(iererIn). Schließen einer Datei hebt die Kommunikation mit ihr auf und gibt die reservierten Ressourcen wieder frei. Programm - Ergebnis - und nun? Dateien (allgemein) Die Sicherung d. Programms obliegt d. IDE;

Mehr

Kurzeinführung in C++

Kurzeinführung in C++ Kurzeinführung in C++ Johannes J. Schneider 27.10.2004 1 Einleitung C++ ist eine heutzutage in vielen Bereichen sehr häufig verwendete Programmiersprache, die auf der Programmiersprache C aufsetzt, aber

Mehr

Fuse. Filesystem in Userspace PRÄSENTATION VON TIM WELGE

Fuse. Filesystem in Userspace PRÄSENTATION VON TIM WELGE Fuse Filesystem in Userspace PRÄSENTATION VON TIM WELGE 1 INHALTSVERZEICHNIS Einführung Was ist ein Dateisystem Was ist der Userspace FUSE Andere Schlüssel Funktionen Beispiele Wie funktioniert FUSE Schreiben

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

Buch-Add-Ons. Jürgen Bayer. Object Pascal-Tipps und Tricks. 1 Konvertieren und auf numerische Werte überprüfen 2

Buch-Add-Ons. Jürgen Bayer. Object Pascal-Tipps und Tricks. 1 Konvertieren und auf numerische Werte überprüfen 2 Buch-Add-Ons Jürgen Bayer Inhaltsverzeichnis Object Pascal-Tipps und Tricks 1 Konvertieren und auf numerische Werte überprüfen 2 1.1 Strings in Integerwerte konvertieren 2 1.2 Strings in Extended-Werte

Mehr

Aber genau deshalb möchte ich Ihre Aufmehrsamkeit darauf lenken und Sie dazu animieren, der Eventualität durch geeignete Gegenmaßnahmen zu begegnen.

Aber genau deshalb möchte ich Ihre Aufmehrsamkeit darauf lenken und Sie dazu animieren, der Eventualität durch geeignete Gegenmaßnahmen zu begegnen. NetWorker - Allgemein Tip 618, Seite 1/5 Das Desaster Recovery (mmrecov) ist evtl. nicht mehr möglich, wenn der Boostrap Save Set auf einem AFTD Volume auf einem (Data Domain) CIFS Share gespeichert ist!

Mehr

Informatik I. Informatik I. 6.1 Programme. 6.2 Programme schreiben. 6.3 Programme starten. 6.4 Programme entwickeln. 6.1 Programme.

Informatik I. Informatik I. 6.1 Programme. 6.2 Programme schreiben. 6.3 Programme starten. 6.4 Programme entwickeln. 6.1 Programme. Informatik I 05. November 2013 6. Python-, kommentieren, starten und entwickeln Informatik I 6. Python-, kommentieren, starten und entwickeln Bernhard Nebel Albert-Ludwigs-Universität Freiburg 05. November

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

Informationsverarbeitung

Informationsverarbeitung 1/19 Informationsverarbeitung Einführung in das Programmieren mit C++ Markus Uhlmann Institut für Hydromechanik Karlsruher Institut für Technologie www.ifh.kit.edu WS 2011/2012 Vorlesung 13 (Download Quelldateien)

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

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik Informatik I WS 2012/13 Tutorium zur Vorlesung 1. Alexander Zietlow zietlow@informatik.uni-tuebingen.de Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.

Mehr

Übersicht. Einführung in die Programmierung. main. main. main. main. Speicherverwaltung. Definition nach ANSI C:

Übersicht. Einführung in die Programmierung. main. main. main. main. Speicherverwaltung. Definition nach ANSI C: Übersicht Einführung in die Programmierung Bachelor of Science die -Funktion Prof. Dr. Rethmann Fachbereich Elektrotechnik und Informatik Hochschule Niederrhein WS 009/0 Einführung in die Programmierung

Mehr

Übung zur Vorlesung Programmieren in C

Übung zur Vorlesung Programmieren in C Übung zur Vorlesung Programmieren in C 6 Pointers Marvin Gülker Ruhruniversität Bochum Wintersemester 2015/2016 Marvin Gülker (Ruhruniversität Bochum) 6 Pointers Wintersemester 2015/2016 1 / 29 Gliederung

Mehr

7.11.2006. int ConcatBuffers(char *buf1, char *buf2, size_t len1, size_t len2) {

7.11.2006. int ConcatBuffers(char *buf1, char *buf2, size_t len1, size_t len2) { Universität Mannheim Lehrstuhl für Praktische Informatik 1 Prof. Dr. Felix C. Freiling Dipl.-Inform. Martin Mink Dipl.-Inform. Thorsten Holz Vorlesung Angewandte IT-Sicherheit Herbstsemester 2006 Übung

Mehr

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen

Brainfuck. 1 Brainfuck. 1.1 Brainfuck Geschichte und Umfeld. 1.2 Esoterische Programmiersprachen Brainfuck 1 Brainfuck 1.1 Brainfuck Geschichte und Umfeld Brainfuck ist eine sogenannte esoterische Programmiersprache. Sie wurde 1993 vom Schweizer Urban Müller entworfen mit dem Ziel, eine Sprache mit

Mehr

Informatik Repetitorium SS 2009. Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692

Informatik Repetitorium SS 2009. Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692 Informatik Repetitorium SS 2009 Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692 Operatoren und Datentypen Beispiel: Anweisungen Variable int a float b int c a= a % (int) (++b-1/4) Vorher 36 3.5 c=b

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

Ü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

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

Mehr

DAP2-Programmierpraktikum Einführung in C++ (Teil 1)

DAP2-Programmierpraktikum Einführung in C++ (Teil 1) DAP2-Programmierpraktikum Einführung in C++ (Teil 1) Carsten Gutwenger 11. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Mein erstes C++-Programm Namensräume

Mehr

Modul 122 VBA Scribt.docx

Modul 122 VBA Scribt.docx Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval

Mehr

PHP 4. E i n e K u r z e i n f ü h r u n g. Vortragender: Kevin Bransdor Datum: 08.05.2002 Folie 1

PHP 4. E i n e K u r z e i n f ü h r u n g. Vortragender: Kevin Bransdor Datum: 08.05.2002 Folie 1 PHP 4 E i n e K u r z e i n f ü h r u n g Vortragender: Kevin Bransdor Datum: 08.05.2002 Folie 1 Was ist PHP? PHP ist eine serverseitige, in HTML eingebettete Skriptsprache. Die Befehlsstruktur ist an

Mehr

Einführung in die Programmiersprache C

Einführung in die Programmiersprache C Einführung in die Programmiersprache C Marcel Arndt arndt@ins.uni-bonn.de Institut für Numerische Simulation Universität Bonn Der Anfang Ein einfaches Programm, das Hello World! ausgibt: #include

Mehr

Programmieren 2 09 File-IO

Programmieren 2 09 File-IO Programmieren 2 09 File-IO Bachelor Medieninformatik Sommersemester 2015 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 Eingabe und Ausgabe in Java Daten im Programm während der Ausführungszeit:

Mehr

Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme

Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Teil 1: Wiederholung C Heutige Agenda Nutzereingaben verarbeiten Teil 2: Grundlagen in C++ Erstes

Mehr

In der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch

In der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch Kapitel Matrizen in C++ In der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch 1 const int n=10; 3 double a[n][n]; gegeben. Allerdings gibt es bei dieser Methode eine Reihe

Mehr

Programmdokumentation

Programmdokumentation Programmdokumentation Der 1. Abgabe am 29.10.1998 über das 1. und 2. Programm INHALTSVERZEICHNIS: 1 ERSTES PROGRAMM: RECHNUNGSERSTELLUNG... 2 1.1 MODULARISIERUNG UND DATENSTRUKTUR... 2 1.1.1 Grundidee:

Mehr

Programmieren I. Kapitel 15. Ein und Ausgabe

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

Mehr

PROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl

PROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl PROGRAMMIEREN MIT C Allgemeine hinweise Alles was hier beschrieben wird, soll auch ausprobiert werden. Warum C? Weil die coolen Dinge mit C am einfachsten gehen. Das werden wir in den folgenden Übungen

Mehr

Programmieren in C. Operatoren, Variablen und deren Sichtbarkeit. Prof. Dr. Nikolaus Wulff

Programmieren in C. Operatoren, Variablen und deren Sichtbarkeit. Prof. Dr. Nikolaus Wulff Programmieren in C Operatoren, Variablen und deren Sichtbarkeit Prof. Dr. Nikolaus Wulff Auswertung von Ausdrücken Was passiert wenn ein Ausdruck wie z. B. int y,x=2; y = ++x * x++; im Computer abgearbeitet

Mehr

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen

Mehr

Ostfalia Hochschule für angewandte Wissenschaften Fakultät Elektrotechnik Prof. Dr.-Ing. M. Haas

Ostfalia Hochschule für angewandte Wissenschaften Fakultät Elektrotechnik Prof. Dr.-Ing. M. Haas Seite 1 von 7 Übungsaufgabe 1 (02.10.2014) In der Vorlesung entstand der Programmcode für ein C-Programm, das die folgende Anforderung erfüllen soll: Entwickeln Sie ein Programm, das fortlaufend neue Werte

Mehr