Beispiel 8 aus den Vorlesungsbeispielen (2) Struktogrammentwurf schrittweise.

Slides:



Advertisements
Ähnliche Präsentationen
BBV-Bezirk Schwaben Anlage B zur Ausschreibung Saison 2013/2014 Anleitung zur Vereinsmeldung im TeamSL für die Saison 2013/2014 Schritt 1: Bitte TeamSL.
Advertisements

Forschungszentrum caesar
Objektorientierung mit VBA
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
Java: Grundlagen der Objektorientierung
Praktikum Mobile Roboter
Algorithmus. Ein Kochrezept, zum Beispiel: Kartoffelbrei.
Strukturen. In einer Struktur kann eine beliebige Anzahl von Komponenten (Daten) mit unterschiedlichen Datentypen (im Gegensatz zu Feldern) zusammengefaßt.
ARRAY oder FELD oder VEKTOR
Fehler-Management.
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
ARRAY oder FELD oder VEKTOR
Konstruktion von Suffix Bäumen
WS Algorithmentheorie 13 - Kürzeste (billigste) Wege Prof. Dr. Th. Ottmann.
Konstruktion von Suffix Bäumen
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten Suffix –Tree –Konstruktion Ukkonen Algorithmus.
Perl-Grundlagen Teile der Präsentation von A. Grupp,
Zusammenfassung Vorwoche
Programmierung 1 - Repetitorium
DVG Ablaufsteuerung
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Schleifen mit der Turtle
Wichtige Fachausdrücke in C
Gerade bei Fotobearbeitungen kann es leicht zum Verlust der Dateierweiterung (file extension) kommen. Nach stundenlanger Arbeit lässt sich eine Datei nicht.
Susanne Schärer Donnerstag, 6. Januar 2011
Delphi II - OOP IFB Fortbildung
Effiziente Algorithmen
Effiziente Algorithmen
Einführung in die Programmiersprache C 3.Tag Institut für Mathematische Optimierung - Technische Universität Braunschweig.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation
Einführung in die Programmiersprache C 4
Wiederholte Programmausführung
Dynamische Datentypen
Lastschriften Datenfelder Blatt 1 v.6 Änderungen übernehmen Datenfelder anzeigen 1 2 Fehlende Datenfelder einfügen 3 Die erforderlichen Datenfelder für.
Grundlagen von Objekt-Pascal Erstellt von J. Rudolf überarbeitet von H.Brehm.
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Grundkonzepte des Programmierens (mit ActionScript)
Variablenkonzept Klassisch, in Java Basistyp
HG13_ Herzgen, Jung & Lorkowski1 Java Programmierung BlueJ Workshop.
AINF-Lehrgang PROGRAMMIEREN Martina GREILER Wolfgang KATOLNIG
Die Größe eines verknüpften Bereiches dynamisch halten Herbers Excel-Server - der Workshop Angebote des Excel-Servers: Die Excel/VBA-Beispiele Die Excel/VBA-BeispieleDie.
PHP: Operatoren und Kontrollstrukturen
Variablen. var meineZahl:Number = 7; meineZahl 7 Name TypWert = Zuweisung von Variablen.
1 Tagesüberblick 2 Lösung Hausaufgabe/Fragen Datei- ein- und ausgabe Schleifen Vergleiche Wahrheit.
MS Office Access 2007 UM für INI. Sie haben viele Daten? Entscheiden Sie sich für Access. Access verarbeitet Daten, und zwar alle Arten von Daten: Kundenkontakte,
Excel Grundlagen.
Übung 2 - MdMT Methoden der Medizintechnik Übung zur Vorlesung Folge 2 – Basics Vom ersten Befehl zum Plot.
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Schleifen
Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.
A Workshop About this chapter General description Units Time Schedule
Sammlungsklassen Array.
HG13_ Herzgen, Jung & Lorkowski1 Java Programmierung BlueJ Workshop.
Felder (Arrays).
III c WINF 1 Mag. Edwin Schädler. Symbolleiste für den Schnellzugriff anpassen.
Funktionen. Aufgabe : Eingabe zweier Zahlen ---> Minimum bestimmen Dann nochmals Eingabe zweier Zahlen ---> Minimum bestimmen.
1 Prozesse im Studiengangsmanagement Kontext: Neues Abschlussziel erstellen Neues Studienfach erstellen.
1 Prozesse im Studiengangsmanagement Kontext: Neues Abschlussziel erstellen Neues Studienfach erstellen.
Wiederholte Programmausführung
Unterschiedliche Kontrollstrukturen
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Arrays in C Ein Array ist eine Variable, die aus einer Anzahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Felder in der Informatik
Schleifen Datenfelder (Arrays) Verzweigungen
 Präsentation transkript:

