190 likes | 315 Vues
Informatik 1. Übung 4. Übung 4. Nachbesprechung. Ich gebe nicht auf. Code schön formatieren. if ( x > 0) { a = 1; b = 1; // Kommentar. if (y > 0) { c = 1; } else { d = 1; } e = 1; }. For-Schleife. Zählvariable nicht im Körper ändern
E N D
Informatik 1 Übung 4
Übung 4 Nachbesprechung
Ich gebe nicht auf • Code schön formatieren if (x > 0) { a = 1; b = 1; // Kommentar. if (y > 0) { c = 1; } else { d = 1; } e = 1; }
For-Schleife • Zählvariable nicht im Körper ändern • Zählvariable nicht ausserhalb deklarieren for(int i=0; i<10; i++) { k += i; } int i; for(i=0; i<10; ) { k += i; i++; } for(int i=0; i<10; i++) { if(...) i--; }
For-Schleife • Von 0 bis N-1 zählen • N mal durchlaufen for(int i=0; i<N; i++) { }
Vorlesung 5 wiederholung
Arrays • Bisher: einfache Datentypen • char, int, float, double, bool • Neu: Array • 'Liste' mit fixer Länge • Alle Elemente haben gleichen Typ • Zugriff auf Elemente über Index
Arrays • Beispiel: Messwertreihe • Temperatur von 7 aufeinanderfolgenden Tagen
Arrays - Deklaration • Länge muss konstant sein typ variable[länge]; // 500 aufeinanderfolgende Zeichen char text[500]; // N aufeinanderfolgende Zeichen const int N = 500; char text[N]; // ein Vektor mit drei Komponenten float v1[3];
Arrays - Deklaration • Länge muss konstant sein typ variable[länge]; // 500 aufeinanderfolgende Zeichen char text[500]; // N aufeinanderfolgende Zeichen const int N = 500; char text[N]; string text; // ein Vektor mit drei Komponenten float v1[3];
Arrays - Zugriff • Indizierung: [0..N-1] • Index konstant oder Ausdruck vom Typ int variable[index]; int i = ...; // i-tes Zeichen auf 'A' setzen text[i] = 'A'; // x-Komponente auslesen float x =v1[0];
Arrays - Zugriff • Indizierung: [0..N-1] • Index konstant oder Ausdruck vom Typ int variable[index]; int i = ...; // i-tes Zeichen auf 'A' setzen text[i] = 'A'; for(int i=0; i<N; i++) { text[i] = 'A' + i; } // x-Komponente auslesen float x =v1[0];
Arrays - Zugriff • Zugriff ausserhalb vom Bereich • Programm stürzt evtl. ab • Wert von anderen Variablen wird evtl. verändert • Sicherheitslücke! • Immer Gültigkeit vom Index prüfen!
Arrays - Interne Abbildung • Aufeinanderfolgende Zellen im Speicher • Jedes Byte im Speicher hat eine 'Adresse' • 'Adresse' von Variablen bestimmt Compiler char text[5];
XOR • Exklusives Oder • Beide Argumente verschieden -> wahr • Beide Argumente gleich -> falsch
Übung 5 Übung
Pseudocode • Kombination Code/natürliche Sprache • Gleiche Kontrollstrukturen (for, while, if, ...) • Beliebige Befehle Prozedur: euklid Zweck: Euklidischer Algorithmus zur Berechnung des größten gemeinsamen Teilers Parameter: natürliche Zahlen m, n 1. Fallsm > n, dann m und n miteinander vertauschen. 2. Jetzt gilt m <= n. 3. Solangem > 0 wiederhole 4. Setzen = n − m. 5. Fallsm > n, dann m und n miteinander vertauschen. 6. Jetzt gilt m <= n. Ergebnis: n.
Charakter-Array einlesen • cin.getline(text, length) // Liest maximal 500 Zeichen in das Array text ein chartext[500]; cin.getline(text, 500); // Liest maximal 'length' Zeichen in das Array text ein constintlength = 500; chartext[length]; cin.getline(text, length);