Übungspaket 17 Der gcc Compiler

Größe: px
Ab Seite anzeigen:

Download "Übungspaket 17 Der gcc Compiler"

Transkript

1 Übungspaket 17 Der gcc Compiler Übungsziele: Skript: 1. Sicherer Umgang mit gemischten Ausdrücken 2. Herleiten der unterschiedlichen Datentypen in gemischten Ausdrücken 3. Kenntnis über die implizite Durchführung von Typanpassungen Kapitel: 38, 39 und 40 Semester: Wintersemester 2017/18 Betreuer: Kevin, Theo, Thomas und Ralf Synopsis: Eines haben wir alle bis jetzt sicherlich gelernt, durch Eintippen von gcc quelltext.c wird ein C-Programm in Maschinencode übersetzt und damit lauffähig gemacht. Doch wenn etwas schiefgeht, fangen die Probleme an. Der Compiler selbst ist wie die meisten Programmierwerkzeuge ein recht komplexes Programm. Daher fällt es vielen Programmieranfängern sehr schwer, den Überblick über die einzelnen Teile des Compilers zu behalten und die aufgetretenen Fehlerursachen zu lokalisieren. Um hier Abhilfe zu schaffen, schauen wir uns in diesem Übungspaket den Compiler gcc und seine Komponenten ein wenig genauer an.

2 Teil I: Stoffwiederholung Aufgabe 1: Grobaufbau des gcc Compilers Durch den Aufruf gcc datei.c werden eigentlich vier größere Programme nacheinander aufgerufen. Benenne diese vier Programme und erläutere kurz, was ihre Aufgaben sind. 1. Programm: Präprozessor Funktion: Der Präprozessor erfüllt im Wesentlichen drei Funktionen: 1. Der Präprozessor ersetzt all #include-direktiven durch die angegebenen Dateien (diese Dateien werden vollständig in den Quelltext eingefügt). 2. Ersetzen aller #define-makros durch ihre entsprechenden Definitionen. 3. Übersetzen bzw. entfernen aller Anweisungen zwischen den #ifdef, #ifndef, #else und #endif Direktiven. 2. Programm: Eigentlicher Compiler (der C-Übersetzer) Funktion: 3. Programm: Assembler Funktion: 4. Programm: Linker Funktion: In dieser Phase wird das C-Programm in denjenigen Assembler-Code übersetzt, der zum gewählten Prozessor gehört. Das Ergebnis ist also eine Datei, die prozessorspezifisch ist. Ergebnis: eine Datei mit der Endung.s Der Assembler wandelt den (prozessorspezifischen) Assembler-Code, der noch lesbare Anweisungen enthält in Maschinencode um. Das Ergebnis ist eine Datei, die nur noch aus unverständlichen Nullen und Einsen besteht, die üblicherweise zu hexadezimalen Zahlen zusammengefasst werden. Ergebnis: eine Datei mit der Endung.o Der Linker fügt den Maschinencode und alle verwendeten Bibliotheken zu einem einzigen lauffähigen Programm zusammen. Erst dieses Programm kann vom Prozessor (in Zusammenarbeit mit dem Betriebssystem) auch wirklich ausgeführt werden. Ergebnis: eine ausführbare Datei mit dem angegeben Namen oder a.out Einführung in die Praktische Informatik, Wintersemester 2017/

3 Aufgabe 2: Die Syntax der Präprozessor-Direktiven Erkläre kurz in eigenen Worten die Syntax der C-Präprozessor-Direktiven: Alle C-Präprozessor-Direktiven fangen mit einem Doppelkreuz # an, werden von einem der Schlüsselwörter include, define, ifdef, ifndef, else oder endif gefolgt und meistens mit einem Argument (Parameter) abgeschlossen. Zwischen dem Zeilenanfang, dem Doppelkreuz #, dem Schlüsselwort und den Argumenten dürfen beliebig viele Leerzeichen, Tabulatoren und Kommentare eingefügt werden. Ferner ist zu beachten, dass eine C-Präprozessor-Direktive in einer Zeile abgeschlossen wird, es sei denn, die Zeile wird mit einem Backslash \ abgeschlossen. Aufgabe 3: Die Präprozessor-Direktiven Erkläre jede Präprozessor-Direktive anhand je eines oder zweier Beispiele: 1. #include Mittels der Direktive #include kann man andere Dateien einbinden. Die #include wird dadurch vollständig durch den Inhalt der angegebenen Datei ersetzt. #include <stdio.h> #include "my.h" 2. #define // Einbinden der Standard Ein-/Ausgabe // Einbinden der eigenen Datei my.h Mittels #define kann man einfache Labels und ganze Makros definieren: #define NAME Cool // mein Name #define HiThere( x ) Hi Daddy x // meine Anrede HiThere( NAME ) Ergibt: Hi Daddy Cool 3. #ifdef... #else...#endif Die #ifdef-direktive erlaubt es, Dinge in Abhängigkeit anderer zu übersetzen. #ifdef my header #else #include "my-header.h" #endif In diesem Falle wird die Datei my header.h nur dann eingebunden, sofern das Label my header noch nicht definiert wurde. Zwischen #if, #else und #endif können beliebige Anweisungen stehen. In den.h-dateien werden oftmals Labels der obigen Form definiert, um das mehrmalige Ausführen eines #include zu vermeiden Wintersemester 2017/18, Einführung in die Praktische Informatik

