5.2.20
03/29/20

Diff for IngInf_Struk1 between 3 and 4

+ Struktogrammbeispiele
** W. Tasin, M.Sc. **

Hier finden Sie die Verweise auf vorlesungsbegleitende Unterlagen und sonstige Hinweise zur Lehrveranstaltung **Algorithmen und Datenstrukturen**.
Sie können rechts oben am Datum erkennen, ob eine Aktualisierung der Seite stattfand.  
[[toc]]

----
**Hinweis zur Verwendung der hier veröffentlichten Unterlagen**
Die hier veröffentlichten Unterlagen sind in erster Linie als vorlesungsbegleitende Dienstleistung zu verstehen.
Der Inhalt der Skripten darf für nichtkommerzielle Zwecke (dies schließt auch die kostenlosen Weitergabe innerhalb **kommerzieller** Unternehmen ein) frei verwendet werden, sofern der Inhalt in **unveränderter Form** und **vollständig** verwendet wird.
Siehe auch Hinweise auf [http://www.netzmafia.de/skripten/index.html Netzmafia].
----
++ Allgemeines

Struktogramme dienen zur Darstellung eines Algorithmus' oder eines Programmablaufs.
Sie sollten am besten sprachunabhängig formuliert sein.
Alle Beispiele stellen **eine** Lösung von vielen dar. Man kann die Aufgabenstellung auch anders darstellen bzw. realisieren.


++ Beispiel 1

+++ Aufgabenstellung
Es sollen nacheinander die Buchstaben H, a, l, l, o ausgegeben werden.

+++ Struktogramm
[[image Beispiel1.png]]

+++ Realisierung in C
<geshi<code type="C">#include <stdio.h>

int main(void)
{
    putchar('H');
    putchar('a');
    putchar('l');
    putchar('l');
    putchar('o');

    return 0;
}

</geshi></code>

++ Beispiel 2

+++ Aufgabenstellung
Ein Programm realisiert werden, dass von 1 bis 10 zählt (pro Zeile eine Zahl). \
Anfangs soll eine entsprechende Meldung ausgegeben werden \
und bei 9 neben der Zahl ein zusätzlicher Warntext stehen.

+++ Struktogramm
[[image Beispiel2.png]]
[[image Beispiel2C.png]]

+++ Realisierung in C
<geshi<code type="C">#include <stdio.h>

int main(void)
{
    int i;
    printf("Zaehle hoch:\n");

    for(i=1; i<=10; i++)
    {
        printf("%d", i);
        if (i==9)
            printf(" -> WARNUNG: Gleich ist es vorbei!");
        putchar('\n');
    }

    return 0;
}

</geshi></code>

++ Beispiel 3

+++ Aufgabenstellung
Ein Programm realisiert werden, dass von 20 bis 0 zählt (pro Zeile eine Zahl). \
Es soll zu jeder Zahl ausgegeben werden, ob sie zweistellig oder einstellig ist.

+++ Struktogramm
[[image Beispiel3.png]]
[[image Beispiel3C.png]]

+++ Realisierung in C
<geshi<code type="C">#include <stdio.h>

int main(void)
{
    int i;
    printf("Zaehle runter:\n");

    i=20;
    while (i>=0)
    {
        printf("%3d", i);  /* rechtsbuendig auf die Breite 3 wurde nicht festgelegt */
                           /*   sieht aber besser aus. */
        if (i>=10)
            printf(" zweistellige Zahl");
        else
            printf(" einstellige Zahl");

        putchar('\n');
        i--;
    }

    return 0;
}

</geshi></code>

++ Beispiel 4

+++ Aufgabenstellung
Das Beispiel 3 soll erweitert werden.
Es soll zuerst die Zahl von der abwärts gezählt wird, durch den Benutzer eingegeben werden.
Nur wenn die Eingabe eine Zahl ist und diese zwischen 20 und 99 liegt, wird der Zählvorgang gestartet.

+++ Struktogramm
[[image Beispiel4.png]]
[[image Beispiel4C.png]]

+++ Realisierung in C
<geshi<code type="C">#include <stdio.h>

int main(void)
{
    int i;
    printf("Zaehle runter:\n");
    printf("Gib eine Zahl von 20 bis 99 ein: ");
    if (scanf("%d", &i)==1 && i>=20 && i<=99)
    {
        do
        {
            printf("%3d", i);
            if (i>=10)
                printf(" -> zweistellige Zahl.");
            else
                printf(" -> einstellige Zahl.");

            putchar('\n');
            i--;
        } while (i>=0);
    }

    return 0;
}



</geshi></code>

----
++ Links
((IngInf_Termine|Terminplan Ingenieurinformatik 1))
((IngInf_Praktikum|Praktikum Ingenieurinformatik 1))
((Wiki/Home|Zur Hauptseite))