BKTM - Programmieren leicht gemacht.

Ähnliche Dokumente
BKTM - Programmieren leicht gemacht.

Programmentwurf Prof. Metzler

99 - Struktogramme - 2. Sequenz I

Nassi-Shneiderman-Diagramm - Wikipedia

Labor Software-Entwicklung 1

Konzepte der Informatik

C++ Teil Schleifen. Man kann bestimme Anweisungen in einem Programm mehrfach ausführen lassen. Dazu gibt es in C++ verschiedene Schleifen.

In Abhängigkeit von der Erfüllung einer Bedingung (1 = wahr, 0 = falsch) wird eine (Verbund-)Anweisung ausgeführt.

Einführung in die Programmierung Wintersemester 2011/12

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

Labor Industrielle Netzwerke. Versuch 2: Tastaturentprellung

Einführung in die Programmierung

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Flussdiagramm / Programmablaufplan (PAP)

5. Elementare Befehle und Struktogramme

Arbeitsblätter für Algorithmierung und Strukturierung

Arbeitsblätter für Algorithmierung und Strukturierung C #

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 25

2.5 Programmstrukturen Entscheidung / Alternative

C++ - Einführung in die Programmiersprache Schleifen

Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.

Objektorientierte Programmierung

Javakurs für Anfänger

Einstieg in die Informatik mit Java

Anweisungen und Kontrollstrukturen

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Nachklausur: Grundlagen der Informatik I, am 02. April 2008 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Java Anweisungen und Ablaufsteuerung

2 Teil 2: Nassi-Schneiderman

Dr. Monika Meiler. Inhalt

Name Klasse Datum. Kontrollstrukturen steuern die Ausführung von Anweisungen

Kontrollstrukturen -- Schleifen und Wiederholungen

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Kontrollstrukturen und Logik

(Aufgaben zu Wertzuweisungen siehe Vorlesungsbeilage S. 49)

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Java Ablaufsteuerung (Beispiele)

Einstieg in die Informatik mit Java