Beispiel 8 aus den Vorlesungsbeispielen (2) Struktogrammentwurf schrittweise

Laut Aufgabenstellung ist kein Rückgabewert gefordert, es muss also keine Funktion sein Laut Aufgabenstellung gibt es keine Argumente (leeres Klammernpaar) Deklarieren heißt, der Prozedur die Variablen bekanntzugeben, die verwendet werden sollen. In diesem Beispiel werden das vermutlich sein: –eine Variable für die Entgegennahme der einzugebenden Namen –eine Variable für das Datenfeld zur Erfassung der eingegebenen Namen –eine Variable als Schleifenzähler für die Eingabeschleife –eine Variable als Schleifenzähler für die Ausgabeschleife Deklarationen: lassen wir erstmal leer, ergibt sich im weiteren Entwurfsprozess Prozedur NamenErfassen ()

Initialisieren heißt, den betreffenden Variablen einen definierten Anfangswert zu geben Näheres wird sich im weiteren Entwurfsprozess ergeben Deklarationen: lassen wir erstmal leer Platz für Initialisierung Prozedur NamenErfassen ()

Die Anzahl der einzugebenden Namen und damit der Schleifendurchläufe ist unbekannt Die Eingabemöglichkeit (Inputbox) muss mindestens einmal erscheinen Deshalb verwenden wir als Eingabeschleife eine fußgesteuerte Bedingungsschleife Wir lassen ausreichend Platz für –Eingabe –Verzweigung zur Erkennung der beendenden Leereingabe –Erweiterung und Wertzuweisung Datenfeld Deklarationen: lassen wir erstmal leer Platz für Initialisierung Prozedur NamenErfassen ()

Die fußgesteuerte Bedingungsschleife soll solange laufen, bis die Eingabe eine Leereingabe ist (zwei aufeinanderfolgende Anführungszeichen) Wir haben damit unsere erste Variable, die der Erfassung der eingegebenen Namen pro Schleifendurchlauf dienen soll Deklarationen: eingabe - zur Erfassung der Namen Bis eingabe = "" Platz für Initialisierung Prozedur NamenErfassen ()

Die eingegebenen Namen werden in VBA mittels einer Inputbox erfasst und der Variablen eingabe zugewiesen In VBA: InputBox ("Bitte Namen eingeben") Deklarationen: eingabe - zur Erfassung der Namen Bis eingabe = "" eingabe = Wert der Input-Box Platz für Initialisierung Prozedur NamenErfassen ()

Um festzustellen, ob die Eingabe abgebrochen werden soll, benötigen wir eine Verzweigung WENN eingabe = "" DANN Meldung anzeigen und Prozedur verlassen Deklarationen: eingabe - zur Erfassung der Namen Bis eingabe = "" eingabe = Wert der Input-Box Platz für Initialisierung Prozedur NamenErfassen ()

WENN eingabe = "" DANN Meldung anzeigen und Prozedur verlassen Deklarationen: eingabe - zur Erfassung der Namen Bis eingabe = "" eingabe = Wert der Input-Box Platz für Initialisierung eingabe = "" ? WahrFalsch Prozedur NamenErfassen ()

WENN eingabe = "" DANN Meldung anzeigen und Prozedur verlassen Deklarationen: eingabe - zur Erfassung der Namen Bis eingabe = "" eingabe = Wert der Input-Box Platz für Initialisierung eingabe = "" ? WahrFalsch Meldung "Eingabe wird beendet" Prozedur NamenErfassen ()

WENN eingabe = "" DANN Meldung anzeigen und Prozedur verlassen Deklarationen: eingabe - zur Erfassung der Namen Bis eingabe = "" eingabe = Wert der Input-Box Platz für Initialisierung eingabe = "" ? WahrFalsch Meldung "Eingabe wird beendet" Exit Do Prozedur NamenErfassen ()

Bei jedem Schleifendurchlauf wird eine neue Zeile an das Datefeld a() angehängt In VBA (einzeilig): ReDim Preserve a(1 to i) Preserve ist erforderlich, um bisherige Inhalte des Datenfeldes nicht zu löschen Wir brauchen also zwei weitere Variablen: –für das Datenfeld zum Speichern der eingegebenen Namen –einen Schleifenzähler, um die Namen an die korrekte Position/Zeile zu schreiben Exit Do ist erforderlich, damit die Folgeschritte nicht ausgeführt werden Deklarationen: eingabe - zur Erfassung der Namen a () - Datenfeld der erfassten Namen i - Schleifenzähler für Erfassung Bis eingabe = "" eingabe = Wert der Input-Box Platz für Initialisierung eingabe = "" ? WahrFalsch Meldung "Eingabe wird beendet" Datenfeld erweitern (ReDim Preserve) Exit Do Prozedur NamenErfassen ()