4 Teil II: Quiz Aufgabe 1: Die Definition von Namen Gegeben sei folgendes Programmstück: 1 # define Tag Montag /* mein Arbeitstag */ 2 # define WOCHE 34 /* meine Urlaubswoche */ 3 4 # define Telefon # define FAX /* 0049 */ # define Ferien 8 9 # define MSG " heute geht es mir sehr gut " # define NAME1 ein name 12 # define NAME2 NAME # define ZWEI_ZEILEN ZEILE -1 /* das ist die erste Zeile 15 # define ZWEITE_ZEILE hier ist Zeile 2 */ # define ENDE " jetzt ist schluss " Finde heraus, welche Namen in obigem Programmstück definiert werden und welche Werte diese haben. Trage die definierten Namen nebst ihrer Werte in folgende Tabelle ein. Zeile Name Wert 1 Tag Montag 2 WOCHE 34 4 Telefon FAX Ferien 9 MSG "heute geht es mir sehr gut" 11 NAME1 ein name 12 NAME2 ein name 14 ZWEI ZEILEN ZEILE Hier wird kein Name definiert, denn diese Zeile ist auskommentiert 17 ENDE "jetzt ist schluss" Einführung in die Praktische Informatik, Wintersemester 2017/

5 Aufgabe 2: Definition von Makros Gegeben sei folgendes Programmstück: 1 // macro implemention of the formula : 2* x + 3* y 2 3 # define Formula_1 ( x, y ) 2 * x + 3 * y 4 # define Formula_2 ( x, y ) 2 * (x) + 3 * (y) 5 6 i = Formula_1 ( 1, 2 ); j = Formula_2 ( 1, 2 ); 7 i = Formula_1 ( 4, 2 ); j = Formula_2 ( 4, 2 ); 8 i = Formula_1 ( 1+2, 2+3 ); j = Formula_2 ( 1+2, 2+3 ); 9 i = Formula_1 ( 2+1, 3+2 ); j = Formula_2 ( 2+1, 3+2 ); Notiert in der folgenden Tabelle die Werte der Parameter x und y, das erwartete Ergebnis res = 2 * x + 3 * y, sowie die Resultate, die in den Variablen i und j abgelegt werden: Zeile x y res i j Zeile x y res i j Wie werden die Makros vom Präprozessor expandiert (ersetzt)? 6 i = 2 * * 2; j = 2 * (1) + 3 * (2) ; 7 i = 2 * * 2; j = 2 * (4) + 3 * (2) ; 8 i = 2 * * 2+3; j = 2 * ( 1+2) + 3 * ( 2+3) ; 9 i = 2 * * 3+2; j = 2 * ( 2+1) + 3 * ( 3+2) ; Überprüft eure Annahme durch Aufruf des Präprozessors. Nehmen wir an, ihr habt die paar Zeilen abgetippt und in der Datei quiz.c gespeichert. Dann einfach cpp quiz.c oder alternativ gcc -E quiz.c aufrufen; die Ergebnisse erscheinen dann direkt auf dem Bildschirm. Überprüft nochmals eure Ergebnisse, wie ihr sie in obiger Tabelle eingetragen habt. Erklärt, sofern sich Unterschiede auftun, was hierfür die Ursachen sind. Welche Schlussfolgerungen zieht ihr daraus für die Definition von Makros? Ursachen: In der Makro-Definition Formula 1 werden die beiden Parameter x und y nicht geklammert. Dadurch kann es sein, dass bei Übergabe von einfachen arithmetischen Ausdrücken die einzelnen Bestandteile aufgrund der Präzedenzregeln nicht so ausgewertet werden, wie man es erwartet. Problembehebung: Bei der Definition (der Implementierung) von Makros sollten die Parameter stets geklammert werden. So werden die Parameter immer zuerst ausgewertet und dann mit anderen Parametern verknüpft Wintersemester 2017/18, Einführung in die Praktische Informatik

6 Aufgabe 3: Einbinden von (Header-) Dateien Gegeben sei folgendes Programmstück: 1 # include <stdio.h> 2 # include <math.h> 3 4 # define C_TYPES <ctype.h> 5 # include C_TYPES 6 7 //# include < signal.h> Welche Dateien werden dadurch vom Präprozessor eingebunden? Folgende Systemdateien (aus /usr/include) werden eingebunden: stdio.h, math.h und ctype.h Die Datei signal.h wird nicht eingebunden, da diese Zeile auskommentiert ist. Aufgabe 4: Bedingtes Übersetzen Gegeben sei folgendes Programmstück: 1 # define A # ifdef A 4 # define N # ifdef B 6 # define N2 2 7 # else 8 # define N2 4 9 # endif 10 # else 11 # define N # define N # endif int i = N1 * N2; Welche Labels werden mit welchen Werten definiert, welchen Wert erhält die Variable i? Zeile Label Wert 1 A N1 17 Zeile Label Wert 8 N i 68 Einführung in die Praktische Informatik, Wintersemester 2017/

