1 / 19

Informatik 1

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

cecily
Download Presentation

Informatik 1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Informatik 1 Übung 4

  2. Übung 4 Nachbesprechung

  3. 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; }

  4. 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--; }

  5. For-Schleife • Von 0 bis N-1 zählen • N mal durchlaufen for(int i=0; i<N; i++) { }

  6. Vorlesung 5 wiederholung

  7. 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

  8. Arrays • Beispiel: Messwertreihe • Temperatur von 7 aufeinanderfolgenden Tagen

  9. 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];

  10. 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];

  11. 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];

  12. 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];

  13. 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!

  14. Arrays - Interne Abbildung • Aufeinanderfolgende Zellen im Speicher • Jedes Byte im Speicher hat eine 'Adresse' • 'Adresse' von Variablen bestimmt Compiler char text[5];

  15. Bitweise Operationen

  16. XOR • Exklusives Oder • Beide Argumente verschieden -> wahr • Beide Argumente gleich -> falsch

  17. Übung 5 Übung

  18. 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.

  19. 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);

More Related