if ( Logischer Operator ) { } else { Anweisungen false

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Einstieg in die Informatik mit Java

6. Iteration (Schleifenanweisungen)

5. Strukturierte Programmierung

Grundlegende Programmstrukturen sind Sequenzen, Schleifen und Entscheidungen.

4.2 Gleitkommazahlen. Der Speicherbedarf (in Bits) ist üblicherweise. In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen

Wiederholung, Abbruch von Schleifen, switch-anweisung Datentypen, char, formatierte Ausgabe

Programmentwurf mittels strukturierter Programmierung. Programmentwurf. Nassi-Shneiderman-Diagramm [DIN ]

6. Iteration (Schleifenanweisungen)

2. Programmierung in C

Webbasierte Programmierung

C- Kurs 04 Anweisungen

Kontrollstrukturen (1)

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

Programmieren in C/C++ und MATLAB

Einstieg in die Informatik mit Java

Grundlagen der Informatik 5. Kontrollstrukturen II

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C

Javakurs für Anfänger

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

Grundlagen der Programmierung

Grundlagen der Informatik 4. Kontrollstrukturen I

2 Programmieren in Java I noch ohne Nachbearbeitung

Kontrollstrukturen Blöcke / Schleifen / Bedingungen

Grundlagen der Programmierung

4. Ablaufsteuerung (Kontrollstrukturen) 4.1 Anweisungen 4.2 Selektion (bedingte Anweisung) 4.3 Iteration 4.4 Flussdiagramm (Programmablaufplan)

Schleifen in C/C++/Java

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29

Schleifenanweisungen

Grundlagen der Programmierung

3. Anweisungen und Kontrollstrukturen

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin

Grundlagen der Programmierung

EINI WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

einseitige Selektion zweiseitige Selektion

Javakurs für Anfänger

Annehmende Schleife do while

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

Transkript:

BKTM Programmieren leicht gemacht. + Struktogramm Das Struktogramme ist eine Entwurfsmethode für die strukturierte Programmierung. Es ist nach der DIN 66261 genormt. Es ist 1972/73 von Dr. Isaac Nassi und Dr. Ben Shneiderman entwickelt worden und ist auch als NassiShneiderman Diagramm bekannt. Mit dieser Methode lassen sich Gesamtprobleme (der gewünschte Algorithmus) in kleiner Teilprobleme unterteilen, bis schließlich nur noch Grundelemente (Einzelanweisungen, Alternativen, Schleifen,...) zur Lösung des Problems übrig bleiben. Diese Elemente können durch einzelne Sinnbilder im NassiShneidermanDiagramm dargestellt werden. Damit ist jeder Algorithmus ohne unbedingte Sprunganweisung (Goto) darstellbar. mospagebreak title= * linearer Ablauf Linearer Ablauf (Sequenz) Jede Anweisung wird in einen eigenen rechteckigen Strukturblock geschrieben. Die Strukturblöcke werden der Reihenfolge von von oben nach unten abgearbeitet. Leere Strukturblöcke sind in linearen Abläufen nicht erlaubt (nur in Verzweigungen). mospagebreak title= * Verzweigungen Verzweigung (Alternative) Einfache Auswahl (bedingte Verarbeitung) Nur wenn die formulierte Bedingung wahr ist, wird der Anweisungsblock 1 durchlaufen. Ein Anweisungsblock kann aus einer Anweisung oder einer Sequenz bestehen. http://www.bktmoers.de/joomla Powered by Joomla! Generated: 28 January, 2017, 04:38

BKTM Programmieren leicht gemacht. Ist die Bedingung nicht wahr (falsch), wird der Durchlauf ohne Abarbeitung des Anweisungsblock fortgeführt (Austritt unten). Zweifache Auswahl (Selektion alternative Verarbeitung) Wenn die formulierte Bedingung wahr ist, wird der Anweisungsblock 1 ausgeführt. Ist die Bedingung nicht wahr (falsch), wird der Anweisungsblock 2 ausgeführt. Ein Anweisungsblock kann aus einer Anweisung oder einer Sequenz bestehen. Austritt unterhalb der Abarbeitung des jeweiligen Anweisungsblocks. Mehrfachauswahl Wird auch "verschachtelte" Auswahl genannt, da eine weitere Bedingung folgt. Eine Verschachtelung ist ebenso im NeinFall (noch) möglich. http://www.bktmoers.de/joomla Powered by Joomla! Generated: 28 January, 2017, 04:38

BKTM Programmieren leicht gemacht. Fallauswahl Ist besonders bei mehr als drei unterschiedliche Bedingungen geeignet. Der Wert von "Variable" kann bedingt auf Gleichheit wie auch auf Bereiche (größer/kleiner bei Zahlen) geprüft werden. Der entsprechend zutreffende "Fall" mit dem zugehörigen Anweisungsblock wird durchlaufen. Eine Fallauswahl kann manchmal in eine Mehrfachauswahl umgewandelt werden, wenn die Programmiersprache Fallauswahlen nicht kennt. mospagebreak title= * Schleifen Schleifen (Wiederholung, Iteration) Zählergesteuerte Schleife Ist eine Schleife, bei der die Anzahl der Durchläufe bekannt ist. Als Bedingung muss eine Zählvariable angegeben sein http://www.bktmoers.de/joomla Powered by Joomla! Generated: 28 January, 2017, 04:38

BKTM Programmieren leicht gemacht. der Startwert muss initialisiert werden ein Endwertmuss angegeben sein eine Schrittweite angegeben werden. Nach jedem Durchlauf der gesamten Schleife (Anweisungsblock 1) wird die Zählvariable um die Schrittweite erhöht (bzw. vermindert) und mit dem Endwert verglichen. Ist der Endwert überschritten, wird die Schleife verlassen. Kopfgesteuerte (vorprüfende abweisende) Schleife Schleife mit vorausgehender Bedingungsprüfung. Die gesamte Schleife (Anweisungsblock 1) wird nur durchlaufen, wenn (und solange) die formulierte Bedingung wahr ist. Diese Symbolik wird auch für die Zählschleife (Anzahl der Durchläufe bekannt) benutzt. http://www.bktmoers.de/joomla Powered by Joomla! Generated: 28 January, 2017, 04:38

BKTM Programmieren leicht gemacht. Fußgesteuerte (nachprüfende nicht abweisende ) Schleife Wiederholungsstruktur mit nachfolgender Bedingungsprüfung. Die gesamte Schleife (Anweisungsblock 1) wird mindestens einmal durchlaufen, auch wenn die Bedingung von Anfang an nicht zutreffend (falsch) war. Danach wird sie solange wiederholt wie die Bedingung wahr ist. EndlosSchleife Kann allenfalls durch einen Aussprung (break) verlassen werden. Aussprung (break) Der Aussprung (break) stellt die Beendigung eines Programmteils dar und sollte nicht als das verstanden werden, was Nassi und Shneiderman mit den Struktogrammen eigentlich vermeiden wollten: Die Sprunganweisung (siehe oben: unbedingter Sprung Goto). http://www.bktmoers.de/joomla Powered by Joomla! Generated: 28 January, 2017, 04:38

BKTM Programmieren leicht gemacht. Aufruf Symbolik zum Aufruf eines Unterprogramms bzw. einer Prozedur oder Funktion. Nach Abarbeitung des Unterprogramms (Prozedur, Funktion) wird genau zu der aufrufenden Stelle zurückgesprungen und der nächstfolgende Strukturblock durchlaufen. mospagebreak title= * Arbeitsregeln Arbeitsregeln Allgemeingültigkeit Struktogramme sollten keine programmiersprachenspezifische Befehle enthalten. Sie sollen programmiersprachenunabhängig formuliert werden, so dass die dargestellte Logik einfach zu verstehen ist und als Programmiervorschrift in jede beliebige Programmiersprache umgesetzt werden kann. Deklaration Einfaches Struktogramm ist ursprünglich für prozedurale Programmiersprachen entwickelt worden und bildete im Struktogrammen nur die Prozedur und keine Deklarationsbereiche von Variablen und Konstanten ab. Erweiterte Struktogramme Dadurch ist jedoch nicht sofort deutlich, welcher Datentyp einer Variablen zugeordnet werden muss. Die Deklaration von Variablen und Konstanten ist im ersten Anweisungsblock vorzunehmen Exklusivität Jede Anweisung erhält einen eigenen Strukturblock (Sinnbilder nach DIN 66261). http://www.bktmoers.de/joomla Powered by Joomla! Generated: 28 January, 2017, 04:38

BKTM Programmieren leicht gemacht. Selbst mehrere Anweisungen gleicher oder ähnlicher Art dürfen nicht in einem Strukturblock zusammengefasst werden. Jede Anweisung muss mindestens aus einer Zuweisung bestehen. Das Ziel einer Anweisung steht immer links vom Zuweisungszeichen. Rechts davon steht die Quelle. Über jedes Struktogramm gehört ein Name, um die Identifikation durch Ereignis oder (Unter)Programmaufrufe gewährleisten zu können. mospagebreak title= * Beispiele 1 Beispieldiagramme 1. Einfaches Struktogramm Das folgende Beispiel zeigt ein Diagramm für die Berechnung des größten gemeinsamen Teilers mit dem euklidischen Algorithmus. NassiShneidermanDiagramm #include <iostream.h> void main () int a,b; cout << "a= "; cin >> a; cout << "b= "; cin >> b; while (a>0 && b>0) http://www.bktmoers.de/joomla Powered by Joomla! Generated: 28 January, 2017, 04:38

BKTM Programmieren leicht gemacht. if (a>b) a=ab; else b=ba; ; if (b == 0) cout << "Größter gemeinsamer Teiler" << a << endl ; else cout << "Größter gemeinsamer Teiler" << b << endl; CQuellcode Ausgabe für a=100 und b=224: a= 100 b= 224 Größter gemeinsamer Teiler: 4 mospagebreak title= * Beispiele 2 2. Erweitertes Struktogramm http://www.bktmoers.de/joomla Powered by Joomla! Generated: 28 January, 2017, 04:38

BKTM Programmieren leicht gemacht. Noteneingabe: Ein Programm soll für eine als Zahl eingegebene Zensur (von 1 bis 6) die Note in schriftlicher Form (sehr gut, gut, befriedigend,... ungenügend) auf dem Bildschirm ausgeben. Sollte eine andere Ziffer eingeben werden, soll das Programm den Begriff ungültig auf dem Bildschirm ausgeben. Das Programm benötigt dafür zwei Variablen intzensur (Datentyp: int) und strzensur (Datentyp char []). NassiShneidermanDiagramm #include <iostream.h> #include <string.h> void main () int intzensur; char strzensur[15]; cout << "Bitte geben Sie Ihre Note als Zahl ein: "; cin >> intzensur; switch (intzensur) case 1: strcpy( strzensur, "sehr gut"); break; case 2: strcpy( strzensur, "gut"); break; case 3: strcpy( strzensur, "befriedigend"); break; case 4: strcpy( strzensur, "ausreichend"); break; case 5: strcpy( strzensur, "mangelhaft"); break; case 6: strcpy( strzensur, "ungenügend"); break; default: strcpy( strzensur, "ungültig"); cout << "Ihre eingegebene Zensur in Worten: " << strzensur << endl; Ausgabe für die Eingabe 1 Bitte geben Sie Ihre Note als Zahl ein: 1 http://www.bktmoers.de/joomla Powered by Joomla! Generated: 28 January, 2017, 04:38

BKTM Programmieren leicht gemacht. Ihre eingegebene Zensur in Worten: sehr gut mospagebreak title= * Beispiele 3 3. Beispiel In Amerika wird die Temperatur nicht in Grad Celsius, sondern in Grad Fahrenheit gemessen. Es gilt: 0 C = 32 F; 100 C = 212 F Entwickeln Sie ein Programm, das nach Eingabe des Temperaturwertes in Grad Celsius den zugehörigen Wert in Grad Fahrenheit auf dem Bildschirm sauber geordnet und lesbar ausgibt. #include <stdio.h> #include <windows.h> void main (void) double cels, fahr; do system("cls"); printf("bitte geben Sie eine Temperatur in Grad Celsius ein: "); scanf("%lf", &cels); fahr = 32 + 1.8 * cels; printf("dies entspricht %5.2lf Fahrenheit\n", fahr); system("pause"); while((int)cels!= 0); http://www.bktmoers.de/joomla Powered by Joomla! Generated: 28 January, 2017, 04:38

BKTM Programmieren leicht gemacht. Bildschirmausgabe für die Eingabe 100 Bitte geben Sie eine Temperatur in Grad Celsius ein:100 Dies entspricht 212 Fahrenheit. http://www.bktmoers.de/joomla Powered by Joomla! Generated: 28 January, 2017, 04:38