Post on 23-Jan-2019
transcript
Delphi Programmieren lernen für Einsteiger
vonDietmar Weber
1. Auflage
Delphi Programmieren lernen für Einsteiger – Weber
schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG
Europa Lehrmittel 2004
Verlag C.H. Beck im Internet:www.beck.de
ISBN 978 3 8085 8435 4
Computerpraxis – Schritt für Schritt
Delphi
Programmieren lernen für Einsteiger
VERLAG EUROPA-LEHRMITTEL • Nourney, Vollmer GmbH & Co. KG Düsselberger Straße 23 • 42781 Haan-Gruiten Europa-Nr.: 84351
2 Impressum
Autor
OStR Dietmar Weber, Koblenz
Verlagslektorat
Benno Buir
Die in diesem Lehr- und Lernbuch genannten Software-, Hardware- und Handelsnamen sind in ihrer Mehrzahl gleichzeitig auch eingetragene Warenzeichen. Das vorliegende Buch wurde auf Grundlage der neuen amtlichen Rechschreibregeln ers tellt.
1. Auflage 2004 Druck 5 4 3 2 1 Alle Drucke derselben Auflage sind parallel einsetzbar, da sie bis auf die Behebung von Druckfehlern untereinander unverändert sind. ISBN 3-8085-8435-1 Alle Rechte vorbehalten. Das Werk ist urheberrechtlich geschützt. Jede Verwertung außerhalb der gesetzlich geregelten Fälle muss vom Verlag schriftlich genehmigt werden. 2004 by Verlag Europa-Lehrmittel, Nourney, Vollmer GmbH & Co. KG, 42781 Haan-Gruiten
http://www.europa-lehrmittel.de Satz: Dietmar Weber, 56073 Koblenz Druck: Media Print Informationstechnologie, 33100 Paderborn
Vorwort 3
Vorwort
Anfang der Neunzigerjahre fand im Bereich der Programmierung ein Umbruch statt, die so genannten strukturierten Programmiersprachen wurden mehr und mehr von den grafik- und objektorientierten Programmiersprachen verdrängt. Für den Lerner bedeutete dies, dass einiges neues Wissen hinzu gekommen ist. In der quantitativ und qualitativ unüberschaubaren Fülle stellt sich für den Lerner die Frage: Wie lernt man heutzutage eine Programmiersprache und welche Aspekte sollten dabei beachtet werden? Sammelt man diesbezüglich Begriffe, so könnte Folgendes zustande kommen.... Allgemein gültig eigenverantwortliches Lernen weit verbreitet Schlüsselqualifikationen exemplarisch problemorientiertes Programmieren objektorientiertes Programmieren übungsintensiv GUI-Programmierung Selbsterschließungsfähigkeiten
u. v. m.
Mit diesem Buch werden folgende Ziele verfolgt:
• Der Lerner lernt die Prinzipien des Programmierens. Dass, was er lernt, lässt sich auf andere Programmiersprachen übertragen. Es sollte deshalb eine Programmiersprache gewählt werden, die dies ermöglicht. Delphi stellt hierbei eine mögliche Lösung dar.
• Der Lerner lernt, wie man sich selbstständig neue Problematiken erschließt. Die Lernunterlagen fördern die Selbsterschließungsfähigkeiten, ohne den Neuling quantitativ bzw. qualitativ zu überfordern.
• Der Lerner erhält einen Einblick in die GUI-Programmierung und somit in den aktuellen
Entwicklungsstandard. Voraussetzungen: Die Übungen und die Entwicklung dieses Buches basieren auf dem Borland Delphi Compiler Delphi 6.0 Professional. Zur Bearbeitung benötigen Sie eine Delphiversion ab Delphi 3.0 Standard.
Autor und Verlag wünschen den Leserinnen und Lersern dieses Buches viel Erfolg beim Einstieg in das Programmieren. Kritik, Hinweise und Anregungen werden gerne entgegen genommen: dietmarweber@gmx.de info@europa-lehrmittel.de Im Sommer 2004
4 Leittextmethode
Leittextmethode Was ist die Leittextmethode? Das Buch orientiert sich an der Leittextmethode. Bei dieser Methode sollen aufbereitete Aufgaben (Aufgabenteil ) selbstständig gelöst werden. Um diese Aufgaben lösen zu können, bedarf es entsprechender Informationen (Informationsteil ).
Diese Informationen stehen i. d. R. in Form von Texten zur Verfügung und sollen den Lerner entsprechend anleiten. Daher stammt der Begriff - Leittexte - Mit diesen Unterlagen werden im Wesentlichen zwei Ziele verfolgt:
• Selbstständiges Lernen unter Anleitung, d. h. Methodenlernen
• Lernen von grundlegenden Programmiertechniken mittels Delphi Wie arbeite ich mit dem Buch? Man beginnt mit dem Aufgabenteil! Eine Aufgabe stellt den zentralen Ausgangspunkt dar. Zur Lösung einer Aufgabe beschafft man sich die entsprechenden Informationen aus dem Informationsteil. Weitere Informationsquellen können selbstverständlich hinzugezogen werden,
sind für die Bewältigung zumeist jedoch nicht notwendig. Die Bearbeitung einer Aufgabe gliedert sich in verschiedene Phasen. Phasen Leittextmethode Kapitelabschnitt Beschreibun g
1. Informieren
Lernziele Klärung der zu erreichenden Ziele. Informationsquellen: Informationsteil, Informatikduden, Delphi-Hilfe, Fach-zeitschriften, Internet etc.
2. Planen und 3. Entscheiden
Aufgabenbeschreibung Zentrale Aufgabe des Kapitels! Was ist zu tun? Planung der Durchführung.
4. Durchführen
Arbeitsschritte Erarbeiten der Aufgabenstellung unter Anleitung (falls notwendig).
5. Kontrollieren und 6. Bewerten
Lernerfolgskontrolle Wurden die oben angegebenen Ziele erreicht? Selbstständiges Kontrollieren und Bewerten der eigenen Fähigkeiten.
Alle Phasen
Erweiterung und Vertiefung Erweiterung und ggf. Vertiefung der Kenntnisse durch entsprechende Fragen bzw. Erarbeitung eines kleinen (Micro-Project) Projektes unter Anwendung aller Phasen, ohne detaillierte Beschreibung des Lösungsweges.
Inhalt 5
Aufgabenteil
A1 Einführung Programmierung.......................... ..............................................9 Was bedeutet Programmieren?
A2 Schnuppern in Delphi.............................. ....................................................10 Programmaufbau, Zeichenvorrat und Syntax, Entwicklungsumgebung
A3 Einfache Programme................................ ...................................................11
A3.1 Standard-Datentypen........................... ...........................................11 Ganzzahl-, Gleitkommatypen
A3.2 Variablen und Konstanten...................... ........................................12 Deklaration, Variablen und Konstanten
A3.3 Ein- und Ausgabe.............................. ..............................................13 Formatierte Ein- und Ausgabe
A3.4 Rechnen in Delphi............................. ..............................................14 Operatoren und Ausdrücke, Ganzzahloperationen
A4 Kontrollstrukturen – Folgestrukturen .............. ..........................................16
A4.1 Programmentwicklung........................... .........................................16 Algorithmusbegriff, Programmentwicklungsphasen, Grafische Darstellung
A4.2 Sequenz ....................................... ....................................................17 Sequenzielle Programme
A5 Kontrollstrukturen – Verzweigungen ................ .........................................18
A5.1 Zweiseitige Verzweigung....................... .........................................18 if–then–else–Anweisung
A5.2 Einseitige Verzweigung ........................ ..........................................19 if–then–Anweisung
A5.3 Mehrseitige Verzweigung ....................... ........................................20 Verschachtelte if–then–else–Anweisung
A5.4 Mehrfachauswahl ............................... .............................................21 case–Anweisung
A6 Kontrollstrukturen – Schleifen.................... ................................................22
A6.1 Kopfgesteuerte Schleife ....................... ..........................................22 while–Schleife
A6.2 Fußgesteuerte Schleife........................ ...........................................23 repeat–Schleife
A6.3 Zählschleife .................................. ...................................................24 for–Schleife
6 Inhalt
A7 Unterprogramme.................................... ..................................................... 26
A7.11 Prozeduren mit Wertparameter .................. ................................... 26 Deklaration und Aufruf „call by value“, Allgemeiner Aufbau einer Prozedur
A7.12 Prozeduren mit Referenzparameter ............... ............................... 27 Deklaration und Aufruf „call by reference“, Allgemeiner Aufbau einer Prozedur
A7.2 Funktionen.................................... .................................................. 28 Deklaration und Aufruf, Rückgabewerte, Allgemeiner Aufbau einer Funktion
A8 Module (Units) .................................... ......................................................... 30 Konzeption, Aufbau, Deklaration
A9 Rekursion ......................................... ........................................................... 32 Iteration versus Rekursion, Abbruchbedingung
A10 Strukturierte Datentypen .......................... .................................................. 33
A10.1 Strings...................................... ....................................................... 33 Deklaration
A10.2 Arrays (Felder).............................. .................................................. 34 Eindimensionale Arrays, mehrdimensionale Arrays
A10.3 Records (Verbunde) ........................... ............................................ 36 Deklaration, with–Anweisung, record im record
A11 Datenstrukturen und Algorithmen................... .......................................... 38
A11.2 Sortierverfahren ............................. ................................................ 38 Überblick, Sortieren durch Auswählen, Einfügen, Vertauschen
A11.3 Suchverfahren ................................ ................................................ 39 Lineare Suche, Halbierungssuche
P11 Listenoperationen .............................. ............................................ 40 Projektplanung, Implementierung
A12 GUI–Entwurf ....................................... ......................................................... 42 Jetzt geht's los, Beispiel, Ereignisprogrammierung
Inhalt 7
Informationsteil
I1 Einführung Programmierung.......................... ............................................45 Was bedeutet Programmieren?
I2 Schnuppern in Delphi.............................. ....................................................47 Programmaufbau, Zeichenvorrat und Syntax, Entwicklungsumgebung
I3 Einfache Programme................................ ...................................................52
I3.1 Standard–Datentypen ........................... ..........................................53 Ganzzahl-, Gleitkommatypen, Strukturierte Datentypen
I3.2 Variablen und Konstanten...................... ........................................57 Zuweisungsregeln, Deklaration von Konstanten
I3.3 Ein- und Ausgabe.............................. ..............................................59 Formatierte Ein- und Ausgabe
I3.4 Rechnen in Delphi............................. ..............................................60 Operatoren und Ausdrücke, Ganzzahloperationen
I4 Kontrollstrukturen – Folgestrukturen .............. ..........................................64
I4.1 Programmentwicklung........................... .........................................64 Algorithmusbegriff, Programmentwicklungsphasen, Grafische Darstellung
I4.2 Sequenz ....................................... ....................................................69 Sequenzielle Programme, Verbundanweisung
I5 Kontrollstrukturen – Verzweigungen ................ .........................................70
I5.1 Zweiseitige Verzweigung....................... .........................................70 if–then–else–Anweisung
I5.2 Einseitige Verzweigung ........................ ..........................................72 if–then–Anweisung
I5.3 Mehrseitige Verzweigung ....................... ........................................73 Verschachtelte if–then–else–Anweisung, Bedingungen
I5.4 Mehrfachauswahl ............................... .............................................76 case–Anweisung
I6 Kontrollstrukturen – Schleifen.................... ................................................78
I6.1 Kopfgesteuerte Schleife ....................... ..........................................78 while–Schleife
I6.2 Fußgesteuerte Schleife........................ ...........................................80 repeat–Schleife
I6.3 Zählschleife .................................. ...................................................81 for–Schleife
8 Inhalt
I7 Unterprogramme.................................... ..................................................... 84
I7.1 Prozeduren ..................................... ................................................ 86 Prozeduren mit Wert- und Referenzparameter, Allgemeiner Aufbau einer Prozedur
I7.2 Funktionen.................................... .................................................. 88 Deklaration und Aufruf, Rückgabewerte, Allgemeiner Aufbau einer Funktion
I8 Module (Units) .................................... ......................................................... 91 Konzeption, Aufbau, Deklaration
I9 Rekursion ......................................... ........................................................... 93 Iteration versus Rekursion, Abbruchbedingung
I10 Strukturierte Datentypen .......................... .................................................. 97
I10.1 Strings...................................... ....................................................... 97 Deklaration
I10.2 Arrays (Felder).............................. .................................................. 99 Eindimensionale Arrays, mehrdimensionale Arrays
I10.3 Records (Verbunde) ........................... .......................................... 103 Deklaration, with–Anweisung, record im record
I11 Datenstrukturen und Algorithmen................... ........................................ 106
I11.1 Listen ....................................... ..................................................... 106 Aufbau und Deklaration
I11.2 Sortierverfahren ............................. .............................................. 107 Überblick, Sortieren durch Auswählen, Einfügen, Vertauschen
I11.3 Suchverfahren ................................ .............................................. 111 Lineare Suche, Halbierungssuche
I12 GUI–Entwurf ....................................... ....................................................... 114 Jetzt geht's los, Beispiel, Ereignisprogrammierung
Anhang
A Glossar ............................................ .......................................................... 124
B Sachregister ....................................... ....................................................... 130
C Struktogramm/Programmablaufplan .................... ................................... 132
A 1 Einführung Programmierung 9
A 1
Einführung Programmierung • Was bedeutet Programmieren?
Lernziele • Programmiersprachen nennen können
• Informationen selbstständig beschaffen und auswerten
Erarbeiten Sie eine Übersicht, auf der die Entwicklung der einzelnen Programmiersprachen während der letzten 40 Jahre ersichtlich wird. Besprechen und vergleichen Sie Ihr Ergebnis mit Ihrem Nachbarn. Benutzen Sie weiterführende Quellen zur Lösung dieser Aufgabe.
1. Recherche mittels verschiedener Quellen 2. Auswahl der Informationen (Brainstorming) 3. Auswahl eines geeigneten Werkzeugs zur Visualisierung 4. Erstellung des Produktes (z. B. PowerPoint, Folie, Plakat etc.)
a) Nennen Sie 8 verschiedene Programmiersprachen. b) Was versteht man unter Maschinensprache? c) Wodurch unterscheidet sich die Assemblersprache von der Maschinensprache? d) Was versteht man unter einer höheren Programmiersprache? e) Erklären Sie den Unterschied zwischen einem Compiler und einem Interpreter. f) Was versteht man unter der Syntax einer Programmiersprache? g) Was versteht man unter der Semantik einer Programmiersprache? h) Mit welchem Werkzeug findet man Fehler hinsichtlich der Semantik?
i) Seit wann ist Delphi auf dem Markt verfügbar und in welchen Versionen ist diese Sprache
zurzeit erhältlich? j) Welches ist die Vorgängersprache von Delphi und wann und von wem wurde sie
entwickelt?
Aufgabenbeschreibung
Arbeitsschritte
Lernerfolgskontrolle
Erweiterung und Vertiefung
10 A 2 Schnuppern in Delphi
A 2
Schnuppern in Delphi • Programmaufbau
• Zeichenvorrat und Syntax
• Entwicklungsumgebung
Lernziele • Die Entwicklungsumgebung handhaben
• Ein Delphiprogramm eingeben und testen
Geben Sie das Programm mein_erstes_delphi_programm aus dem Infoteil I2 ein und testen
Sie es.
1. Erstellen Sie auf Ihrem Datenlaufwerk eine Ordnerstruktur zur Verarbeitung der
Delphiübungen. 2. Erstellen Sie das o. a. Programm und beseitigen Sie die Fehler. 3. Testen Sie das Programm ohne das letzte readln. 4. Erstellen Sie das ablauffähige Programm welt.exe und rufen Sie es vom Explorer aus auf.
Speichern Sie das Programm, Dateiname: welt.dpr
a) Welche Delphidateien entstehen durch Ihr Projekt und wofür werden diese Dateien
benötigt? b) Was versteht man unter einem Bezeichner bzw. reservierten Wort? c) Was versteht man unter der Semantik einer Programmiersprache? d) Aus welchen 3 Teilen setzt sich ein Delphikonsolprogramm zusammen? e) Was ist eine Compilerdirektive? f) Wozu dient die Anweisung uses?
g) Wie wird der Anweisungsteil eingeleitet bzw. beendet? h) Auf welche Weise kann man Kommentare in ein Programm einfügen? i) Was ist ein Editor?
j) In welcher Unit ist die Funktion sin(x) enthalten und was macht diese Funktion?
k) Informieren Sie sich über die Syntaxdiagramme von Pascal bzw. Object-Pascal.
Aufgabenbeschreibung
Arbeitsschritte
Lernerfolgskontrolle
Erweiterung und Vertiefung
A 3 Einfache Programme 11
A 3.1
Standard–Datentypen • Ganzzahltypen
• Gleitkommatypen
Lernziele • Datentypen von Ganzzahl- und Gleitkommazahlen unterscheiden können
Geben Sie das Programm bruttoberechnung aus dem Infoteil I3 ein und analysieren Sie die einzelnen Programmzeilen. Vergeben Sie anschließend statt des Datentyps single den Datentyp integer für die Variablen und erklären Sie die Reaktion.
1. Programmeingabe, Übersetzung und Test 2. Analyse und Diskussion der Erkentnisse mit dem Nachbarn 3. Änderung des Datentyps 4. Diskussion des Ergebnisses
Speichern Sie das Programm, Dateiname: bruttoberechnung.dpr
a) Nennen Sie 3 Real- und 3 Ganzzahltypen. b) Welchen Wert liefert die Funktion low(x) wenn x vom Typ integer ist? c) Erklären Sie die Arbeitsweise der Prozeduren inc(x) und dec(x). Von welchem Typ muss
dabei x sein?
d) Ermitteln Sie mithilfe der Funktion sizeof() den Speicherbedarf einer Variablen vom Typ
extended.
e) Ermitteln Sie die Formel und den mathematischen Zusammenhang, wenn statt des Netto- der Bruttobetrag eingeben und berechnet werden sollte.
Aufgabenbeschreibung
Arbeitsschritte
Lernerfolgskontrolle
Erweiterung und Vertiefung
12 A 3 Einfache Programme
A 3.2
Variablen und Konstanten • Deklaration
• Variablen und Konstanten
Lernziele • Konstanten deklarieren können
Ändern Sie das Programm bruttoberechnung derart ab, dass die Mehrwertsteuer als
Konstante deklariert wird.
1. Programmeingabe, Speicherung und Test
2. Deklaration der Mehrwertsteuer als Konstante (d. h. keine Eingabe der MwSt)
Speichern Sie das Programm, Dateiname: bruttoberechnung1.dpr
a) Wie werden Variablen deklariert? Geben Sie ein Beispiel an. b) Deklarieren Sie Konstanten für die Zahl pi und die Zahl e. c) Wann beginnt und wann endet die Lebensdauer einer Variablen? d) Welchen Anfangswert besitzen Variablen im Allgemeinen?
e) Was versteht man unter initialisierten Variablen und wie werden diese deklariert?
f) Was versteht man unter typisierten Konstanten und wie werden diese deklariert? g) Wie können hexadezimale Werte verarbeitet werden?
Arbeitsschritte
Lernerfolgskontrolle
Erweiterung und Vertiefung
Aufgabenbeschreibung
A 3 Einfache Programme 13
A 3.3
Ein- und Ausgabe • Ein- und Ausgabe
Lernziele • Ausgabeformatierungen vornehmen können
Ändern Sie das Programm bruttoberechnung1 derart ab, dass als Ausgabe zusätzlich der
Text 'Heute ist der 10.10.2003' erscheint. Dabei soll das aktuelle Datum zunächst in eine Stringvariable geschrieben und dann ausgegeben werden. Hinweis: Beachten Sie die Erklärungen zum Datentyp string im Kapitel I3.
1. Ermitteln Sie mittels der Delphihilfe die Funktion, die das aktuelle Datum liefert.
2. Deklaration einer Variablen, die das Datum aufnehmen kann. 3. Konvertierung des Datumwertes in eine Stringvariable. 4. Ausgabe der Stringvariablen.
Speichern Sie das Programm, Dateiname: bruttoberechnung2.dpr
a) Was bewirkt ein einzelnes writeln; im Programm?
b) Erklären Sie, wie die Ausgabeformatierung in Zeile [24] des Programms bruttoberechnung funktioniert:
writeln ('Nettobetrag von ', netto:8:2 ,' ergibt ', brutto:8:2);
c) Erklären Sie das Ausgabeformat von Zahlen in wissenschaftlicher Notation. d) Bei der Programmausführung verschwindet die Ausgabe sofort. Wie kann dieses Problem
behoben werden?
Arbeitsschritte
Lernerfolgskontrolle
Aufgabenbeschreibung
14 A 3 Einfache Programme
A 3.4
Rechnen in Delphi • Operatoren und Ausdrücke
• Ganzzahloperationen
Lernziele • Berechnungen mit Variablen unterschiedlichen Typs durchführen können
Schreiben Sie ein Programm, mit dem Sie die nebenstehen-den Berechnungen durchführen können.
1. Die Operanden und die Ergebnisse sollen in Variablen eingelesen werden.
2. Übernehmen Sie die Ergebnisse in die o. a. Tabelle.
Speichern Sie das Programm, Dateiname: div_mod.dpr
a) Bestimmen Sie das Ergebnis folgender Operationen: var a,b,x,y,z: boolean; a := true; b := false; x := a and not b; y := not a or a and b or not b; z := (a > b) and (a xor b);
b) Bestimmen Sie den Typ von a bis d sowie das Ergebnis der folgenden Operationen: var a,b: ...................…………; c,d: ...................…………; a := int (pi); c := trunc (pi); b := frac (pi);
d := round (pi + 0.4);
14 Div 5 = 14 mod 5 = 6 Div 8 = 6 mod 8 =
15 Div 5 = 15 mod 5 = -8 Div 3 = -8 mod 3 =
-11 Div -4 = -11 mod -4 = 10 Div -3 = 10 mod -3 = 13 Div 0 = 13 mod 0 =
Arbeitsschritte
Lernerfolgskontrolle
Aufgabenbeschreibung
A 3 Einfache Programme 15
c) Ermitteln Sie die Ausgabe des folgenden Programms:
// Programmkopf program rechnen; {$APPTYPE CONSOLE} // Deklarationsteil uses SysUtils; const y = 10.0; var a, b : integer; x : double;
// Anweisungsteil begin writeln ('Testprogramm fuer die Grundrechenarten'); writeln; a := 13; b := 10; a := (2 * a) div 10; writeln (a); writeln (b); x := a / b; x := x * y; b := b + a mod b; writeln (a); writeln (b); writeln (x); b := b - b; a := a + a; x := x + 2 * x; writeln (a); writeln (b); writeln (x); readln end.
d) Bestimmen Sie das Ergebnis folgender Bit–Operationen: var a,b,x,y,z: integer; a := 5034; b := -7834; x := a and b; y := a or not b; z := a xor b;
e) Setzen Sie folgende Formeln in Object-Pascal-Schreibweise um:
I. 22: bay +=
II. xay =:
III. a
cab
x
b*
2:
2
2
1
−+−
=
f) Schreiben Sie folgende Object-Pascal-Ausdrücke als „normale“ Formel: I. y := sqrt (4.5 * sqr (x) – 3 * x + 10.5); II. y := exp (ln (2.5) * 2.5); III. y := sqrt (sqrt (81));
Erweiterung und Vertiefung
16 A 4 Kontrollstrukturen – Folgestrukturen
A 4.1
Algorithmusbegriff • Definitionen und Darstellung
Lernziele • Algorithmen aus Problemstellungen formulieren können
• Tools zur Aufgabenbewältigung einsetzen können
Für eine Mahlzeit sollen 400 g Reis abgewogen werden. Formulieren Sie den Algorithmus und stellen Sie diesen mittels STG grafisch dar.
1. Formulieren Sie den Algorithmus.
2. Arbeiten Sie sich in das mitgelieferte Tool zur Erstellung von Struktogrammen ein. 3. Erstellen Sie das Struktogramm und speichern Sie es ab. 4. Diskutieren Sie Ihr Ergebnis mit Ihrem Nachbarn.
a) Nennen Sie die Definition für den Algorithmusbegriff. b) Aus welchen 3 Grundstrukturen setzt sich jeder Algorithmus zusammen? c) Erarbeiten Sie die Problemanalyse für folgende Aufgabe: Ein Programm soll den
Benzinverbrauch auf 100 km ermitteln.
d) Nennen Sie die Programmentwicklungsphasen.
e) Erklären Sie die Entwicklungsmodelle top-down und bottom-up. f) Nennen Sie die beiden grafischen Darstellungsformen für Algorithmen. g) In welchen Fällen ist die eine oder die andere Variante zu bevorzugen?
Arbeitsschritte
Lernerfolgskontrolle
Erweiterung und Vertiefung
Aufgabenbeschreibung
A 4 Kontrollstrukturen – Folgestrukturen 17
A 4.2
Sequenz • Sequenzielle Programme
Lernziele • Sequenzielle Programme erstellen können
Schreiben Sie das Programm benzinberechnung, das den Benzinverbrauch auf 100 km
ermittelt (vgl. 4.1 c).
1. Skizzieren Sie, basierend auf der Problemanalyse des vorangegangenen Kapitels, das
STG für das Programm. 2. Codieren Sie das Programm. 3. Ermitteln Sie Testdaten um die Grenzbereiche des Programms zu testen.
Speichern Sie das Programm, Dateiname: benzinberechnung.dpr
a) Skizzieren Sie das grafische Element (STG) für die Folgeanweisung (Sequenz). b) Geben Sie ein Beispiel für eine Verbundanweisung an.
P1 Das Programm Benzinberechnung soll zusätzlich die Benzinkosten auf 100 km berechnen
und ausgeben. Erweitern Sie das Programm entsprechend. P2 Der Gesamtwiderstand zweier parallel geschalteter Widerstände soll berechnet werden.
Entwickeln Sie das STG und codieren Sie das Programm. P3 Schreiben Sie ein Programm, das bei Eingabe des Radius die Fläche und den Umfang
eines Kreises berechnet. Verwenden Sie die von Delphi zur Verfügung gestellten mathematischen Funktionen.
Arbeitsschritte
Lernerfolgskontrolle
Erweiterung und Vertiefung
Aufgabenbeschreibung
18 A 5 Kontrollstrukturen – Verzweigungen
A 5.1
Zweiseitige Verzweigung • if–then–else–Anweisung
Lernziele • Verzweigungen unterscheiden können
• Programme mit zweiseitigen Verzweigungen entwickeln
Mittels Programm sollen 2 Zahlen miteinander verglichen werden und die größere der beiden Zahlen ausgegeben werden.
Entwickeln Sie den Algorithmus und skizzieren Sie das STG.
Codieren Sie das Programm, geben Sie es ein und testen Sie es.
Speichern Sie das Programm, Dateiname: max2.dpr
a) Welche Arten von Verzweigungen werden unterschieden? b) Wie viele Anweisungen dürfen im then bzw. im else–Zweig stehen? c) Warum darf vor einem else kein Semikolon stehen?
Arbeitsschritte
Lernerfolgskontrolle
Aufgabenbeschreibung
A 5 Kontrollstrukturen – Verzweigungen 19
A 5.2
Einseitige Verzweigung • if–then–Anweisung
Lernziele • Programme mit einseitigen Verzweigungen entwickeln
Mittels Programm soll der Kehrwert einer beliebigen Zahl ermittelt werden. Nach der Berechnung gibt das Programm die Zahl und den Kehrwert mit vier Nachkommastellen aus. Falls der Kehrwert nicht berechnet werden kann, erfolgt die Ausgabe Error Division durch 0!
1. Entwickeln Sie den Algorithmus und skizzieren Sie das STG.
2. Implementieren Sie das Programm und testen Sie es. Hinweis: Die Prozedur exit; beendet den aktuellen Block. Ist der aktuelle Block das
Hauptprogramm, so wird das Programm sofort beendet. Beispiel: if a < 0 then begin writeln (’Die Zahl......’); exit // wenn dieses exit ausgeführt wird, wird das Programm sofort beendet end; z := ...... // hier geht es normalerweise weiter
Speichern Sie das Programm, Dateiname: kehrwert.dpr
a) Skizzieren Sie das STG für die einseitige und die zweiseitige Auswahl. b) Gegeben seien folgende Deklarationen und Operationen: var a, b, c, d, e : boolean; begin a := true; b := false; c := a and b; d := a or b; e := not b; if e then a := false else a := not b; end;
Ermitteln Sie die Ergebnisse.
Arbeitsschritte
Lernerfolgskontrolle
Aufgabenbeschreibung
20 A 5 Kontrollstrukturen – Verzweigungen
A 5.3
Mehrseitige Verzweigung • Verschachtelte if–then–else–Anweisung
Lernziele • Programme mit verschachtelten if–then–else–Anweisungen entwickeln
• Selbstständiges Analysieren von Problemstellungen
Das Jahr 2000–Schaltjahr oder kein Schaltjahr? Schreiben Sie ein Programm, das bei Eingabe eines Jahres entscheidet, ob ein Jahr ein Schaltjahr ist oder nicht. Gehen Sie zunächst von der vereinfachten Variante aus, dass alle Jahre, die ganzzahlig durch 4 teilbar sind, Schaltjahre sind.
1. Entwickeln Sie den Algorithmus und skizzieren Sie das STG.
2. Implementieren Sie das Programm und testen Sie es.
Speichern Sie das Programm, Dateiname: schaltjahr1.dpr 3. Informieren Sie sich über die genaue Berechnung des Schaltjahres. 4. Entwickeln Sie den Algorithmus und das STG. 5. Tauschen Sie anschließend das STG mit Ihrem Nachbarn und implementieren Sie das
Programm nach dessen STG.
Speichern Sie das Programm, Dateiname: schaltjahr2.dpr
a) Zu welchem if gehört das else ? if ausdruck1 then if ausdruck2 then anweisung1 else anweisung2
b) Nennen Sie alle Vergleichsoperatoren.
P1 Für die Implementierung des Programms schaltjahr2 soll nur noch eine if–then–else–
Anweisung verwendet werden. Die einzelnen Bedingungen müssen daher mit den Operatoren and, or, not entsprechend verknüpft werden. Implementieren Sie das
Programm und speichern Sie es unter dem Namen schaltjahr3.dpr.
Arbeitsschritte
Lernerfolgskontrolle
Erweiterung und Vertiefung
Aufgabenbeschreibung