Turbo-Pascal Aufgaben:

Werbung
Turbo-Pascal
Ein Programm hat grundsätzlich die EVA-Struktur (Eingabe-Verarbeitung-Ausgabe)
Will man irgendwelche Daten eingeben so benötigt man dafür Speicherplätze;
Speicherplätze sind Buchstaben und alle Buchstabenkombinationen,
also z. B. a, m, xwier,
anzahl, radius,
laenge, wort, name usw.
Es gibt Speicherplätze für Zahlen und Speicherplätze für Worte, also muss man im Programm
erklären, welche Daten man in die Speicherplätze eingeben möchte (Variablendeklaration)
Es gibt verschiedene Arten von Zahlen:
1. Die Zahlen von 0 bis 255 haben das Format
byte
1. Zahlen von –32767 bis +32768 haben das Format
Integer
2. Zahlen von –2 147 483 647 bis 2 147 483 648
Longint
3. Kommazahlen haben das Format
Real
4. Buchstaben haben das Format
Char
5. Zeichenketten aus Buchstaben und Zahlen wie z. B.
Müller aber auch 0201-77 55 43 haben das Format
String[20]
Dabei gibt die Zahl in der Klammer die Anzahl der ‚
Zeichen an.
Wird die Variable direkt unter der Titelzeile Program Programmname; geschrieben, so gilt
die Variable für alle Prozeduren und das Hauptprogramm. Steht sie in einer Prozedur unter
Procedure Prozedurname; so gilt die Variable nur in dieser Prozedur, in einer anderen wäre
sie unbekannt.!!
Die Variablendeklaration erfolgt z.B. durch Var Laenge,Breite: integer;
Name: string[20];
Eingabe Variablenbelegung:
Man belegt die Variable direkt mit einem Wert belegen: Laenge:=5;
Fortan kann mit dem Speicherplatz Laenge als Zahl 5 gerechnet werden.
Verarbeitung
Mit Speicherplätzen kann man rechnen und die Werte der Rechnungen in einen neuen
Speicherplatz ablegen. Das Format ist
Speicherplatz:=Rechnung
Also z. B.
Preis:=Menge*kilopreis+3;
oder Zahl:= 4+7;
oder U:=2*a+2*b;
Bei Worten und Buchstaben sind Anführungszeichen (Hochkomma) notwendig:
Name:=’Müller’;
Zeichen:=’x’;
Ausgabe auf dem Bildschirm:
Der Befehl write (Speicherplatz) schreibt den Inhalt eines Speicherplatzes auf den Bildschirm
z. B. writeln(umfang); schreibt die Zahl, die im Speicherplatz Umfang steht auf den
Bildschirm
write(’irgendein Text’); schreibt den Text in Anführungszeichen auf den Bildschirm
Beim Befehl writeln statt write wird eine neue Zeile erzeugt.
Beispiel für ein vollständiges Programm:
program irgendetwas;
var x,y,z,ergebnis: integer ;
procedure rechnen;
begin
ergebnis:=x+y+z;
end;
procedure eingabe;
begin
x:=5;
y:=7;
z:=9;
end;
procedure ausgabe;
begin
writeln(ergebnis);
end;
begin
eingabe;
rechnen;
ausgabe;
READLN;
end.
Dieser Befehl ist notwendig, wird später erklärt
Aufgabe 1: Es soll ein Programm geschrieben werden, bei dem man die Länge und die Breite
eines Rechtecks (nur ganze Zahlen) eingeben kann, damit soll dann sofort der Umfang und
die Fläche des Rechtecks berechnet werden.
Zuerst testet man ein Programm auf Fehlerfreiheit mit <F9>
Man startet ein Programm zur Ausführung mit <STRG> + <F9>.
program rechteck;
program rechteck;
var a,b,U,F: integer;
var a,b,U,F: integer;
procedure eingabe:
begin
a:=5;
b:=9;
end;
procedure eingabe:
begin
write(‘a=’);
readln(a);
write (‘b=’);
readln (b);
procedure verarbeiten;
begin
A:=a*b;
U:=2*a+2*b;
end;
end;
procedure ausgabe;
begin
writeln(A);
writeln(U);
end;
begin
eingabe;
verarbeiten;
ausgabe;
end.
hält das
Programm an
und wartet auf
Tastatureingabe
procedure verarbeiten;
begin
A:=a*b;
U:=2*a+2*b;
end;
procedure ausgabe;
begin
writeln(‘Fläche=’,A);
writeln(‘Umfang=’,U);
end;
begin
eingabe;
verarbeiten;
ausgabe;
end.
Aufgabe 2: Schreibe ein Programm zur Berechnung eines Quaders, (Volumen und Oberfläche) mit
ganzzahligen Werten.
Aufgabe 3: Schreibe in Programm zur Berechnung eines Kreises, (Fläche und Umfang).
Aufgabe 4: Schreibe ein Programm zur Prozentrechnung. Auf dem Bildschirm soll eine Auswahl
stehen
1=Prozentsatz berechnen
2= Prozentwert berechnen
3= Grundwert berechnen.
Dann soll eine Zahl eingegeben werden und entsprechender Wert berechnet werden.
Verbessere das Programm in der Weise, dass es so lange wiederholt wird, bis man das
Zeichen e eingegeben hat.
Aufgabe 5: Schreibe entsprechend zur Aufgabe 4 ein Programm zur Zinsrechnung.
Aufgabe 6: Schreibe ein Programm, welches entscheidet ob man wahlberechtigt ist. Es soll das
Geburtsjahr eingegeben werden, dann soll auf dem Bildschirm entweder „Du bist
wahlberechtigt“ oder „Du bist nicht wahlberechtigt“ stehen.
Aufgabe 7: Schreibe ein Programm, bei dem man 2 Zahlen eingibt. Das Programm soll die
Entscheidung treffen, welche Zahl größer ist und die größere Zahl ausgeben.
Aufgabe 8: Schreibe ein Programm, bei dem man 3 Zahlen eingibt. Das Programm soll die
Entscheidung treffen, welche Zahl größer ist und die größere Zahl ausgeben.
program wahlrecht;
program groessenvergleich_2_zahlen;
procedure wahlrecht_bestimmen;
var geburtsjahr, dieses_jahr, alter: integer;
begin
write(´Heutiges Jahr eingeben ´);
readln(dieses_jahr);
write(´Geburtsjahr eingeben ´);
readln(geburtsjahr);
alter:=dieses_jahr-geburtsjahr;
if alter>17 then
writeln(´wahlberechtigt´)
else writeln(´nicht wahlberechtigt´);
end;
procedure vergleichen;
var a,b: integer;
begin
write(´1. Zahl eingeben ´);
readln(a);
write(´2. Zahl eingeben´);
readln(b);
if a>b then writeln(a,´ ist größer´)
else writeln(b,´ ist größer);
end;
begin
wahlrecht_bestimmen;
end;
program groessenbestimmung_3_zahlen;
var a, b, c: integer;
begin
vergleichen;
end.
procedure a_und_c_vergleichen;
begin
if a>c then writeln(a,´ ist größte Zahl’)
else writeln(c,´ ist größte Zahl’);
end;
procedure b_und_c_vergleichen;
begin
if b>c then writeln(b,´ ist größte Zahl’)
else writeln(c,´ ist größte Zahl’);
end;
procedure groessenvergleich;
begin
write(´1. Zahl eingeben ´);
readln(a);
write(´2. Zahl eingeben´);
readln(b);
write(´3. Zahl eingeben ´);
readln(c);
if a>b then a_und_c_vergleichen
else b_und_c_vergleichen;
end;
begin
groessenvergleich;
end;
begin
groessenvergleich;
end;
a>b
ja
nein
b und c
vergleichen
a und c
vergleichen
procedure a_und_c_vergleichen
a>c
ja
nein
c ist größte
Zahl
a ist größte
Zahl
procedure b_und_c_vergleichen
b>c
ja
a und c
vergleichen
nein
b und c
vergleichen
Zählschleifen
Wenn man eine fest vorgegebene Anzahl von Wiederholungen einzelner Befehle vorhersehen
kann, dann benutzt man Zählschleifen:
Schreibweise
For I:=1 to 10 do
Begin
Befehl1;
Befehl2;
....
....
end;
bei nur einem Befehl kann man sich begin und end einsparen:
for i:=1 to 10 do befehl1;
Dabei ist der Speicherplatz i eine Zählvariable. Die Schleife beginnt mit i:=1, bei jeder
Wiederholung wird i um 1 erhöht. Wenn i=10 ist, wird die Schleife beendet.
Aufgabe 9. Schreibe ein Programm, welches 20 mal den Satz Programmieren ist schön
schreibt. (Vergiss nicht den readln-Befehl zum Schluss, damit das Programm nicht
sofort in den Schreibmodus umschaltet)
Aufgabe 10: Schreibe ein Programm, welches die Zahlen 2 4 6 8 10 12 14 ... insgesamt 50
Zahlen auf den Bildschirm schreibt.
b) Es sollen 30 Zahlen 2 5 8 11... geschrieben werden
c) Es sollen 20 Zahlen -3 2 7 12 17 ... geschrieben werden
d) Es sollen 64 Zahlen 1 2 4 8 16 32 64 ... geschrieben werden
e) Es sollen 100 Zahlen 1 3 6 10 15 21 28 36 geschrieben werden (1+2+3+4+5+6+....)
Aufgabe 11: Schreibe ein Programm, mit dem eine zufällige Zahl zwischen 0 und 10000
bestimmt wird. Du sollst 11 mal raten. Der Computer gibt Dir die Information, ob die Zahl zu
klein oder zu groß ist. Dann musst Du die Zahl geraten haben.
Der Befehl zur Festlegung einer Zufallszahl zwischen 1 und 10000 lautet:
zufallszahl:=random(1,10000);
Aufgabe 12
Schreibe ein Programm welches 2 Zufallszahlen zwischen 2 und 10 auf den Bildschirm
schreibt, dazwischen ein * also z. B. 5*8= Dann sollst Du ein Ergebnis eingeben und der
Computer soll bewerten mit richtig oder falsch. Insgesamt soll man 20 Aufgaben gestellt
bekommen.
Aufgabe 13 Vokabelübung
program zahlenraten;
var zahl,i,zufallszahl: integer;
procedure zufallszahl_ermitteln;
begin
randomize;
zufallszahl:=random(10000);
end;
procedure zahl_eingeben_und_pruefen;
begin
write('Zahl eingeben ');
readln(zahl);
if zahl>zufallszahl then writeln(' Deine Zahl ist zu groß');
if zahl<zufallszahl then writeln(' Deine Zahl ist zu klein');
if zahl=zufallszahl then
begin
writeln('Deine Zahl ist richtig');
i:=15;
end;
writeln;
end;
begin
zufallszahl_ermitteln;
for i:=1 to 15 do zahl_eingeben_und_pruefen;
readln;
end.
program multiplikationsuebung;
var zahl,ergebnis,i,zufallszahl: integer;
procedure aufgaben_stellen;
begin
zufallszahl:=random(10)+1;
write(zufallszahl,' * 8 = ');
readln(zahl);
ergebnis:=zufallszahl*8;
if zahl=ergebnis then writeln(' richtig')
else writeln('falsch, das Ergebnis lautet ',ergebnis);
end;
begin
randomize;
for i:=1 to 20 do aufgaben_stellen;
readln;
end.
Herunterladen