Informatik III: Aufgabenblock 1. 1 Datei eintippen, Programmkopf erstellen, kompilieren
|
|
- Nadine Becker
- vor 6 Jahren
- Abrufe
Transkript
1 Informatik III: Aufgabenblock 1 Endgültige Version vom 6. Oktober 2003 Abgabe vor dem 7. Nov Datei eintippen, Programmkopf erstellen, kompilieren Wenn Sie schon erfahren im Umgang mit UNIX und mit einem Editor Ihrer Wahl sind, dann können sie die Aufgaben 1 und 2 sehr schnell erledigen. Nachdem Sie gelesen haben, wie der Editor funktioniert, benutzen Sie ihn bitte, um ein erstes C-Programm einzutippen. Bitte tippen Sie dieses Programm selbst ein, um zu lernen, welche Zeichen beim C-Programmieren häufig verwendet werden, und wo sie auf der Tastatur zu finden sind. #include <stdio.h> void main(){ printf("hello World!\n"); } Anschließend speichern Sie das Programm unter dem Namen world.c ab. Machen Sie sich bitte mit den Unix-Kommandos zum Auflisten, Umbenennen und Löschen von Dateien und Verzeichnissen, zum Erzeugen von Verzeichnissen, und dem man-system der Hilfeseiten vertraut. 1.1 Programmkopf Erstellen Sie einen Programmkopf, der später jedes Ihrer Programme einleiten soll und speichern Sie ihn. Dies ist ein Kommentartext, in dem stehen soll, wer Sie sind. Er könnte beispielsweise so aussehen (die Zeile mit $Id$ wird später erklärt): /******************************************************************** * * Claus Muster, Elektrotechnik, 4. Sem., Mat-Nr * Sabine Beispiel, Wirtschafts-ET, 4. Sem., Mat-Nr * * * * $Id$ ********************************************************************/ 1
2 1.2 world.c kompilieren Nachdem Sie nun die Unix-Shell und den Editor benutzen können, ist es an der Zeit, den C- Compiler kennenzulernen. Bitte lesen Sie zuerst unsere Hinweise zum C-Compiler, wenn Sie es noch nicht getan haben. Sie sollten nun das von Ihnen abgetippte Programm world.c kompilieren, linken und ausführen. Bitte benutzen Sie nie die Form des Compiler-Aufrufs, die eine Datei a.out erzeugt, sondern verwenden Sie immer ein Argument -o, um eine ausführbare Datei mit demselben Namen wie das Quellprogramm zu erzeugen: gcc -o world world.c Der Grund hierfür ist, daß sie sonst irgendwann nicht mehr genau wissen, aus welchem Programm das File a.out erzeugt worden ist. Lassen Sie nun das Programm world laufen und sehen Sie sich die Ausgabe an. Dann ändern Sie das Programm so, daß es eine Begrüßung in Deutsch oder in irgendeinem Slang ausgibt. 1.3 Persönliche Begrüßung Erweitern Sie nun das Programm world um eine persönliche Begrüßung. Dazu soll das Programm einen Namen einlesen, und die Person persönlich begrüßen. Zum Einlesen eines Namens muß in dem Programm Speicherplatz für den Namen bereitgestellt werden. Dies geschieht mit einer Zeile der Form char name[100]; welche eine Variable name deklariert, die einen String von bis zu 100 Zeichen enthalten kann. Danach sollte vielleicht eine Aufforderung ausgedruckt werden, einen Namen einzugeben. Das Einlesen eines Namens geschieht mit der Zeile scanf("%s",name); und die Ausgabe, indem der Aufruf von printf noch ein zusätzliches Argument bekommt: printf("hallo %s!\n",name); Dabei gibt die Zeichenfolge %s an, wo in der Ausgabe der Name stehen soll. Es gibt noch weitere solcher Formatzeichen, wichtig ist %d zur Ausgabe einer ganzen Dezimalzahl, und %g zur Ausgabe einer reellen Zahl. Erweitern Sie das Programm world.c um eine solche persönliche Begrüßung. Erweitern Sie das Programm um eine Schleife, die weitere Namen einliest und die Personen begrüßt. Überlegen Sie sich ein Abbruchkriterium, zum Beispiel ein bestimmtes Zeichen zu Beginn eines Wortes. Verwenden Sie die Eingabeumlenkung, um Ihr Begrüßungsprogramm anhand einer vorher in einer Datei gespeicherten Liste von Namen zu testen. 2
3 2 Zahl einlesen Nun sollen Sie ein erstes Programm vollständig selbst schreiben. Dies ist Aufgabe 1.14 im Buch von Zeiner: Folgender Pseudocode beschreibt einen Algorithmus, der die Ziffern einer positiven ganzen Zahl einliest und den entsprechenden Zahlenwert berechnet. Zahl = 0 Zeichen c lesen (mit getchar() ) Solange c kein \n Zeichen ist wiederhole Falls das Zeichen eine gültige Ziffer ist dann aus bisheriger Zahl und der neuen Ziffer neue Zahl berechnen sonst Fehlermeldung ausgeben Zeichen c lesen Zahl ausgeben Programmieren sie diese Aufgabe in einem eigenen Programm und testen Sie dieses. Im Kolloquium mit den Hiwis werden Sie eine Änderung vornehmen müssen, daher sollten sie Ihr Programm auch gut verstanden haben. Der Aufbau einer Zahl in diesem Algorithmus erfolgt dabei nach dem Horner-Schema zur Auswertung von Polynomen: Die Ziffern ( ) werden ja von links nach rechts gelesen ( ), und ergeben (im Dezimalsystem mit Basis ) die Zahl Diese Formel wird hier aber nicht so verwendet, sondern Sie berechnen in jedem Schritt: Genauso sollte man auch bei der Auswertung von Polynomen verfahren, also man rechnet! #"$&% ('*)+,% )+&% statt -"$&%&%.&% -'&%/,%,% und spart eine Multiplikation pro Term. Verpacken Sie den Algorithmus zum Einlesen von Zahlen in eine Funktion, die die eingelesene Zahl zurückliefert. Schreiben Sie ein Hauptprogramm, welches zunächst die Eingabebasis einliest, und dann in einer Schleife eingegebene Zahlen von der Eingabebasis in die Dezimaldarstellung umwandelt und mit der normalen printf-anweisung ausgibt: 3
4 printf("die Zahl ist %d!\n",zahl); Freiwillig: Schreiben Sie analog eine Funktion zur Ausgabe von Zahlen in einer bestimmten Basis. Dabei verwenden Sie die C-Operatoren % (Modulo) und Division. Die Formel ergibt die letzte Ziffer der Zahl in der Basis. Sie können also die Funktion zum Umdrehen einer Zeichenkette hier wieder gebrauchen. Die Funktion sollte folgendermaßen definiert sein: void itoab(int i, int basis, char ziel[]) Freiwillig: Schreiben Sie ein Hauptprogramm, welches zunächst Eingabebasis und Ausgabebasis einliest, und dann in einer Schleife eingegebene Zahlen von der Eingabebasis in die Ausgabebasis umwandelt. Extraaufgabe: Wer möchte, kann die Umwandlungsroutinen auf Basen größer als 10 ausdehnen. In diesem Fall sollten die Ziffern, die größer als 9 sind, durch Buchstaben dargestellt werden, es folgt a mit dem Ziffernwert 10, b mit 11, usw. 3 Software-Technik Um ordentliche Programme schreiben zu können, müssen sie einige Hilfswerkzeuge kennenlernen. Wichtige Werkzeuge sind natürlich der Editor und der Compiler. Der Compiler kann sehr geschickt von einem Werkzeug aufgerufen werden, das sich make nennt und im folgenden eingeführt wird. Weitere Werkzeuge sind die Versionskontrolle mit RCS oder CVS und der Debugger (z.b. ddd), die in späteren Aufgaben behandelt werden. 3.1 Make-File Verwenden Sie für die folgenden Aufgaben das Make-file matrix.mak. Das Kommando make sollten Sie kennenlernen. Im Buch finden Sie Informationen dazu in Abschnitt Passen Sie das Makefile an Ihre Dateinamen an und übersetzen Sie das Programm mit make -f matrix.mak In Zukunft sollten Sie für jede Aufgabe ein getrenntes Verzeichnis anlegen, in dem Sie auch ein Makefile, möglichst mit dem Namen Makefile, anlegen. Dann können Sie die Files für diese Aufgabe mit dem Kommando make oder make programmname kompilieren. 3.2 Modularisierung Die folgenden Aufgaben haben das Ziel, für jede Teilaufgabe eine neue Funktion zu schreiben. Dabei soll jede Funktion eine (kleine, überschaubare) Aufgabe ausführen. Die Aufteilung der Aufgaben in solche überschaubaren Teilaufgaben nennt man Modularisierung, und sie ist ein wichtiger Aspekt der Erstellung von Software, die man auch weiterhin pflegen kann. Sie sollten Ihre Programme auch so modularisieren, daß möglichst keine globalen Variablen benutzt werden. 4
5 Globale Variablen erschweren das Verständnis einer Funktion, denn die Effekte einer Funktion können nicht mehr an den Ein- und Ausgabe-Parametern erkannt werden, sondern eine Funktion könnte theoretisch jede beliebige globale Variable ändern. Dadurch werden solche Programme schwer zu verstehen und sinnvoll zu verändern. Zusammenhängende Routinen können in einer gemeinsamen Datei stehen, aber verschiedenartige Aufgaben sollten auch dateimäßig getrennt werden. Die Parameterdefinition steht dann in einem Header-file wie mat.h, das in jedem C-File eingelesen wird. 4 Matrix speichern In den folgenden Aufgabenblöcken werden sie regelmäßig mit Matrizen rechnen müssen. Eine Matrix ist ein zweidimensionales Feld von Zahlen, die meist als double gespeichert werden. Für die Speicherung von Matrizen gibt es zwei Möglichkeiten: ' Eine Matrix mit bekannter Größe, z.b. kann mit double matrix_a[12][17]; definiert werden. Auf das Element wird dann mit dem Ausdruck matrix_a[i][j] zugegriffen. Ein solcher Zugriff wird intern umgerechnet auf einen Zugriff auf das Element mit index im Speicher. Weil in dieser Formel die Anzahl der Spalten bekannt sein muss, kann eine solche Matrix nur mit fester Größe an eine Unterfunktion übergeben werden. Wenn Matrizen verschiedener Größe behandelt werden sollen, dann ist es besser, die Matrix als Vektor von Zeigern zu speichern, die jeweils auf eine Zeile zeigen. (Mehr über Zeiger lesen Sie im Buch in Abschnitt 1.6 und Kapitel 9 und 10). Die Deklaration einer Matrix ist dann double **m_b; und es wird wie vorher mit m_b[i][j] auf Element zugegriffen. In diesem Fall wird aber keine Umrechnung der Adressen vorgenommen, sondern es wird zweimal einem Zeiger gefolgt. Allerdings enthält die Deklaration der Matrix noch nicht die Reservierung des Speicherplatzes. Dies geschieht mit einer Hilfsroutine, die den Speicher reserviert und die Zeiger entsprechend setzt: /* Reserviere eine Matrix von n * m Elementen */ double ** new_matrix(int n, int m){ double **mat; int j; /* reserviere Platz für Zeiger und Daten */ mat = (double ** ) malloc(n*sizeof(double* )); mat[0] = (double* ) calloc(n*m,sizeof(double)); 5
6 } /* Setze nun die Zeiger */ for (j=1; j<n; j++){ mat[j] = mat[j-1]+m; } return mat; /* Gebe Matrix frei */ void free_matrix(double ** mat){ free(mat[0]); free(mat); } Diese Routinen finden Sie im File mat_alloc.c. Zum Testen der Verwendung von Matrixen schreiben Sie bitte eine Routine, die eine Matrix ausgibt, und eine Routine die eine rechteckige Matrix von gegebener Größe erzeugt und sie mit einem Teil des Pascal schen Dreiecks füllt: Schreiben Sie ein Hauptprogramm, das diese beiden Routinen testet. Die Routinen seien folgendermaßen deklariert: /* erzeuge eine n*m Matrix mit Pascalschem Dreieck*/ double ** pascalmatrix (int n, int m); /* Drucke eine n*m Matrix aus */ void print_matrix (double ** matrix, int n, int m); 5 Datei Ein/Ausgabe Die bisher verwendeten Programme hatten keine Argumente in der Kommandozeile, und haben alle direkt von der Eingabe gelesen und direkt auf die Ausgabe geschrieben. Nun wollen wir das Matrix-Testprogramm so ändern, daß es auch von einer Datei lesen kann. Bitte lesen Sie Abschnitt 1.8.3, oder die Man-Pages für die Funktionen fprintf, fscanf, fopen, fclose, fgetc, fflush. Wenn wir Eingaben von einer Datei lesen möchten, so übergeben wir den Namen der Datei am besten als Argument in der Kommandozeile. Im Hauptprogramm sind die Kommandozeilenargumente verfügbar. Die vollständige Deklaration der main-funktion ist: int main (int argc, char* argv[]); 6
7 ' Dies bedeutet, daß main einen int-wert zurückgeben sollte, und zwei Argumente bekommt: Zunächst eine Zahl argc ( argument count ), die angibt, wieviele Worte in der Kommandozeile mit dem Programmaufruf standen. argv ( argument vector ) ist ein Vektor von Strings, ein String pro Wort in der Kommandozeile. Also ist argv[0] der Name, mit dem das Programm aufgerufen wurde, argv[1] ist das erste Kommandozeilenargument. In der Datei mat_input.c finden Sie eine Routine, die eine Matrix einliest. Sehen sie sich diese Routine an und testen Sie sie aus, indem Sie eine Datei mit einer Beispielmatrix erzeugen. Das Format ist aus dem Quelltext ersichtlich. Schreiben Sie ein Hauptprogramm, das eine Matrix aus einer Datei einliest (der Dateiname sollte als erstes Argument in der Kommandozeile übergeben werden) und sie auf der Ausgabe ausgibt. Erweitern Sie die Routine zur Matrixausgabe so, daß die Matrix in eine Datei geschrieben wird. Sie sollte nun folgender Definition entsprechen und in dem File mat_output.c stehen: /* Gebe eine Matrix in eine Datei aus */ void mat_output ( double **mat, int n, int m, FILE *outputfile); 6 Matrix Multiplikation Schreiben Sie eine Routine zur Matrixmultiplikation, die zwei kompatible Matrizen miteinander multiplizieren kann. Kompatibel heißt, daß die zweite Dimension der ersten Matrix gleich ist mit der ersten Dimension der zweiten Matrix, denn nur dann kann man sinnvoll multiplizieren. Testen Sie diese Routine, indem Sie ein Testprogramm schreiben und es mit einigen Beispielen testen. Testen Sie auch nicht-quadratische Matrizen! Beispiele: ' " " ' ' ' (1) Oder für alle x,y,z,a,b,c: % % (2) 7
Ü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 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:
MehrGI 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
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
MehrProgrammierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 5. Blatt Für den 26. und
Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 5. Blatt Für den 26. und 27.5.2008 Organisatorisches Um auf die Mailingliste aufgenommen zu werden schicke einfach eine
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
MehrZeichendarstellung. 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
MehrIm Windows Betriebssystem sind Dateien eindeutig gekennzeichnet durch ihren Pfad, Dateinamen und nach einem Punkt die Dateierweiterung.
Dateioperationen Seite 1 von 12 Im Windows Betriebssystem sind Dateien eindeutig gekennzeichnet durch ihren Pfad, Dateinamen und nach einem Punkt die Dateierweiterung. z.b.: c:\testdateien\text.dat //Datendatei
MehrStrings. Daten aus Dateien einlesen und in Dateien speichern.
Strings. Daten aus Dateien einlesen und in Dateien speichern. Strings Ein String ist eine Zeichenkette, welche von MATLAB nicht als Programmcode interpretiert wird. Der Ausdruck 'a' ist ein String bestehend
MehrÜbungspaket 14 Eindimensionale Arrays
Übungspaket 14 Eindimensionale Arrays Übungsziele: Skript: Deklaration und Verwendung eindimensionaler Arrays Kapitel: 33 Semester: Wintersemester 2016/17 Betreuer: Kevin, Matthias, Thomas und Ralf Synopsis:
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
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
MehrInformatik III: Aufgabenblock 3
1 UPN-Rechner Informatik III: Aufgabenblock 3 Endgültige Version vom 6. Oktober 2003 Abgabe vor dem 5. Dez. 2003 Für diese Aufgabe sollten Sie bis Kapitel 5 gelesen haben. In Abschnitt 5.9 wird ein einfacher
MehrC Ü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Übungspaket 12 Der Datentyp char
Übungspaket 12 Der Datentyp char Übungsziele: Skript: 1. Umgang mit dem Datentyp char, 2. Deklarationen von char-variablen, 3. char-konstanten 4. und char-rechenoperationen. Kapitel: 29 bis 31 sowie 24,
MehrE-/A-Funktionalität nicht Teil der Programmiersprache
C Ein-/Ausgabe C Ein-/Ausgabe C.1 Überblick E-/A-Funktionalität nicht Teil der Programmiersprache Realisisierung durch "normale" Funktionen Bestandteil der Standard-Funktionsbibliothek einfache Programmierschnittstelle
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
MehrInformatik I. Übung 2 : Programmieren in Eclipse. 5. März Daniel Hentzen
Informatik I Übung 2 : Programmieren in Eclipse 5. März 2014 Daniel Hentzen dhentzen@student.ethz.ch Downloads : http://n.ethz.ch/~dhentzen/download/ Heute 1. Nachbesprechung Übung 1 2. Theorie 3. Vorbesprechung
MehrKlausur: Grundlagen der Informatik I, am 05. Februar 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:
Seite 1 von 8 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 10 Pkt.) a) Geben
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.
MehrProgrammieren in C/C++ und MATLAB
Programmieren in C/C++ und MATLAB Sven Willert Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU 5-1 Übung Schreiben Sie ein Programm, das die Zahl π durch π = 4 4 4 4 4 4 + + +... 3 5 7 9 11
MehrKapitel. Platzhalter. Was sind Platzhalter?
Kapitel 3 Was sind? sind ganz wichtige Elemente bei der Programmierung. Alle Programme, die du schon kennst (wie beispielsweise die Textverarbeitung WORD oder ein Programm zum Verschicken von E-Mails),
MehrCEN1112 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
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
Mehr6. Zeiger Allgemeines Definition eines Zeigers
6. Zeiger www.c-programme.de Stefan Thiemert Kapitel 6 - Seite 1 von 6 6. 1. Allgemeines Zeiger spielen in der Programmierung eine wichtige Rolle. Sie sind wichtig, bei der Arbeit mit Arrays und Funktionen.
MehrArrays (Felder/Vektoren)
Arrays (Felder/Vektoren) Zusammenfassung mehrerer Variablen des gleichen Typs unter einem Namen im Speicher direkt hintereinander abgelegt Definition: Typname Arrayname [Größe]; Beispiel: int ar [5]; Zugriff
MehrGrundlagen der Programmierung
Grundlagen der Programmierung 5. Vorlesung 09.11.2016 1 Beispiel: Hello World #include Beginn Hauptprogramm int main() { Blockbeginn printf("hello World\n"); Einbinden der Headerdatei(en) für
MehrDateizugriff unter C
Begriffe Dateizugriff unter C Datei = sequentielle Ansammlung von Datenbytes, z.b. auf einer Festplatte Auch Bildschirm und Tastatur werden wie Dateien behandelt: Bildschirm ist die Datei stdout Tastatur
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
MehrProgrammieren in C/C++ und MATLAB
Programmieren in C/C++ und MATLAB Christof Beyer Sven Willert Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU 7-1 Bisher eingeführt war für Namen nur der Datentyp char. Dieser erlaubt das Speichern
MehrGrundlagen 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
MehrElementare 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
MehrModellierung und Programmierung
Modellierung und Programmierung Dr. Martin Riplinger 19.12.2012 IAM Institut für Angewandte Mathematik Funktionszeiger: Vorüberlegungen Funktionsaufrufe sind bis jetzt im Code mit Name explizit angegeben
MehrGrundlagen der Programmiersprache C++
/ TU Braunschweig Grundlagen der Programmiersprache C++ Um den Studierenden den Einstieg in die FE-Programmierung zu erleichtern werden die wesentlichen Elemente eines C-Programmes beschrieben, soweit
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
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
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)
MehrKapitel 7. Zusammengesetzte Datentypen, Vektoren, Zeichenketten
Kapitel 7 Zusammengesetzte Datentypen, Vektoren, Zeichenketten 1 Gliederung Kapitel 7 Zusammengesetzte Datentypen 7.1 Vektoren 7.2 Sortieren eines Vektors 7.3 Mehrdimensionale Felder 7.4 Umgang mit ein-/zweidimensionalen
MehrPROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl
PROGRAMMIEREN MIT C Allgemeine hinweise Alles was hier beschrieben wird, soll auch ausprobiert werden. Warum C? Weil die coolen Dinge mit C am einfachsten gehen. Das werden wir in den folgenden Übungen
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
MehrVariablen. Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes
Variablen Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes v ist Stück im Speicher, der 4 Bytes lang ist Speicherzugriff? Über Adressen!
MehrFH 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:
MehrEinleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens
Grundlagen von C Jonas Gresens Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität
MehrLinux-Einführung Übung
Linux-Einführung Übung Mark Heisterkamp 24. 25. Februar 2010 1 Einführung und Grundlagen 1.1 Erste Schritte... 1.1.1 Xterminalfenster Öffnen Sie ein weiteres Xterminalfenster mit der Maus. mittels Kommando.
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
MehrÜ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Übersicht Shell-Scripten
!!!! Wichtig: Bei Shell-Scripten enden die Zeilen nicht mit einem Strichpunkt!!!! Erste Zeile eines Shell-Scripts: #! /bin/bash Variablen in Shell-Scripts: Variablennamen müssen mit einem Buchstaben beginnen,
MehrEinführung in die C-Programmierung
Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).
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 16 AUTOMATISCHES ÜBERSETZEN VON PROGRAMMEN MIT MAKE... 2 16.1
MehrPrü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
MehrIhr Heimatverzeichnis. Die Ausgangsverzeichnisse für die neu zu erstellenden Verzeichnisse sind folgender Tabelle zu entnehmen:
1. Aufgabe Erzeugen von Verzeichnissen Ausgehend vom Verzeichnisbaum Ihr Heimatverzeichnis / home users xyz ist folgende Struktur zu erzeugen: Ihr Heimatverzeichnis v1 v2 v3 / home users xyz v4 v5 v6 Die
MehrZugriff auf Matrizen. Anhängen von Elementen. Punktweise Operatoren. Vektoren und Matrizen in MATLAB II
Zugriff auf Matrizen. Anhängen von Elementen. Punktweise Operatoren. Vektoren und Matrizen in MATLAB II Matrixzugriff Wir wollen nun unsere Einführung in die Arbeit mit Vektoren und Matrizen in MATLAB
Mehr2 Einfache Rechnungen
2 Einfache Rechnungen 2.1 Zahlen Computer, auch bekannt als Rechner, sind sinnvoller eingesetzt, wenn sie nicht nur feste Texte ausgeben, sondern eben auch rechnen. Um das Rechnen mit Zahlen zu verstehen,
MehrIngenieurinformatik 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+ C - Array (Vektoren, Felder)
+ C - Array (Vektoren, Felder) Eindimensionale Arrays Beim Programmieren steht man oft vor dem Problem, ähnliche, zusammengehörige Daten (vom gleichen Datentyp) zu speichern. Wenn man zum Beispiel ein
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
MehrDie elementare Ausgabe von Daten auf externe Medien, wie Dateien und das Einlesen davon wird demonstriert.
Ein- und Ausgabe Die elementare Ausgabe von Daten auf externe Medien, wie Dateien und das Einlesen davon wird demonstriert. Komplexe E/A-Operationen werden erst diskutiert, nachdem das Klassenkonzept erarbeitet
MehrProgrammiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny
Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 7. Funktionen Einleitung Nach dem Prinzip Divide and Conquer bietet es sich an, größere Aufgaben in kleinere Teile zu unterteilen. Anweisungsblöcke,
MehrÜ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
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
Mehr3D Programmierpraktikum: Einführung in C++ - Teil 1
3D Programmierpraktikum: Einführung in C++ - Teil 1 Praktikum 3D Programmierung Sebastian Boring, Otmar Hilliges Donnerstag, 27. April 2006 LMU München Medieninformatik Boring/Hilliges 3D Programmierpraktikum
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
MehrNachname:... 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:
MehrUnterprogramme, Pointer und die Übergabe von Arrays
Unterprogramme, Pointer und die Übergabe von Arrays Unterprogramme Wie schon im Abschnitt über Funktionen erwähnt, versteht man unter einem Unterprogramm im engeren Sinn eine Prozedur, welche die Werte
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
MehrProgrammieren in C (Übungsblatt 1)
21.02.2017 Aufgabe 1: Programmausführung Programmieren in C (Übungsblatt 1) a) Bitte geben Sie den folgenden Programmcode ein: /* Beispiel fuer Textausgaben */ #include int main() { printf("c-programmierung
MehrTag 4 Repetitorium Informatik (Java)
Tag 4 Repetitorium Informatik (Java) Dozent: Patrick Kreutzer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2016/2017 Willkommen zum Informatik-Repetitorium!
MehrIn der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch
Kapitel Matrizen in C++ In der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch 1 const int n=10; 3 double a[n][n]; gegeben. Allerdings gibt es bei dieser Methode eine Reihe
MehrProgrammieren 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 Textausgabe per printf Die Funktion printf ist kein Bestandteil der C Sprache sondern gehört zur C Bibliothek. printf
MehrDAP2 Praktikum Blatt 1
Fakultät für Informatik Lehrstuhl 11 / Algorithm Engineering Prof. Dr. Petra Mutzel, Carsten Gutwenger Sommersemester 2009 DAP2 Praktikum Blatt 1 Ausgabe: 21. April Abgabe: 22. 24. April Kurzaufgabe 1.1
MehrKontrollstrukturen und Funktionen in C
Kontrollstrukturen und Funktionen in C Lernziele: Vertiefen der Kenntnisse über Operatoren, Kontrollstrukturen und die Verwendung von Funktionen. Aufgabe 1: Quickies: Datentypen in C a) Was sind die elementaren
MehrInstitut für Programmierung und Reaktive Systeme 19. August Programmier-Labor. 1. Übungsblatt
echnische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 19. August 2014 Aufgabe 1: Programmier-Labor 1. Übungsblatt a) Welche primitiven Datentypen kennt
MehrEinstieg in die Informatik mit Java
1 / 26 Einstieg in die Informatik mit Java Felder Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Was sind Felder? 2 Vereinbarung von Feldern 3 Erzeugen von Feldern
MehrGrundlagen der Informatik. Mathias Buhr
Grundlagen der Informatik 1 Übersicht - 2.Übung Rückblick 1. Übung Compiler prozedurale Programmierung in C Variablen Funktionen Kontrollstrukturen Literatur 2 Rückblick Information & Entropie Zahlensysteme
MehrWas Mathematiker schon vor Jahrhunderten erfunden haben, gibt es jetzt endlich in ihrer Programmiersprache:
Kapitel 8 Operatoren Was Mathematiker schon vor Jahrhunderten erfunden haben, gibt es jetzt endlich in ihrer Programmiersprache: Operatoren definieren Es ist in C++ möglich, Operatoren wie +, oder für
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
MehrÜbungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11
Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11 Fakultät für Informatik Lehrstuhl 1 Dr. Lars Hildebrand Carla Delgado-Battenfeld Fatih Gedikli Tobias Marschall Benjamin Schowe
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.
MehrL4. Erster Schritt zum Programmieren
L4. Erster Schritt zum Programmieren 1 Programmierung in Hoch Beispielprogramme in FORTRAN, PASCAL und C Die Programmiersprache C Erstellung und Übersetzung eines C-Programms Das Programm Hello World Eingabe
MehrVariablen in MATLAB. Unterschiede zur Mathematik: Symbolisches und numerisches Rechnen. Skriptdateien. for-schleifen.
Variablen in MATLAB. Unterschiede zur Mathematik: Symbolisches und numerisches Rechnen. Skriptdateien. for-schleifen. Wir wollen uns heute dem Thema Variablen widmen und uns damit beschäftigen, wie sich
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
MehrSchleifenanweisungen
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Ü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
Mehr1. Übung zu "Numerik partieller Differentialgleichungen"
1. Übung zu "Numerik partieller Differentialgleichungen" Simon Gawlok, Eva Treiber Engineering Mathematics and Computing Lab 22. Oktober 2014 1 / 15 1 Organisatorisches 2 3 4 2 / 15 Organisatorisches Ort:
MehrInhalt. Peter Sobe 63. Felder in C
Inhalt Inhalt: 4. Programmiersprache C 4.1 Programmaufbau in C 4.2 Basisdatentypen und einfache Anweisungen 4.3 Streuerfluss-Konstrukte 4.4 Arbeit mit indizierten Größen (Felder) 4.5 Arbeit mit Pointern
MehrTutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2
Prof. aa Dr. J. Giesl Programmierung WS16/17 F. Frohn, J. Hensel, D. Korzeniewski Tutoraufgabe 1 (Zweierkomplement): a) Sei x eine ganze Zahl. Wie unterscheiden sich die Zweierkomplement-Darstellungen
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
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
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,
MehrDie einfachsten Anweisungen
2 Die einfachsten Anweisungen 2-1 Inhalt Die einfachsten Anweisungen Einführung Datentypen Arithmetische Operatoren Mathematische Funktionen Mehrfache Zuweisungen Übungsaufgaben Einführung Wir wollen unser
MehrHochschule Niederrhein Einführung in die Programmierung Prof. Dr. Nitsche. Bachelor Informatik WS 2015/16 Blatt 3 Beispiellösung.
Zahldarstellung Lernziele: Vertiefen der Kenntnisse über Zahldarstellungen. Aufgabe 1: Werte/Konstanten Ergänzen Sie die Tabelle ganzzahliger Konstanten auf einem 16- Bit- System. Die Konstanten in einer
MehrProgrammieren in C/C++ und MATLAB
Programmieren in C/C++ und MATLAB Sven Willert Christian-Albrechts-Universität zu Kiel CAU 2-1 Datentypen und Formate Mit der Festlegung des Datentyps wird die Art bestimmt, mit der der Computer die Informationen
MehrStrukturen & Math. Strukturen und Vektoren. Allokieren eines Vektors. Zugriff auf Strukturen. Freigeben eines Vektors
Strukturen & Math Strukturen für mathematische Objekte: allgemeine Vektoren Matrizen Strukturen und Vektoren 1 #ifndef _STRUCT_VECTOR_ 2 #define _STRUCT_VECTOR_ 3 4 #include 5 #include
MehrVorkurs C++ Programmierung
Vorkurs C++ Programmierung Funktionen Rückblick Operatoren logische Verknüpfungen Zusammengesetzte Operatoren ( Zuweisungsoperatoren ) Kontrollstrukturen Bedingte Anweisungen (if-abfrage, switch-konstrukt)
MehrUnterlagen. CPP-Uebungen-08/
Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen
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
MehrÜbersicht PERL. !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!!
!!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!! Erste Zeile eines PERL-Scripts: #! /usr/bin/perl Variablen in PERL: Normale Variablen beginnen mit einem $-Zeichen Array-Variablen beginnen mit
MehrKlausur in Programmieren
Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Sommer 2014, 16. Juli 2014 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name: Matrikelnr.:
MehrZeiger, Arrays und Strings in C und C++
Zeiger, Arrays und Strings in C und C++ 1 Zeiger in Java und C/C++ Zeigervariable (kurz: Zeiger, engl.: pointer): eine Variable, die als Wert eine Speicheradresse enthält Java: Zeiger werden implizit für
MehrWiederholung und Vertiefung. Programmieren in C. Pointer und so... thoto. /dev/tal e.v. 6. April 2013 (Version vom 11. April 2013) Programmieren in C
Pointer und so... 6. April 2013 (Version vom 11. April 2013) Agenda für Heute 1 Wiederholung und Vertiefung Wiederholung 2 Was sind? Felder und Vektoren? Zeichenketten Wiederholung Wiederholung Funktion
Mehr