22
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: -10 38 .. 10 38 (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 Var a: Real; Writeln (‘Der Flächeninhalt beträgt’ , a:8:2 , ’Zentimeter’); Textkonstante Zugriff auf eine Variable Textkonstante

SchüLerscript Imperative Programmierung Mit Der Delphi Konsole

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: SchüLerscript   Imperative Programmierung Mit Der Delphi Konsole

Informatik gk 11Grundlagen der imperativen Programmierung mit Pascal und Delphi

1. Grundlagen

1.1 erstes Programm

Aufgabe 1

BeginZahl a einlesenZahl b einlesenc = a + bAusgabe Zahl cEnd.

a) Beschreibe die Struktur des Programms.b) Setze das Struktogramm in ein Delphi-Programm um.

Aufgabe 2a) Welche Bedeutung hat das Semikolon in Pascal?b) Unterscheidet Pascal (Delphi) Groß- und Kleinschreibung?

1.2 Einfache Datentypen

(1) numerische DatentypenInteger: ganzzahliger Wert, (Bsp. 21, -2334) Wertebereich: -32 768 ... 32 767Byte: ganzzahliger Wert, Wertebereich: 0..255Real: reellwertige Zahl, zum Beispiel Zahlen mit Nachkommastellen, (Bsp: -34.987)

Wertebereich: -1038 .. 1038 (2) Zeichen und ZeichenkettenChar: 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) WahrheitswertBoolean: logische Variable, die entweder den Wahrheitswert wahr (true) oder falsch

(false) aufnehmen kann

1.3 Write-Anweisung

1.4 Variablenkonzeptvgl. Unterricht

1

Var a: Real;…Writeln (‘Der Flächeninhalt beträgt’ , a:8:2 , ’Zentimeter’);

Textkonstante Zugriff auf eine Variable

Textkonstante

Page 2: SchüLerscript   Imperative Programmierung Mit Der Delphi Konsole

Informatik gk 11Grundlagen der imperativen Programmierung mit Pascal und Delphi

Aufgabe 1Aus 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 2Das 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 3Erkläre das Variablenkonzept in Pascal (Delphi).

Aufgabe 4Warum müssen Variablen, mit denen im Anweisungsteil gearbeitet werden soll, vorher im Vereinbarungsteil mit Angabe des Datentyps vereinbart werden?

1.5 Fehlerarten

(1) SyntaxfehlerFehler, 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) LaufzeitfehlerFehler, 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 1Gegeben ist folgender Pascal-Quelltext:

Program Beispiel 1;

(* Dieses Programm berechnet den Flächeninhalteines Dreiecks *)

Var grundseite: Real; hoehe : Real; flaeche: Integer;

2

Page 3: SchüLerscript   Imperative Programmierung Mit Der Delphi Konsole

Informatik gk 11Grundlagen 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 2Welche 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: RealEndkapital: Integer;

BeginWrite ('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 3Beim 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) DivisionsrestWert := 108 div 5; Wert := 108 mod 5;Variableninhalt: Wert = 21 Variableninhalt: Wert = 3

(3) DivisionsoperatorWert := 108 / 5;Variableninhalt: Wert = 21.6

Aufgabe 1Berechne die Werte der folgenden Ausdrücke:a) 12 MOD 7b) 12 DIV 7 c) 45 MOD 6 + 3

3

Page 4: SchüLerscript   Imperative Programmierung Mit Der Delphi Konsole

Informatik gk 11Grundlagen der imperativen Programmierung mit Pascal und Delphi

d) 45 DIV (6 + 3) e) (23 DIV 5) / 2 f) (23 MOD 5) / 2

Aufgabe 2a) Werte den Ausdruck schrittweise aus: a := 20 MOD 7 /15 DIV 4 +3-18 DIV 5*2b) Welchen Datentyp hat das Ergebnis?c) Programmiere die Zeile aus (a). Wo liegt der Fehler?

Aufgabe 3Es 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 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 2Mit 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

Page 5: SchüLerscript   Imperative Programmierung Mit Der Delphi Konsole

Informatik gk 11Grundlagen der imperativen Programmierung mit Pascal und Delphi

2 Verzweigungen

2.1 Einseitige Auswahl (IF - THEN)

Aufgabe 1a) Beschreibe, was im Flussdiagramm dargestellt wird und wie der Programmfluss verläuft,b) Schreibe das Flussdiagramm in ein Struktogramm um.

Aufgabe 2Gegeben 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

Page 6: SchüLerscript   Imperative Programmierung Mit Der Delphi Konsole

Informatik gk 11Grundlagen der imperativen Programmierung mit Pascal und Delphi

2.2 Zweiseitige Auswahl (IF - THEN - ELSE)

Aufgabe 1a) Beschreibe, was im Flussdiagramm dargestellt wird und wie der Programmfluss verläuft,b) Schreibe das Flussdiagramm in ein Struktogramm um.

Aufgabe 2Ein Parkhaus hat folgenden Tarif:

Parkdauer Parkgebührbis 2 Stundenjede weitere angefangene StundeHö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

Page 7: SchüLerscript   Imperative Programmierung Mit Der Delphi Konsole

Informatik gk 11Grundlagen der imperativen Programmierung mit Pascal und Delphi