i wir vor der Schleife mit 1 initialisiert, um im Datenfeld mit Zeile 1 zu beginnen Deklarationen: eingabe - zur Erfassung der Namen a () - Datenfeld der erfassten Namen i - Schleifenzähler für Erfassung Bis eingabe = "" eingabe = Wert der Input-Box i = 1 eingabe = "" ? WahrFalsch Meldung "Eingabe wird beendet" Datenfeld erweitern (ReDim Preserve) Exit Do Prozedur NamenErfassen ()

Inhalt der Variablen eingabe an Position/Zeile i des Datenfeldes schreiben Deklarationen: eingabe - zur Erfassung der Namen a () - Datenfeld der erfassten Namen i - Schleifenzähler für Erfassung Bis eingabe = "" eingabe = Wert der Input-Box eingabe in Datenfeld übernehmen a(i) = eingabe i = 1 eingabe = "" ? WahrFalsch Meldung "Eingabe wird beendet" Datenfeld erweitern (ReDim Preserve) Exit Do Prozedur NamenErfassen ()

Ganz wichtig: Inhalt des Schleifenzählers i um 1 erhöhen, um den nächsten Schleifendurchlauf vorzubereiten Nach einer Leereingabe in die Inputbox ( eingabe="" ) wird die Eingabeschleife verlassen. Die eingegebenen Namen befinden sich in der Eingabereihenfolge im Datenfeld a() und können nach der Eingabeschleife weiterverwendet werden (s. Folgeschritte). Deklarationen: eingabe - zur Erfassung der Namen a () - Datenfeld der erfassten Namen i - Schleifenzähler für Erfassung Bis eingabe = "" eingabe = Wert der Input-Box eingabe in Datenfeld übernehmen a(i) = eingabe i = 1 eingabe = "" ? WahrFalsch Meldung "Eingabe wird beendet" i = i + 1 Datenfeld erweitern (ReDim Preserve) Exit Do Prozedur NamenErfassen ()

Die Ausgabe der eingegebenen Namen erfolgt mittels einer Schleife Die Anzahl der eingegebenen Namen und damit der Schleifendurchläufe ist bekannt bzw. kann durch Anwendung der VBA- Funktion UBound() leicht festgestellt werden Daher verwenden wir zur Ausgabe eine Zählschleife Deklarationen: eingabe - zur Erfassung der Namen a () - Datenfeld der erfassten Namen i - Schleifenzähler für Erfassung Bis eingabe = "" eingabe = Wert der Input-Box eingabe in Datenfeld übernehmen a(i) = eingabe i = 1 eingabe = "" ? WahrFalsch Meldung "Eingabe wird beendet" i = i + 1 Datenfeld erweitern (ReDim Preserve) Exit Do Prozedur NamenErfassen ()

Die Zählschleife läuft von 1 bis zur Obergrenze des Datenfeldes a() Damit habe wir mit j eine weitere Variable zum Deklarieren j muss nicht explizit initialisiert werden. Das erledigt der Ausdruck j=1 in der Laufbedingung der Zählschleife Deklarationen: eingabe - zur Erfassung der Namen a () - Datenfeld der erfassten Namen i - Schleifenzähler für Erfassung j - Schleifenzähler für Ausgabe Bis eingabe = "" eingabe = Wert der Input-Box eingabe in Datenfeld übernehmen a(i) = eingabe i = 1 eingabe = "" ? WahrFalsch Meldung "Eingabe wird beendet" i = i + 1 Datenfeld erweitern (ReDim Preserve) Exit Do Für j = 1 bis Obergrenze von a() Prozedur NamenErfassen ()

In VBA: Ausgabe der einzelnen Datenfeldelemente = eingegebene Namen in das Direktfenster mit Debug.Print FERTIG Deklarationen: eingabe - zur Erfassung der Namen a () - Datenfeld der erfassten Namen i - Schleifenzähler für Erfassung j - Schleifenzähler für Ausgabe Bis eingabe = "" eingabe = Wert der Input-Box eingabe in Datenfeld übernehmen a(i) = eingabe i = 1 eingabe = "" ? WahrFalsch Meldung "Eingabe wird beendet" i = i + 1 Datenfeld erweitern (ReDim Preserve) Exit Do Für j = 1 bis Obergrenze von a() Ausgabe der Datenfeld-Elemente a (j) Prozedur NamenErfassen ()