Delphi Programmieren lernen für Einsteiger - Weber ... · Delphi Programmieren lernen für...

21
Delphi Programmieren lernen für Einsteiger von Dietmar 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

Transcript of Delphi Programmieren lernen für Einsteiger - Weber ... · Delphi Programmieren lernen für...

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: [email protected] [email protected] 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