Grundlagen der Informatik
|
|
- Brit Simen
- vor 7 Jahren
- Abrufe
Transkript
1 Grundlagen der Informatik Vorlesung Strukturierung von C-Programmen Prof. Dr.-Ing. Thomas Wiedemann Fachgebiet Informatik / Mathematik Überblick zur Vorlesung Einführung und Motivation Aufteilung komplexer Programme in Module Funktionen Bibliotheken allgemeine Arten der Wertübergabe Strukturierung in C Präprozessoranweisungen Grundlagen der Informatik I T.Wiedemann- Seite 2 1
2 Einführung und Motivation Moderne Anwendungen umfassen bis zu einige Millionen Quellcodezeilen sind in der Regel nicht als lineare Anweisungsfolge darstellbar, sondern erfordern mehrfache Ausführungen mit wechselnden Parametern müssen von mehreren Programmierern entwickelt und gepflegt werden Resultierende Anforderungen Zerlegung großer Programme in überschaubare Einheiten möglichst häufige Wiederverwendung der Einheiten möglichst effiziente Übersetzung großer Quellcodemengen bei nur kleinen Änderungen Grundlagen der Informatik I T.Wiedemann- Seite 3 Allgemeine Optionen der Zerlegung von Anwendungen innerhalb eines Quelltextes durch Gliederung in Funktionen und Prozeduren anwendungsorientierte Zusammenfassung ähnlicher Funktionen in Funktionsbibliotheken innerhalb einer getrennten Quellcodedatei (referenziert durch Header- Dateien *.h) fertig übersetzte Programmteile (unter Windows Dynamic Link Library "DLL") mit der Möglichkeit des Aufrufes von außen Kommunikation zwischen eigenständigen Programmen (aktuelle Entwicklung! Anwendungsserver ) main() main().... func1() func1() aaaa aaaa ccc ccc main() main() func1(10); func1(10); extfunc(); extfunc(); dllfunc(); dllfunc(); func1(20); func1(20); extfunc() extfunc() ddddd; ddddd; dllfunc() ddlll; Grundlagen der Informatik I T.Wiedemann- Seite 4 2
3 Funktionen und Prozeduren analog zur Mathematik erhält eine Rechenvorschrift oder ein Algorithmus einen Namen und kann mit verschiedenen Parametern aufgerufen werden : Mathematik Informatik y=f(x) = sin(x) y = sin(0,3) y = sin(180) Name der Funktion Eine Funktion liefert genau EINEN WERT ZURÜCK! Eine Prozedur arbeitet analog wie eine Funktion, GIBT ABER NICHTS ZURÜCK! Informatik (kein Pendant in der Mathematik) Motor_einschalten(Motornummer, Zeitdauer) Name der Prozedur Aus technischer Sicht handelt es sich bei Funktionen und Prozeduren um Unterprogramme, d.h. um untergeordnete, von außen aufrufbare Programmteile. Grundlagen der Informatik I T.Wiedemann- Seite 5 Arbeitsweise des Prozessors beim Aufruf von Unterprogrammen da unbekannt ist, wie oft (auch rekursiv) ein Unterprogramm aufgerufen wird, existiert in allen Prozessoren ein spezieller Speicherbeich: der STACK (englisch Stapelspeicher ) 233, 444, 1 PUSH 1, 444, der Stack arbeitet nach dem LIFO-Prinzip: Last in -First out es gibt nur zwei Stackbefehle : PUSH legt Daten auf den 1 Stack, POP holt die obersten Daten wieder vom Stack Vorgehensweise des Prozessors beim Aufruf von Unterprogrammen Prozessor legt zuerst alle Aufrufparameter auf den Stack als letztes kommt die aktuell ausgeführte Adresse als Zahlenwert auf den Stack (= Rücksprungadresse) Prozessor springt zur Adresse des Unterprogramms Unterprogramm arbeitet und Auswertung der Parameter der Werte auf dem Stack und legt Ergebnis am Ende ebenfalls auf den Stack der Rücksprungbefehl am Ende des Unterprogramms holt die Rücksprungadresse wieder von Stack und springt dieser wieder an Grundlagen der Informatik I T.Wiedemann- Seite 6 3
4 Werteübergabe an Funktionen Probleme: Funktionen werden von verschiedenen Stellen aufgerufen (Verwendung fester, globaler Übergabeadressen sehr unschön und gefährlich - potentielle Konflikte zwischen den verschiedenen Aufrufern) mehrfacher, rekursiver Aufruf der gleichen Funktion möglich bis auf einfache, mathematische Funktionen reichen die Rechenregister des Prozessors zur Werteübergabe nicht aus Lösung: Verwendung des Rechnerstacks als generellen Übergabebereich STACK = Stapelspeicher nach dem LIFO-Prinzip - der zuletzt mit PUSH aufgelegte Werte geht zuerst mit POP wieder runter Stack ist einfach realisiert als Pointer auf einen Speicherbereich, welcher bei PUSH runter und bei POP hochgezählt wird (Speicherüberlauf oder Verletzung fremder Speicherbereiche möglich -> STACK OVERFLOW ERROR, Einstellung der Stackgröße über Compileroption IST IHR JOB!! - bei Problemen vergrößern!!) Merke:Neben den Funktionsübergabewerten wird auch die Adresse des aufrufenden Programmes auf den Stack gelegt. Nach Beendigung der Funktion wird dieser Wert wieder in den Programmzeiger des Prozessors geladen. Eine irrtümliche Manipulation dieses Wertes ist meist tödlich! Grundlagen der Informatik I T.Wiedemann- Seite 7 Parameterübergabe by value / by reference Parameterübergabe als Wert (engl. by value) : Wert der Variable wird direkt auf den Stack kopiert schnell (Stackspeicher ist im Prozessor) Originalwert bleibt erhalten!!! Gut: keine Nebeneffekte nach Übergabe Negativ: keine Wertrückgabe über den Parameter möglich (nur über Funktionswert) Parameterübergabe mittels Adresszeiger (engl. by reference) : die Adresse der Variable wird auf den Stack gelegt langsamer, Prozessor muß Wert erst aus Speicher holen Originalwert kann über Adresszugriff verändert werden!!! Gut: Wertrückgabe möglich Negativ: gefährliche Nebeneffekte möglich Prozessor Grundlagen der Informatik I T.Wiedemann- Seite 8 int plus(int a,int b) Stackpointer vor Speicheradresse Wert 71 72(a) (b) hi Stack nach Ausführung 0 55 int plus(int *a,int *b) Stackpointer Bei Ausführung müssen die Werte aus dem Speicher geholt werden! Speicheradresse Adresse 71 72(a) (b) i *s
5 Definition und Verwendung von Funktionen in C WICHTIG: Eine Funktion muß zuerst deklariert werden mit Angabe des Rückgabetyps, des Funktionsnamens und der Parameter mit Typangaben, bevor sie verwendet (aufgerufen) werden kann: int addierezahlen(int a, int b) ; // Deklaration ohne Implementierung. int addierezahlen(int a, int b) return( a+b); Implementierung Der Aufruf erfolgt dann nur unter Angabe der Parameter OHNE Typangabe! y = addierezahlen(1, summe); // Aufruf Die Rückgabe von Werten an die aufrufende Funktion erfolgt mit return( ). Der Name der Funktion enthält dann der Wert. Return( ) legt den Rückgabewert auf den Stack und kehrt in das aufrufende Programm zurück. Falls kein Rückgabewert gewünscht wird, ist void als Typ des Rückgabewertes anzugeben. Grundlagen der Informatik I T.Wiedemann- Seite 9 Definition und Verwendung von Funktionen in C - II Regeln und Hinweise: Der Compiler prüft sehr genau, ob die Typen der Parameter (hier der Typ von Summe) mit dem "angekündigten" Typ aus der Deklaration übereinstimmen (hier int). int addierezahlen(int a, int b) return( a+b); Implementierung. y = addierezahlen(1, summe); // Aufruf Die Zuordnung von aufrufenden Variablen zu den Funktionsparametern ergibt sich allein aus der Reihenfolge. Falls dabei keine Übereinstimmung existiert und auch keine Konvertierung möglich ist, kommt es zum Fehler: "TYPE MISMATCH" (Typenkonflikt beim Aufruf) Falls die Anzahl der Parameter nicht übereinstimmt kommt es zum Fehler "To few (much) parameters" Grundlagen der Informatik I T.Wiedemann- Seite 10 5
6 Typische Gliederung von C-Programmen mit Funktionen // Demoprogramm #include <conio.h> #include <stdio.h> Programmkopf mit Kommentar // Einbinden von Funktionsbibliotheken int addiere(int a,int b) int c; c= a+b; b=2; return(c); void main() int x,y, z; x = 20; y= 22; z = addiere(x,y); printf("summe= %i",z) ; Kopf der Funktion mit Parameterdeklaration Start des Funktionsrumpfes Deklaration von Variablen Anweisungen (einfache Zuweisungen) Rückgabe des Ergebniswertes mit return Hauptfunktion (es muß genau ein main() pro Programm geben!!!) Aufruf der Funktion Ausgabe auf den Bildschirm Y bleibt ERHALTEN!!!! Grundlagen der Informatik I T.Wiedemann- Seite 11 Funktionsaufruf bei CALL by REFERENCE // Demoprogramm #include <conio.h> #include <stdio.h> int addiere(int *a,int *b) int c; c= *a+*b; *b= 2; return(c); void main() int x,y, z; x = 20; y=35; z = addiere(&x,&y); printf("summe= %i",z) ; Programmkopf mit Kommentar // Einbinden von Funktionsbibliotheken Kopf der Funktion mit Parameterdeklaration Start des Funktionsrumpfes Deklaration von Variablen Berechnung über Adresszugriff Rückgabe des Ergebniswertes Hauptfunktion Aufruf der Funktion Ausgabe auf den Bildschirm (in der Regel nur im Hauptprogramm) Funktionen sollten nicht oder nur im Fehlerfall etwas ausgeben Y wird zu 2!!!!!! Grundlagen der Informatik I T.Wiedemann- Seite 12 6
7 Arbeit mit Funktionsprototypen // Demoprogramm #include <conio.h> #include <stdio.h> int addiere(int a,int b); void main() int x,y, z; x = 20; z = addiere(x,y); printf("summe= %i",z) ; int addiere(int a,int b) intc; c= a+b; return(c); Programmkopf mit Kommentar // Einbinden von Funktionsbibliotheken Nur Kopf der Funktion mit Parameterdeklaration als Prototyp (damit kann der Compiler die Funktion bereits in Aufrufen verwenden) Es können die Parameternamen bei der Prototypdeklaration auch weggelassen werden: int addiere(int,int ); Aufruf der Funktion in main() Ausgabe auf den Bildschirm Start der Funktionsimplementierung Hier müssen die Parameternamen angeben werden! Grundlagen der Informatik I T.Wiedemann- Seite 13 Wiederholung: Übersetzung von C-Programmen Algorithmus / Struktogramm Programm schreiben Quelltextprogramm (Sourcecode) Übersetzen C-Präprozessor C-Compiler Der Präprozessor führt eine erste Analyse des Quelltextes aus und dient für vorbereitende Wandlungen, Einbinden externer Bibliotheken mit #include oder bedingte Übersetzungen. Ergebnis ist u.u. ein modifiziertes Quelltextprogramm. Der Compiler analysiert den Quelltext und erzeugt einen Zwischencode (Objektcode), welcher schon relativ nahe am Maschinencode orientiert ist. Vorhandene Bibliotheken C-Linker Maschinenprogramm Der Linker verbindet den erzeugten Objektcode des Programms mit bereits vorliegenden Objektcode der Bibliotheken. Ergebnis ist ein lauffähiges Maschinenprogramm. Grundlagen der Informatik I T.Wiedemann- Seite 14 7
8 Präprozessorbefehle Der Präprozessor dient zur Manipulation und Verwaltung des Programmquelltextes vor der eigentlichen Compilierung. Alle Präprozessorbefehle beziehen sich auf der Quelltext und generieren in der Regel eine neue Version des Quelltextes. Präprozessorbefehle beginnen generell mit einem # in der 1. Position Einsatzzweck und Sinn: Vereinfachung der Programmierung durch Reduzierung wiederholter Eingaben Bessere Übersichtlichkeit der Programme Einfachere Wartung und Änderung Verwaltung verschiedener Programmversionen Steuerung des Compilers über Compileroptionen Grundlagen der Informatik I T.Wiedemann- Seite 15 Präprozessorbefehl #include Der #include-befehl fügt andere Quelltexte an der jeweiligen Stelle in. Zwei mögliche Varianten : #include <Dateiname> sucht die Datei in speziellen Verzeichnissen des C-Compilers wird verwendet zum Einfügen von Systembibliotheken #include "Dateiname" sucht die Datei im aktuellen Verzeichnis bzw. in Nutzerverzeichnissen Sinnvoll zum Einfügen eigener Systembibliotheken Hinweis: In der Regel werden mit #include keine vollständigen Quelltexte, sondern nur Header-Dateien mit den Prototypdefinitionen der Funktionen eingefügt. erst der Linker verbindet die implementierte Funktion Grundlagen der Informatik I T.Wiedemann- Seite 16 8
9 Präprozessorbefehl #define Der #define - Befehl definiert Makros (Textbausteine). Definition eines Makros #define PI Nach dieser Definition wird jeder im weiteren Quelltext vorkommende Text PI durch ersetzt. Ausnahmen bilden Texte -> printf("pi"); wird nicht umgewandelt Achtung: Infolge reiner Textersetzung DARF KEIN ; am Ende stehen!!!!!!!! #define PI 3.14; führt in a= PI *r; zu a= 3.14 ; * r ; // schwer zu findender Anwendungen: // SYNTAXFEHLER!! Ersatz konkreter Zahlenwerte durch symbolische Namen : #define Feldgroesse 100 Bei Änderungen der Feldgröße muß dann nur einmal geändert werden! Steuerung des Compilers durch wahlweise Existenz von Makronamen (siehe Folgeblatt) Aufheben einer Makrodefinition #undef PI Grundlagen der Informatik I T.Wiedemann- Seite 17 Präprozessorbefehle für bedingte Übersetzung Mit den Präprozessorbefehlen für bedingte Übersetzung lassen sich Quelltextabschnitt gezielt von der Compilierung ausschließen oder einschließen. Steuerbefehle #ifdef Makroname Quelltext1 #else Quelltext2 #endif Der Quelltext 1 wird eingebunden, wenn der Makroname definiert ist. Der Quelltext 2 wird eingebunden, wenn der Makroname nicht definiert ist. Bsp.: #define Windows32 #ifdef Windows32 wintitel = 1; // wird nur bei Vorhandensein von Makro Windows32 auf 1 gesetzt #endif Grundlagen der Informatik I T.Wiedemann- Seite 18 9
10 Präprozessorbefehle für bedingte Übersetzung II Für eine größere Anzahl von Alternativen existiert eine zweite Syntaxform Steuerbefehle #if Bedingung1..Quelltext1 #elif Bedingung2 Quelltext2 #else Quelltext falls keine der falls keine der Bedingungen zutrifft #endif Für Bedingung kann z.b. defined(makroname) oder ein beliebiger ganzzahliger Ausdruck eingesetzt werden!defined - führt zur wahren Bedingung wenn kein Makro existiert Für ein invertiertes ifdef kann auch #ifndef verwendet werden! #if Anweisungen dürfen geschachtelt werden! Grundlagen der Informatik I T.Wiedemann- Seite 19 Typische Anwendung Header-Dateien /* conio.h Direct MSDOS console input/output. */ #if!defined( CONIO_H) #define CONIO_H #if!defined( DEFS_H) #include <_defs.h> #endif #define _NOCURSOR 0 #define _SOLIDCURSOR 1 #if!defined( COLORS) #define COLORS enum COLORS BLACK, BLUE, GREEN, CYAN, RED,. #endif void _RTLENTRY _EXPFUNC clreol( void ); void _RTLENTRY _EXPFUNC clrscr( void ); int _RTLENTRY _EXPFUNC getch( void ); int _RTLENTRY _EXPFUNC getche( void ); #endif /* CONIO_H */ Bsp. conio.h (aus dem \include\ - Verzeichnis ) - falls conio.h noch nicht existiert, wird es eingefügt, sonst nicht Grundlagen der Informatik I T.Wiedemann- Seite 20 10
Programmierung 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.
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
MehrVorlesung 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
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
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
MehrFACHHOCHSCHULE MANNHEIM
für Java-Programmierer Der Präprozessor Prof. Dr. Wolfgang Schramm FACHHOCHSCHULE MANNHEIM Hochschule für Technik und Gestaltung Präprozessor Ist dem Compiler vorgeschaltet ( Prä -). Spezielle Anweisungen
MehrModul 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
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
Mehr2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)
Mehr6. Funktionen, Parameterübergabe
6. Funktionen, Parameterübergabe GPS-6-1 Themen dieses Kapitels: Begriffe zu Funktionen und Aufrufen Parameterübergabearten call-by-value, call-by-reference, call-by-value-and-result in verschiedenen Sprachen
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
MehrC - PRÄPROZESSOR. Seminar effiziente C Programmierung WS 2012/13. Von Christian Peter
C - PRÄPROZESSOR Seminar effiziente C Programmierung WS 2012/13 Von Christian Peter Themen Was sind Präprozessoren? Beispiele für Präprozessoren Funktionsweisen Der C - Präprozessor Der # Präfix #include
MehrTag 5. Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme)
Tag 5 Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Methoden Deklaration
MehrDie erste C++ Funktion
Die erste C++ Funktion Funktion zur Potenzberechnung // PRE: e >= 0 b!= 0.0 // POST: return value is b^e double pow (double b, int e) { double result = 1.0; if (e < 0) { // b^e = (1/b)^(-e) b = 1.0/b;
MehrMethoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom
Einstieg in die Informatik mit Java, Vorlesung vom 2.5.07 Übersicht 1 2 definition 3 Parameterübergabe, aufruf 4 Referenztypen bei 5 Überladen von 6 Hauptprogrammparameter 7 Rekursion bilden das Analogon
MehrFunktionen 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
MehrProgrammieren 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
MehrEinführung Makros Includes Errors und Warnings Pragmas Diverses. Der C-Präprozessor. Lukas Stabe. Universität Hamburg
Der C-Präprozessor Lukas Stabe Universität Hamburg Proseminar C - Grundlagen und Konzepte, 2013 Lukas Stabe C-Präprozessor 1 / 19 Inhalt 1. Einführung 2. Makros 3. Includes 4. Errors und Warnings 5. Pragmas
MehrEinstieg in die Informatik mit Java
1 / 26 Einstieg in die Informatik mit Java Methoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Methoden 2 Methodendefinition 3 Parameterübergabe, Methodenaufruf
MehrGrundlagen der Informatik
Grundlagen der Informatik Einführung in die Programmiersprache C Teil 2 Ein- und Ausgabe in C-Programmen Prof. Dr.-Ing. Thomas Wiedemann Fachgebiet Informatik / Mathematik Überblick zur Vorlesung Ein-
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)
MehrEinstieg in die Informatik mit Java
1 / 17 Einstieg in die Informatik mit Java Methoden und Felder Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 17 1 Überblick 2 Felder als Parameter bei Methoden 3 Feld
MehrC++ - Funktionen und mehr -
C++ - Funktionen und mehr - Friedrich-Schiller-Universität Jena Kerstin Gößner und Ralf Wondratschek Prof. Dr. habil. Wolfram Amme Dipl.-Inf. Thomas Heinze Inhaltsverzeichnis 1 Einleitung 3 2 Deklaration,
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
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:
MehrProgrammierung mit C Funktionen
Programmierung mit C Funktionen Funktionen... sind Unterprogramme (Subroutinen), mit denen Sie Teilprobleme einer größeren Aufgabe lösen können.... fassen Anweisungen zu einem Block zusammen, der eine
MehrAlgorithmus: 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
MehrGrundlagen zur Assemblerprogrammierung unter SPIM im Sommersemester Lorenz Schauer Mobile & Verteilte Systeme
Grundlagen zur Assemblerprogrammierung unter SPIM im Sommersemester 2016 Lorenz Schauer Mobile & Verteilte Systeme 12. Juli 2016 Agenda heute Grundlagen: Unterprogramme I Call-by-Value (CBV) vs. Call-by-Reference
MehrSpeicher und Adressraum
Linearer Speicher (Adressraum) Technische Universität München Speicher und Adressraum Freie Speicherhalde (Heap) Freier Speicherstapel (Stack) Globale Variablen Bibliotheksfunktionen Laufzeitsystem Programmcode
MehrFunktionen in Matlab. Nutzerdefinierte Funktionen können in.m-datei gespeichert werden
Funktionen in Matlab Zusammenfassung von Befehlssequenzen als aufrufbare/wiederverwendbare Funktionen in einem Programmblock mit festgelegter Schnittstelle (Signatur) Derartige prozedurale Programmierung
MehrGrundlagen 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,
MehrUnterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur
Unterprogramme Unterprogramme sind abgekapselte Programmfragmente, welche es erlauben, bestimmte Aufgaben in wiederverwendbarer Art umzusetzen. Man unterscheidet zwischen Unterprogrammen mit Rückgabewert
Mehr7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});
S. d. I.: Programieren in C Folie 7-1 7 Funktionen 7.1 Definition Prototyp-Syntax: Speicherklasse Typ Name (formale Parameter); der Funktions-Prototyp deklariert eine Funktion, d.h. er enthält noch nicht
Mehrzu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme
Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen
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
MehrProgrammieren in C / C++ Grundlagen C 4
Programmieren in C / C++ Grundlagen C 4 Hochschule Fulda FB AI Wintersemester 2016/17 http://c.rz.hs-fulda.de Peter Klingebiel, HS Fulda, FB AI Anweisungen Anweisung im allgemeinsten Sinn: Programmieren
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:
MehrSystemprogrammierung
Systemprogrammierung 3Vom C-Programm zum laufenden Prozess 6. November 2008 Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2008 SS 2006 SOS 1 (03-Pro.fm 2008-11-06 08.52) 3 Vom C-Programm
MehrC/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
MehrVorkurs Informatik: Erste Schritte der Programmierung mit C++
Vorkurs Informatik WS 14/15 Vorkurs Informatik: Erste Schritte der Programmierung mit C++ Arne Nägel, Andreas Vogel, Gabriel Wittum Lehrstuhl Modellierung und Simulation Goethe-Center for Scientific Computing
MehrDLLs (dynamic loaded libraries) mit MingW erstellen
DLLs (dynamic loaded libraries) mit MingW erstellen Autor: Michel D. Schmid Datum: April 2, 2009 Contents 1 Einführung 1 1.1 Open-Source Tools.......................................... 1 2 Beispiel 1:
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
Mehr4.4 Imperative Algorithmen Prozeduren
4.4.2 Prozeduren Der Wert eines Ausdrucks u in Zustand z Z lässt sich damit auch leicht definieren (jetzt W Z statt W σ ) Dazu erweitern wir die rekursive Definition von Folie 57 (Wert eines Ausdrucks):
MehrDer C-Präprozessor. Lukas Stabe
Der C-Präprozessor Lukas Stabe Inhaltsverzeichnis 1 Einleitung 1 2 Makros 1 2.1 Parameterlose............................ 1 2.2 Parameterbehaftete......................... 3 2.3 Verbreitete Fehler..........................
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
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
Mehrzu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme
Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen
Mehr8. Referenzen und Zeiger
8. Referenzen und Zeiger Motivation Variable werden in C++ an speziellen Positionen im Speicher abgelegt. An jeder Position befindet sich 1 Byte. Sie sind durchnummeriert beginnend bei 0. Diese Positionen
MehrGrundlagen der Informatik 8. Funktionen I
8. Funktionen I Motivation Grundlagen Parameterübergabe Struktogramme Grundlagen der Informatik (Alex Rempel) 1 Motivation Funktionen sind Mittel der Programmstrukturierung Modularisierung Aufteilung in
MehrBerichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung
Berichte aus der Informatik Dieter Pawelczak Start in die C-Programmierung Shaker Verlag Aachen 2012 Inhaltsverzeichnis Inhaltsverzeichnis i 1 Einleitung 1 1.1 Umfeld und Aufbau des Buches 1 Die Programmiersprache
MehrVorlesung Programmieren
Vorlesung Programmieren Speicherverwaltung und Parameterübergabe Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Gültigkeitsbereich von
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
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
MehrInformatik II Übung, Woche 14
Giuseppe Accaputo 7. April, 2016 Plan für heute 1. Java Klassen Beispiel: Implementation eines Vorlesungsverzeichnis (VVZ) 2. Informatik II (D-BAUG) Giuseppe Accaputo 2 Java Klassen Beispiel: Implementation
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
MehrProgrammiersprachen Einführung in C
Programmiersprachen Einführung in C 14 Vertiefung einiger Themen Prof. Dr. Gliederung Programmiersprachen 1. Von der Maschinensprache zu C 2. Die Struktur von C-Programmen 3. Variable und Datentypen in
MehrPrä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
MehrPass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl
Funktionen Zusammenfassung von Befehlssequenzen als aufrufbare/wiederverwendbare Funktionen in einem Programmblock mit festgelegter Schnittstelle (Signatur) Derartige prozedurale Programmierung erlaubt
MehrC-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
MehrVorkurs C++ Programmierung
Vorkurs C++ Programmierung Funktionen Rückblick Operatoren logische Verknüpfungen Zusammengesetzte Operatoren ( Zuweisungsoperatoren ) Kontrollstrukturen Bedingte Anweisungen (if-abfrage, switch-konstrukt)
MehrGrundlagen der Programmiersprache C für Studierende der Naturwissenschaften
Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften Teil 10: Präprozessor, Header und Bibliotheken Martin Nolte Abteilung für Angewandte Mathematik Universität Freiburg i. Br. Vorlesung
Mehr7. Übung Informatik II - Objektorientierte Programmierung
7. Übung Informatik II - Objektorientierte Programmierung 29. Mai 2015 Inhalt 1 2 3 Übersicht 1 2 3 Idee Menschen nehmen die Welt in Form von Objekten wahr manche Objekte haben gleiche Eigenschaften, hierüber
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
MehrFunktionen in JavaScript
Funktionen in JavaScript Eine Funktion enthält gebündelten Code, der sich in dieser Form wiederverwenden lässt. Mithilfe von Funktionen kann man denselben Code von mehreren Stellen des Programms aus aufrufen.
MehrWas gehört (nicht) ins SVN?
Was gehört (nicht) ins SVN? Keine Dateien die aus anderen Dateien generiert werden (z.b. beim der Kompilierung).suo,.ncb (Intellisense),.user, das komplette Debug und Release Verzeichnis Nur Dateien die
MehrGrundlagen der Programmierung
Grundlagen der Programmierung 11. Vorlesung 14.06.2017 1 Schleifen 2 do...while do block while ( bedingung ); block: eine Anweisung oder Anweisungen in { block bed JA NEIN 3 while while ( bedingung ) block
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/
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
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
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
MehrProgrammieren in C. Funktionen mit Zeigern und Adressen. Prof. Dr. Nikolaus Wulff
Programmieren in C Funktionen mit Zeigern und Adressen Prof. Dr. Nikolaus Wulff ByValue versus byreferenz C übergibt immer Kopien der Variablen an Funktionen. Es ist nur dann möglich die Werte von Variablen
MehrElementare Konzepte von
Elementare Konzepte von Programmiersprachen Teil 2: Anweisungen (Statements) Kapitel 6.3 bis 6.7 in Küchlin/Weber: Einführung in die Informatik Anweisungen (statements) in Java Berechnung (expression statement)
MehrTeil 5: Zeiger, Felder, Zeichenketten Gliederung
Teil 5: Zeiger, Felder, Zeichenketten Gliederung Zeiger und Adressen Felder (Arrays) Zeichenketten (Strings) Zeigerarithmetik Mehrdimensionale Felder Zeiger und Adressen Felder Zeichenketten Zeigerarithmetik
MehrEs 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Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
MehrPraktikum 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
MehrC-Programmierung lernen
2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Andre Willms C-Programmierung lernen Anfangen, anwenden, verstehen
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
Mehr5. Unterprogrammtechnik/Module
5. Unterprogrammtechnik/Module Unterprogramm/Modul: separate Programmeinheit, mit Anweisungen, die eine bestimmte Aufgabe erfüllen bekommt i.a. Argumente (Werte, Informationen) vom aufrufenden Programm
MehrCompiler 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
MehrEinstieg in die Informatik mit Java
1 / 47 Einstieg in die Informatik mit Java Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 47 1 Ausdrucksanweisung 2 Einfache Ausgabeanweisung 3 Einfache Eingabeanweisung,
MehrObjektorientierung: 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
MehrC für Java-Programmierer
Carsten Vogt C für Java-Programmierer ISBN-10: 3-446-40797-9 ISBN-13: 978-3-446-40797-8 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-40797-8 sowie im
MehrProgrammiertechnik Klassenmethoden
Programmiertechnik Klassenmethoden Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Motivation Programm zur Berechung von public class Eval1 { public static void main(string[] args) { java.util.scanner
MehrKlausur C-Programmierung / 15.02.2014 / Klingebiel / 60 Minuten / 60 Punkte
Klausur C-Programmierung / 15.02.2014 / Klingebiel / 60 Minuten / 60 Punkte Musterlösung 1. Aufgabe (5 Punkte) Im folgenden Programmcode sind einige Fehler enthalten. Finden und markieren Sie mindestens
MehrVorlesung Programmieren
Vorlesung Programmieren 17 Vom Programm zur Maschine Prof. Dr. Ralf H. Reussner Version 1.0 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD),
MehrBetriebssysteme Teil 3: Laufzeitsystem für Programme
Betriebssysteme Teil 3: Laufzeitsystem für Programme 23.10.15 1 Literatur [3-1] Stack: http://fbim.fh-regensburg.de/~hab39652/pg1/skriptum/ ausdruecke/maschinenmodell.html [3-2] https://de.wikipedia.org/wiki/dynamischer_speicher
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Kapitel 22: Mima-X Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik
MehrEinfü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
MehrPraxisorientierte 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
MehrInhalt. 4.7 Funktionen
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
MehrZeiger. C-Kurs 2012, 2. Vorlesung. Tino Kutschbach 10.
Zeiger C-Kurs 2012, 2. Vorlesung Tino Kutschbach tino.kutschbach@campus.tu-berlin.de http://wiki.freitagsrunde.org 10. September 2012 This work is licensed under the Creative Commons Attribution-ShareAlike
MehrMaschinencode Dateiformat und Stackframes
Maschinencode Dateiformat und Stackframes Proseminar C-Programmierung - Grundlagen und Konzepte Julian M. Kunkel julian.martin.kunkel@informatik.uni-hamburg.de Wissenschaftliches Rechnen Fachbereich Informatik
MehrAlgorithmen & Programmierung. Rekursive Funktionen (1)
Algorithmen & Programmierung Rekursive Funktionen (1) Berechnung der Fakultät Fakultät Die Fakultät N! einer nichtnegativen ganzen Zahl N kann folgendermaßen definiert werden: d.h. zur Berechnung werden
MehrProzeduren und Funktionen
OSZ Handel I - Gymnasiale Oberstufe (Abt. V) In Anlehnung an: Duden Informatik (3.Auflage, Dudenverlag, 2001, S. 477). Prozeduren und Funktionen Fach: Informatik Parameter sind Platzhalter in einer Prozedur
MehrC- Kurs 09 Dynamische Datenstrukturen
C- Kurs 09 Dynamische Datenstrukturen Dipl.- Inf. Jörn Hoffmann jhoffmann@informaak.uni- leipzig.de Universität Leipzig InsAtut für InformaAk Technische InformaAk Flexible Datenstrukturen Institut für
MehrC/C++ - Programmierung. Benutzerdefinierte Funktionen Seite 1 von 21
Benutzerdefinierte Funktionen Seite 1 von 21 Die Programmiersprache C besteht aus relativ wenigen Schlüsselwörten. Für häufig benötigte Aufgaben stehen in Bibliotheken leistungsfähige Funktionen bereit,
MehrC++ Teil 4. Sven Groß. 30. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 16
C++ Teil 4 Sven Groß IGPM, RWTH Aachen 30. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 4 30. Apr 2015 1 / 16 Themen der letzten Vorlesung Funktionen: Definition und Aufruf Wert- und Referenzparameter,
MehrBeispiel. Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio)
Beispiel Beispiel: Namensliste konvertieren (Karl Egon Meier Meier, Karl Egon). s/(.*) (.*)/$2, $1/; Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio) s/(.*) (.*)/$2, $1/; s/(.*) ([a-z]+
Mehr