1. GRUNDLAGEN

Werbung
1. GRUNDLAGEN
1.1. Algorithmen
Algorithmus:
(Rechen)vorschrift, die ein bestimmtes Problem in elementare Einzelschritte zerlegt
und die Reihenfolge festlegt, in der diese Einzelschritte ausgeführt werden müssen.
Die Anzahl der Einzelschritte bis zur Lösung des Problems muß endlich sein.
Beispiel 1.1:
Suche die größte Zahl in einer Reihe von Zahlen.
1)
2)
3)
4)
5)
lies die erste Zahl z
lies die nächste Zahl a
wenn diese Zahl a größer als z ist, dann speichere in z den Wert von a
wenn noch Zahlen vorhanden, dann gehe nach Schritt 2
gib z aus
Bemerkung: Obiger Algorithmus setzt voraus, daß wenigstens zwei Zahlen in der Reihe
vorkommen.
Beispiel 1.2:
Größter gemeinsamer Teiler zweier Zahlen (EuklidischerAlgorithmus)
1)
2)
3)
Lies zwei Zahlen a und b
Dividiere a durch b ganzzahlig und bestimme den Rest
Wiederhole solange der Rest ungleich Null
a) Ersetze a durch b und b durch den Rest
b) Dividiere a durch b ganzzahlig und bestimme den Rest
4)
Gib b aus
Konkretes Beispiel: ggT(72,270) = 18
270 : 72 = 3
54 R
72 : 54 = 1
18 R
54 : 18 = 3
0 R
Übungen:
1.1.
Formuliere verbal einen Algorithmus, mit dem Sekunden in Stunden, Minuten und
Sekunden umgerechnet werden können.
1.2.
Formuliere verbal einen Algorithmus, mit der die Summe jeder dritten ganzen Zahl,
angefangen mit i=2 berechnet werden kann, und zwar für alle Werte von i kleiner als
100 (2+5+8+...)
Manuel Egger
C-Skriptum
HTL-Villach Abteilung EDV und Organisation
1.3.
Formuliere verbal einen Algorithmus, mit dem 3 Zahlen eingelesen werden können
und der prüft, ob die Zahlen aufsteigend sortiert sind (es darf angenommen werden,
daß die drei Zahlen verschieden sind).
1.4.
Formuliere verbal einen Algorithmus, der prüft wie oft ein bestimmter Buchstabe in
einem gegebenen Wort vorkommt.
1.5.
Formuliere verbal einen Algorithmus, der prüft, ob eine bestimmte Zahl eine Primzahl
ist.
1.2. Struktogramme
Struktogramme dienen zur graphischen Darstellung von Algorithmen.
Vorteile: übersichtlich, zwingen zu strukturierten Algorithmen
Das Struktogramm ist vor der Erstellung eines Programms anzufertigen, da nicht
gewährleistet ist, daß zu einem fertigen unstrukturierten Programm nachträglich überhaupt
ein Struktogramm existiert. Die Struktogramme wurden von NASSI-SHNIDERMAN erfunden und bestehen aus einzelnen Strukturblöcken, die das Top-Down Prinzip widerspiegeln.
Jeder Strukturblock hat einen Eingang (Oberkante) und einen Ausgang (Unterkante). Der
Steuerfluß läuft immer von oben nach unten.
Wir unterscheiden:
 Elementarblock (einzelne Anweisung)
Beschreibung der Aktion
 Modul- oder Prozedurblock
Ein Modulblock beschreibt einen öfters benötigten Algorithmus oder einen Teil eines
Algorithmus.
Modulname
Modulbeschreibung
Datenbeschreibung
Strukturblock
...
...
Strukturblock
Manuel Egger
C-Skriptum
HTL-Villach Abteilung EDV und Organisation
 Auswahlblock für ja/nein Entscheidungen
Bedingung
ja
nein
Strukturblock
Strukturblock
 Selektionsblock (Mehrfachauswahl)
Fallabfrage
Fall 1
SB
Fall 2
SB
Fall3
SB
Fall4
sonst
SB
SB
SB ... Strukturblock
Der "sonst"-Teil kann auch entfallen.
 Iterationsblock (Schleifenblock) mit Eingangsbedingung
führe aus solange Bedingung gilt
Strukturblock
Zunächst wird die Eingangsbedingung ausgewertet. Ist sie erfüllt, so wird der
Strukturblock abgearbeitet, nachher wieder die Bedingung geprüft. Unter Umständen
wird der Strukturblock überhaupt nicht ausgeführt.
Manuel Egger
C-Skriptum
HTL-Villach Abteilung EDV und Organisation
 Iterationsblock (Schleifenblock) mit Ausgangsbedingung
Strukturblock
wiederhole solange Bedingung gilt
Zunächst wird der Strukturblock abgearbeitet, dann die Bedingung geprüft. Ist sie
gültig, wird der Strukturblock erneut ausgeführt usw.. Der Strukturblock wird also sicher einmal ausgeführt.
 Iterationsblock (Schleifenblock) mit Abbruchsbedingung
Strukturblock 1
Abbruchsbedingung
Strukturblock 2
Ist die Abbruchsbedingung erfüllt, wird der Iterationsblock verlassen.
Eingangsbedingung
Strukturblock
Strukturblock
Abbruchsbedingung
Abbruchsbedingung
Strukturblock
Strukturblock
Manuel Egger
C-Skriptum
HTL-Villach Abteilung EDV und Organisation
Ausgangsbedingung
Regeln für Struktogramme:
1.
2.
3.
Ein Struktogramm ist ein Zweipol (eine Eingangs- und eine Ausgangskante)
Jeder einzelne Strukturblock ist ein Zweipol
Ein neuer Strukturblock muß an einen bereits bestehenden angefügt werden, indem
die gesamte Ausgangskante des alten Blocks mit der gesamten Eingangskante des
neuen Blocks zusammengelegt wird. (Strukturblöcke können einander nicht überlappen, sondern sind abgeschlossene Einheiten).
Beispiel 1.3:
Struktogramm zum Euklidischen Algorithmus
Ggt zweier Zahlen V1.0
Lese a und b
q = a/b
(ganzzahlig)
r = a - b*q
solange (r>0)
a = b
b = r
q = a/b (ganzzahlig)
r = a - b*q
Schreibe
"GGT = " b
Ende
Übungen:
Zu folgenden Problemstellungen sind Struktogramme zu entwikeln:
1.6.
a)
b)
Von einem Kreis wird der Radius eingelesen. Fläche und Umfang sind zu berechnen.
Entwickle ein Struktogramm mit linearem Ablauf für eine einmalige Berechnung.
Während der einmaligen Berechnung soll abgefragt werden, ob der eingegebenen
Radius positiv war.
Manuel Egger
C-Skriptum
HTL-Villach Abteilung EDV und Organisation
c)
Die Berechnung soll mehrmals hintereinander erfolgen; wird ein Radius kleiner oder
gleich Null eingegeben, so soll der Algorithmus abbrechen.
1.7. - 1.11. Entwickle Struktogramme zu den Übungen 1.1. - 1.5
Manuel Egger
C-Skriptum
HTL-Villach Abteilung EDV und Organisation
Herunterladen