Übung zu Grundlagen der Betriebssysteme. 2. Übung
|
|
- Jacob Frank
- vor 5 Jahren
- Abrufe
Transkript
1 Übung zu Grundlagen der Betriebssysteme 2. Übung
2 Termine Übungen 1. Übungsblatt Abgabe: kommenden Freitag (26.10.), 16 Uhr über SVN der Gruppe: gruppenname notfalls: Gruppenanmeldung: 2
3 Inhalte der Übung C Pointer (Zeiger) Funktionen Header Dateien Makefile Input/Output Debugging
4 C von A bis Z Jürgen Wolf online verfügbar
5 Adressoperator #include <stdio.h> int main (void) { int i; /* ein ganzzahliger Datentyp */ printf("bitte geben Sie eine Zahl ein : "); scanf("%d", &i); /* Wartet auf die Eingabe. */ printf("die Zahl, die Sie eingegeben haben, war %d\n",i); return 0; gcc o hello hello.c
6 Addressoperator gibt Adresse der Variable zurück scanf("%d", &i); /* Wohin damit...??? */
7 Pointer (Zeiger) Zeiger: speichern Adressen int Kapitel1 = 5; int Kapitel2 = 60; int Kapitel3 = 166; int Nachtrag = 233; int *Verzeichnis;
8 Pointer (Zeiger) Verzeichnis =&Kapitel1;
9 Pointer (Zeiger) int x = 5; int *y; y =&x; *y =10;
10 Pointer (Zeiger) Was wird hier ausgegeben?
11 Funktionen Aufruf einer Funktion calling function called function Hauptprogramm Hauptprogramm: Funktion x = add(10,5); Funktion add(int c, int d) { b = c + d; return b; Inline Funktionen (Optimierung): Compiler fügt die komplette Funktion direkt an die Stelle des Aufrufs. -> Sprung und Rücksprung fällt weg -> Ausführungsgeschwindigkeit wird erhöht
12 Funktionen Aufruf einer Funktion calling function called function Hauptprogramm: x = add(10,5); Funktion add(int c, int d) { b = c + d; return b;
13 Funktionen Text: Maschinencode des Programms Daten: statische und globale Variablen Stack: Funktionsaufrufe und lokale Variablen Heap: dynamisch reservierter Speicher
14 Funktionen [Spezifizierer] Rückgabetyp Funktionsname(Parameter) { /* Anweisungsblock mit Anweisungen */ int main(void) { /* mach was */ return 0; gcc o myapp main.c
15 Funktionen Funktionsdeklaration: - Funktion muss vor Aufruf deklariert werden. - Wichtig für den Compiler #include <stdio.h> void hilfe(void); int main(void) { hilfe(); return 0; void hilfe(void) { printf("ich bin die Hilfsfunktion\n");
16 Funktionen - Header Dateien Deklaration von Funktionen /*myheader.h*/ #ifndef MYHEADER_H #define MYHEADER_H #define PI (3.1416) extern int meinevariable; int meinefunktion1(int); int meinefunktion2(char); #endif /* MYHEADER_H */ /* myprog.c */ #include "myheader.h" int meinevariable = 0; int meinefunktion1 (int i) { return (i+1); int meinefunktion2 (char c) { if (c == 'A') return 1; return 0;
17 Funktionen Lokale und Globale Variablen: #include <stdio.h> int i=333; /* globale Variable i */ void aendern(void) { i = 111; /* Ändert die globale Variable. */ printf("in der Funktion aendern: %d\n",i); /* 111 */ int main(void) { int i = 444; printf("%d\n",i); /* 444 */ aendern(); printf("%d\n",i); /* 444 */ return 0;
18 Funktionen Lokale und Globale Variablen: Geltungsbereiche Block: (lokal) Innerhalb des Anweisungsblocks Funktion: (lokal) Innerhalb der Funktion Datei: (global) Innerhalb der Deklaration in der Datei
19 Funktionen Schlüsselwörter für Variablen Speicherklassen statische Lebensdauer Variable wird zu Programmbeginn einmal deklariert und initialisiert und existiert während der gesamten Programmausführung. automatische Lebensdauer Variable wird beim Eintritt in den Anweisungsblock, in dem sie definiert ist, neu erzeugt und beim Verlassen des Anweisungsblocks wieder gelöscht. auto auto int zahl = 5; extern Variable befindet sich in anderer Datei register um eine Variable im Prozessorregister zu halten. static statische Variable -> verliert nicht ihren Wert bei Beendigung des Bezugsrahmens. -> Wird im Datensegment gespeichert (nicht im Stacksegment)
20 Funktionen Schlüsselwörter für Funktionen Speicherklassen extern nicht unbedingt notwendig -> automatisch gesetzt falls nichts angegeben ist. static gegenteil von extern -> Funktion kann nur innerhalb der Datei genutzt werden, in der sie deklariert ist. volatile (keine Speicherklasse -> Typ-Qualifizierer) vergleich zu volatile bei Variablen Hinweis an den Compiler: Funktion muss immer neu aus dem Hauptspeicher gelesen werden -> keine Optimierung anwenden.
21 Funktionen Schlüsselwörter für Funktionen Speicherklassen volatile (keine Speicherklasse -> Typ-Qualifizierer) vergleich zu volatile bei Variablen Hinweis an den Compiler: Funktion/Variable muss immer neu aus dem Hauptspeicher gelesen werden -> keine Optimierung. static int foo; void bar(void) { foo = 0; while (foo!= 255) ; hier unerwünschte Optimierung durch Compiler void bar_optimized(void) { foo = 0; while (true) ; static volatile int foo; void bar (void) { foo = 0; while (foo!= 255) ;
22 Funktionen Funktionsaufruf #include <stdio.h> void mixed(int x, char y, float z) { printf("stückzahl : %d ",x); printf("klasse : %c ",y); printf("preis : %.2f Euro\n",z); int main(void) { mixed(6, 'A', 5.5f); mixed(9, 'B', 4.3f); return 0.
23 Funktionen Hauptfunktion main()
24 Funktionen Getrenntes Kompillieren von Quelldateien /*main.c*/ #include <stdio.h> #include <stdlib.h> extern void modul1(void); extern void modul2(void); int main(void) { modul1(); modul2(); return EXIT_SUCCESS; /*modul1.c*/ void modul1(void) { printf("ich bin das Modul 1\n"); /*modul2.c*/ void modul2(void) { printf("ich bin Modul 2\n"); gcc -c main.c gcc -c modul1.c gcc -c modul2.c gcc -o myapp main.o modul1.o modul2.o
25 Funktionen Getrenntes Kompillieren von Quelldateien gcc -c main.c gcc -c modul1.c gcc -c modul2.c gcc -o myapp \ main.o modul1.o modul2.o
26 Funktionen -> Makefile gcc -c main.c gcc -c modul1.c gcc -c modul2.c gcc -o myapp main.o modul1.o modul2.o prog: main.o modul1.o modul2.o gcc -o myapp main.o modul1.o modul2.o main.o: main.c gcc -c main.c modul1.o: modul1.c gcc -c modul1.c modul2.o: modul2.c gcc -c modul2.c
27 Makefile # ls -al total 24 drwxr-xr-x :41. drwxr-xr-x :35.. -rw-r--r :18 main.c -rw-r--r :17 makefile -rw-r--r :19 modul1.c -rw-r--r :19 modul2.c # make gcc -c main.c gcc -c modul1.c gcc -c modul2.c gcc -o prog main.o modul1.o modul2.o # ls -al total 44 drwxr-xr-x :41. drwxr-xr-x :35.. -rw-r--r :18 main.c -rw-r--r :41 main.o -rw-r--r :17 makefile -rw-r--r :19 modul1.c -rw-r--r :41 modul1.o -rw-r--r :19 modul2.c -rw-r--r :41 modul2.o -rwxr-xr-x :41 myapp #./myapp # make gcc -c main.c gcc -c modul1.c gcc -c modul2.c gcc -o myapp main.o modul1.o modul2.o
28 Makefile (Variablen setzen) prog: main.o modul1.o modul2.o gcc -o myapp main.o modul1.o modul2.o main.o: main.c gcc -c main.c modul1.o: modul1.c gcc -c modul1.c modul2.o: modul2.c gcc -c modul2.c CC = gcc OBJ = main.o modul1.o modul2.o prog: $(OBJ) $(CC) -o myapp $(OBJ) main.o: main.c $(CC) -c main.c modul1.o: modul1.c $(CC) -c modul1.c modul2.o: modul2.c $(CC) -c modul2.c
29 Makefile (Wildcards) prog: main.o modul1.o modul2.o gcc -o myapp main.o modul1.o modul2.o main.o: main.c gcc -c main.c modul1.o: modul1.c gcc -c modul1.c modul2.o: modul2.c gcc -c modul2.c CC = gcc OBJ = main.o modul1.o modul2.o CC = gcc OBJ = main.o modul1.o modul2.o prog: $(OBJ) $(CC) -o myapp $(OBJ) main.o: main.c $(CC) -c main.c modul1.o: modul1.c $(CC) -c modul1.c modul2.o: modul2.c $(CC) -c modul2.c prog: $(OBJ) $(CC) -o myapp $(OBJ) %.o: %.c $(CC) -c %.c
30 Makefile (Makros) prog: main.o modul1.o modul2.o gcc -o myapp main.o modul1.o modul2.o main.o: main.c gcc -c main.c modul1.o: modul1.c gcc -c modul1.c modul2.o: modul2.c gcc -c modul2.c CC = gcc OBJ = main.o modul1.o modul2.o prog: $(OBJ) $(CC) -o myapp $(OBJ) %.o: %.c $(CC) -c %.c CC = gcc OBJ = main.o modul1.o modul2.o prog: $(OBJ) $(CC) -o myapp $(OBJ) main.o: main.c $(CC) -c main.c modul1.o: modul1.c $(CC) -c modul1.c modul2.o: modul2.c $(CC) -c modul2.c CC = gcc OBJ = main.o modul1.o modul2.o prog: $(OBJ) $(CC) -o $@ $(OBJ) %.o: %.c $(CC) -c $<
31 Makefile #Dies ist ein Kommentar VERSION = 3.02 CC = /usr/bin/gcc CFLAGS = -Wall -g -D_REENTRANT -DVERSION=\"$(VERSION)\" LDFLAGS = -lm -lpthread `gtk-config --cflags` `gtk-config --libs` -lgthread OBJ = datei1.o datei2.o datei3.o datei4.o datei5.o prog: $(OBJ) $(CC) $(CFLAGS) -o prog $(OBJ) $(LDFLAGS) %.o: %.c $(CC) $(CFLAGS) -c $<
32 Dateizugriff File I/O #include <stdio.h> Datei Zugriff über Pointer FILE * myfile; Öffnen einer Datei mit fopen() myfile = fopen("filename.txt","r"); fopen wird als Parameter der Dateiname übergeben und mit welcher Operation auf die Datei zugegriffen werden soll: Operationen sind: "r" - Read Only (r+ open file for reading and writing) "w" - Rewrite over the existing file (w+ existing file will be deleted) "a" - append to the existing file (a+ if file does not exist it will be created) es gibt noch weitere Zugriffscodes
33 Dateizugriff File I/O Normalerweise sollte die Rückgabe auf Fehler überprüft werden if ((myfile = fopen(filename,"r")) == NULL) { printf("error opening %s\n",filename); Schreiben und Lesen mit fprint und fgets fprint(myfile,"this is line %d of your file",n); fgets(myfile,mystring); Formatiertes Lesen und Schreiben mit fprintf und fscanf int fprintf(file *f, const char * restrict format,...); int fscanf(file *f, const char * restrict format,...);
34 Dateizugriff /* fopen2.c */ #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { FILE *datei; if(argc < 2) { printf("verwendung : %s [datei_zum_oeffnen]\n", *argv); return EXIT_FAILURE; datei = fopen(argv[1], "r"); if(datei!= NULL) printf("datei erfolgreich geöffnet\n"); else { printf("fehler beim Öffnen der Datei"); return EXIT_FAILURE; return EXIT_SUCCESS;
35 Dateizugriff /* fopen2.c */ #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int x = 10; char y = hello world ; FILE *datei; datei = fopen( textfile.txt, w+ ); fprintf(datei, x: %d, y: %s, &x, &y); fclose(datei); Mit fflush() werden alle Inhalte von einem noch nicht geleerten Puffer eines Streams übertragen, die dem FILE-Zeiger datei zugeordnet sind (oder auch Standard-Streams). #include <stdio.h> int fflush(file *datei);
36 Debugging mit gdb GNU Debugger (gdb) UNIX-Programm zum diagnostizieren und Auffinden von Fehleren in Computersystemen / Programmen - Standard-Debugger von Linux-Systemen - Bietet Möglichkeiten zur Ablaufverfolgung wie Breakpoints, Ausgabe, Stacktrace, usw - Ermöglicht eingreifen in die Ausführung von Programmen. - Manipulieren von Variablen oder Funktionen unabhängig vom normalen Programmablauf Quelle:
37 Debugging mit gdb fact1.c int computefact(int n) { int accum=0; while(n>1) { accum *= n; n--; return accum;
38 Debugging mit gdb fact1.c 1: Programm kompillieren gcc -g -o fact1.x fact1.c 2: GDB starten gdb fact1.x 3: bestimmte Stellen im Code anschauen, z.b. Funktion computefact (gdb) list computefact 4: Breakpoint an einer bestimmten Stelle im Code setzen (gdb) break 44
39 Debugging mit gdb fact1.c 5: Programm starten (gdb) run 6: bestimmte Variablen anschauen (gdb) display accum 7: durch das Programm durchgehen und die Variable beobachten (gdb) step (gdb) 8: das Problem finden und beheben. (gdb) set accum = 1
Übung zu Grundlagen der Betriebssysteme. 3. Übung 30.10.2012
Übung zu Grundlagen der Betriebssysteme 3. Übung 30.10.2012 Aufgabe 1 Schließen Sie sich über die URL http://userpages.uni-koblenz.de/~mips/bs/anmeldung/ Bearbeitungsgruppen bestehend aus 3 Teilnehmern
MehrOrganisatorisches. Übungsleiter: Karsten Otto Homepage: Aufgaben
Organisatorisches Übungsleiter: Karsten Otto (otto@inf.fu-berlin.de) Homepage: http://www.inf.fu-berlin.de/lehre/ss04/sysi/ Aufgaben Montags im Netz Vorbesprechung Dienstag/Mittwoch in den Übungen Abgabe
MehrSystempraktikum im Wintersemester 2009/2010 (LMU): Vorlesung vom Foliensatz 2
Systempraktikum im Wintersemester 2009/2010 (LMU): Vorlesung vom 29.10. Foliensatz 2 Modularisierung (T) Eigene Headerdateien und Bibliotheken (P) Arten der Parameterübergabe (P) Arrays und Strukturen
MehrProgrammierung mit C Modularisierung von Programmen. Präprozessor-Anweisungen nutzen.
Programmierung mit C Modularisierung von Programmen. Präprozessor-Anweisungen nutzen. Modularisierung Zerlegung eines Programms in überschaubare Einheiten Die einzelnen Einheiten werden als Modul bezeichnet.
MehrPropädeutikum. Dipl.-Inf. Frank Güttler
Propädeutikum 2015 Vorbereitungskurs Informatikstudium Erfolgreich Studieren Programmieren (C-Kurs) guettler@informatik.uni-leipzig.de Universität Leipzig Institut für Informatik Technische Informatik
MehrEinführung in die Programmiersprache C
Einführung in die Programmiersprache C 4 Storage classes Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Compilation units Compilierung eines mehrteiligen Programms:
MehrSpeicherklassen (1) Lokale Variablen
Speicherklassen (1) Lokale Variablen Lokale Variablen beschränken sich auf die Funktionen, in denen sie definiert werden Sind in der Funktion gekapselt können also nur in der Funktion verändert werden
MehrEinführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz
Patrick Schulz patrick.schulz@paec-media.de 29.04.2013 1 Einführung Einführung 2 3 4 Quellen 1 Einführung Einführung 2 3 4 Quellen Hello World in Java Einführung 1 public class hello_ world 2 { 3 public
Mehr8.1 Vom Quellcode zur ausführbaren Programm
8. Die Umgebung von C- 8.1 Vom Quellcode zur Programmausführung 8.2 Präprozessor-Anweisungen 8.3 Compiler, Assembler, Binder 8.4 Das Make-Utility 8.5 Datenübergabe vom und zum Betriebssystem 8-1 8.1 Vom
MehrE-/A-Funktionalität nicht Teil der Programmiersprache
C Ein-/Ausgabe C Ein-/Ausgabe C.1 Überblick E-/A-Funktionalität nicht Teil der Programmiersprache Realisisierung durch "normale" Funktionen Bestandteil der Standard-Funktionsbibliothek einfache Programmierschnittstelle
MehrMichael Dienert. 8. Dezember 2016
C für Unverdrossene Michael Dienert 8. Dezember 2016 Vorbemerkung Natürlich könnte ich als erstes C-Programm Hello World nehmen. Um mit dem Kompiler zu spielen, kann man aber auch gleich einen sinnvolleren
MehrCompiler Präprozessor Header Files
Freitagsrunde C-Kurs 2012 Compiler Präprozessor Header Files Tutorium 3 ThisworkislicensedunderaCreativeCommonsAttribution NonCommercial ShareAlike3.0License Gliederung Compiler Präprozessor Header Files
MehrC-Crashkurs. Praktikum Systemmanagement und Sicherheit
C-Crashkurs Praktikum Systemmanagement und Sicherheit ZIELE DIESES KURSES 15.04.2014 Dipl.-Inf. M. Bohr C_Crashkurs 2 Compiler gcc verwenden geläufigste Datentypen in C kennen Fehlerbehandlung (ohne Ausnahmeklassen)
MehrEinführung in die Programmiersprache C
Einführung in die Programmiersprache C 4 Storage classes Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Compilation units Compilierung eines mehrteiligen Programms:
MehrPropädeutikum. Dipl.-Inf. Frank Güttler
Propädeutikum 2015 Vorbereitungskurs Informatikstudium Erfolgreich Studieren Programmieren (C-Kurs) guettler@informatik.uni-leipzig.de Universität Leipzig Institut für Informatik Technische Informatik
MehrEin-Ausgabefunktionen in C (letzter Abschnitt Vorlesungsstoff ab C.110)
U2 2. Übung U2 2. Übung U2-1 Überblick Ein-Ausgabefunktionen in C (letzter Abschnitt Vorlesungsstoff ab C.110) Aufgabe 2: qsort Debugger Übersetzen von Projekten mit "make" U2.1 B-2 Aufgabe 2: Sortieren
MehrInformatik I Programmieren in C
Informatik I Programmieren in C Zusammenfassung des Semesters Prof. Dr. Nikolaus Wulff Agenda Elementare Einführung C Programm Syntax Datentypen, Variablen und Konstanten Operatoren und Ausdrücke Kontrollstrukturen
MehrTeil II. Literatur zur C-Programmierung:
Teil II 2Kurzeinführung in die Programmiersprache C Literatur zur C-Programmierung: Darnell, Margolis. C: A Software Engineering Approach. Springer 1991 Kernighan, Ritchie. The C Programming Language.
MehrInhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15
Vorwort... 15 1 Einstieg in die Welt von C 17 1.1 Die Sprache C... 17 1.2 Die C-Standardbibliothek... 18 1.3 Die nötigen Werkzeuge für C... 21 1.4 Übersetzen mit der Entwicklungsumgebung... 23 1.5 Übersetzen
MehrFile I/O mit CRTL unter OpenVMS
DECUS München Symposium - Bonn File I/O mit CRTL unter OpenVMS Hartmut Becker März 2000 Seite 1 Themen Die Aufgabe Den Durchsatz erhöhen Die Feinheiten File I/O mit CRTL unter OpenVMS Seite 2 Die Aufgabe
MehrC- Kurs 06 Übersetzung & Module
C- Kurs 06 Übersetzung & Module Dipl.- Inf. Jörn Hoffmann jhoffmann@informaek.uni- leipzig.de Universität Leipzig InsEtut für InformaEk Technische InformaEk Übersetzung Überblick Übersetzung mit Modulen
MehrEin-/Ausgabe, Dateisystem. Kapitel 9: Ein-/Ausgabe. Programmieren in C für Elektrotechniker. Programmieren in C. Dateisystem. Programmieren in C
für Elektrotechniker Kapitel 9: Dateisystem, Dateisystem E/A-Konzept in UNIX und C UNIX (und damit auch C) verwendet Datenströme (streams) als Konzept zur Verbindung von Programmen mit E/A-Geräten und
MehrDateizugriff unter C
Begriffe Dateizugriff unter C Datei = sequentielle Ansammlung von Datenbytes, z.b. auf einer Festplatte Auch Bildschirm und Tastatur werden wie Dateien behandelt: Bildschirm ist die Datei stdout Tastatur
MehrDAP2-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
MehrEin- und Ausgabe mit Dateien
Ein- und Ausgabe mit Dateien Edouard Lamboray Informatik I für D-ITET (2004) Ein- und Ausgabekonzepte in C und C++ fstream header Streamobjekt Files schreiben und lesen Argumente von main Vorbemerkungen
MehrÜbungen zu Softwaresysteme I Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2004 K-Uebung9.fm
K 9. Übung K 9. Übung K-1 Überblick Besprechung 7. Aufgabe (jbuffer) Unix, C und Sicherheit K.1 Mögliche Programmsequenz für eine Passwortabfrage in einem Server- Programm: int main (int argc, char *argv[])
MehrDr. Monika Meiler. Inhalt
Inhalt 8 Das Konfigurationswerkzeug make...8-2 8.1 Modularisierung...8-2 8.2 Modulübersetzung...8-4 8.3 Konfigurationswerkzeug make und Aufbau eines Makefiles...8-8 8.3.1 Abhängigkeiten und Kommandos...
MehrVariablen. Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes
Variablen Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes v ist Stück im Speicher, der 4 Bytes lang ist Speicherzugriff? Über Adressen!
MehrLinux. Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm. FB Automatisierung und Informatik.
Linux Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de http://www.miwilhelm.de Raum 2.202 Tel. 03943 / 659 338 FB Automatisierung und Informatik:
MehrLinux. Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm. Hochschule Harz. FB Automatisierung und Informatik.
Linux Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de http://www.miwilhelm.de Raum 2.202 Tel. 03943 / 659 338 FB Automatisierung und Informatik:
MehrInformatik I (D-ITET)
Informatik I (D-ITET) Übungsstunde 2, 5.10.2009 ETH Zürich? Übungsgruppenwechsel? Abgabe der Übungen... Bis Mo, 24:00 Theorie: Programme: per mail oder auf Papier.cpp Datei per mail Bin euch noch Demos
MehrProgrammiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften
Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder
MehrUlrich Stein
Von C nach MATLAB Einführung in MATLAB für Personen mit C-Kenntnissen Datentypen ähnlich in C und MATLAB, dort aber automatische Typzuweisung möglich double a = 2; Arrays a = double( 2 ); aber auch a =
MehrC Kurzeinführung in die Programmiersprache C
C Kurzeinführung in die Programmiersprache C C Kurzeinführung in die Programmiersprache C Literatur zur C-Programmierung: Darnell, Margolis. C: A Software Engineering Approach. Springer 1991 Kernighan,
MehrC Kurzeinführung in die Programmiersprache C. C-3 Datentypen und Variablen. C-2 Struktur eines C-Programms. C-1 Überblick. 1 Standardtypen in C
C Kurzeinführung in die Programmiersprache C C Kurzeinführung in die Programmiersprache C Literatur zur C-Programmierung: Datentypen legen fest: Darnell, Margolis. C: A Software Engineering Approach. Springer
MehrTeil I Debuggen mit gdb
Teil I Debuggen mit gdb Wer kennt das nicht? $./a.out Segmentation fault Was tun dagegen? printf()s in den Code einfügen? Besser (und professioneller): Einen Debugger verwenden Wer kennt das nicht? $./a.out
Mehr2 Beispiel Sinusberechnung
2 Beispiel Sinusberechnung #include #include double sinus (double x) { double summe; double x_quadrat; double rest; int k; main() { double wert; D.8 Funktionen printf("berechnung des
MehrInformatik I - Übung 2 Programmieren in Eclipse
Informatik I - Übung 2 Programmieren in Eclipse. / Info1 / HelloWorld / HelloWorld Wort1 Wort2 Daniel Hentzen dhentzen@student.ethz.ch 5. März 2014 1.2 Häufigste Fehler im Terminal auf Gross-/Kleinschreibung
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29
Kapitel 2 Einführung in C++ Seite 1 von 29 C++ Zeichensatz - Buchstaben: a bis z und A bis Z. - Ziffern: 0 bis 9 - Sonderzeichen: ; :,. # + - * / % _ \! < > & ^ ~ ( ) { } [ ]? Seite 2 von 29 Höhere Elemente
MehrOutline. 1 Einleitung. 2 Einführung in C. 3 Fortgeschrittenes in C. 4 Einführung in Emacs Lisp. 5 Einführung in Prolog. 6 Formale Semantik
Outline 1 Einleitung 2 Einführung in C 3 Fortgeschrittenes in C 4 Einführung in Emacs Lisp 5 Einführung in Prolog 6 Formale Semantik Imperative Programmierung Imperatives Paradigma Ziel: Ablaufbeschreibung
Mehr[Strukturen] Vereinbarung Verwendung Operationen mit struct Zeiger auf struct Strukturen auf dem Heap Datenstrukturen gebildet mit struct union
Vereinbarung Verwendung Operationen mit struct Zeiger auf struct Strukturen auf dem Heap Datenstrukturen gebildet mit struct union Vereinbarung struct name typ komponente1; typ komponente2;... typ komponenten;
MehrProgrammiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny
Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 7. Funktionen Einleitung Nach dem Prinzip Divide and Conquer bietet es sich an, größere Aufgaben in kleinere Teile zu unterteilen. Anweisungsblöcke,
MehrEin- und Ausgabe mit Dateien
Ein- und Ausgabe mit Dateien Edouard Lamboray Informatik I für D-ITET (2004) Ein- und Ausgabekonzepte in C und C++ fstream header Streamobjekt Files schreiben und lesen Argumente von main 2 Vorbemerkungen
MehrTyp : void* aktuelle Parameter Pointer von beliebigem Typ
2. Funktionen - Prototypvereinbarung typangabe funktionsname(parameterliste); - Funktionsdefinition typ funktionsname(parameterliste){ Anweisung - Funktionstyp -> Typ der Funktionswertes zulaessige Typangaben
MehrBeispiel / Übung: Prof. Dr. A. Christidis WS 2012/13
Beispiel / Übung: Erstellen Sie ein kurzes, plattform-unabhängiges C-Programm ( Konsolenanwendung ), das sich in die Reihe bereits gestarteter Kopien einordnet, sich nach 20 sec (Rechenzeit) abmeldet und
MehrCompiler Präprozessor Header Files
Freitagsrunde C-Kurs 2013 Compiler Präprozessor Header Files Tutorium 3 This work is licensed under a Creative Commons Attribution NonCommercial ShareAlike 3.0 License Gliederung Compiler Präprozessor
Mehreinlesen n > 0? Ausgabe Negative Zahl
1 Lösungen Kapitel 1 Aufgabe 1.1: Nassi-Shneiderman-Diagramm quadratzahlen Vervollständigen Sie das unten angegebene Nassi-Shneiderman-Diagramm für ein Programm, welches in einer (äußeren) Schleife Integer-Zahlen
MehrModulare Programmierung und Bibliotheken
Modulare Programmierung und Bibliotheken Proseminar-Vortrag am 24.06.2011 von Ludwig Eisenblätter Ludwig Eisenblätter 1 von 25 Modulare Programmierung und Bibliotheken Inhaltsübersicht Motivation / Einleitung
MehrExploit-Entwicklung mit Python
Penetration Testing III Bachelor in Computer Science (BCS) 6. Semester Exploit-Entwicklung mit Python von Daniel Baier und Demian Rosenkranz 1 / 20 Gliederung Grundlagen Sicherheitslücken Prozess- und
MehrPräprozessor und make. einfache Makros Makros nehmen eine Textersetzung vor. Erst nach der Ersetzung muss gültiger C-Code vorliegen.
Bevor der eigentliche Kompilier-Vorgang stattfindet, wird vom sogenannten eine Vorverarbeitung durchgeführt. Hierbei werden zum Beispiel Kommentare entfernt, aber auch explizite Anweisungen an den verarbeitet.
MehrCrashkurs C++ Wiederholung
Crashkurs C++ Wiederholung #include int main(void) { int i, j; bool is_prime; for (j = 1; j < 1000; j += 2) { is_prime = true; for (i = 3; i
MehrVerwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion. Programmieren in C
Übersicht Funktionen Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion Sinn von Funktionen Wiederverwendung häufig verwendeter nicht banaler Programmteile Wiederverwendung
MehrIm Windows Betriebssystem sind Dateien eindeutig gekennzeichnet durch ihren Pfad, Dateinamen und nach einem Punkt die Dateierweiterung.
Dateioperationen Seite 1 von 12 Im Windows Betriebssystem sind Dateien eindeutig gekennzeichnet durch ihren Pfad, Dateinamen und nach einem Punkt die Dateierweiterung. z.b.: c:\testdateien\text.dat //Datendatei
MehrInhalt. 4.9 Typen, Variable und Konstante
Inhalt Inhalt: 4. Programmiersprache C 4.1 Programmaufbau in C 4.2 Basisdatentypen und einfache Anweisungen 4.3 Steuerfluss-Konstrukte 4.4 Arbeit mit indizierten Größen (Felder) 4.5 Arbeit mit Pointern
MehrEinführung in die Programmiersprache C
Einführung in die Programmiersprache C 1 Einführung Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Inhalte der Veranstaltung 1 Einführung das Maschinenmodell
MehrZeiger vom Typ void* benötigen weniger Speicher als andere Zeiger, da bei anderen Zeigertypen zusätzlich die Größe gespeichert werden muss.
EZS-Test Fragen zur Programmiersprache C Fragen entnommen aus SPiC 1 1. Ein Hauptprogramm und eine Interruptbehandlung greifen nebenläufig auf die Variable uint16_t foo zu. Das Hauptprogramm verwendet
MehrSystemprogrammierung
IEinführung I in die Programmiersprache C Literatur zur C-Programmierung: Darnell, Margolis. C: Software Engineering pproach. Springer 1991 Kernighan, Ritchie. The C Programming Language. Prentice-Hall
MehrVorlesung Informatik I
Vorlesung Informatik I Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 11. Programmieren in C Der Compilierungsprozess 1 Aufbau eines C-Programms 1. Direktiven
MehrInteger Integer Integer (Voreinstellung) Integer Gleitkomma Gleitkomma leer/unbestimmt Integer ohne Vorzeichen Integer (explizit) mit Vorzeichen
1 C-Schlüsselwörter Schlüsselwörter sind in allen Programmiersprachen reservierte Wörter. In C sind auch alle Namen _[A-Z]... und... reserviert, auch _... bereichsweise. Weiterhin durch die Standard-
MehrÜbung zu Grundlagen der Betriebssysteme. Einführungsveranstaltung 16.10.2012
Übung zu Grundlagen der Betriebssysteme Einführungsveranstaltung 16.10.2012 Termine Übungen wöchentlich, Dienstags 14 Uhr (c.t.), Raum E312 15 Uhr (s.t.), Raum E312 Jede Woche 1 Übungsblatt http://userpages.uni-koblenz.de/~mips/bs/uebung/
MehrGlobale Variablen Diverses. Globale Variablen. Globale Variablen
lokale Variablen Variablen bisher nur am Anfang von Funktionen auch erlaubt: am Anfang innerer Codeblöcke (innerhalb geschweifter Klammern) in C99 und als gcc-erweiterung: an beliebiger Stelle innerhalb
MehrErste Schritte der Programmierung in C
Erste Schritte der Programmierung in C C versus C++ Anatomie von C-Programmen für AVR- Mikrocontroller Unterschiede zwischen C++ und C 1 Grundlegende Unterschiede File-Extensions (Header und Quellcode)
MehrJava Einführung Methoden. Kapitel 6
Java Einführung Methoden Kapitel 6 Inhalt Deklaration und Aufruf von Methoden Lokale und globale Namen (Bezeichner) Sichtbarkeit und Lebensdauer von Variablen in Methoden Überladen von Methoden 2 Methoden
MehrDeklarationen in C. Prof. Dr. Margarita Esponda
Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.
MehrOrganisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download
Organisatorisches Folien (u.a.) gibt's auf der Lva-Homepage zum Download Diesen Mi erstes Tutorium (15-17) Ab nächster Woche montags 10-12 (jeweils im Computerraum) 17.10.2017 IT I - VO 3 1 Organisatorisches
MehrLaborübung aus Systemnahe Programmierung
Laborübung aus Systemnahe Programmierung C - Block für Fortgeschrittene Roman Obermaisser Institut für Technische Informatik 2008 Systemprogrammierung C-Block 1 Übersicht Strukturen Eigene Typen Funktionen
MehrÜbungen zu Softwaresysteme I Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2004 E-Uebung3.fm
E 3. Übung E 3. Übung Besprechung 1. Aufgabe Aufgabe 3: malloc Debugger gdb E.1 1. Include, Deklarationen #include #include void append_element(int value); int remove_element(void);
MehrProgrammierung mit C Zeiger
Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch
MehrEinleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens
Grundlagen von C Jonas Gresens Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität
MehrWelche Informatik-Kenntnisse bringen Sie mit?
Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt
MehrProgrammierkurs C++ Kapitel 6 Module Seite 1
Programmierkurs C++ Kapitel 6 Module Seite 1 (Quell-)Module Unter einem Modul versteht man einen Teil des Programms, der eigenständig übersetzt werden kann. In der Syntax der Programmiersprachen werden
MehrUnterlagen. CPP-Uebungen-08/
Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen
MehrKurzeinführung in C99
Kurzeinführung in C99 Institut für Numerische Simulation Rheinische Friedrich-Wilhelms-Universität Bonn Oktober 2013 Überblick 1 Compiler und Editoren - Was wird benötigt um ein Programm zu erstellen 2
MehrC++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue
C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen Leibniz Universität IT Services Anja Aue Modularisierung Logische Gliederung von Programmteilen mit Hilfe von Namensräumen. Aufteilung
MehrU1 3. Übung U1 3. Übung. Die Kommandos auf den folgenden Folien dienen der Veranschaulichung. Sind nicht direkt auf die Übungsaufgabe übertragbar
U1 3. Übung U1 3. Übung Besprechung Aufgabe 0 Make und Makefiles Aufgabe 2 U1-1 Hinweise Die Kommandos auf den folgenden Folien dienen der Veranschaulichung Sind nicht direkt auf die Übungsaufgabe übertragbar
MehrProgrammierung in C: Vermischtes (Teil 1)
Programmierung in C: Vermischtes (Teil 1) Gültigkeitsbereiche für Variablen C-Präprozessor (#define EPS 0.00001) Inkremtieren und Dekrementieren ( jahr++; restzeit--;) Speicherklassen (static) Typecasts
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
MehrProgrammierung und Angewandte Mathematik
Programmierung und Angewandte Mathematik C++ /Scilab Programmierung und Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens SS 2012 Ablauf Was sind Funktionen/Methoden
MehrC++ - Variablen: Gültigkeit - Sichtbarkeit
C++ - Variablen: Gültigkeit - Sichtbarkeit Reiner Nitsch 8417 r.nitsch@fbi.h-da.de Attribute von Variablen und Funktionen Attribute von Variablen sind Name (name), Typ (type), Wert (value) Attribute von
MehrKlausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.
Seite 1 von 9 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert
Mehr2Binden 3. und Bibliotheken
3 Vom C-Programm zum laufenden Prozess 3.1 Übersetzen - Objektmodule 1Übersetzen 3. - Objektmodule (2) Teil III 3Vom C-Programm zum laufenden Prozess 2. Schritt: Compilieren übersetzt C-Code in Assembler
MehrC-Grundlagen. zur Programmierung des MicroControllersystems MiCoWi
1. Datentypen C-Grundlagen zur Programmierung des MicroControllersystems MiCoWi Die Grafiken und Beispiele wurden dem Buch C von A bis z von Jürgen Wolf entnommen. Es werden hier die ANSI-Festlegungen
MehrStrukturen können wie normale Variablen an Funktionen übergeben werden. Strukturen können auch Ergebnis einer Funktion sein
19 Strukturen 19.2Strukturen als Funktionsparameter 19.2 Strukturen als Funktionsparameter Strukturen können wie normale Variablen an Funktionen übergeben werden Übergabesemantik: call by value Funktion
MehrInformatik I. Übung 2 : Programmieren in Eclipse. 5. März Daniel Hentzen
Informatik I Übung 2 : Programmieren in Eclipse 5. März 2014 Daniel Hentzen dhentzen@student.ethz.ch Downloads : http://n.ethz.ch/~dhentzen/download/ Heute 1. Nachbesprechung Übung 1 2. Theorie 3. Vorbesprechung
MehrEinführung Programmierpraktikum C Michael Zwick
Einführung Programmierpraktikum C Michael Zwick Vorlesung, Übung & Fragestunde Dr.-Ing. Michael Zwick Raum Z945 zwick@tum.de (089) 289 23609 Tutorium Ab Dienstag: Auswahl Tutoriumsplatz auf www.ldv.ei.tum.de/lehre/computertechnik
Mehr6. Grundlagen der Programmierung
Computeranwendung in der Chemie Informatik für Chemiker(innen) 6. Grundlagen der Programmierung Jens Döbler 2003 "Computer in der Chemie", WS 2003-04, Humboldt-Universität VL6 Folie 1 Dr. Jens Döbler Grundlagen
MehrNachname: Vorname: Matr.-Nr.: Punkte: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende Struktogramm zur Berechnung von sin(x) mit Hilfe einer Reihe.
Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende
MehrTeil 3: Lexik, Funktionen, Makefiles Gliederung
Teil 3: Lexik, Funktionen, Makefiles Gliederung Lexik Zinsberechnung Eigene Funktionen Makefiles Lexik 2 Bearbeitungsschritte des Compilers 1. Lexikalische Analyse 2. Syntaxanalyse 3. Semantische Analyse
MehrSystemnahe Programmierung in C (SPiC)
Systemnahe Programmierung in C (SPiC) 9 Funktionen Jürgen Kleinöder, Daniel Lohmann, Volkmar Sieh Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg
MehrEinfü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).
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
MehrK Ergänzungen zur Einführung in C
K Ergänzungen zur Einführung in C K Ergänzungen zur Einführung in C K.1 Zeiger, Felder und Zeichenketten Zeichenketten sind Felder von Einzelzeichen (char), die in der internen Darstellung durch ein \0
MehrÜbersicht. Speichertypen. Speicherverwaltung und -nutzung. Programmieren in C
Übersicht Speichertypen Speicherverwaltung und -nutzung Speichertypen Beim Laden eines Programms in den Speicher (Programmausführung) kommen 3 verschiedene Speicherbereiche zum Einsatz: Text Segment (Code
Mehr