7 Teil III: Fehlersuche Aufgabe 1: Praktische Fehlersuche Das folgende Programm soll den Text Fehler beheben drei Mal ausgeben, jeweils eine Ausgabe pro Zeile. Diesmal war unser Starprogrammierer Dr. Bit-Byte zugange. Aber auch ihm sind einige Fehler unterlaufen. Finde und korrigiere diese. Zeige anschließend mittels einer Handsimulation, dass dein Programm korrekt arbeitet. 1 # define ANZAHL 3; 2 # define LOOP_CONDITION ( fehler >= 0) 3 # define MSG " Fehler " eheben " 4 5 int main ( int argc, char ** argv ); 6 { 7 int fehler = ANZAHL ; 8 do 9 printf ( MSG ); fehler = - 1; 10 while ( LOOP_CONDITION ); 11 return 0; 12 } Zeile Fehler Erläuterung Korrektur 0 #include fehlt Die Datei stdio.h wird nicht eingebunden. Wir brauchen sie aber, da wir etwas ausgeben wollen. #include <stdio.h> 1 Das Semikolon scheint zu viel zu sein. Aber in der Initialisierung in Zeile 7 ist es dennoch ok (aber unschön). 2 >= statt > Im Verbindung mit der do-while-schleife in den Zeilen 8 bis 10 ergeben sich vier statt drei Schleifendurchläufe. (fehler>0) 3 " statt b Hier scheint ein einfacher Tippfehler vorzuliegen. beheben 5 ; zu viel Bei der Funktionsdefinition darf am Ende kein ; stehen. Dieses ist nur bei Funktionsdeklarationen erlaubt, die dem Compiler den Namen und die Signatur der Funktion bekannt machen. argv ) 8/10 {} fehlen Da die do-while-schleife mehr als eine Anweisung ausführen soll, müssen sie durch {} geklammert werden. 3 {... } 9 fehler fehlt Da der Wert der Variablen fehler um eins reduziert werden soll, muss sie auch auf der rechten Seite auftauchen. fehler = fehler Wintersemester 2017/18, Einführung in die Praktische Informatik

8 Programm mit Korrekturen: 1 # include <stdio.h> 2 3 # define ANZAHL 3 4 # define LOOP_CONDITION ( fehler > 0) 5 # define MSG " Fehler beheben \ n" 6 7 int main ( int argc, char ** argv ) 8 { 9 int fehler = ANZAHL ; 10 do { 11 printf ( MSG ); 12 fehler = fehler - 1; 13 } while ( LOOP_CONDITION ); 14 return 0; 15 } Vor der Handsimulation ist es eine gute Übung, sich das Programm zu überlegen, das der Präprozessor aus der.c-datei generiert: Ergebnis nach Abarbeitung durch den Präprozessor: 7 int main ( int argc, char ** argv ) 8 { 9 int fehler = 3; 10 do { 11 printf ( " Fehler beheben \n" ); 12 fehler = fehler - 1; 13 } while ( ( fehler > 0) ); 14 return 0; 15 } Handsimulation: Zeile fehler printf() Fehler beheben Fehler beheben Fehler beheben Einführung in die Praktische Informatik, Wintersemester 2017/

9 Teil IV: Anwendungen Aufgabe 1: Fehler Finden und Eliminieren Es ist ganz normal, dass man beim Entwickeln und Eintippen eines Programms viele Tippfehler macht. Da der Compiler ein recht pingeliger Zeitgenosse ist, findet er viele dieser Tippfehler und gibt entsprechende Fehlermeldungen und Hinweise aus. Die Kunst besteht nun darin, dieser Ausgaben richtig zu deuten und die wirklichen Fehlerursachen zu finden. Um dies ein wenig zu üben, greifen wir nochmals das fehlerhafte Programm aus dem vorherigen Abschnitt (vorherige Seite) auf, wobei wir davon ausgehen, dass ihr sowieso alle Fehler gefunden habt. Arbeite nun wie folgt: Arbeitsanleitung: 1. Tippe das fehlerhafte Programm ab und speichere es in einer Datei deiner Wahl. 2. Übersetze das fehlerhafte Programm mittels gcc. 3. Fahre mit Arbeitsschritt 6 fort, falls der Compiler keine Fehlermeldung oder Warnung ausgegeben hat. 4. Lese die erste(n) Fehlermeldung(en) aufmerksam durch und korrigiere einen Fehler. 5. Gehe zurück zu Arbeitsschritt Starte das Programm und überprüfe, ob es korrekt arbeitet. 7. Sollte das Programm korrekt arbeiten gehe zu Schritt Korrigiere einen inhaltlichen Fehler (Semantikfehler). 9. Gehe zurück zu Arbeitsschritt Fertig! Hinweis: Diese Herangehensweise empfiehlt sich auch in Zukunft :-)! 17-8 Wintersemester 2017/18, Einführung in die Praktische Informatik

