Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
1
Prüfungsbesprechung Barbara Scheuner
Vorlesung: Programmieren und Problemlösen Prof. Hans Hinterberger
2
Departement Informatik
Prüfungseinsicht Karl Presser CAB E 15.2 Universitätstrasse Zürich Sonntag, 10. Juni 2018 Departement Informatik
3
Departement Informatik
Einzelne Fehler Texteditor Wann braucht es ein BEGIN… END? Wenn es mehr als eine Anweisung hat Als einzelne Anweisung gelten: Zuweisung Methodenaufruf Schleifenblock IF.. THEN.. ELSE- Block Sonntag, 10. Juni 2018 Departement Informatik
4
Departement Informatik
Die meisten Fehler Bedingungen if-then-else In Schleifen Schleifen Laufvariablen Verschiedene Schleifentypen Äquivalenzen Matrizen / Arrays Sonntag, 10. Juni 2018 Departement Informatik
5
Departement Informatik
Bedingungen Äquivalente Bedingungen: (i < 9) -> (i <= 8) (i > 5) -> (i >= 4) Bedingungen mit Variablen in schleifen Wird die Schleife überhaupt betreten? Werden die Variablen in der Schleife verändert? Wenn ja, wie ändert sich der Wert? Sonntag, 10. Juni 2018 Departement Informatik
6
Departement Informatik
Schleifen-Beispiel Füllen Sie die Tabelle kurz aus Sonntag, 10. Juni 2018 Departement Informatik
7
Departement Informatik
Schleifen-Typen FOR anfangswert TO endwert DO anweisungsfolge FOR anfangswert DOWNTO endwert DO anweisungsfolge WHILE bedingung DO anweisungsfolge REPEAT anweisungsfolge UNTIL bedingung Sonntag, 10. Juni 2018 Departement Informatik
8
Umwandlung von FOR-Schleifen
FOR i:= 0 TO 20 DO … FOR i:= 20 DOWNTO 0 DO … FOR i:= 4 TO 24 DO … ACHTUNG: wird i innerhalb der Schleife verändert, kann das zu mehr oder weniger Iterationen führen. FOR i:= 0 TO 20 DO BEGIN writeln(i); i:=i+2; END; Achtung: Bezüge zu i müssen überprüft werden! Sonntag, 10. Juni 2018 Departement Informatik
9
Departement Informatik
For -> While FOR i:= 3 TO 7 DO BEGIN FOR j:= 7 DOWNTO 0 DO writeln(i+j); END; i:= 3; WHILE (i<8) DO BEGIN j:= 7; WHILE (j>=0) DO writeln(i+j); j:= j-1; END; i:= i+1; Sonntag, 10. Juni 2018 Departement Informatik
10
Departement Informatik
While -> Repeat (1) i:= 3; WHILE (i<8) DO BEGIN j:= 7; WHILE (j>=0) DO writeln(i+j); j:= j-1; END; i:= i+1; i:= 3; REPEAT j:= 7; writeln(i+j); j:= j-1; UNTIL (j<0); i:= i+1; UNTIL (i>7); (i=7); Sonntag, 10. Juni 2018 Departement Informatik
11
Departement Informatik
While -> Repeat (2) i:= 3; WHILE (i<a) DO BEGIN i:= i+1; END; i:= 3; REPEAT i:= i+1; UNTIL (i>a); i:= 3; IF (i<a) THEN REPEAT i:= i+1; UNTIL (i>a); Problem: diese Bedingung könnte nie erfüllt sein. Sonntag, 10. Juni 2018 Departement Informatik
12
Departement Informatik
Arrays (1) a: Array[2..10] of Integer; FOR i:= 1 to 9 DO A[i+1]:= (i+1) DIV 2; 1 1 2 2 3 3 4 4 5 2 3 4 5 6 7 8 9 10 b: Array[0..8] of Integer; FOR i:= 1 to 9 DO B[i-1]:= A[i+1]+(i+1); 3 1 2 3 4 5 6 7 8 4 6 7 9 10 12 13 15 Sonntag, 10. Juni 2018 Departement Informatik
13
Departement Informatik
Arrays (2) Das Array text sein mit dem folgenden Inhalt versehen: Abc: Array[`a`..`z`] of Integer; ... For i:= 0 to 8 do abc[text[i]]:= abc[text[i]] +1; 1 2 3 4 5 6 7 8 d a s i t r o 1 a b c d i o r s t z 1 1 1 1 2 1 2 1 Sonntag, 10. Juni 2018 Departement Informatik
14
Departement Informatik
Matrizen PROGRAM Buchstaben; VAR i,j:Integer; alpha: Array [1..3,0..3] of Char; BEGIN for j:= 0 to 3 DO BEGIN for i:= 1 to 3 DO BEGIN alpha[i,j]:= chr(96+i+(3*j)); END; for j:= 0 to 3 DO for i:= 1 to 3 DO writeln(alpha[i,j]); readln; END. i 1 1 2 2 3 3 j a b c 1 1 d e f 2 g h i 3 j k l Sonntag, 10. Juni 2018 Departement Informatik
15
Fehler beim Programmieren
Fehlersuche: Semantik -> der Programmierer/ die Programmiererin Doppelte Verwendung von Variablennamen Syntaxfehler -> Compiler ( Typenkompatibilität Sonntag, 10. Juni 2018 Departement Informatik
16
Departement Informatik
Beispiel Sonntag, 10. Juni 2018 Departement Informatik
17
Departement Informatik
DEBUGGER Sonntag, 10. Juni 2018 Departement Informatik
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.