C-C++-Kurs Februar/März (Thu Feb 26 08:54: ), p. 1. Einführung in die Programmiersprachen C und C++
|
|
- Gisela Diefenbach
- vor 5 Jahren
- Abrufe
Transkript
1 C-C++-Kurs Februar/März (Thu Feb 26 08:54: ), p. 1 Strukturen Einführung in die Programmiersprachen C und C++ Prof. Dr. Ulf Rehmann, Fakultät für Mathematik Übungsblatt 4 (7 Seiten) Es können Datentypen strukturiert zusammengefaßt werden zu komplexeren Daten- strukturen. Zum Beispiel kann etwa in einem Grafikpaket es sinnvoll sein, Punkte auf dem Bildschirm durch ihre Pixel- Koordinanten beschrieben zu einem neuen Datentyp zusammenzufassen. Dies gelingt durch die folgende Deklaration. struct punkt { int x; int y; Damit wird ein neuer Datentyp geschaffen namens struct punkt. Es sind dann Deklarationen möglich wie struct punkt a, b, z; m usw., syntaktisch analog zu Die Deklaration int a, b, z; struct punkt p; definiert eine Variable p vom Typ struct punkt. Durch struct punkt p = { 123, 456 wird mit der Deklaration eine Initialisierung vorgenommen, auf die Komponenten (= members ) der Struktur wird mittels des. -Operators durch die syntaktische Konstruktion zugegriffen. structure-name.member Aufgabe 5.1: Welchen Wert liefert in diesem Fall sizeof(struct punkt)? Im obigen Fall bezeichnet p.x die x-komponente von p. Zum Beispiel kann man mit printf("%d %d", p.x, p.y); die Koordinaten von p ausdrucken, mit double dist, sqrt(double);... dist = sqrt((double)p.x * p.x + (double)p.y * p.y); kann man nach einer bekannten Formel den Abstand zum Punkt (0,0) berechnen. Strukturen können geschachtelt werden. Durch struct recht { struct punkt lu; struct punkt ro; läßt sich ein Datentyp recht deklarieren, der ein (horizontales) Rechteck durch Fixieren des linken unteren und rechten oberen Eckpunktes beschreibt. Nach der Deklaration struct recht screen; bezeichnet z. B. screen.lu.x die x-koordinate der linken unteren Ecke usw.
2 C-C++-Kurs Februar/März (Thu Feb 26 08:54: ), p. 2 Strukturen können als Variable an Funktionen übergeben und von ihnen als Wert zurückgegeben werden. Zum Beispiel ist folgendes eine Funktion, die aus zwei int ein p macht: struct punkt mkpunkt(int x, int y) { struct punkt temp; temp.x = x; temp.y = y; return temp; Zwei Punkte können (als Vektoren) addiert werden etwa durch: struct punkt add(struct punkt p1, struct punkt p2) { p1.x += p2.x; p1.y += p2.y; return p1; Durch struct punkt *p; wird ein Zeiger p auf Objekte vom Typ struct punkt erklärt. (*p).x bezeichnet dann die x-koordinate eines struct punkt-objektes, auf das p zeigt. Äquivalent hierzu ist die Notation p->x. Beispiel: Kalenderdatum Kalenderdaten sind ein Beispiel für eine mehrteilige Struktur, bestehend z. B. aus Tag, Monat, Jahr. Sie können als Einheit aufgefasst und so bearbeitet werden, z. B., um die Anzahl der Tage zwischen zwei Daten zu ermitteln, etwa für Zinsberechnungen etc. In unserem Beispiel haben wir auch noch zu jedem Datum die Nummer des Tages im Jahr als Komponente hinzugenommen. Aufgabe 5.2: Erweitern Sie die Struktur, so dass auch eine Komponente Kalenderwoche enhalten ist. (Hinweis: Als erste Kalenderwoche eines Jahres gilt die erste Woche, die einen Donnerstag enthält. Nach Konvention beginnt eine Woche jeweils am Montag.) Aufgabe 5.3: Erweitern Sie dies Programm so. dass die Funktion add auch negative int verarbeitet.
3 C-C++-Kurs Februar/März (Thu Feb 26 08:54: ), p. 3 #include <stdio.h> #include <string.h> char *tage[] = { "Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Sonnabend" struct datum { /* t m j = tag monat jahr */ int t; int m; int j; int n; /* n = Nummer des Tages im Jahr */ typedef struct datum datum; /* Hier ist die zweite Komponente ein int-array der Laenge 2: */ typedef struct monat { char *name; int n[2]; monat; /* Array aus struct monat : Die Zahlen geben die Anzahl Tage an, die nach Ende das Monats verflossen sind - in der zweiten Spalte fuer Schaltjahre */ monat mon[] = { {"null", { 0, 0, {"Januar", { 31, 31, {"Februar", {59, 60, {"Maerz", { 90, 91, {"April", {120,121, {"Mai", {151,152, {"Juni", {181,182, {"Juli", {212,213, {"August", {243,244, {"September",{273,274, {"Oktober", {304,305, {"November", {334,335, {"Dezember", {365,366 int schalt(int j) { /* gregorianisch */ return ( j % 4 == 0 && j % 100!= 0 j % 400 == 0 ); int jahr laenge(int j) { return schalt(j); int mon laenge(datum d) { /* braucht "zulaessiges" d.m */ return mon[d.m].n[ schalt(d.j) ] - mon[d.m-1].n[ schalt(d.j) ]; void printdatum(datum d) { /* braucht "zulaessiges" d.m */ printf("%d. %s, %d\n", d.t, mon[d.m].name, d.j); /* berechnet die Nummer des Tages im Jahr, braucht "zulaessiges" Datum*/ void normalize(datum *p) { p->n = p->t + mon[ p->m - 1 ].n[ schalt(p->j) ]; /* Baut ein Datum und kontrolliert Zulaessigkeit: */ datum makedatum(int tag, int monat, int jahr) { datum d = { tag, monat, jahr, 0 if ( 1 <= d.m && d.m <= 12 && 1 <= d.t && d.t <= mon laenge(d) ) { normalize(&d); return d; printf("das Datum gibt es nicht : %d.%d.%d\n", tag,monat,jahr); exit(1);
4 C-C++-Kurs Februar/März (Thu Feb 26 08:54: ), p. 4 /* Liefert zum Tag n >= 1 und Jahr j das Datum des n-ten Tages ab und inklusive 1.1.j */ datum dat(int j, int n) { int i; for (i=1; i <= 12; i++) if (n <= mon[i].n[ schalt(j) ] ) return makedatum( n - mon[i-1].n[ schalt(j) ], i, j); return dat( j+1, n - jahr laenge(j) ); /* Berechne u - v */ int diff(datum u, datum v) { int n, i; if (u.j < v.j (u.j == v.j && u.n < v.n ) ) return -diff(v,u); n = u.n; for(i = u.j - 1; i >= v.j; i--) n += jahr laenge(i); n -= v.n; return n; /* Liefert das Datum des folgenden Tages */ datum inc tag(datum v) { return dat(v.j, v.n+1 ); datum add(datum u, int t) { if (t >= 0) { return dat(u.j, u.n + t); printf ("Nicht implementiert (t negativ) : %d\n", t); exit(1); char *wochentag(datum d) { datum e; int t; e = makedatum(31,12,2000); /* ist ein Sonntag */ t = diff(d,e) % 7; if ( t < 0 ) t += 7; return tage[t]; main() { int t, m, j; datum d, dd; while(1) { printf("bitte Tag Monat Jahr (als Zahlen) eingeben : "); scanf("%d %d %d", &t, &m, &j); d = makedatum(t,m,j); printf("das Datum ist : "); printdatum(d); printf("es ist der %d-te Tag im Jahr %d.\n", d.n, d.j); printf("es ist ein %s.\n", wochentag(d) );
5 C-C++-Kurs Februar/März (Thu Feb 26 08:54: ), p. 5 printf("der naechste Tag ist : "); printdatum( inc tag(d) ); printf ("wieviele Tage dazu? "); scanf("%d", &t); dd = add(d,t); printdatum( dd ); printf("unterschied nach diff : %d\n", diff(d,dd)); Strukturen können selbstreferentiell sein, d. h. auf Zeigeobjekte des eigenene Typs verweisen. In Verzeichnis der Beispielprogramme findet sich die Datei baum.c, die die Struktur eines Binärbaums implementiert. struct node { char *wort; int zahl; struct node *links; struct node *rechts; typedef struct node knoten; Jedes Objekt struct node enthält zwei Zeiger links, rechts auf ein struct node. Diese Struktur ist geeignet, ungeordnete Daten zu sortieren. Mit dem zugehorigen Programm kann man die Häufigkeit des Auftretens von Wörtern abzählen. Aufgabe 5.4: Studieren Sie die Wirkungsweise des Programms baum.c. Hinweise: Das Programm liest Wörter aus der Standard-Eingabe und fügt sie über die Funktion suche() in einen Binärbaum ein. Dabei wird der Binärbaum selbst konstruiert: Er besteht aus Knoten struct node mit vier Komponenten: einem String (char *wort), einem Häufigkeitszähler (int zahl) und zwei Zeigern auf Knoten (struct node *links, *rechts), die ihrerseits tatsächlich auf weitere Knoten zeigen oder den Wert NULL haben koennen. Anfänglich hat der Eingangsknoten (die Wurzel des Baumes) den Wert NULL. Für ein gelesenes Wort wird der Baum auf folgende Weise durchsucht: Beginnend bei der Wurzel, wird entweder ein Knoten mit dem Wort als String eingerichtet, wobei der Zähler auf 1 und die Teilbäume links, rechts auf NULL initialisiert werden, oder das Wort wird mit dem Wort am betrachteten Knoten verglichen. Bei Gleichheit wird ledigliche die Grösse zahl inkrementiert. Geht das neue Wort dem String am Knoten lexikografisch voran bzw. folgt es ihm lexikografisch nach, wird für das Wort in gleicher Weise mit dem linken bzw. rechten Teilbaum verfahren, d.h. es wird dort jeweils entweder ein neuer Knoten eingerichtet oder der Vergleich mit dem dort vorgefundenen String vorgenommen. Z. B. ergibt der folgende Satz den darunter stehenden Baum (alle Zähler = 1): Dieses ist ein aus acht Wörtern bestehender Satz Dieses aus ist acht bestehender ein Wörtern Satz
6 C-C++-Kurs Februar/März (Thu Feb 26 08:54: ), p. 6 /* titel: baum.c; Binaerbaum als Beispiel zu selbstreferentiellen Strukturen */ #include <stdio.h> #include <ctype.h> #include <string.h> #include <stdlib.h> #include <locale.h> #define MAX WORT 40 char *progname; struct node { char *wort; int zahl; struct node *links; struct node *rechts; typedef struct node knoten; /* main liest aus der Standard-Eingabe die Woerter und gibt sie lexikographisch sortiert mit Haeufigkeitsangabe auf die Standard-Ausgabe aus. */ int dcount = 0; main() { knoten *unterbaum, *suche(); int wcount=0; char wort [ MAX WORT ] ; int c; setlocale(lc ALL, "deutsch"); unterbaum = NULL; while ( ( c = lieswort( wort, MAX WORT) )!= EOF ) if (c == a ) { unterbaum = suche( unterbaum, wort ); wcount++; printf("%d Woerter gelesen, davon paarweise verschieden: %d\n",wcount, dcount); inorder( unterbaum ); /* lieswort liest aus einer Datei ein Wort der Laenge < lim in den Speicher, auf den w zeigt, und gibt a zurueck, falls es wirklich Alphazeichen gelesen hat, jedoch EOF im Fall zu grosser Wortlaenge. Falls Nicht-Alpha-Zeichen gelesen werden, werden diese einzeln zurueckgegeben. */ int lieswort(char *w, int lim) { int c; while (!isalpha( c = getchar() ) ) if ( c == EOF ) return c; *w++ = c; lim--; /* Alpha-Zeichen gesehen, suche nach weiteren: */ while ( isalpha( c = getchar() ) && lim > 0 ) { *w++ = c; lim--; if (lim == 0) { printf("error: Wort zu lang "); return EOF; else *w = 0; return a ;
7 C-C++-Kurs Februar/März (Thu Feb 26 08:54: ), p. 7 /* suche durchsucht den Baum auf das Vorkommen des Wortes w, traegt es gegebenenfalls lexikographisch richtig ein bzw. erhoeht dessen Zahl und gibt den Pointer auf seinen Knoten zurueck. Die c-funktion strcmp (resp. strcoll) vergleicht zwei Zeichenketten lexikographisch mit Rueckgabe einer negativen Zahl, 0 oder einer positiven Zahl. */ knoten *suche(knoten *p, char *w) { knoten *p knoten(); char *merke wort(); int cond; if (p == NULL) { p = p knoten(); p->wort = merke wort(w); p->zahl = 1; p->links = p->rechts = NULL; dcount++; else if ((cond = strcoll(w, p->wort)) == 0) p->zahl++; else if (cond < 0) p->links = suche(p->links, w); else p->rechts = suche(p->rechts, w); return p ; /* p knoten gibt einen Zeiger auf freien Speicherplatz fuer eine Knoten-Variable zurueck. */ knoten *p knoten(void) { return (knoten *)malloc( sizeof( knoten ) ) ; /* inorder gibt den Unterbaum, auf den p zeigt, in Inorder aus. (rekursive Version!) */ inorder(knoten *p) { if (p!= NULL){ inorder(p->links); printf("%4d %s\n", p->zahl, p->wort); inorder(p->rechts); /* merke wort speichert das Wort, auf dessen ersten Charakter s zeigt, und gibt einen Zeiger auf dessen neue Lokation an. die c-funktionen strlen, strcpy geben die Laenge einer Zeichenkette zurueck beziehungsweise kopieren diese. */ char *merke wort(char *s) { char *p; if ( ( p = (char *)malloc( strlen(s)+1 ) )!= NULL ) strcpy(p, s); return p ;
C-C++-Kurs Februar/März (Wed Mar 9 19:43: ), p. 1
C-C++-Kurs Februar/März 2005 10 (Wed Mar 9 19:43:59 2005), p. 1 Einführung in die Programmiersprachen C und C++ Prof. Dr. Ulf Rehmann, Fakultät für Mathematik Übungsblatt 10 (7 Seiten) Hier die Kombination
einlesen n > 0? Ausgabe Negative Zahl
1 Lösungen Kapitel 1 Aufgabe 1.1: Nassi-Shneiderman-Diagramm quadratzahlen Vervollständigen Sie das unten angegebene Nassi-Shneiderman-Diagramm für ein Programm, welches in einer (äußeren) Schleife Integer-Zahlen
Programmiersprachen Einführung in C
Programmiersprachen Einführung in C Teil 8: Felder und Zeichenketten Prof. Dr. Gliederung Programmiersprachen 1. Von der Maschinensprache zu C 2. Die Struktur von C-Programmen 3. Variable und Datentypen
Fakultä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 **
C-C++-Kurs Februar/März (Mon Mar 7 23:18: ), p. 1
C-C++-Kurs Februar/März 2005 05 (Mon Mar 7 23:18:58 2005), p. 1 Einführung in die Programmiersprachen C und C++ Prof. Dr. Ulf Rehmann, Fakultät für Mathematik Übungsblatt 5 (8 Seiten) Zur Wiederholung
Zeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch
darstellung Arbeiten mit darstellung werden im Computer durch (kleine) Zahlen dargestellt in C können im Datentyp char gespeichert werden, dieser umfasst ein Byte und gilt als Ganzzahltyp darstellung Arbeiten
Kontrollfragen Mikrocontroller Programmiersprache C H1203 Felix Rohrer
Block 1 1. Welcher Wert hat w? int w = 034; 28 (Dezimal) 034 wird als Octal interpretiert 34oct = 28dec 2. Wie lauten die Ergebnisse? unsigned int a = 3, b = 5, c = 7; unsigned int x, y, z; x = a == 3;
Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin
Fakutltät IV Technische Universität Berlin 5. Mai 2014 Inhaltsverzeichnis 1 2 3 4 5 6 7 Überblick Beispielprogramm in Java Beispielprogramm in C 1 2 3 4 5 6 7 Beispielprogramm in Java Beispielprogramm
Probeklausur Name: (c)
Einführung in die Praktische Informatik 30.1.2013 Probeklausur Name: Teil I: Datentypen (20 Punkte) Lösen sie die Probleme, indem sie die korrekten Lösungen ankreuzen bzw. in die vorgesehenen Freiräume
Arrays (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
Lösungshinweise/-vorschläge zum Übungsblatt 13: Software-Entwicklung 1 (WS 2017/18)
Dr. Annette Bieniusa Mathias Weber, M. Sc. Peter Zeller, M. Sc. TU Kaiserslautern Fachbereich Informatik AG Softwaretechnik Lösungshinweise/-vorschläge zum Übungsblatt 13: Software-Entwicklung 1 (WS 2017/18)
GI Vektoren
Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung
Dr. Monika Meiler. Inhalt
Inhalt 12 Strukturierte Datentpen - Strukturen... 12-2 12.1 Definition und Deklaration von Strukturtpen und Strukturen... 12-2 12.2 Strukturen als Funktionsparameter und Funktionswert... 12-4 12.3 Felder
1. Aufgabe (6 Punkte)
Nachname:... Vorname:... MatrNr.:... Klausur PR2 HAW-Hamburg, Fakultät Technik und Informatik, Department Informations- und Elektrotechnik Dr. Robert Heß, 1.2.2008 Bearbeitungsdauer: 90 min Hilfsmittel:
Teil 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
Teil 5: Felder, Zeiger, Zeigerarithmetik Gliederung
Teil 5: Felder, Zeiger, Zeigerarithmetik Gliederung Felder (Arrays) Mehrdimensionale Felder Zeiger und Adressen Zeigerarithmetik Felder Mehrdimensionale Felder Zeiger und Adressen Zeigerarithmetik Felder
Einführung in die Programmierung für Physiker. Die Programmiersprache C Strukturen ("struct...")
Einführung in die Programmierung für Physiker Die Programmiersprache C Strukturen ("struct...") Marc Wagner Institut für theoretische Physik Johann Wolfgang Goethe-Universität Frankfurt am Main WS 2013/14
Einführung in die Programmierung für Physiker. Die Programmiersprache C Strukturen ("struct...")
Einführung in die Programmierung für Physiker Die Programmiersprache C Strukturen ("struct...") Marc Wagner Institut für theoretische Physik Johann Wolfgang Goethe-Universität Frankfurt am Main WS 2017/18
file:///h:/dokumente/_fh/ ws /etinfoii/vorlesung/infoi...
3.2 Doppelzeiger Wie im letzten Kapitel erläutert, sind Doppelzeiger Zeiger, die auf einen weiteren Zeiger verweisen. Doppelzeiger werden unter anderem dann benötigt, wenn eine Matrix, die sowohl in der
Programmieren 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
Programmiersprachen Einführung in C
Programmiersprachen Einführung in C Teil 2: Prof. Dr. Unser erstes C-Programm int main (int argc, char *argv[]) int i; int sum = 0; for (i = 0; i
F Zeiger, Felder und Strukturen in C
F Zeiger, Felder und Strukturen in C F Zeiger, Felder und Strukturen in C F.1 Zeiger(-Variablen) 1 Einordnung Konstante: Bezeichnung für einen Wert a 0110 0001 Variable: Bezeichnung eines Datenobjekts
FH Ravensburg-Weingarten Schriftlich Prüfung Programmieren
FH Ravensburg-Weingarten Schriftlich Prüfung Programmieren Prof. Dr. M. Zeller Datum, Zeit Aufgabenblätter erreichbare Punktzahl zugelassene Hilfsmittel, 0800 1000 Uhr (120 min) 16 Seiten (einschl. Deckblatt)
Strukturen in C. Strukturen stellen eine Zusammenfassung von Datenelementen unterschiedlichen Typs unter einem Namen dar.
Strukturen in C Strukturen stellen eine Zusammenfassung von Datenelementen unterschiedlichen Typs unter einem Namen dar. Dadurch sind sie vergleichbar mit Feldern, die eine Zusammenfassung (Reihung) von
Zeichenketten. Peter Sobe
Zeichenketten existieren in C nicht als eigener Typ. Es können nur Zeichenkettenkonstante z.b. zur Ausgabe benutzt werden. Beispiel: printf( Guten Tag!\n ); Eine Zeichenkette als Variable kann aber in
Praxis der Programmierung
Zeichenketten (Strings), Ein- und Ausgabe Institut für Informatik und Computational Science Universität Potsdam Henning Bordihn Einige Folien gehen auf A. Terzibaschian zurück. 1 Zeichenketten (Strings)
2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)
Klausur Programmiersprachen SS 2005
Klausur Programmiersprachen SS 2005 Prüfer: Prof. Dr. Schwenk Prüfungstermin: 30.8.2005 Dauer: - 120 Minuten (Diplom ITS neue DPO, Diplom ETIT neue DPO): Sie müssen nur Aufgaben im Umfang von 100 Punkten
Informatik I Einführung in die Informatik und Programmierung. Klausur
Angewandte Informatik Algorithmik Informatik I Einführung in die Informatik und Programmierung (Vorlesung vom WS 2004/2005) Klausur Datum: 24.02.2005 Beginn: 10.00 Uhr s.t. Bearbeitungszeit: 120 Minuten
Teil 6: Strukturen und Unionen Gliederung
Teil 6: Strukturen und Unionen Gliederung Strukturen Typdefinitionen Unionen Dynamische Speicherverwaltung Strukturen Typdefinitionen Unionen Dynamische Speicherverwaltung Strukturen 6.2 Strukturen Typdefinitionen
Zusammengehörige Daten struct. Strukturierte Datentypen und Funktionszeiger. Zugriff auf struct-elemente. Variablendeklarationen mit struct
Zusammengehörige Daten Anstatt logisch zusammengehörende Daten in mehreren unabhängigen Variablen zu speichern, kann man für sie einen eigenen Datentyp ( Verbund, Record ) definieren, der diesen Zusammenhang
Advanced Programming in C
Advanced Programming in C Pointer und Listen Institut für Numerische Simulation Rheinische Friedrich-Wilhelms-Universität Bonn Oktober 2013 Überblick 1 Variablen vs. Pointer - Statischer und dynamischer
Programmierkurs C++ Datenstrukturen Seite 1
Programmierkurs C++ Datenstrukturen Seite 1 3 Datenstrukturen 3.1 Arrays Zur Wiederholung als Strukturelement der Programmierung gehört auf der Seite der Datenstrukturen die Liste. Eine Liste kann auf
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine
6. Bearbeitung von Strings in C Bearbeitung von Strings in C
Bearbeitung von Strings in C 6-1 Definition des String: 6. Bearbeitung von Strings in C Zeichenstrings werden als Felder von Zeichen abgespeichert: char [ ] ; Wie die Daten (Zeichenfolge)
Vektoren 105. array-qualifier static restrict const volatile array-size-expression assignment-expression * simple-declarator identifier
Vektoren 105 direct-declarator simple-declarator ( simple-declarator ) function-declarator array-declarator array-declarator direct-declarator [ [ array-qualifier-list ] [ array-size-expression ] ] array-qualifier-list
INE1 Arrays, Zeiger, Datenstrukturen
INE1 Arrays, Zeiger, Datenstrukturen Arrays Felder von Elementen gleichen Typs Verwenden von Adressen: Zeiger Datenstrukturen mit struct Zeiger auf Datenstrukturen Spezielle Zeiger und komplexe Deklarationen
Vorlesung 6: Operatoren, Logische Ausdrücke
Vorlesung 6: Operatoren, Logische Ausdrücke Inhalt Organisatorisches Offene Übungen Operatoren Logische Ausdrücke Dr. J. Raimann 1 Offene Übungen (durch Tutoren betreut) montags 1. und 2. Block (8.15 Uhr
Nachname:... Vorname:... MatrNr.:... Klausur PR2. int main() { char Text[] = "Sehr geehrte Damen und Herren!"; char *tmp=text;
Nachname:... Vorname:... MatrNr.:... Klausur PR2 HAW-Hamburg, Fakultät Technik und Informatik, Department Informations- und Elektrotechnik Dr. Robert Heß, 26.1.2009 Bearbeitungsdauer: 90 min Hilfsmittel:
[Strukturen] Vereinbarung Verwendung Operationen mit struct Zeiger auf struct Strukturen auf dem Heap Datenstrukturen gebildet mit struct union
Vereinbarung Verwendung Operationen mit struct Zeiger auf struct Strukturen auf dem Heap Datenstrukturen gebildet mit struct union Vereinbarung struct name typ komponente1; typ komponente2;... typ komponenten;
Grundlagen 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
Variablen. 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!
Datei: svn/ckurs/trunk/c_texte/c_arrptr.txt, Datum: 30. Juni Felder und Zeiger
Datei: svn/ckurs/trunk/c_texte/c_arrptr.txt, Datum: 30. Juni 2015 Felder und Zeiger 1. Felder 1. Felder werden deklariert und definiert durch die Angabe der Elementanzahl nach dem Feldnamen mit dem Feldoperator
Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz
Patrick Schulz patrick.schulz@paec-media.de 29.04.2013 1 Einführung Einführung 2 3 4 Quellen 1 Einführung Einführung 2 3 4 Quellen Hello World in Java Einführung 1 public class hello_ world 2 { 3 public
Teil 6: Strukturen und Unionen Gliederung
Teil 6: Strukturen und Unionen Gliederung Strukturen Typdefinitionen Unionen Dynamische Speicherverwaltung Strukturen 6.2 Strukturen Ursprung in Pascal als Datentyp record, Verbunddatentyp Strukturtyp
Lösung Übungszettel 6 Aufgabe 1-4
Lösungen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter Lösung Übungszettel 6 Aufgabe 1-4 1 Aufgabe 1 und 2 1.1 Die Bibliothek
Nachname:... Vorname:... MatrNr.:... Klausur PR2. Erstellen Sie eine Struktur für eine Komplexe Zahl mit den Elementen real und imag vom Typ double.
Nachname:... Vorname:... MatrNr.:... Klausur PR2 HAW-Hamburg, Fakultät Technik und Informatik, Department Informations- und Elektrotechnik Dr. Robert Heß, 4.7.2008 Bearbeitungsdauer: 90 min Hilfsmittel:
Hinweise zur Prüfung Programmieren WS0304 Seite 1. Schreiben Sie folgende For-Schleife in eine äquivalente While-Schleife um.
Hinweise zur Prüfung Programmieren WS0304 Seite 1 Aufgabe 1 1.1 (5 Punkte) Vervollständigen Sie die Funktion testnums()... Eine mögliche Lösung lautet: int testnums(int numbers[], int factor, int max){
Dr. Monika Meiler. Inhalt
Inhalt 3 C-Ausdrücke...3-2 3.1 Arithmetische Ausdrücke...3-3 3.2 Wertzuweisungen...3-5 3.3 Inkrementieren und Dekrementieren...3-6 3.4 Logische Ausdrücke (Bedingungen)...3-7 3.5 Bedingte Ausdrücke...3-8
Strings (Zeichenketten)
Strings (Zeichenketten) INE1, Montag M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Interaktion mit Computer oft textbasiert Fragen wie wird Text dargestellt? wie wird
Zeichenketten sind uns bisher nur als konstante Texte begegnet, welche in "" angegeben waren; z.b. als Formatstring in der printf()-funktion:
Zeichenketten (Strings) Seite 1 von 11 Zeichenketten(Strings) sind wichtige Bestandteile fast eines jeden Programms. Beispiele sind Eingabe von Namen oder Adressen, Ausgabe von Meldetexten oder Bearbeitung
Lösungshinweise/-vorschläge zum Übungsblatt 12: Software-Entwicklung 1 (WS 2017/18)
Dr. Annette Bieniusa Mathias Weber, M. Sc. Peter Zeller, M. Sc. TU Kaiserslautern Fachbereich Informatik AG Softwaretechnik Lösungshinweise/-vorschläge zum Übungsblatt 12: Software-Entwicklung 1 (WS 2017/18)
Kapitel 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
Ulrich Stein
Von C nach MATLAB Einführung in MATLAB für Personen mit C-Kenntnissen Datentypen ähnlich in C und MATLAB, dort aber automatische Typzuweisung möglich double a = 2; Arrays a = double( 2 ); aber auch a =
ISO-SiMMlarcl. als erste Programmiersprache. Von Prof. Dr. Joachim Goll Uwe Grüner Prof. Herbert Wiese 2., durchgesehene Auflage
ISO-SiMMlarcl als erste Programmiersprache Von Prof. Dr. Joachim Goll Uwe Grüner Prof. Herbert Wiese 2., durchgesehene Auflage B.G.Teubner Stuttgart Leipzig 1999 Inhaltsverzeichnis 1.1 Algorithmen und
Betriebssysteme, Rechnernetze und verteilte Systeme 1. Crashkurs C (2)
Betriebssysteme, Rechnernetze und verteilte Systeme 1 Crashkurs C (2) Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/teaching/ss2008/bsrvs1/
C/C++-Programmierung
1 C/C++-Programmierung Speicherverwaltung, 0, const Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Speicherverwaltung
Zeichenketten (Strings)
Zeichenketten (Strings) Programme verarbeiten neben numerischen Daten oft auch Daten in Textform. Texte sind Zeichenketten, die auch als Strings bezeichnet werden In C gibt es keinen eigenständigen Datentyp
Arrays 120. array-qualifier static restrict const volatile array-size-expression assignment-expression * simple-declarator identifier
Arrays 120 direct-declarator simple-declarator ( simple-declarator ) function-declarator array-declarator array-declarator direct-declarator [ [ array-qualifier-list ] [ array-size-expression ] ] array-qualifier-list
Programmiertechnik. 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
Lösungen der P1-Musterprüfungsaufgaben
Lösungen der P1-Musterprüfungsaufgaben 7.6.2012 Textformatierung Eine Textdatei wird eingelesen, aufeinander folgende White-space-Zeichen werden zu einem zusammengefasst, die Zeilenlänge wird angepasst
Programmiersprachen Einführung in C
Programmiersprachen Einführung in C Teil 4: Prof. Dr. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit Gliederung Programmiersprachen 1. Von der Maschinensprache zu C 2. Die Struktur von C-Programmen
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen 3.2 Auswahl an Stringfunktionen W. Tasin, M.Sc. Fakultät 04 tasin@hm.edu Allgemeines (1) Die ANSI-Norm definiert auch nützliche Funktionen zur ASCIIZ-Stringbearbeitung.
Ü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:
3.2 Datentypen und Methoden
Kap03.fm Seite 217 Dienstag, 7. September 2010 1:48 13 3.2 Datentypen und Methoden 217 3.2 Datentypen und Methoden Wie bei vielen höheren Programmiersprachen gibt es auch in Java einfache und strukturierte
Objekte werden eindeutig beschrieben durch ihren Typ und einen beliebig wählbaren Bezeichner.
Grundlegende Deklarationen Seite 1 von 6 Jedes Programm benötigt Objekte. Ein Objekt ist ein reservierter Bereich im Systemspeicher in welchem Informationen abgelegt werden. Informationen sind z.b. Zahlen,
int i=1; //Integerzahl i anlegen und mit 1 initialisieren float wert; //Floatzahl deklarieren scanf( %f,&wert); //Wert über Tastatur eingeben
Datenfelder (Array) Seite 1 von 7 Bei den bisherigen Programmen wurde für jede verwendete Variable (oder für jedes Objekt) ein eigener Typ und Name vergeben. Die Initialisierung, d.h. die Belegung mit
Entwickeln Sie ein C/C++-Programm für die Verwaltung einer Artikeldatei gemäß folgender Vorgaben!
Projekt: Artikelverwaltung Seite 1 von 5 Entwickeln Sie ein C/C++-Programm für die Verwaltung einer Artikeldatei gemäß folgender Vorgaben! Legen Sie global einen benutzerdefinierten Datentyp artikel an:
Grundlagen der Programmierung in C++ Arrays und Strings, Teil 1
Grundlagen der Programmierung in C++ Arrays und Strings, Teil 1 Wintersemester 2005/2006 G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Das C++ Typsystem simple structured integral enum
Die Programmiersprache C Eine Einführung
Die Programmiersprache C Eine Einführung Christian Gentsch Fakutltät IV Technische Universität Berlin Projektlabor 2. Mai 2014 Inhaltsverzeichnis 1 Einführung Entstehungsgeschichte Verwendung 2 Objektorientiert
Eine Mini-Shell als Literate Program
Eine Mini-Shell als Literate Program Hans-Georg Eßer 16.10.2013 Inhaltsverzeichnis 1 Eine Mini-Shell 1 1.1 Einen Befehl parsen......................... 2 1.2 Was tun mit dem Kommando?...................
Arrays 115. array-qualifier static restrict const volatile array-size-expression assignment-expression * simple-declarator identifier
Arrays 115 direct-declarator simple-declarator ( simple-declarator ) function-declarator array-declarator array-declarator direct-declarator [ [ array-qualifier-list ] [ array-size-expression ] ] array-qualifier-list
Rechenzentrum. Programmieren in C. Simone Knief Rechenzentrum der CAU
Programmieren in C Simone Knief der CAU Gliederung Einleitung Komponenten eines C-Programms Daten speichern: Variablen und Konstanten Anweisungen und Ausdrücke Operatoren Kontrollstrukturen Felder und
Strukturierte Datentypen (struct) 2006 Pearson Education, Inc. All rights reserved.
1 8 Strukturierte Datentypen (struct) 2 8.1 Einführung 8.2 Definition von Strukturen 8.2.1 Selbstbezügliche Strukturen 8.2.2 Definition von Variablen strukturierter Datentypen 8.2.3 Bezeichner für Strukturen
9. Vektoren. (auch Felder/array)
9. Vektoren (auch Felder/array) Motivation Hat man mehrere Objekte gleichen Datentyps, so kann man sie explizit deklarieren, wenn die Anzahl bekannt ist double x1,x2,x3,x4; Nachteile: versagt, -wenn die
2. 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)
Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, Uhr Bearbeitungszeit: 105 Minuten
Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, 13.00-14.45 Uhr Bearbeitungszeit: 105 Minuten Schalten Sie ihr Mobiltelefon aus. Bei der Klausur ist als einziges
Klausur: Informatik I am 06. Februar 2009 Gruppe: D Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:
Seite 1 von 10 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert
Ü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
Informatik. Strukturen und Aufzählungstypen. Vorlesung
Informatik Vorlesung 06 Strukturen und Aufzählungstypen 03. Dezember 2018 WiSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1 Datentypen Die bisher benutzten Datentypen waren
Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.
Seite 1 von 10 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 ( / 6 Pkt.) a) Erklären
Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.
Seite 1 von 9 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 4 Pkt.) Gegeben
Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:
Seite 1 von 10 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) Wer
Zeiger und dynamischer Speicher
Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Zuletzt aktualisiert: 09.12.2013, 07:49 Uhr
C- 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
Grundlagen. Die Komponenten eines C Programms. Das erste Programm
Grundlagen 1. Die Komponenten eines C Programms 2. Ein Programm erzeugen und übersetzen 3. Variablen Deklarieren und Werte zuweisen 4. Zahlen eingeben mit der Tastatur 5. Arithmetische Ausdrücke und Berechnungen
Im 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
Viel Erfolg bei der Bearbeitung der Aufgaben!
Musterlösung Name:... 1 2 3 4 5 Gesamt Note 12 8 10 15 11 56 Bitte tragen Sie auf dem Deckblatt Ihr Namen und Ihre Matrikelnummer ein und auf allen weiteren Seiten nur noch Ihre Matrikelnummer. Lösungen
Klausur: Grundlagen der Informatik I, am 27. März 2009 Gruppe: F Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.
Seite 1 von 9 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 15 Pkt.) Was liefert
Modellierung und Programmierung
Modellierung und Programmierung Dr. Martin Riplinger 31.10.2012 IAM Institut für Angewandte Mathematik Eingabe durch den Benutzer: scanf dient u.a. zum Einlesen von Zahlen erfordert Präprozessordirektive:
Informatik. Wiederholung Felder (Arrays), string. Vorlesung
Informatik Vorlesung 04 Wiederholung Felder (Arrays), string 19. November 2018 WiSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1 Ein C++ Programm: Wiederholung #include
float *point(float a, float b); // Funktionsdeklaration Zeiger als Funktionswert // point liefert als Wert die Adresse seines Ergebnisses
Zeiger auf Funktionen 1 Zeiger als Funktionswert... 1 2 "Zeiger als Funktionswert" versus "Zeiger auf eine Funktion"... 2 2.1 Das Beispiel zu Zeiger auf eine Funktion veranschaulicht den Sachverhalt...
E-/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
Die Programmiersprache C. 2. Strukturen, Felder und Funktionen
Die Programmiersprache C 2. Strukturen, Felder und Funktionen Vorlesung des Grundstudiums Prof. Johann-Christoph Freytag, Ph.D. Institut für Informatik, Humboldt-Universität zu Berlin WS 2007/08 Teil I:
Die Programmiersprache C. 2. Strukturen, Felder und Funktionen
Die Programmiersprache C 2. Strukturen, Felder und Funktionen Vorlesung des Grundstudiums Prof. Johann-Christoph Freytag, Ph.D. Institut für Informatik, Humboldt-Universität zu Berlin WS 2005/06 Teil I:
Einführung Programmierpraktikum C Michael Zwick
Einführung Programmierpraktikum C Michael Zwick Vorlesung, Übung & Fragestunde Dr.-Ing. Michael Zwick Raum Z945 zwick@tum.de (089) 289 23609 Tutorium Ab Dienstag: Auswahl Tutoriumsplatz auf www.ldv.ei.tum.de/lehre/computertechnik