10 Aufgabe 2: Eigene Makro-Definitionen Definiere je ein Makro für die folgenden drei Formeln (Lösungen siehe unten): f(x) = 3x 2 + x/2 1 g(x, y) = x 2 3xy + y 2 h(x, y, z) = 2x 3 3y 2 + 2z Zu welchen Ergebnissen führen die folgenden drei Aufrufe (Einsetzen)? Aufruf Resultat Mathematik Resultat C-Programm f(1 + z) 3(1 + z) 2 + (1 + z)/2 1 3*(1 + z)*(1 + z) + (1 + z)/2-1 g(x, A + 1) x 2 3x(A + 1) + (A + 1) 2 x*x - 3*x*(A + 1) + (A + 1)*(A + 1) h(a, b, a + b) 2a 3 3b 2 + 2(a + b) 2*a*a*a - 3*b*b + 2*(a + b) Überprüft eure Makro-Definitionen durch Eintippen eines kleinen Programmstücks und Aufruf des Präprozessors (entweder mittels cpp <datei>.c oder gcc -E <datei>.c). Programmstückchen: 1 # define f(x) 3*( x)*(x) + (x)/2-1 2 # define g(x, y) (x)*(x) - 3*( x)*(y) + (y)*(y) 3 # define h(x, y, z) 2*( x)*(x)*(x) - 3*( y)*(y) + 2*( z) 4 5 f(1 + z) 6 g(x, A + 1) 7 h(a, b, a + b) Ausgabe des Präprozessors: 1 3*(1 + z) *(1 + z) + (1 + z)/2-1 2 (x)*(x) - 3*( x)*(a + 1) + (A + 1) *(A + 1) 3 2*( a)*(a)*(a) - 3*( b)*(b) + 2*( a + b) Einführung in die Praktische Informatik, Wintersemester 2017/

Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free()

Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free() Übungspaket 29 Dynamische Speicherverwaltung malloc() und free() Übungsziele Skript In diesem Übungspaket üben wir das dynamische Alloziieren 1. und Freigeben von Speicherbereichen 2. von Zeichenketten

Mehr

Übungspaket 23 Mehrdimensionale Arrays

Übungspaket 23 Mehrdimensionale Arrays Übungspaket 23 Mehrdimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung mehrdimensionaler Arrays Kapitel: 49 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:

Mehr

Übungspaket 19 Programmieren eigener Funktionen

Übungspaket 19 Programmieren eigener Funktionen Übungspaket 19 Programmieren eigener Funktionen Übungsziele: Skript: 1. Implementierung und Kodierung eigener Funktionen 2. Rekapitulation des Stack-Frames 3. Parameterübergabe mittels Stack und Stack-Frame

Mehr

Übungspaket 13 Der Datentyp double

Übungspaket 13 Der Datentyp double Übungspaket 13 Der Datentyp double Übungsziele: Skript: 1. Umgang mit dem Datentyp double, 2. Deklarationen von double-variablen, 3. double-konstanten 4. und double-rechenoperationen. Kapitel: 32 Semester:

Mehr

Vorlesung Informatik I

Vorlesung Informatik I Vorlesung Informatik I Universität Augsburg Wintersemester 2010/2011 Prof. Dr. Robert Lorenz Lehrprofessur für Informatik Programmieren in C Der Compilierungsprozess 1 Aufbau eines C-Programms 1. Direktiven

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

Objektorientierung: Klassen und Objekte

Objektorientierung: Klassen und Objekte Objektorientierung: Klassen und Objekte Klasse: Beschreibung für eine Menge von Objekten Schablone, Bauplan abstrakte Form Objekt: Instanz einer Klasse konkreter Inhalt (Werte) Klassen bestehen aus Attributen

Mehr

2Binden 3. und Bibliotheken

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

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

Grundlagen der Programmentwicklung

Grundlagen der Programmentwicklung Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Über C++ Über C++ C++ ist eine in der Industrie

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

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens

Einleitung 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

Mehr

GI Vektoren

GI Vektoren Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung

Mehr

Compiler und Präprozessor (1) Erstellen eines Projektes

Compiler und Präprozessor (1) Erstellen eines Projektes Compiler und Präprozessor (1) Erstellen eines Projektes Projekte bestehen meist aus mehreren Dateien, z.b. Quelldateien, Funktionssammlungen in Bibliotheken Zur Definition eines Projektes sind folgende

Mehr

GI Grundlagen der Informatik (GI)

GI Grundlagen der Informatik (GI) Grundlagen der Informatik (GI) 1 / 15 Gi_Vorlesung_01_2016 Lehrkräfte: Grundlagen der Informatik (GI) 1.) Prof. Dr.-Ing. Martin Pollakowski Raum B2.1.04, Tel.: - 226, E-Mail: martin.pollakowski@w-hs.de

Mehr

Grundlagen. Kapitel 1

Grundlagen. Kapitel 1 Grundlagen Dieses Kapitel umfasst grundlegende Fragen und Aufgaben zur Erstellung von C++-Programmen. Hierzu zählen auch das Inkludieren von Header-Dateien Eine Header-Datei beinhaltet Informationen, die

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

Übungspaket 24 Zeichenketten

Übungspaket 24 Zeichenketten Übungspaket 4 Zeichenketten Übungsziele: Skript: 1. Verständnis über die interne Repräsentation von Zeichenketten. Arbeiten mit Zeichenketten 3. Definition konstanter Zeichenketten 4. Verwendung diverser

Mehr

Übersicht. C Modularisierung. Präprozessor, Compiler, Linker. Präprozessor, Compiler, Linker. Präprozessor, Compiler und und Linker Linker

Übersicht. C Modularisierung. Präprozessor, Compiler, Linker. Präprozessor, Compiler, Linker. Präprozessor, Compiler und und Linker Linker Übersicht Präprozessor, Compiler und und Linker Linker Befehle des Präprozessors C Modularisierung Bedingte Kompilierung Modulare Programmierung Prinzipien der Modularisierung 1 2 Präprozessor, Compiler,

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

Propädeutikum. Dipl.-Inf. Frank Güttler

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

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

Algorithmus: Kochrezept