Aufgabe 3Gegeben ist folgendes Programm:

Program Abfrage;

Var a, b, c, d, e, : Real;

BeginWrite ('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 Ergebnissea b c d e7 3 4-3 11 469 -5 512 4 2

Aufgabe 4In einem Unternehmen gilt folgende Rabattregel:

Kundennummer gewährter Rabattsatz

kleiner als 30003000 bis 5000größer als 5000

12 %0%10 %

7

Page 8: SchüLerscript   Imperative Programmierung Mit Der Delphi Konsole

Informatik gk 11Grundlagen 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;

BeginWrite ('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 8Warum gibt folgendes Programm beim Compilieren eine Fehlermeldung?

Program Fehler;

Var a : Integer;

BeginIF (4 < 2) THEN IF (2 < 3) THEN a := 3 ELSE a := 4; ELSE a:= 5;Write(' a = ', a);End.

Aufgabe 9Ein Parkhaus hat folgenden Tarif:

Parkdauer Parkgebührbis 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

Page 9: SchüLerscript   Imperative Programmierung Mit Der Delphi Konsole

Informatik gk 11Grundlagen 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 1Warum wird im Struktogramm der zweiseitigen Auswahl nach ja / nein (wahr / falsch) und nicht nach then / else unterschieden?

Aufgabe 2Die Anweisung

IF (a < b) THENkann auch wie folgt umgeschrieben werden:

Var wert : Boolean;

Beginwert := (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 ... THENgeprüft, bzw. erwartet?

(1) Vergleichsoperatoren der Bedingungsanweisung

><=

größerkleinergleich

>=<=<>

größer gleichkleiner 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 einenWahrheitswert

Auswertung eines Ausdrucks, nicht die Beantwortung einer Frage mit ja / nein

a < b

true / false

9

Page 10: SchüLerscript   Imperative Programmierung Mit Der Delphi Konsole

Informatik gk 11Grundlagen 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 undBei 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 1Welche 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

Page 11: SchüLerscript   Imperative Programmierung Mit Der Delphi Konsole

Informatik gk 11Grundlagen 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

BeginAnweisung1;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

Page 12: SchüLerscript   Imperative Programmierung Mit Der Delphi Konsole

Informatik gk 11Grundlagen der imperativen Programmierung mit Pascal und Delphi

Aufgabe 1Die Summe der Zahlen 1 bis 100 soll berechnet werden.

a) Erstelle ein Struktogramm,b) schreibe das zugehörige Programm.

Aufgabe 2Verallgemeinere 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 3a) 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;

beginrandomize;

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

12

Page 13: SchüLerscript   Imperative Programmierung Mit Der Delphi Konsole

Informatik gk 11Grundlagen der imperativen Programmierung mit Pascal und Delphi

Aufgabe 4Bei 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

repeatAnweisungsblock

until

nicht erfüllt

Schleifen-bedingung

erfüllt

13

Page 14: SchüLerscript   Imperative Programmierung Mit Der Delphi Konsole

Informatik gk 11Grundlagen der imperativen Programmierung mit Pascal und Delphi

Aufgabe 1Ergä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 2Entwickle ein Programm, das aus einer Reihe von positiven Zahlen das arithmetische Mittel (Durchschnitt)

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;

nichterfüllt

Anweisungsblock

erfüllt

Schleifen-bedingung

14

Page 15: SchüLerscript   Imperative Programmierung Mit Der Delphi Konsole

Informatik gk 11Grundlagen der imperativen Programmierung mit Pascal und Delphi

Aufgabe 1Gib 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 2Ist der Schleifentyp richtig gewählt? Begründe!

a := 4;while (a > 0) do Begin Writeln (a, sqrt(a)); a := a - 0.5; End;

Aufgabe 3Ersetze die Schleife:

FOR i := 2 TO 30 DO Writeln (i);

a) durch eine repeat,b) durch eine while- Schleife.

Aufgabe 4a) Zeichne ein Struktorgramm zu folgendem Algorithmus

Program Berechnung;

Var Zahl, Wert, Zaehler : Integer;

BeginWriteln ('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

Page 16: SchüLerscript   Imperative Programmierung Mit Der Delphi Konsole

Informatik gk 11Grundlagen der imperativen Programmierung mit Pascal und Delphi

3.4 Weiterführende Aufgaben

Aufgabe 1Mithilfe 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 2Vergleiche die drei Schleifentypen, indem du folgende Tabelle vervollständigst:

SchleifentypSchleife mit konstanter Anzahl von Durchläufen

Abbrechende SchleifenWiederholung mit Ausgangsbedingung

Schlüsselwörter FOR - TO - DOFOR - DOWNTO - DO

REPEAT - UNTIL WHILE - DO

Schleifenüberwachung ZählerAnzahl der Schleifendurchläufe- mindestens/höchstens- festgelegt / nicht festgelegtBesonderheiten- wann wird dieser Typ benutzt?

Aufgabe 3Auf 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 4Wegen 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

Page 17: SchüLerscript   Imperative Programmierung Mit Der Delphi Konsole

Informatik gk 11Grundlagen der imperativen Programmierung mit Pascal und Delphi

Aufgabe 5Vom 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 6Entwickle 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?

HinweiseDer 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 8Der 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 Zahlen4. 100000 Zahlen?

17