Programmieren in C. Inhalt. Literatur (2) Literatur (1) Historie von C. Eigenschaften von C. Dipl. Inf. Sigrid Weil
|
|
- Monika Kurzmann
- vor 8 Jahren
- Abrufe
Transkript
1 Inhalt Programmieren in C Dipl. Inf. Sigrid Weil sigrid.weil@fh-bonn-rhein-sieg.de Fachbereich Informatik Fachhochschule Bonn-Rhein-Sieg Einführung Elementare Datentypen und Anweisungen Felder und Zeiger Funktionen Strukturen Deklarationen, Speicherklassen Ein- und Ausgabe Sonstiges 2 Literatur (1) Literatur (2) S.P.Harbison, G.L.Steele Jr.: C: A Reference Manual 5. Ausgabe, Prentice Hall, 2002 B.W.Kernighan, D.M.Ritchie: Programmieren in C 2. Ausgabe, Hanser, 1990 Jürgen Dankert Praxis der C-Programmierung Teubner, 1997 J. Anton Illik Programmieren in C unter UNIX Sybex, 1990 Steve Oualline Practical C 3 rd Ed., O'Reilly, 1997 R.Berrendorf: Einführung in die Programmiersprache C Benutzerhandbuch KFA-ZAM-BHB-0095, Forschungszentrum Jülich lokale Kopie www2.inf.fh-bonn-rhein-sieg.de/~sweil2m/c-kurs 3 4 Historie von C Eigenschaften von C 1960: ALGOL60 CPL (Combined Programming Language) 1967: BCPL (Based Combined Programming Language) Martin Richards (MIT), Systemprogrammierung 1970: B Ken Thompson (AT&T Bell Labs), Implementierungssprache für Unix 1972: C Dennis M. Ritchie (AT&T Bell Labs), Implementierungssprache für Unix 1978: C-Sprachdefinition im Buch The C Programming Language von Brian W. Kernighan und Dennis M. Ritchie (K&R-C) 1983: Bildung des ANSI-Komitees X3J11 zur Standardisierung von C 1989: ANSI C (C89) 1999: kleinere Erweiterungen zum internationalen Standard ISO/IEC 9899:1999 (C99) (Viele Compiler kennen noch nicht die in C99 hinzugekommenen Erweiterungen) Universelle Programmiersprache: einsetzbar für Anwendungen in (fast) allen Bereichen Hardware-nahe Programmierung möglich Modulares Programmieren möglich Möglichkeiten zur Formulierung effizienter Programme C-Compiler erzeugen effizienten Code Viele Datentypen, viele Kontrollstrukturen, viele Operatoren Hohe Portabilität möglich (notwendige Voraussetzung: Beschränkung auf Standard-C) Standardbibliothek moderat umfangreich (verglichen mit Java), jedoch keine Änderungen am existierenden Interface über viele Jahre (voll aufwärtskompatibel) Sprache hat keine Konstrukte zum objektorientierten Programmieren Grafikbibliothek nicht Teil von C Fehlerquellen (= = und =, Typumwandlung usw.) 5 6
2 Beispiel p1.c Vom Quellcode zum ausführbaren Programm // p1.c #include <stdio.h> int main (int argc, char **argv) int i; i = 4711; printf ("i = %d\n", i); Sourcecode erzeugen (mittels Editor) und in Sourcecode-Datei mit Suffix.c ablegen scname.c : cc scname.c Ergebnis der Übersetzung wird in der ausführbaren Datei mit Standardnamen a.out abgelegt Mit der Option -o kann der Standardname der ausführbaren Datei geändert werden: cc -o name scname.c Ausführen:./a.out bzw../name 7 8 Übersetzung Die Übersetzung eines Quellcodes in ausführbaren Code erfolgt in 4 Schritten: preprocesser compiler (im engeren Sinne) assembler linker (Wir sprechen oft von Compiler oder übersetzen und meinen alle 4 Schritte auf einmal) Durch Aufruf von cc scname.c werden alle 4 Schritte auf einmal ausgeführt. Durch die Option -v können die Einzelschritte sichtbar gemacht werden (allerdings immer noch ohne Erzeugung von Zwischenergebnissen) cc -v scname.c cc -v p1.c $ cc -v p1.c Reading specs from /usr/lib/gcc-lib/i386-linux/2.95.4/specs gcc version (Debian prerelease) /usr/lib/gcc-lib/i386-linux/2.95.4/cpp0 -lang-c -v -D GNUC =2 -D GNUC_MINOR =95 -D ELF -Dunix -D i386 -Dlinux -D ELF -D unix -D i386 -D linux -D unix -D linux -Asystem(posix) -Acpu(i386) -Amachine(i386) -Di386 -D i386 -D i386 p1.c / tmp/ccjq7cue.i GNU CPP version (Debian prerelease) (i386 Linux/ELF) #include "..." search starts here: #include <...> search starts here: /usr/local/include /usr/lib/gcc-lib/i386-linux/2.95.4/include /usr/include End of search list. The following default directories have been omitted from the search path: /usr/lib/gcc-lib/i386-linux/2.95.4/../../../../include/g++-3 /usr/lib/gcc-lib/i386-linux/2.95.4/../../../../i386-linux/include End of omitted list. /usr/lib/gcc-lib/i386-linux/2.95.4/cc1 /tmp/ccjq7cue.i -quiet -dumpbase p1.c -version -o /tmp/ccg8pcuc.s GNU C version (Debian prerelease) (i386-linux) compiled by GNU C version (Debian prerelease). as -V -Qy -o /tmp/ccps62yl.o /tmp/ccg8pcuc.s GNU assembler version (i386-linux) using BFD version Debian/GNU Linux /usr/lib/gcc-lib/i386-linux/2.95.4/collect2 -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/gcc-lib/i386 -linux/2.95.4/crtbegin.o -L/usr/lib/gcc-lib/i386-linux/ /tmp/ccps62yl.o -lgcc -lc -lgcc /usr/lib/gcc-lib/i386-linux/2.95.4/crtend.o /usr/li b/crtn.o $ 9 10 Übersetzung in Teilschritten (1) durch Angabe von Optionen möglich: -E stoppt nach preprocessing, Ergebnis wird auf Standardausgabe gelenkt (kann aber mit -o name in Datei umgeleitet werden) in Teilschritten (2) cc angewendet auf Zwischenergebnisse, weiß, wo es zu starten hat cc p1.o ruft nur den Linker auf und erzeugt ausführbaren Code a.out -S -c stoppt nach dem eigentlichen Compilieren, erzeugt Assembler-Datei mit Endung.s stoppt nach dem assemblieren, dh. bindet nicht, erzeugt (nicht ausführbaren) Objektcode mit Endung.o cc -c p1.o macht gar nichts Der Linker kann auch mehrere Objektdateien zu einem ausführbaren Programm zusammenbinden: cc -o excname name1.o name2.o... name_n.o cc -E -o p1.i p1.c cc -S p1.c cc -c p1.c legt Ergebnis des Präprozessors in p1.i ab erzeugt Assemblerdatei p1.s erzeugt Objectcode p1.o Zum Einbinden von librarys ist die Linker-Option -l nötig: cc -o excname name1.o name2.o -lgr bindet die Objektdateien name1.o, name2.o und die library libgr.a zur Datei excname zusammen 11 12
3 Beispiel p2.c Beispiel p3.c // p2.c #include <stdio.h> // p3.c // gruss.c main () gruss(); int gruss () main () gruss(); #include <stdio.h> int gruss () printf("hallo\n"); p2.c printf("hallo\n"); cc -c p2.c p2.o cc -o p2 p2.o Linken p2 p3.c gruss.c cc -c p3.c cc -c gruss.c p3.o gruss.o cc -o p3 p3.o gruss.o Linken p Dateien Aufgaben des Präprozessors.c: C Source-Code; Teil eines C-Programms (C-Source).h: Extern sichtbare Schnittstelle einer oder mehrerer.c-dateien (C-Source).o: Übersetzte Programmdatei (nicht-ausführbarer Objektcode).a: Programmbibliothek (nicht-ausführbarer Objektcode) a.out: Ausführbare Programmdatei (ausführbarer Objektcode; Name der Datei beliebig) C-Sourcecode x.c defs.h y.c nicht-ausführbarer Objektcode x.o y.o libm.a Linken ausführbarer Code test Präprozessor ist ein reiner Makroprozessor, der textuellen Ersatz vornimmt und eine neue Datei produziert, die an den eigentlichen C- Compiler weitergegeben wird! Aufgaben des Präprozessors: Einfügen weiterer Dateien innerhalb einer Datei (#include...) Makrodefinitionen und ersetzung (#define...) Bedingte Übersetzung (#if...) Zusätzliche Compiler-Steuerung über #pragma Gesteuert wird der Präprozessor über Direktiven, die alle mit einem # als erstem Nichtleerzeichen einer Zeile anfangen. Direktiven müssen in eine logische Zeile passen. Längere Direktiven mit Backslash-Newline-Kombination über mehrere physikalische Zeilen möglich. Zwischen # und Direktivenbezeichner können Leerzeichen stehen. Direktiven können an beliebiger Stelle im Source-Code auftauchen Einfügen von Dateien Mittels der #include-direktive kann man andere Dateien in den Code einfügen. Schachtelung möglich, d.h. in eingefügten Dateien können wiederum #include-direktiven stehen. Wird fast ausschließlich zum Einfügen von.h-dateien genutzt. Mehrere Formen möglich: #include Dateiangabe Die Datei wird relativ zum aktuellen Verzeichnis gesucht. #include <Dateiname> Die Datei wird an systemspezifischen Verzeichnissen gesucht. Auf Unix-Systemen in /usr/include und evtl. /usr/local/include. #include Makroname 1...Makroname n Nach ihrer Ersetzung sollten die Makronamen eine der beiden obigen Formen ergeben. Bedingte Übersetzung Mit Hilfe des Präprozessors ist es möglich, nur bestimmte Teile des Programms übersetzen zu lassen. Dies ist dann nützlich, wenn man aus einem Source-Programm verschiedene Versionen erzeugen möchte, z.b. für Unix und Windows. #if defined(unix) # include <unix.h> #elif defined(windows) # include <windows.h> #endif Die Dateiangabe ist relativ zum jeweiligen Bezugspunkt, d.h. Angaben wie../datei.h sind möglich
4 Makros Makrodefinition Makros dienen der Abkürzung häufig benutzter Zeichenfolgen der Definition logischer Konstanten (Konsistenz im Programm) dem Umdefinieren existierender Namen der bedingten Übersetzung von Programmteilen Makros gibt es mit und ohne Parameter Nach einer Makrodefinition wird jedes Erscheinen dieses Makronamens im weiteren Text durch den Ersatztext textuell (!) ersetzt. Achtung Fehler! #define SQUARE(x) x*x SQUARE(z+1) //wird expandiert zu z+1*z+1 //was ausgewertet wird zu z+(1*z)+1 Makros können entweder im Quellcode durch die Präprozessor- Direktive #define definiert werden #define MAX definiert ein Makro mit Namen MAX und Wert oder durch die Päprozessor-Option -D beim Aufruf des Compilers (bzw. preprocessors) cc -DMAKRONAME scname.c definiert ein Makro mit Namen MAKRONAME und Standardwert Vordefinierte Makros Aufbau von C-Dateien LINE Zeilennummer der aktuellen Quelltextzeile FILE Name der aktuellen Quelldatei DATE Kalenderdatum der Übersetzung TIME Zeit der Übersetzung (Achtung: jeweils 2 Underlines ohne Leerzeichen!) Formatfrei Leerzeichen, Zeilenendezeichen, vertikaler und horizontaler Tabulator, Seitenvorschub und Kommentar (s.u.) sind Trennzeichen (außer in Zeichenkonstanten und Strings) Mehrere Trennzeichen werden logisch als ein Trennzeichen angesehen Backslash \ direkt gefolgt von Zeilenende wird ignoriert, so dass eine logische Zeile entsteht. Dies ist z.b. bei Präprozessor-Direktiven notwendig, die sich nur über eine logische Zeile erstrecken können Groß- und Kleinschreibung ist signifikant Bezeichner1 Bezeichner2 Bezeichner3 Diese beiden (es folgt eine Backslash-Newline-Kombination) \ Zeilen werden als eine logische Zeile aufgefasst Aufbau von C-Programmen C-Programm: Folge von Funktionsdefinitionen kann auf mehrere Quelldateien verteilt sein enthält genau eine Funktion mit Namen main Eine Funktionsdefinition besteht aus einem Funktionskopf (header) und einem Funktionsrumpf (body): Funktionskopf Bezeichner Bezeichner werden für Variablen, Funktionen, Makros usw. verwendet Bezeichner sind eine Folge von Buchstaben, Ziffern und dem Zeichen _, wobei das erste Zeichen keine Ziffer sein darf Klein-/Großschreibung wird unterschieden Keine reservierten Schlüsselwörter erlaubt Bezeichner können beliebig lang sein, wobei jedoch nur eine bestimmte Länge signifikant sein muss: Mindestens die ersten 63 Zeichen bei internen Namen Mindestens 31 Zeichen bei externen Namen Typ Name ( Parameterliste ) Bezeichner Buchstabe Funktionsrumpf Deklaration Anweisung _ Buchstabe Ziffer _ 23 24
5 Reservierte Schlüsselwörter Vereinbarung C kennt die folgenden reservierten Schlüsselwörter mit vordefinierter Bedeutung, die z.b. nicht als Variablennamen oder Funktionsnamen verwendet werden können (wohl aber als Makronamen). auto do inline switch _Bool double int typedef break else long union case enum register unsigned char extern return void _Complex float short volatile const for signed while continue goto sizeof default if static restrict _Imaginary struct Blau gekennzeichnete Namen sind neu in C99 Vordefinierter Bezeichner (ist aber kein Schlüsselwort) Für jede Funktion findet implizit eine Vereinbarung statt: static const char func [] = "Name der Funktion"; Nutzung: if(failed) printf("function %s failed\n", func ); 25 Variablen- und Funktionsnamen werden (überwiegend) klein geschrieben Makronamen werden komplett aus Großbuchstaben gebildet Namen mit _ als erstem Buchstaben sind für Namen von (internen) Bibliotheksfunktionen oder vordefinierten Makros reserviert /* Makros */ #define PI #define DIMENSION_1 100 /* Variablen */ int i,j; /* Funktionen */ int MeineTolleFunktion(); /* "reservierte" Namen */ LINE, DATE, _exit(); 26 Kommentare Makefiles - Motivation Dienen der besseren Lesbarkeit von Programmen Können überall im Programm erscheinen, außer in Zeichenkonstanten und Strings Sind Trennzeichen Können nicht geschachtelt werden! Beginnen mit /* und enden mit */ (über mehrere Zeilen möglich) // bis Zeilenende Beispiele: // Dies ist ein Kommentar /* Dies ist /* ebenfalls ein Kommentar */ /* Dies ist ein Kommentar, der über mehrere Zeilen geht und hier endet: */ /* Dies ist /* noch ein Kommentar */ der hier nicht mehr weitergeht (Fehler) */ Änderung eines Source-Codes: Neuübersetzung aller files notwendig, die Funktionen des geänderten files benutzen Änderung eines Header-files: Neuübersetzung aller source-codes notwendig, die das Header-file importieren Neuübersetzung eines source-codes: Neues Linken notwendig Problem: Abhängigkeiten zwischen den files oft sehr komplex Frage: Welche files müssen neu übersetzt (und neu gebunden) werden, wenn ein file geändert wurde? Antwort: Solche Abhängigkeiten können im makefile beschrieben werden, das Kommando make löst dann alle notwendigen Aktionen aus Makefile - Aufbau makefiles bestehen aus (expliziten oder impliziten) Regeln, Variablendefinitionen, Direktiven oder Kommentaren Eine Regel hat die folgende Form: <Ziel> : <Voraussetzungen> <Kommandos> <Ziel> ist üblicherweise der Name derjenigen Datei, die erzeugt werden soll <Voraussetzungen> ist eine Liste von Dateien, von denen die zu erzeugende Datei abhängt <Kommandos> ist eine Liste von Kommandos, die zur Erzeugung der Zieldatei ausgeführt werden sollen jedes Kommando muß in einer eigenen Zeile stehen, die mit einem Tabulatorzeichen beginnen muß! Makefile - Beispiel Annahme: Dateien x.c, y.c, defs.h x.c benutzt eine Funktion, die in y.c definiert ist die Schnittstelle dieser Funktion ist in defs.h beschrieben x.c importiert defs.h die ausführbare Datei soll test heißen # Dies ist ein Kommentar im makefile # die Datei heißt: makefile test: x.o y.o cc -o test x.o y.o x.o: x.c defs.h cc -c x.c y.o: y.c cc -c y.c 29 30
6 Übung Aufgaben des ersten Übungsblattes. 31
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).
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
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.
MehrProgrammentwicklung 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
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
MehrAllgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>
Allgemeines Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C #include main() { printf( hello world\n ); } Peter Sobe 1 Die Großfamilie der C-Sprachen
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte
MehrTutorium 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
MehrGrundlagen. 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
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
MehrModerne C-Programmierung
Xpert.press Moderne C-Programmierung Kompendium und Referenz Bearbeitet von Helmut Schellong 1. Auflage 2005. Buch. xii, 280 S. ISBN 978 3 540 23785 3 Format (B x L): 15,5 x 23,5 cm Weitere Fachgebiete
MehrJava Kurs für Anfänger Einheit 4 Klassen und Objekte
Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse
MehrDie 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,
MehrEinführung in die C++ Programmierung für Ingenieure
Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF
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
MehrStarten Sie Eclipse: Hier tragen sie Ihr Arbeitsverzeichnis ein. Zu Hause z.b. c:\workspace.
Starten Sie Eclipse: Abgesehen vom Kommandozeilenfenster, auf welches wir später eingehen, öffnet sich ein Dialog (in der FH vermutlich nicht, überspringen Sie in diesem Fall): Hier tragen sie Ihr Arbeitsverzeichnis
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
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
MehrÜbersicht Programmablaufsteuerung
Übersicht Programmablaufsteuerung Konditionale Verzweigung: if - else switch-anweisung Schleifenkonstrukte: while, do - while for Schleife Sprung-Anweisungen: break, continue, goto, return Anweisungen
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund Wiederholungen - while - do-while - for
MehrGrundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen
Grundlagen der Programmierung Prof. H. Mössenböck 3. Verzweigungen If-Anweisung n > 0? j n if (n > 0) x = x / n; ohne else-zweig x x / n j max x x > y? n max y if (x > y) max = x; else max = y; mit else-zweig
MehrDie Programmiersprache C99: Zusammenfassung
Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 7. Dezember 2010, 19:30 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.youtube.com/joernloviscach
MehrHochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe
Aufgabenstellung Für eine Hausverwaltung sollen für maximal 500 Wohnungen Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Art Baujahr Wohnung Whnginfo Nebenkosten
Mehr1 Vom Problem zum Programm
Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren
MehrProgrammierung in C. Grundlagen. Stefan Kallerhoff
Programmierung in C Grundlagen Stefan Kallerhoff Vorstellungsrunde Name Hobby/Beruf Schon mal was programmiert? Erwartungen an den Kurs Lieblingstier Für zu Hause C-Buch online: http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/
MehrArbeiten mit UMLed und Delphi
Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf
MehrAngewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens SS2013 Inhalt Projekt Vorlesung: praktische Implementierung üben Ein und
MehrEinführung in die Programmierung (EPR)
Goethe-Center for Scientific Computing (G-CSC) Goethe-Universität Frankfurt am Main Einführung in die Programmierung (EPR) (Übung, Wintersemester 2014/2015) Dr. S. Reiter, M. Rupp, Dr. A. Vogel, Dr. K.
Mehr5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu
Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten
MehrEine Einführung in C-Funktionen
Eine Einführung in C-Funktionen CGK-Proseminar 2014 Philip Gawehn 04.07.2014, Hamburg Inhaltsverzeichnis 1 Einleitung 2 2 Grundlagen 2 2.1 Der Aufbau einer Funktion....................... 2 2.2 Schlüsselwörter.............................
MehrPraktikum Ingenieurinformatik. Termin 2. Verzweigungen (if-else), printf und scanf, while-schleife
Praktikum Ingenieurinformatik Termin 2 Verzweigungen (if-else), printf und scanf, while-schleife 1 1. Import/Export von Eclipse-Projekten 2. Verzweigungen (if-else-anweisung) 3. printf und scanf 4. Übungsaufgaben
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
MehrComputeranwendung und Programmierung (CuP)
Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag
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
MehrKapitel 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
MehrLinux Prinzipien und Programmierung
Linux Prinzipien und Programmierung Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2014 1 / 25 2 / 25 Pipes Die Bash kennt drei Standard-Dateideskriptoren: Standard In (stdin) Standard-Eingabe,
MehrOrganisatorisches. Einführung in die Programmierung in C Hochschule Regensburg 13.03.2012.-13.07.2012 Universitätsstraße 31, 93053 Regensburg
Organisatorisches Einführung in die Programmierung in C Hochschule Regensburg 13.03.2012.-13.07.2012 Universitätsstraße 31, 93053 Regensburg Prof. Dr. Jan Dünnweber Wenn Sie kommen...... kommen Sie pünktlich
MehrGrundlagen 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
MehrObjektorientierte Programmierung für Anfänger am Beispiel PHP
Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten
MehrZählen von Objekten einer bestimmten Klasse
Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --
MehrDr. Monika Meiler. Inhalt
Inhalt 11 Dynamische Feldvereinbarung... 11-2 11.1 Dynamische Vereinbarung von Vektoren... 11-3 11.2 Dynamische Vereinbarung von Matrizen... 11-5 11.3 Die Kommandozeile... 11-8 Propädeutikum 11-1/8 11
MehrC-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07)
C-Probeklausur (Informatik 1; Umfang: C, Teil 1; SS07) 1. Aufgabe 6 Punkte Geben Sie Definitionen an für: float var; 1 a) eine float-variable var: b) einen Zeiger pvar, der float *pvar = &var; 1 auf die
MehrVorkurs C++ Programmierung
Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
MehrJava Kurs für Anfänger Einheit 5 Methoden
Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden
MehrGrundlagen. 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
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
MehrHello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.
Hello World Javakurs 2014, 1. Vorlesung Sebastian Schuck basierend auf der Vorlage von Arne Kappen wiki.freitagsrunde.org 3. März 2014 This work is licensed under the Creative Commons Attribution-ShareAlike
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:
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113
MehrObjektorientiertes Programmieren mit Suse Linux
Objektorientiertes Programmieren mit Suse Linux Zum Programmieren werden 2 Komponenten benötigt: 1. einen Editor zur Eingabe des Quellcodes 2. einen Compiler, der den Quellcode in die Maschinensprache
MehrObjektbasierte Entwicklung
Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit
MehrBinäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
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
MehrDas Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala
Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:
MehrInformationen zur Verwendung von Visual Studio und cmake
Inhaltsverzeichnis Informationen zur Verwendung von Visual Studio und cmake... 2 Erste Schritte mit Visual Studio... 2 Einstellungen für Visual Studio 2013... 2 Nutzung von cmake... 6 Installation von
MehrInteraktive Medien Richtlinien für das Codieren Version vom 18. Juni 2014
Interaktive Medien Richtlinien für das Codieren Version vom 18. Juni 2014 Martin Vollenweider Dateinamen im Internet Da wir im Internet in gemischten Hard- und Softwareumgebungen (z.b. Windows, Unix, Macintosh,
MehrGraphic Coding. Klausur. 9. Februar 2007. Kurs A
Graphic Coding Klausur 9. Februar 2007 Kurs A Name: Matrikelnummer: Hinweise - Es sind keine Hilfsmaterialien erlaubt. (Keine Bücher, Taschenrechner, Handys) - Sie haben zwei Stunden Zeit. - Insgesamt
MehrGEONET Anleitung für Web-Autoren
GEONET Anleitung für Web-Autoren Alfred Wassermann Universität Bayreuth Alfred.Wassermann@uni-bayreuth.de 5. Mai 1999 Inhaltsverzeichnis 1 Technische Voraussetzungen 1 2 JAVA-Programme in HTML-Seiten verwenden
MehrKlausur in Programmieren
Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Wintersemester 2010/11, 17. Februar 2011 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt)
MehrC++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet
C++ Grundlagen ++ bedeutet Erweiterung zum Ansi C Standard Hier wird eine Funktion eingeleitet Aufbau: In dieser Datei stehen die Befehle, die gestartet werden, wenn das Programm gestartet wird Int main()
MehrZum Abschluss wird gezeigt, wie aus einem C++ Quell-Programm ein ausführbares Programm erzeugt wird. 1. Installation von NetBeans...
Erste Schritte Dieser Teil der Veranstaltung gibt einen ersten Eindruck der Programmierung mit C++. Es wird ein erstes Gefühl von Programmiersprachen vermittelt, ohne auf die gezeigten Bestandteile genau
MehrKurze 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Übungskomplex Felder (1) Eindimensionale Felder Mehrdimensionale Felder
Übungskomplex Felder (1) Eindimensionale Felder Mehrdimensionale Felder Hinweise zur Übung Benötigter Vorlesungsstoff Ab diesem Übungskomplex wird die Kenntnis und praktische Beherrschung der Konzepte
MehrErweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:
VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt
MehrSchmitt, Günter (1996): Fortran 90 Kurs technisch orientiert, R. Oldenbourg Verlag, München
MANUEL KALLWEIT & FABIAN KINDERMANN Literaturempfehlung: Vorlesungsskript von Heidrun Kolinsky zu FORTRAN 90/95: http://www.rz.uni-bayreuth.de/lehre/fortran90/vorlesung/index.html Schmitt, Günter (1996):
MehrFelder, Rückblick Mehrdimensionale Felder. Programmieren in C
Übersicht Felder, Rückblick Mehrdimensionale Felder Rückblick Vereinbarung von Feldern: typ name [anzahl]; typ name = {e1, e2, e3,..., en} Die Adressierung von Feldelementen beginnt bei 0 Die korrekte
MehrM. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung
M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales
MehrDokument Lob erstellen
Dokument Lob erstellen Vorbemerkung Ein Lob wird immer mit einem Abschlusszeugnis ausgestellt und auch mit diesem Verteilt. Um ein Lob zu dokumentieren müssen folgende Bausteine definiert und eingerichtet
MehrÜ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
MehrFakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012
WS 2011/2012 Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 Prof. Dr. Robert Lorenz Musterlösung zur Vorlesung Informatik I, Extrablatt zu komplexen Datenstrukturen Aufgabe 45 **
MehrPakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).
Paketdeklaration Paketdeklaration package Bezeichner ; Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API). Ein
MehrEinführung in. Logische Schaltungen
Einführung in Logische Schaltungen 1/7 Inhaltsverzeichnis 1. Einführung 1. Was sind logische Schaltungen 2. Grundlegende Elemente 3. Weitere Elemente 4. Beispiel einer logischen Schaltung 2. Notation von
MehrInformatik Repetitorium SS 2009. Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692
Informatik Repetitorium SS 2009 Volker Jaedicke Volker.Jaedicke@web.de 0179 1322692 Operatoren und Datentypen Beispiel: Anweisungen Variable int a float b int c a= a % (int) (++b-1/4) Vorher 36 3.5 c=b
MehrEinführung zum Arbeiten mit Microsoft Visual C++ 2010 Express Edition
In den nachfolgenden Schritten finden Sie beschrieben, wie Sie in der Entwicklungsumgebung Microsoft Visual Studio 2010 eine Projektmappe, ein Projekt und einen ersten Quellcode erstellen, diesen kompilieren,
MehrE-PRIME TUTORIUM Die Programmiersprache BASIC
E-PRIME TUTORIUM Die Programmiersprache BASIC BASIC Beginner s All-purpose Symbolic Instruction Code symbolische Allzweck-Programmiersprache für Anfänger Design-Ziel klar: Eine einfache, für Anfänger geeignete
MehrWerkzeuge der Informatik UNIX
Autor: David Mainzer Institut für Informatik 1 Werkzeuge der Informatik UNIX Prof. Dr. Gabriel Zachmann (zach@in.tu-clausthal.de) David Mainzer (dm@tu-clausthal.de) Institut für Informatik 17. Dezember
MehrProgrammiersprachen 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
MehrVersion 0.3. Installation von MinGW und Eclipse CDT
Version 0.3 Installation von MinGW und Eclipse CDT 1. Stellen Sie fest, ob Sie Windows in der 32 Bit Version oder in der 64 Bit Version installiert haben. 2. Prüfen Sie, welche Java Runtime vorhanden ist.
MehrDatenbanken Kapitel 2
Datenbanken Kapitel 2 1 Eine existierende Datenbank öffnen Eine Datenbank, die mit Microsoft Access erschaffen wurde, kann mit dem gleichen Programm auch wieder geladen werden: Die einfachste Methode ist,
MehrI.1 Die Parrot Assemblersprache
I.1 Die Parrot Assemblersprache Die virtuelle CPU Parrot ermöglicht die Verarbeitung der Parrot Assemblersprache (PASM). Zum Einstieg soll ein erstes Beispiel die Ausführung einer PASM-Datei zeigen. Legen
MehrEinheit Lexikalische Grundlagen der Programmiersprache C Lexikalische Einheiten
Einheit Lexikalische Grundlagen der Programmiersprache C Lexikalische Einheiten Kurs C/C++ Programmierung, WS 2008/2009 Dipl.Inform. R. Spurk Arbeitsgruppe Programmierung FR 6.2 Informatik R. Spurk (Informatik)
MehrProgrammieren in Haskell Einführung
Programmieren in Haskell Einführung Peter Steffen Universität Bielefeld Technische Fakultät 16.10.2009 1 Programmieren in Haskell Veranstalter Dr. Peter Steffen Raum: M3-124 Tel.: 0521/106-2906 Email:
MehrInformationen zu den regionalen Startseiten
Informationen zu den regionalen Startseiten Inhaltsverzeichnis Informationen zu den regionalen Startseiten 1 1. Grundlegende Regeln 2 1.1. Was wird angezeigt? 2 1.2. Generelle Anzeigeregeln 2 2. Anpassbare
MehrNative Zeichenketten (C-Strings)
Native Zeichenketten (C-Strings)... sind in C/C++ char-arrays. D.h. die Deklaration char msg[80]; kann Zeichenketten bis zur Länge 79 enthalten. (Direkte Zuweisungen wie msg="hallo!" sind jedoch nicht
MehrErwin Grüner 09.02.2006
FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife
MehrBarcodedatei importieren
Barcodedatei importieren Inhaltsverzeichnis 1 Schnittstelle Barcodedatei importieren... 2 1.1 Funktion... 2 1.2 Konfiguration... 2 1.2.1 Lizenz... 2 1.2.2 Einstellungen... 2 1.2.3 Vorarbeiten... 3 1.2.3.1
MehrWie man eigene Programme erstellt
Kapitel 3 Wie man eigene Programme erstellt In diesem Kapitel geht es darum, sich mit einem Compiler vertraut zu machen. Dabei erfahren Sie, wie Sie eigene Programme auf den Systemen Windows und Linux
MehrErste Schritte. Das Arduino-Board. Ihr Fundino-Board. Programmieren für Ingenieure Sommer 2015. Andreas Zeller, Universität des Saarlandes
Erste Schritte Programmieren für Ingenieure Sommer 2015 Andreas Zeller, Universität des Saarlandes Das Arduino-Board Ihr Fundino-Board Anschluss über USB Anschluss über USB Programmierumgebung Download
MehrEntwurf von Algorithmen - Kontrollstrukturen
Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer
MehrAutoCAD 2007 - Dienstprogramm zur Lizenzübertragung
AutoCAD 2007 - Dienstprogramm zur Lizenzübertragung Problem: Um AutoCAD abwechselnd auf mehreren Rechnern einsetzen zu können konnte man bis AutoCAD 2000 einfach den Dongle umstecken. Seit AutoCAD 2000i
MehrII. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:
Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen
MehrC/C++ Programmierung
1 C/C++ Programmierung Grundlagen: Anweisungen Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Anweisungen (Statements)
MehrSoftware-Engineering und Optimierungsanwendungen in der Thermodynamik
Software-Engineering und Optimierungsanwendungen in der Thermodynamik Software-Engineering 5 Programmentwicklung und Debuggen mit IDE und CASE-Tools Übungen Prof. Dr. Rolf Dornberger OPTSWE_SWE: 5 Programmentwicklung
MehrDas erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.
Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen
MehrTestklausur 1 zur Vorlesung. Modellierung und Programmierung I. Dr. Monika Meiler Zeit: 60 Minuten
Matrikelnummer: Punkte: Testklausur 1 zur Vorlesung Modellierung und Programmierung I Dr. Monika Meiler Zeit: 60 Minuten Bemerkungen: Jedes Blatt ist mit der Matrikelnummer zu versehen. Jede Aufgabe ist
MehrFunktionale Programmierung mit Haskell
Funktionale Programmierung mit Haskell Dr. Michael Savorić Hohenstaufen-Gymnasium (HSG) Kaiserslautern Version 20120622 Überblick Wichtige Eigenschaften Einführungsbeispiele Listenerzeugung und Beispiel
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
Mehr2. Semester, 2. Prüfung, Lösung
2. Semester, 2. Prüfung, Lösung Name Die gesamte Prüfung bezieht sich auf die Programmierung in C++! Prüfungsdauer: 90 Minuten Mit Kugelschreiber oder Tinte schreiben Lösungen können direkt auf die Aufgabenblätter
Mehr