Algorithmus: Kochrezept Algorithmus: Kochrezept Ziel: Menü mit drei Gängen für 4 Personen Grundlegende Spezifikation: 1. Vorspeise: Badische Flädlesuppe 2. Hauptgericht: Überbackene Schinkenröllchen mit Spargel 3. Dessert: Vanilleeis

Mehr

C/C++ Programmierung

C/C++ Programmierung 1 C/C++ Programmierung Grundlagen: Der Präprozessor Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Der Präprozessor

Mehr

Modellierung und Programmierung

Modellierung und Programmierung Modellierung und Programmierung Dr. Martin Riplinger 16.1.2013 IAM Institut für Angewandte Mathematik C-Präprozessor: Einfügungen Standard-Header #include Fügt den Text der Headerdatei

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

Welche Informatik-Kenntnisse bringen Sie mit?

Welche 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

Mehr

Kompaktkurs C-Programmierung

Kompaktkurs C-Programmierung Kompaktkurs C-Programmierung 26. 03. 2007 Franz Schenk Organisatorisches Vorlesung Accountvergabe Skriptverkauf Übungen: zwei Blöcke (13:15-14:45 / 14:45-16:15) Gruppenübung Rechnerübung Klausur Ferien:

Mehr

Praxisorientierte Einführung in C++ Lektion: "Die Compiler-Chain (Vom Quellcode zum ausführbaren Programm)"

Praxisorientierte Einführung in C++ Lektion: Die Compiler-Chain (Vom Quellcode zum ausführbaren Programm) Praxisorientierte Einführung in C++ Lektion: "Die Compiler-Chain (Vom Quellcode zum ausführbaren Programm)" Christof Elbrechter Neuroinformatics Group, CITEC April 24, 2014 Christof Elbrechter Praxisorientierte

Mehr

Schleifenanweisungen

Schleifenanweisungen Schleifenanweisungen Bisher: sequentielle Abarbeitung von Befehlen (von oben nach unten) Nun: Befehle mehrfach ausführen (= Programmschleife): for-anweisung - wenn feststeht, wie oft z.b.: eine Berechnung

Mehr

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C Einfache Programmstrukturen in C 4-1 Welche einfache Programmstrukturen sind zu unterscheiden? Arithmetische und logische Ausdrücke und Zuweisungen Verzweigungen Unvollständige bedingte Anweisungen Vollständige

Mehr

Übung 9. Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9

Übung 9. Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9 Informatik I 2 Übung 9 Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9 Quellcode Strukturieren Wenn alle Funktionen in einer Datei zusammengefasst sind wird es schnell unübersichtlich Mehrere

Mehr

FH München, FB 03 FA WS 06/07. Ingenieurinformatik. Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz

FH München, FB 03 FA WS 06/07. Ingenieurinformatik. Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz FH München, FB 03 FA WS 06/07 Ingenieurinformatik Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz Zulassung geprüft vom Aufgabensteller: Teil I Aufg. 2 Aufg. 3 Aufg. 4 Aufg. 5 Summe Note Aufgabensteller:

Mehr

Klausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 13. April 2007, 11.15-13.00 Uhr Bearbeitungszeit: 105 Minuten

Klausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 13. April 2007, 11.15-13.00 Uhr Bearbeitungszeit: 105 Minuten Klausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 13. April 2007, 11.15-13.00 Uhr Bearbeitungszeit: 105 Minuten Vorname: Nachname: Matrikelnummer: Legen Sie zu Beginn Ihren Studentenausweis

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

Programmierung mit C Zeiger

Programmierung 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

Mehr

Präzedenz von Operatoren

Präzedenz von Operatoren Präzedenz von Operatoren SWE-30 Die Präzedenz von Operatoren bestimmt die Struktur von Ausdrücken. Ein Operator höherer Präzedenz bindet die Operanden stärker als ein Operator geringerer Präzedenz. Mit

Mehr

Nuetzlicher Kleinkram

Nuetzlicher Kleinkram Ein paar Hilfestellungen zur Arbeit unter Linux/Unix FB Physik Freie Universität Berlin Computerphysik WS 2007/2008 1 2 3 user@ host :~ > gcc -o programm quelltext. c macht gleich mehrere Dinge auf einmal

Mehr

Einführung in die Programmierung Wintersemester 2011/12

Einführung in die Programmierung Wintersemester 2011/12 Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Kontrollstrukturen Inhalt Wiederholungen - while

Mehr

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen. Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe

Mehr

Microcontroller Praktikum SS2010 Dipl. Ing. R. Reisch

Microcontroller Praktikum SS2010 Dipl. Ing. R. Reisch Microcontroller Praktikum SS2010 Dipl. Ing. R. Reisch Die wichtigsten Unterlagen/Tools Für das Praktikum Unterlagen/Kenntnisse/Tools wichtig: Datenblatt des AT80USB1287 µc Schaltplan des im Praktikum verwendeten

Mehr

Grundlagen der Informatik - 6. Praktikum

Grundlagen der Informatik - 6. Praktikum Grundlagen der Informatik - 6. Praktikum In diesem Praktikum soll es neben der Anwendung von Funktionsdefinitionen auch um einfache Prinzipien der verteilten Quelltext-Strukturierung gehen. Diese spielt

Mehr

Computergrundlagen Programmieren in C

