Struktogramme

Aus CppWiki

Wechseln zu: Navigation, Suche

Ein Struktogramm ist eine Darstellung eines Programmes in allgemeiner Form, sodass jeder Programmierer die Struktur des Programmes verstehen kann. Dabei ist es wichtig, dass Befehle allgemeingültig in ein Struktogramm geschrieben werden.

Dies kann man gut an Beispielen darstellen.

Inhaltsverzeichnis

Symbole

Sequenz

Eine normale Anweisung in einer Programmiersprache.

BwsStruktogrammBefehl.png
void main(){
  cout << "einfacher Befehl";
}

Verzweigungen

Verzweigungen beschreiben, welcher Programmabschnitt, nach der Prüfung einer Bedingung, durchgeführt wird.

BwsStruktogrammVerzweigung.png
void main(){
 if(variable < 3){
   cout << "Variable ist kleiner als 3";
 }else{
   cout << "Variable ist größer/gleich 3";
 }
}

Fallunterscheidung

Eine Fallunterscheidung beschreibt eine Bedingung mit mehreren Optionen.

BwsStruktogrammSwitch.png
void main(){
 switch(tagNr){
   case 6: 
     cout << "Samstag"; 
     break;
   case 7: 
     cout << "Sonntag"; 
     break;
   default: 
     cout << "Arbeitstag (Mo - Fr)";
 }
}

Zählschleife

Eine Zählschleife wird nur dann eingesetzt, wenn die Anzahl der Durchläufe bekannt ist. Da die Durchläufe durch einen Zähler festgehalten werden heißt diese Schleife "Zählschleife".

BwsStruktogrammFor.png
void main(){
 for(int i=0; i<5; i++){
     cout << "Dies ist die "<< i << "-te Wiederholung";
 }
}

Kopfgesteuerte Schleife

Eine kopfgesteuerte Schleife wird nur dann eingesetzt, wenn die Bedingung erfüllt wird. Wird die Bedingung nicht erfüllt, so wird die Wiederholungsschleife (While-Schleife) gar nicht durchgeführt.

BwsStruktogrammWhilekopfg.png
void main(){
  while(i<5){
    /* Hier könen weitere Funktionen untereinander folgen.
       Siehe dazu das gesamte Beispiel. foo
       z.B.: cout << "Ausgabe solange i kleiner 5 ist"; 
    */
  }
}


Fußgesteuerte Schleife

Eine fußgesteuerte Schleife wird mind. einmal durchgeführt. Wird die Bedingung am Ende nicht mehr erfüllt, so wird die Wiederholungsschleife nicht nochmal gestartet. Wichtig dabei ist das Semikolon am Ende nach "while();".

BwsStruktogrammWhilefussg.png
void main(){
 do{
     cout << "i ist immer noch kleiner 5";
 }while(i<5);
}

Funktionsaufruf

Wenn man in einem Programm eine Funktion oder eine Methode aufruft, dann wird dieser Befehl im Struktogramm mit 2 senkrechten Strichen gekennzeichnet. Hier ein Bsp:

BwsStruktogrammFunktionsaufruf.png.png
void main(){
 int a,b,summe;
 summe = funktionsaufruf(a,b);
 cout << "Ergebnis" << summe;
 }

Aufgerufene Funktion

In der Funktion selber ändert sich soweit erstmal nichts, außer es werden Parameter mitgegeben. Dann schreibt man neben dem Namen der Funktion, welche Parameter importiert werden sollen.

BwsStruktogrammAufgerufen.png
int funktionsaufruf( int a, int b){
 int erg = a + b;
 return erg;
 }

Vergleich: Code / Struktogramm

1. Beispiel:

BwsStruktogrammBeispiel.png
void main(){

  int anf,ende,schritt,zahl;
  cin >> anf;
  cin >> ende;
  cin >> schritt;    
  zahl = anf;

  while(zahl<=ende){
    cout << zahl << endl;
    zahl += schritt;
    schritt++;
  }
    
  cout << "bye";
}

2. Beispiel:

BwsStruktogrammBeispiel2.png
void main() {
  int i=0;
  int ende=2;
  int sl=0;
  int starten;
  int beenden;
  cout << "Soll die Schleife gestartet werden? 1: Ja || 2: Nein " << endl;
  cin  >> starten;
  
  if(starten==1){
    
    while(i<ende){  
      do {
        sl++;
        sleep(500);
        cout << sl << ", ";
      } while(sl!=4); 
      i++;
      sl=0;
    }
    
    cout << "Das Programm wird in 2 Sekunden beendet...";
    sleep(1000);
    cout << " ...";
    sleep(1000);   
    
  } else {
        
    cout << endl << "Programm in 1, 2 oder 3 Sekunden beenden?";
    cin  >> beenden;
    switch(beenden){
      case 1: 
        sleep(1000);  
        break;
      case 2: 
        sleep(2000);  
        break;
      case 3: 
        sleep(3000);  
        break;
      default: 
        sleep(1000);  
        break;
    }
  }
}

Übungen

Hier gehts zu den Übungen.

Persönliche Werkzeuge