Informatik gk 11
Grundlagen der imperativen Programmierung mit Pascal und Delphi
1. Grundlagen
1.1 erstes Programm
Aufgabe...
Informatik gk 11
Grundlagen der imperativen Programmierung mit Pascal und Delphi
Aufgabe 1
Aus einem gegebenen Radius r ei...
Informatik gk 11
Grundlagen der imperativen Programmierung mit Pascal und Delphi
Begin;
Write ('Eingabe Grundseite in cm: ...
Informatik gk 11
Grundlagen der imperativen Programmierung mit Pascal und Delphi
d) 45 DIV (6 + 3)
e) (23 DIV 5) / 2
f) (2...
Informatik gk 11
Grundlagen der imperativen Programmierung mit Pascal und Delphi
2 Verzweigungen
2.1 Einseitige Auswahl (I...
Informatik gk 11
Grundlagen der imperativen Programmierung mit Pascal und Delphi
2.2 Zweiseitige Auswahl (IF - THEN - ELSE...
Informatik gk 11
Grundlagen der imperativen Programmierung mit Pascal und Delphi
Aufgabe 3
Gegeben ist folgendes Programm:...
Informatik gk 11
Grundlagen der imperativen Programmierung mit Pascal und Delphi
Mithilfe des folgenden Programms soll nac...
Informatik gk 11
Grundlagen der imperativen Programmierung mit Pascal und Delphi
a) Entwirf ein Struktogramm zur Darstellu...
Informatik gk 11
Grundlagen der imperativen Programmierung mit Pascal und Delphi
2.4 Logische Operatoren
Die logischen Opo...
Informatik gk 11
Grundlagen der imperativen Programmierung mit Pascal und Delphi
3 Schleifen
3.1 Zählergesteuerte Wiederho...
Informatik gk 11
Grundlagen der imperativen Programmierung mit Pascal und Delphi
Aufgabe 1
Die Summe der Zahlen 1 bis 100 ...
Informatik gk 11
Grundlagen der imperativen Programmierung mit Pascal und Delphi
Aufgabe 4
Bei einem Würfelspiel werden dr...
Informatik gk 11
Grundlagen der imperativen Programmierung mit Pascal und Delphi
Aufgabe 1
Ergänze die Schleifenaustrittsb...
Informatik gk 11
Grundlagen der imperativen Programmierung mit Pascal und Delphi
Aufgabe 1
Gib dem folgenden Programmfragm...
Informatik gk 11
Grundlagen der imperativen Programmierung mit Pascal und Delphi
3.4 Weiterführende Aufgaben
Aufgabe 1
Mit...
Informatik gk 11
Grundlagen der imperativen Programmierung mit Pascal und Delphi
Aufgabe 5
Vom Schaum in einem Bierglas ze...
Upcoming SlideShare
Loading in...5
×

SchüLerscript Imperative Programmierung Mit Der Delphi Konsole

707
-1

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
707
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

SchüLerscript Imperative Programmierung Mit Der Delphi Konsole

  1. 1. Informatik gk 11 Grundlagen der imperativen Programmierung mit Pascal und Delphi 1. Grundlagen 1.1 erstes Programm Aufgabe 1 Begin Zahl a einlesen Zahl b einlesen c = a + b Ausgabe Zahl c End. a) Beschreibe die Struktur des Programms. b) Setze das Struktogramm in ein Delphi-Programm um. Aufgabe 2 a) Welche Bedeutung hat das Semikolon in Pascal? b) Unterscheidet Pascal (Delphi) Groß- und Kleinschreibung? 1.2 Einfache Datentypen (1) numerische Datentypen Integer: ganzzahliger Wert, (Bsp. 21, -2334) Wertebereich: -32 768 ... 32 767 Byte: ganzzahliger Wert, Wertebereich: 0..255 Real: reellwertige Zahl, zum Beispiel Zahlen mit Nachkommastellen, (Bsp: -34.987) Wertebereich: -1038 .. 1038 (2) Zeichen und Zeichenketten Char: Zeichen Beispiele: A, M, 1, ?, %, }, String: Zeichenkette Beispiele: Computer, 15.11.2002 (Hinweis: 15.11.2002 ist nicht numerisch, da die Angabe mehr als einen Punkt enthält.) (3) Wahrheitswert Boolean: logische Variable, die entweder den Wahrheitswert wahr (true) oder falsch (false) aufnehmen kann 1.3 Write-Anweisung 1.4 Variablenkonzept vgl. Unterricht 1 Var a: Real; … Writeln (‘Der Flächeninhalt beträgt’ , a:8:2 , ’Zentimeter’); Textkonstante Zugriff auf eine Variable Textkonstante
  2. 2. Informatik gk 11 Grundlagen der imperativen Programmierung mit Pascal und Delphi Aufgabe 1 Aus einem gegebenen Radius r eines Kreises sollen die Kreisfläche und der Kreisumfang berechnet werden. Die Zahl Pi kann mit 3,14 angegeben werden. a) Erstelle das Struktogramm, b) setze das Struktogramm in ein Delphi-Programm um. Aufgabe 2 Das folgende Programmfragment ist syntaktisch korrekt. Var Preis: Real; Preiserhoehung: Real; ... Preis := 75; Preiserhoehung := 5; * Preis := Preis + Preiserhöhung; ** Preiserhöhung := Preiserhöhung *2; Beschreibe mit Worten, was bei den Zuweisungen in Zeile * und ** passiert! Benutze dazu das Modell der "Schubladenbox" aus dem Unterricht. Aufgabe 3 Erkläre das Variablenkonzept in Pascal (Delphi). Aufgabe 4 Warum müssen Variablen, mit denen im Anweisungsteil gearbeitet werden soll, vorher im Vereinbarungsteil mit Angabe des Datentyps vereinbart werden? 1.5 Fehlerarten (1) Syntaxfehler Fehler, die der Compiler zum Zeitpunkt des Compilierens erkennt. Der Compiliervorgang wird abgebrochen. Bsp: Einer Variablen vom Typ Integer wird im Programm der Wert einer Variablen vom Typ Real zugewiesen (2) Laufzeitfehler Fehler, die erst zum Zeitpunkt der Programmaufführung auftreten. Die Programmausführung wird abgebrochen. Bsp: Wertzuweisung eines Wertes außerhalb des Wertebereichs einer Variablen durch den Benutzer während der Programmausführung. Aufgabe 1 Gegeben ist folgender Pascal-Quelltext: Program Beispiel 1; (* Dieses Programm berechnet den Flächeninhalt eines Dreiecks *) Var grundseite: Real; hoehe : Real; flaeche: Integer; 2
  3. 3. Informatik gk 11 Grundlagen der imperativen Programmierung mit Pascal und Delphi Begin; Write ('Eingabe Grundseite in cm: ') Readln (grundseite); Write ('Eingabe Hoehe in cm: '); Readln (hoehe); flaeche = grundseite * hoehe / 2; Writeln; Writeln; * Write ('Die Dreicksfläche beträgt:’ * ,flaeche,' qcm'); Readln; End. a) Welche syntaktischen Fehler enthält der Programmcode? b) Stelle den Programmablauf in einem Struktogramm dar! c) Welche Ausgaben erfolgen beim Aufruf des write-Befehls in den Zeilen *? Aufgabe 2 Welche syntaktischen Fehler weist folgendes Programm auf? Program Zinsen; (* Aus der Eingabe des Betrags und dem Zinssatz werden die jährlichen Zinsen errechnet*) Var Zinsen, Betrag: Real Endkapital: Integer; Begin Write ('Eingabe Betrag:'); Readln (Betrag); Write ('Eingabe', Zinssatz); Zinsen := Betrag * 0.01 * Zinssatz / 360; Endkapital := Betrag + Zinsen; Writeln ('Die Zinsen betragen: ' , Zinsen:8:2,' Euro'); Writeln ('Der Endbetrag ist: ' ,Endkapital:8:2 ,' Euro'); End. Aufgabe 3 Beim Fehlen der Kommata in der Write-Anweisung wird die Fehlermeldung ERROR: ’)’ expected ausgegeben. Warum lautet die Meldung nicht : ’,’ expected ? 1.6 Divisionsarten (1) Ganzzahlige Division (2) Divisionsrest Wert := 108 div 5; Wert := 108 mod 5; Variableninhalt: Wert = 21 Variableninhalt: Wert = 3 (3) Divisionsoperator Wert := 108 / 5; Variableninhalt: Wert = 21.6 Aufgabe 1 Berechne die Werte der folgenden Ausdrücke: a) 12 MOD 7 b) 12 DIV 7 c) 45 MOD 6 + 3 3
  4. 4. Informatik gk 11 Grundlagen der imperativen Programmierung mit Pascal und Delphi d) 45 DIV (6 + 3) e) (23 DIV 5) / 2 f) (23 MOD 5) / 2 Aufgabe 2 a) Werte den Ausdruck schrittweise aus: a := 20 MOD 7 /15 DIV 4 +3-18 DIV 5*2 b) Welchen Datentyp hat das Ergebnis? c) Programmiere die Zeile aus (a). Wo liegt der Fehler? Aufgabe 3 Es gilt folgende Variablendeklaration: Var a, b : Real; c, e : Integer; d: Boolean; Welche Pascal-Anweisung wird durch den Compiler nicht beanstandet? a) a := c / d; b) c := a * b; c) d := 'False'; d) b := c DIV e 1.7 Weiterführende Aufgaben Aufgabe 1 Mithilfe der Steigungsformel 21 21 xx yy m − − = kann man die Steigung einer Geraden durch die Punkte P(x1/y1) und Q(x2/y2) berechnen. a) Erstelle ein Struktogramm, b) erstelle das entsprechende Delphi-Programm. Aufgabe 2 Mit der Eingabe von p und q kann ein Programm mithilfe der p/q-Formel die Nullstellen des Polynoms: f(x) = x² + px + q berechnen. Hinweis: • Wurzel  sqr(…), Quadrat  sqrt(…) • Unit ergänzen. a) Schreibe die Formel für die beiden Nullstellen x1 und x2 als Delphi-Term auf, b) erstelle das Struktogramm, c) programmiere! 4
  5. 5. Informatik gk 11 Grundlagen der imperativen Programmierung mit Pascal und Delphi 2 Verzweigungen 2.1 Einseitige Auswahl (IF - THEN) Aufgabe 1 a) Beschreibe, was im Flussdiagramm dargestellt wird und wie der Programmfluss verläuft, b) Schreibe das Flussdiagramm in ein Struktogramm um. Aufgabe 2 Gegeben ist das folgende Programmfragment: Program Wurzelberechnung; (* Das Programm berechnet die Wurzel einer Zahl mit der Standartfunktion sqrt(x) *) Var zahl, wurzel : Real; Write ('Eingabe einer Zahl:'); Readln (zahl); if __________ ______ (***) Wurzel := sqrt (zahl); writeln (wurzel:8:2); Ergänze die Bedingung der if-Anweisung an der Stelle (***), so dass eine sinnvolle Abfrage entsteht. Setze alle Begin – End Anweisungen an die richtige Stelle. Anweisung 2 erfüllt Anweisung 1.1 Anweisung 1 Bedingung Syntax If Bedingung (oder Wahrheitswert) then Anweisung ; Bsp: If (a < b) then Write (' a ist kleiner als b'); 5
  6. 6. Informatik gk 11 Grundlagen der imperativen Programmierung mit Pascal und Delphi 2.2 Zweiseitige Auswahl (IF - THEN - ELSE) Aufgabe 1 a) Beschreibe, was im Flussdiagramm dargestellt wird und wie der Programmfluss verläuft, b) Schreibe das Flussdiagramm in ein Struktogramm um. Aufgabe 2 Ein Parkhaus hat folgenden Tarif: Parkdauer Parkgebühr bis 2 Stunden jede weitere angefangene Stunde Höchstgebühr überhaupt kostenlos 2 € 30 € Die Parkzeit wird in einer Variablen in Minuten eingegeben. a) Entwirf ein Struktogramm zur Berechnung der Parkgebühr, b) schreibe das entsprechende Pascal-Programm. Syntax if Bedingung (oder Wahrheitswert) then Anweisung A else Anweisung B; Bsp: if (a < b) then Write ('a ist kleiner als b') else Write (' a ist größer oder gleich b'); Anweisung 2 erfüllt Anweisung A Anweisung 1 nicht erfüllt Anweisung B Bedingung 6
  7. 7. Informatik gk 11 Grundlagen der imperativen Programmierung mit Pascal und Delphi Aufgabe 3 Gegeben ist folgendes Programm: Program Abfrage; Var a, b, c, d, e, : Real; Begin Write ('Eingabe von a '); Readln (a); Write ('Eingabe von b '); Readln(b); Write ('Eingabe von c '); Readln (c); d := 0; e := 0; IF (a < b) THEN d := a+b; IF (a > c) THEN IF (b > c) THEN d := a*b (*) ELSE d := a*c (***) ELSE e := a+b+c; Writeln (' d ', d:5:2); Writeln (' e ', e:5:2); END. a) Zeichne zur besseren Übersicht ein Struktogramm des Pascal-Programms! b) Was würde der Compiler bei einem Semikolon bei (*) interpretieren und somit eine Fehlermeldung ausgeben? c) Warum darf bei (***) kein Semikolon stehen, auch wenn die If-Then-Else Anweisung normalerweise mit einem Semikolon beendet wird. d) Welche Werte bilden sich in den Variablen d und e? Werte der Variablen Ergebnisse a b c d e 7 3 4 -3 11 46 9 -5 5 12 4 2 Aufgabe 4 In einem Unternehmen gilt folgende Rabattregel: Kundennummer gewährter Rabattsatz kleiner als 3000 3000 bis 5000 größer als 5000 12 % 0% 10 % 7
  8. 8. Informatik gk 11 Grundlagen der imperativen Programmierung mit Pascal und Delphi Mithilfe des folgenden Programms soll nach der Eingabe der Kundennummer der entsprechende Rabattsatz berechnet werden. Program Kundenrabatt; Var Kdnr, Rabattsatz: Integer; Begin Write ('Eingabe Kundennummer:'); Readln (Kdnr); Rabattsatz := 0; IF (Kdnr <= 5000) THEN IF (Kdnr < 3000) THEN Rabattsatz := 12 ELSE Rabattsatz := 10; Write ('Der Rabatt beträgt: '); Writeln (Rabattsatz); End. Beim Testen liefert das Programm fehlerhafte Ergebnisse. a) Zeichne ein Struktogramm der Auswahlbedingungen und b) ermittle die Fehlerstelle. Aufgabe 8 Warum gibt folgendes Programm beim Compilieren eine Fehlermeldung? Program Fehler; Var a : Integer; Begin IF (4 < 2) THEN IF (2 < 3) THEN a := 3 ELSE a := 4; ELSE a:= 5; Write(' a = ', a); End. Aufgabe 9 Ein Parkhaus hat folgenden Tarif: Parkdauer Parkgebühr bis zu 1 ½ Stunden 3 € jede weitere angefangene Stunde 1,5 € Höchstgebühr pro Tag 10 € Höchstgebühr überhaupt 200 € Die Parkdauer soll dabei in Minuten eingelesen werden. 8
  9. 9. Informatik gk 11 Grundlagen der imperativen Programmierung mit Pascal und Delphi a) Entwirf ein Struktogramm zur Darstellung des Lösungsalgorithmus' und b) schreibe ein Pascalprogramm, das die Aufgabe löst. 2.3 Arbeitsweise der Bedingungsanweisung / Vergleichsoperatoren Aufgabe 1 Warum wird im Struktogramm der zweiseitigen Auswahl nach ja / nein (wahr / falsch) und nicht nach then / else unterschieden? Aufgabe 2 Die Anweisung IF (a < b) THEN kann auch wie folgt umgeschrieben werden: Var wert : Boolean; Begin wert := (a < b); ... IF wert THEN ... End; Welchen programmtechnischen Vorteil könnte diese Form der Auswertung haben? Aufgabe 3 Was wird bei der Programmausführung an der Stelle der Punkte der Bedingung IF ... THEN geprüft, bzw. erwartet? (1) Vergleichsoperatoren der Bedingungsanweisung > < = größer kleiner gleich >= <= <> größer gleich kleiner gleich ungleich (2) Boolesche Variablen (Wahrheitswerte) Variablen vom Typ boolean können nur die Werte true oder false (ausgeschrieben) annehmen. Daher können diese Variablen auch an die Stelle eines Vergleichsoperators treten Bedingungsanweisung liefert einen Wahrheitswert Auswertung eines Ausdrucks, nicht die Beantwortung einer Frage mit ja / nein a < b true / false 9
  10. 10. Informatik gk 11 Grundlagen der imperativen Programmierung mit Pascal und Delphi 2.4 Logische Operatoren Die logischen Opoeratoren kombinieren zwei boolesche Ausdrücke, um ebenfalls einen booleschen Wert zu liefern. and und Bei and und or wird zuerst die linke Seite der Operation ausgewertet. Nur, wenn das Ergebnis noch wahr werden kann, wird auch die rechte Seite betrachtet true and true = true ; true and false = false ; false and true = false; false and false = false; or oder true or true = true ; true or false = true ; false or true = true; false or false = false; xor entweder – oder (exclusive – or) true xor true = false true xor false = true false xor true = true false xor false = false not nicht not (true && true) = false ; Aufgabe 1 Welche Ausgabe liefert folgendes Programm? Program Logische_Operationen; Var a, b, c : Integer; Begin a := 5; b := 3; c := 99; IF (a = 5) or (b > 2) THEN Write (' Ich'); IF (a < 5) and (b > 2) THEN Write (' Du '); IF (a = 5) and (b = 2) THEN Write (' hatten'); IF (c <> 6) and (b > 10) THEN Write (' hast ') ELSE Write (' habe '); IF (b = 3) and (c = 99) THEN Write (' keinen '); IF (a = 1) or (b = 2) THEN Write (' viel '); IF not ((a < 5) and (b > 2)) THEN Write (' Spaß! '); End. 2.5 weiterführende Aufgabe Nach Eingaben der Parameter a, b und c werden vorhandene Lösungen der allgemeinen quadratischen Gleichung der Form ax² + bx + c = 0 berechnet. a) Erstelle ein Struktogramm eines möglichen Lösungsalgorithmus mittels der p/q-Formel. Beachte auch die Fälle: Diskriminante < 0 und Diskriminante = 0. b) Schreibe das entsprechende Delphi-Programm. 10
  11. 11. Informatik gk 11 Grundlagen der imperativen Programmierung mit Pascal und Delphi 3 Schleifen 3.1 Zählergesteuerte Wiederholung (FOR - TO - DO) Syntax (1) for Laufvariable := Anfangswert to Endwert do Anweisung; (2) for Laufvariable := Anfangswert to Endwert do Begin Anweisung1; Anweisung 2: . . . Anweisung n; End; Rückwärtszählschleife Die Zählschleife kann durch die Anweisung downto statt to auch rückwärts zählen. Die Schleifenbedingungen bleiben dieselben. Anweisung zur Wiederholung von Anweisung 1; Anweisung 2; Anweisung 1; Anweisung 2; Anweisung 1; Anweisung 2; Anweisung 1; Anweisung 2; Anweisung 1; Anweisung 2; Anweisung 1; Anweisung 2; ... Anweisung 1; Anweisung 2; Schleifen- steuerung Schleifen- körper Endwert erreicht Zähler Anweisungsblock 11
  12. 12. Informatik gk 11 Grundlagen der imperativen Programmierung mit Pascal und Delphi Aufgabe 1 Die Summe der Zahlen 1 bis 100 soll berechnet werden. a) Erstelle ein Struktogramm, b) schreibe das zugehörige Programm. Aufgabe 2 Verallgemeinere das Programm aus Aufgabe 1 so, dass ein Anfangswert a und ein Endwert b eingelesen werden, zwischen denen alle ganzen Zahlen summiert werden. Als mathematische Formel sieht das für a < b so aus: Aufgabe 3 a) Ein 6-seitiger Würfel hat als Würfelergebnis die Zahlen 1-6. Schreibe eine Folge von 20 Zufallszahlen auf die entstanden sein kann, wenn ein Würfel 20 mal geworfen wurde. b) Folgendes Programm erzeugt 20 Zufallszahlen im Zahlbereich 1-6 program Zufallszahlen; {$APPTYPE CONSOLE} uses SysUtils; var i, zahl : integer; begin randomize; for i := 1 to 20 do begin zahl := random (6) +1; writeln(i , '. ' , zahl); end; readln; { TODO -oUser -cConsole Main : Hier Code einfügen } end. Erzeuge 20 Zufallszahlen und vergleiche mit deinen aufgeschriebenen Zahlen. c) Ändere das Programm so, dass bei der Programmausführung ein Zählwert eingelesen wird, der bestimmt, wie oft die Schleife durchlaufen wird (wie viele Zufallszahlen ausgegeben werden). baaai b ai ++++++=∑= ...)2()1( ∑= =+++++ 100 1 100...4321 i i 12
  13. 13. Informatik gk 11 Grundlagen der imperativen Programmierung mit Pascal und Delphi Aufgabe 4 Bei einem Würfelspiel werden drei Würfel hintereinander geworfen. Ein Spieler tippt auf eine Zahl und gewinnt in Abhängigkeit davon, wie oft seine Zahl geworfen wurde. a) Schreibe ein Programm, das einen Tipp einholt, in einer Schleife dreimal würfelt, die Anzahl der Treffer zählt und dann ausgibt. b) Das Programm soll erweitert werden, dass ein Gewinn ausgeschüttet (ausgegeben) wird. 0 Treffer --> - 1 € 1 Treffer --> 1 € 2 Treffer --> 2 € 3 Treffer --> 5 € c) Wird der Spieler auf lange Sicht gewinnen oder verlieren? Wie könnte das in einem Programm überprüft werden? 3. 2 Fußgesteuerte Wiederholung (REPEAT - UNTIL) Syntax repeat Anweisung 1; Anweisung 2; . . . Anweisung n; until Bedingung repeat Anweisungsblock until nicht erfüllt Schleifen- bedingung erfüllt 13
  14. 14. Informatik gk 11 Grundlagen der imperativen Programmierung mit Pascal und Delphi Aufgabe 1 Ergänze die Schleifenaustrittsbedingung, so dass der folgende Schleifenrumpf die Summe der Zahlen 1 bis 100 berechnet: Summe := 0; Zahl := 1; Repeat Summe := Summe + Zahl; Zahl := Zahl + 1; until ____________ Aufgabe 2 Entwickle ein Programm, das aus einer Reihe von positiven Zahlen das arithmetische Mittel (Durchschnitt) n aaaa a n++++ = ...321 bildet. Die Anzahl der Zahlen n ist beim Programmstart noch nicht bekannt, die Eingabe soll beendet sein, wenn die Zahl -1 eingegeben wird. 3. 3 Kopfgesteuerte Wiederholung (WHILE - DO) Syntax While Bedingung Do Begin Anweisung 1; Anweisung 2; . . . Anweisung n; End; nicht erfüllt Anweisungsblock erfüllt Schleifen- bedingung 100...321 100 1 ++++=∑=i i 14
  15. 15. Informatik gk 11 Grundlagen der imperativen Programmierung mit Pascal und Delphi Aufgabe 1 Gib dem folgenden Programmfragment eine geeignete Schleifeneintrittsbedingung und beschreibe, welche Funktion das Programmstück mit dieser Bedingung erfüllt: Summe := 0; Zahl := 1; WHILE ________________ DO Begin Summe := Summe + Zahl; Zahl := Zahl + 1; End; Aufgabe 2 Ist der Schleifentyp richtig gewählt? Begründe! a := 4; while (a > 0) do Begin Writeln (a, sqrt(a)); a := a - 0.5; End; Aufgabe 3 Ersetze die Schleife: FOR i := 2 TO 30 DO Writeln (i); a) durch eine repeat, b) durch eine while- Schleife. Aufgabe 4 a) Zeichne ein Struktorgramm zu folgendem Algorithmus Program Berechnung; Var Zahl, Wert, Zaehler : Integer; Begin Writeln ('Eingabe einer Zahl: '); Readln (Zahl); Wert := 1; While Zahl > 0 do Begin Wert := Wert * Zahl; Zahl := Zahl -1; End; Wert := Wert DIV 2; Writeln ('Ergebnis = ', Wert); End. b) Welchen Wert gibt das Programm aus, wenn als Zahl 4 eingegeben wird? 15
  16. 16. Informatik gk 11 Grundlagen der imperativen Programmierung mit Pascal und Delphi 3.4 Weiterführende Aufgaben Aufgabe 1 Mithilfe von Schleifen kann man die Multiplikation zweier Zahlen durch eine Folge von Additionen ersetzen: a) Entwirf ein Struktogramm mit geeigneter Schleife zur Beschreibung des Algorithmus und b) schreibe das entsprechende Pascal-Programm. Aufgabe 2 Vergleiche die drei Schleifentypen, indem du folgende Tabelle vervollständigst: Schleifentyp Schleife mit konstanter Anzahl von Durchläufen Abbrechende Schleifen Wiederholung mit Ausgangsbedingun g Schlüsselwörter FOR - TO - DO FOR - DOWNTO - DO REPEAT - UNTIL WHILE - DO Schleifenüberwachung Zähler Anzahl der Schleifendurchläufe - mindestens/höchstens - festgelegt / nicht festgelegt Besonderheiten - wann wird dieser Typ benutzt? Aufgabe 3 Auf dem MvLG Schulfest führt die Theater AG „Romeo und Julia“ um 18.00 auf der Probebühne auf. Der Eintritt ist frei. Der Theatersaal fasst 45 Plätze. Den Kartenverkauf soll ein Programm der Informatik AG regeln. Bei dem Programm gibt der Kunde (Eltern, Lehrer, Schüler) die Anzahl der gewünschten Karten ein (z.B. 3), der Rechner gibt die Sitznummern (1-45) auf dem Bildschirm aus, wünscht einen schönen Tag und ist für die nächste Eingabe bereit. Ist der Saal voll erscheint ein entsprechender Hinweis und das Programm beendet sich auf Tastendruck. a) Fertige ein Struktogramm an und b) Entwickle das Programm! Aufgabe 4 Wegen der großen Nachfrage soll es nun drei Vorstellungen geben: 11.00, 14.30 und 18.00. Das Programm fragt nun nach der Uhrzeit der gewünschten Vorstellung und verfährt wie oben. Entwickle das Programm. a · b = a + a + a + ... + a b mal 16
  17. 17. Informatik gk 11 Grundlagen der imperativen Programmierung mit Pascal und Delphi Aufgabe 5 Vom Schaum in einem Bierglas zerfällt pro Minute 15%. a) Entwickle ein Programm, das die Zeit berechnet, nach der sich der Schaum auf 1 % der Ausgangsmenge reduziert hat. b) Erweitere das Programm um die Eingabe der Variablen n, so dass die Zeit gemessen wird, bis sich der Schaum auf n% der Ausgangsmenge reduziert hat. Aufgabe 6 Entwickle ein Programm, das eine in Dezimalschreibweise gegebene natürliche Zahl in römischer Schreibweise ausgibt. 1 ~ I; 5 ~ V; 10 ~ X; 50 ~ L; 100 ~ C; D ~ 500; M ~ 1000 Aufgabe 7 Überall muß man sich in Schlangen einreihen: an der Tür zum Klassensaal, an der Straßenbahnhaltestelle, bei der Passkontrolle, beim Arzt oder auf der Post. Für denjenigen, der gerade in der Schlange steht, ist es wichtig zu wissen, wie lange er noch etwa warten muß. Noch wichtiger ist herauszufinden, wie lange die Schlange überhaupt werden kann. Die Einmündung einer Nebenstraße in eine Hauptstraße ist durch eine Ampelanlage gesichert, die im Verlauf einer Minute 15 Sekunden lang 'Grün' zeigt. Während dieser Grünphase können höchstens fünf Fahrzeuge die Ampel passieren. Die Erfahrung zeigt, dass in jeder Minute etwa drei Fahrzeuge an die Ampel heranfahren. Wie groß wird die durchschnittliche Länge der Schlange? Hinweise Der Vorgang soll mit dem Computer simuliert werden. Dazu wählt man als Zeiteinheit eine Sekunde. Da im Mittel drei Autos in der Minute an der Ampel ankommen, ist die Wahrscheinlichkeit, dass während einer Sekunde ein Auto ankommt, 1/20 .Wir veranlassen daher den Computer, für jede Sekunde eine Zufallszahl zwischen 0 und 19 zu ermitteln. Ist die Zufallszahl 0, so nähert sich ein Fahrzeug der Ampel, und die Schlange wächst um 1 Fahrzeug. Falls noch Fahrzeuge an der Ampel warten, kann alle 3 Sekunden ein Auto die Ampel passieren. Es muss also die Warteschlage um 1 vermindert werden, falls der Wert der Variablen 'Sekunde' kleiner 16 und durch 3 teilbar ist. Aufgabe 8 Der Rechner „denkt“ sich ein Zahl zwischen 1 und 100. Der Spieler tippt so lange Zahlen, bis gedachte und getippte Zahl übereinstimmen. Als Hinweis gibt der Rechner bei jeder getippten Zahl aus, ob seine gedachte Zahl größer oder kleiner als die getippte Zahl ist. a) Schreibe ein entsprechendes Programm. b) Wie viele Tipps benötigt ein Spieler höchstens, um die gedachte Zahl zu „raten“. c) Wie viele Versuche würde ein Spieler höchstens benötigen bei einer Feldgröße von 1. 1000 Zahlen, 2. 5000 Zahlen, 3. 9000 Zahlen 4. 100000 Zahlen? 17

×