Computergrundlagen Programmieren in C Die Compilersprache C Computergrundlagen Programmieren in C Axel Arnold Institut für Computerphysik Universität Stuttgart Wintersemester 2010/11 Geschichte D. M. Ritchie, *1941 1971-73: Entwickelt von

Mehr

Zeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch

Zeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch darstellung Arbeiten mit darstellung werden im Computer durch (kleine) Zahlen dargestellt in C können im Datentyp char gespeichert werden, dieser umfasst ein Byte und gilt als Ganzzahltyp darstellung Arbeiten

Mehr

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 1

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 1 Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 1 SS 2016

Mehr

Nachname:... Vorname:... MatrNr.:... Klausur PR2. Erstellen Sie eine Struktur für eine Komplexe Zahl mit den Elementen real und imag vom Typ double.

Nachname:... Vorname:... MatrNr.:... Klausur PR2. Erstellen Sie eine Struktur für eine Komplexe Zahl mit den Elementen real und imag vom Typ double. Nachname:... Vorname:... MatrNr.:... Klausur PR2 HAW-Hamburg, Fakultät Technik und Informatik, Department Informations- und Elektrotechnik Dr. Robert Heß, 4.7.2008 Bearbeitungsdauer: 90 min Hilfsmittel:

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

ATM18-Projekt Arbeiten mit CodeVisionAVR C-Compiler Teil 02 - Aufbau eines C-Projektes

ATM18-Projekt Arbeiten mit CodeVisionAVR C-Compiler Teil 02 - Aufbau eines C-Projektes Teil 01 - Einführung 1 Eine Einführung in C 1.1 Warum C? 1.2 Wie entstand C? 1.3 Der AVR-Mikrocontroller in einem eingebetteten System 1.4 1.5 Editieren von Quell-Dateien 2 Was ist ein C-Projekt? 2.1 Erzeugen

Mehr

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Einführung in den Einsatz von Objekt-Orientierung mit C++ I Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen

Mehr

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A

Schachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A 2.4.6. Kontrollstrukturen if-anweisung: Bedingte Ausführung (Verzweigung) 2 Varianten: if (Bedingung) Anweisung (Anweisung = einzelne Anweisung oder Block) Bedeutung: die Anweisung wird nur ausgeführt,

Mehr

Programmiersprachen Einführung in C

Programmiersprachen Einführung in C Programmiersprachen Einführung in C Teil 1: Von der Maschinensprache zu C Prof. Dr. Maschinensprache: MIPS R2000 Was bewirkt folgendes Programm: 00100111101111011111111111100000 10101111101111110000000000010100

Mehr

Inhaltsverzeichnis Ubersetzung und Pr aprozessor

Inhaltsverzeichnis Ubersetzung und Pr aprozessor Inhaltsverzeichnis 4 Übersetzung und Präprozessor 2 4.1 Phasen der Übersetzung........................... 2 4.1.1 Die Präprozessorphase....................... 2 4.1.2 Die Kompilierungsphase......................

Mehr

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 4

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 4 Fakultät Verkehrswissenschaften Friedrich List, Professur für Verkehrsbetriebslehre und Logistik Modul Entscheidungsunterstützung in der Logistik Einführung in die Programmierung mit C++ Übung 4 SS 2016

Mehr

Grundlagen der Informatik Vorlesungsskript

Grundlagen der Informatik Vorlesungsskript Grundlagen der Informatik Vorlesungsskript Prof. Dr. T. Gervens, Prof. Dr.-Ing. B. Lang, Prof. Dr. F.M. Thiesing, Prof. Dr.-Ing. C. Westerkamp, Prof. Dr.-Ing. J. Wübbelmann 5 FUNKTIONEN 2 5.1 FUNKTIONSDEFINITION,

Mehr

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff Programmieren in C Eine Einführung in die Programmiersprache C Prof. Dr. Nikolaus Wulff Der Anfänger sollte nicht entmutigt sein, wenn er nicht die Voraussetzungen besitzt, um die Voraussetzungen zu verstehen...

Mehr

Ingenieurinformatik Diplom-FA (Teil 2, C-Programmierung)

Ingenieurinformatik Diplom-FA (Teil 2, C-Programmierung) Hochschule München, FK 03 SS 2014 Ingenieurinformatik Diplom-FA (Teil 2, C-Programmierung) Zulassung geprüft: (Grundlagenteil) Die Prüfung ist nur dann gültig, wenn Sie die erforderliche Zulassungsvoraussetzung

Mehr

Grundlagen von C. Ausarbeitung von Jonas Gresens

Grundlagen von C. Ausarbeitung von Jonas Gresens Grundlagen von C Ausarbeitung von Jonas Gresens 1 Allgemein Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und

Mehr

Variablen und Datentypen

Variablen und Datentypen Programmieren mit Python Modul 1 Variablen und Datentypen Selbstständiger Teil Inhaltsverzeichnis 1 Überblick 3 2 Teil A: Geldautomat 3 2.1 Einführung.................................. 3 2.2 Aufgabenstellung...............................

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

C++ Kurs Teil 1. Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen

C++ Kurs Teil 1. Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen C++ Kurs Teil 1 "hello world" Vergleich von C++ und Java Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen C++ Spezialitäten Schlüsselwort 'const', Copy Constructor,

Mehr

Praktikum Ingenieurinformatik. Termin 4. Funktionen, numerische Integration

Praktikum Ingenieurinformatik. Termin 4. Funktionen, numerische Integration Praktikum Ingenieurinformatik Termin 4 Funktionen, numerische Integration 1 Praktikum Ingenieurinformatik Termin 4 1. Funktionen. Numerische Integration, Trapezverfahren 1.1. Funktionen Eine Funktion ist

Mehr

Übung zu Grundlagen der Betriebssysteme. Einführungsveranstaltung 16.10.2012

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

Mehr

Praktikum Ingenieurinformatik. Termin 2. Mein erstes C-Programm

Praktikum Ingenieurinformatik. Termin 2. Mein erstes C-Programm Praktikum Ingenieurinformatik Termin 2 Mein erstes C-Programm 1 1. Einleitung 2. Erstes C-Programm 3. Fehler ins Programm einbauen 4. Zweites und drittes C-Programm 5. Installation der Visual C++ 2010

Mehr

Informatik I (D-MAVT)

Informatik I (D-MAVT) Informatik I (D-MAVT) Übungsstunde 1 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich kurze Stunden mit Stoffueberblick -> mehr Zeit fuer Fragen This semester s menu... Imperative Programmierung

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

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 2 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Übungen zu C++ Kapitel 1

Übungen zu C++ Kapitel 1 Übungen zu C++ Kapitel 1 Aufgabe 1 Ergänze den Text. a) Die sechs logischen Einheiten eines Computers sind Eingabe-Einheit, Ausgabe-Einheit, RAM, ALU, CPU, Plattenspeicher. b) Die Programme, welche Hochsprachenprogramme

Mehr

Programmentwicklung mit C++ (unter Unix/Linux)

Programmentwicklung mit C++ (unter Unix/Linux) Programmentwicklung mit C++ (unter Unix/Linux) Erste Schritte Der gcc - Compiler & Linker Organisation des Source-Codes & Libraries Automatische Programmgenerierung: Make Birgit Möller & Denis Williams

Mehr

Praktikum ASP Blatt 2 6. LEHRSTUHL FÜR RECHNERTECHNIK UND RECHNERORGANISATION Aspekte der systemnahen Programmierung bei der Spieleentwicklung

Praktikum ASP Blatt 2 6. LEHRSTUHL FÜR RECHNERTECHNIK UND RECHNERORGANISATION Aspekte der systemnahen Programmierung bei der Spieleentwicklung Praktikum ASP Blatt 2 6 LEHRSTUHL FÜR RECHNERTECHNIK UND RECHNERORGANISATION Aspekte der systemnahen Programmierung bei der Spieleentwicklung T1 Organisatorisches T1.1 Handhabung der Boards 26.10.2015-30.10.2015

Mehr

Programmieren in C. Burkhard Bunk 6.3.2013

Programmieren in C. Burkhard Bunk 6.3.2013 Programmieren in C Burkhard Bunk 6.3.2013 1 C Die Programmiersprache C wurde Anfang der 70er Jahre von Brian Kernighan und Dennis Ritchie bei Bell Labs (später AT&T) entwickelt und 1989 (in etwas weiter

Mehr

Übung 1 - Betriebssysteme I

Übung 1 - Betriebssysteme I Prof. Dr. Th. Letschert FB MNI 13. März 2002 Aufgabe 0: Basiswissen Rechnerarchitektur: Übung 1 - Betriebssysteme I Aus welchen Komponenten besteht ein Rechner mit Von-Neumann Architektur? Was sind Bits

Mehr

Einleitung. Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Kurzeinführung in C/C++

Einleitung. Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Kurzeinführung in C/C++ Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ 1 Einleitung Vorteile von Java: gut strukturiert mit hohem Funktionsumfang (mächtige Standardbibliothek) weitestgehend

Mehr

Kurze Einführung in die Programmiersprache C++ und in Root

Kurze Einführung in die Programmiersprache C++ und in Root Kurze Einführung in die Programmiersprache C++ und in Root Statistik, Datenanalyse und Simulation; 31.10.2006 Inhalt 1 Einführung in die Programmiersprache C++ Allgemeines Variablen Funktionen 2 1 Einführung

Mehr

RO-Tutorien 3 / 6 / 12

RO-Tutorien 3 / 6 / 12 RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 2 AM 06./07.05.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Elementare Datentypen in C++

Elementare Datentypen in C++ Elementare Datentypen in C++ bool signed/unsigned char signed/unsigned short int signed/unsigned int signed/unsigned long int (signed/unsigned long long int) float double long double void enum char Der

Mehr

CEN1112 Labor Software-Entwicklung

CEN1112 Labor Software-Entwicklung Dipl.-Ing. (FH) Peter Bitterlich M.Sc. Joachim Storz Fakultät für Technik STUDIENGANG MEDIZINTECHNIK CEN1112 Labor Software-Entwicklung Vorbereitungsaufgaben zu Versuch 3 C-Programmierung Vertiefung Wintersemester

Mehr

Programmieren in C/C++ und MATLAB

Programmieren in C/C++ und MATLAB Programmieren in C/C++ und MATLAB Sven Willert Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU 4-1 Übung 1) Schreiben Sie ein Programm, das die Fläche unter einer Parabel, also das Integral

Mehr

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then"

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort then S. d. I.: Programieren in C Folie 4-1 4 Anweisungen 4.1 if-anweisung 1) if (Ausdruck) 2) if (Ausdruck) } else im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then" es wird nur der numerische Wert

Mehr

Kapitel 1. Grundlagen

Kapitel 1. Grundlagen Grundlagen Dieses Kapitel beschreibt die nötigen Schritte zur Erstellung eines lauffähigen C- Programms. Diese Schritte können Sie auf Ihrem System anhand von einführenden Beispielen nachvollziehen. Die

Mehr

Grundlagen. Wie sind PHP-Dateien aufgebaut?

Grundlagen. Wie sind PHP-Dateien aufgebaut? Grundlagen PHP und MySQL PHP läuft serverseitig!! Wie sind PHP-Dateien aufgebaut? PHP-Dateien fangen mit an und hören mit auf. Sie müssen die Dateiendung *.php haben echo "So könnte eine Datei aussehen\n";

Mehr

Bei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife

Bei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife 303 Bei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife durchgeführt wird. 304 305 for-schleifen sind in Aktivitätsdiagrammen

Mehr

Programmierung mit NQC: Kommunikation zwischen zwei RCX

Programmierung mit NQC: Kommunikation zwischen zwei RCX Programmierung mit NQC: Kommunikation zwischen zwei RCX Teil : Grundlagen Martin Schmidt 7. Februar 24 Teil : Grundlagen Zahlensysteme : Binärsystem Ziffern: und Bit = binary digit (Binärziffer) Einfach

Mehr

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration Algorithmen & Programmierung Steuerstrukturen im Detail Selektion und Iteration Selektion Selektion Vollständige einfache Selektion Wir kennen schon eine Möglichkeit, Selektionen in C zu formulieren: if

Mehr

Erste Schritte der Programmierung in C

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

Mehr

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6 Andre Droschinsky Ingo Schulz Dortmund, den 0. Dezember 2015 Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6 Block rot Es können 4 + 1 Punkte erreicht werden. Abgabedatum: 10. Dezember 2015 2:59 Uhr Hinweise

Mehr

C- Kurs 06 Übersetzung & Module

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

Mehr

Programmieren. Wie entsteht ein Programm

Programmieren. Wie entsteht ein Programm Wie entsteht ein Programm 1/9 1. Schritt: Programmentwurf Der wichtigste Teil beim Erstellen eines Programms ist der Programmentwurf. Dabei wird das vorgegebene Problem analysiert, es wird ermittelt, welche

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

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

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff Programmieren in C Felder, Schleifen und Fließkommaarithmetik Prof. Dr. Nikolaus Wulff Addition von Zahlen 1 2 3 4 5 #include int main() { int x,y,z,sum; x = 1; y = 2; z = 4; sum = x + y + z;

Mehr

Ingenieurinformatik (FK 03) Übung 4

Ingenieurinformatik (FK 03) Übung 4 FG TECHNISCHE INFORMATIK I II U41 00 TA 03 Ingenieurinformatik (FK 03) Übung 4 VORBEREITUNG Erstellen Sie das Struktogramm der Funktion trapez für die Übung 4b mithilfe des Programms Structorizer. ÜBUNG

Mehr

C-Propädeutikum Funktionen

C-Propädeutikum Funktionen C-Propädeutikum Funktionen Dipl.-Inf. Stefan Freitag freitag@uni-leipzig.de Universitätsrechenzentrum Universitätsbibliothek Universität Leipzig basiert auf den Originalfolien von Jörn Hoffmann Wiederholung

Mehr

Informatik I. Übung 2 : Programmieren in Eclipse. 5. März Daniel Hentzen

Informatik 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

Mehr

Programm in Source-Files aufteilen Erhöht Lesbarkeit Aufteilung orientier t sich an logischer Struktur des Programms Getrenntes Übersetzen möglich:

Programm in Source-Files aufteilen Erhöht Lesbarkeit Aufteilung orientier t sich an logischer Struktur des Programms Getrenntes Übersetzen möglich: Source-Files Programm == Source-File nicht sinnvoll Unübersichtlich Bei jeder kleinen Änderung gesamtes File neu übersetzen Übersetzen dauert lange Keine Gruppenarbeit möglich Programm in Source-Files

Mehr

Teil IV. Grundlagen der Programmierung

Teil IV. Grundlagen der Programmierung Teil IV Grundlagen der Programmierung Überblick 1 Einleitung zu C und C++ Aufbau von Programmen/Dateien Steueranweisungen Funktionen Mehr zu Datentypen: Felder, Zeiger und Strukturen Arbeit mit Dateien

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

Praktikum Ingenieurinformatik. Termin 6. Mehrdimensionale Felder, Kurvendarstellung mit Excel

Praktikum Ingenieurinformatik. Termin 6. Mehrdimensionale Felder, Kurvendarstellung mit Excel Praktikum Ingenieurinformatik Termin 6 Mehrdimensionale Felder, Kurvendarstellung mit Excel 1 Praktikum Ingenieurinformatik Termin 6 1. Mehrdimensionale Felder 2. Kurvendarstellung mit Excel 3. Zusatzaufgaben

Mehr

Prüfungsvorleistung Datenstrukturen

Prüfungsvorleistung Datenstrukturen Prüfungsvorleistung Datenstrukturen Allgemeine Hinweise Als Prüfungsvorleistung für die Klausur Datenstrukturen müssen Hausaufgaben gelöst werden. Jede Hausaufgabe wird mit einer bestimmten Anzahl an Punkten

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