Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Nassi-Shneiderman-Diagramm erstellen » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 5 Beiträge
spazzpp2

1. Kann es sein, dass dein C-Code in den Zeilen 13 und 18 zwar das Quadrat berechnet, aber das Ergebnis nie ausgibt?

2. Schleifen in C sehen immer so aus:

for(<anfangsbedingung>;<bedingung>;<inkrement>) { <zu wiederholender code> }

Oder so:

while(<bedingung>) { <zu wiederholender code> }

Oder so:

do { <zu wiederholender code> } while (<bedingung>);

Auch die Fallunterscheidungen müssen die Befehlsgruppen für jeden Fall in Code-Blöcke Gruppieren:

if (<bedingung>) { <code für zutreffenden fall> } else { <code für sonstigen fall> }

Das heißt, die geschweifen Klammern um den zu wiederholenden Code müssen an der richtigen Stelle sein. Bitte schau in deinem Code, ob das der Fall ist. Es hilft, die Zeilen dazwischen um einige Leerzeichen einzurücken.

3. Ich halte es prinzipiell für eine gute Idee, etwas das Dir neu ist mal in einer Sprache aufzuschreiben, die du schon kennst. Wenn du die allerdings nicht beherrschst, wird es schwierig. Ich schlage vor, das, was dargestellt wird zuerst in Pseudo-Code oder menschliche Sprache zu notieren und dann in C um zu kontrollieren, ob das stimmt.

Ich hoffe, das hilft Dir erstmal weiter! Daumen hoch

___
edit: if-Syntax hinzugefügt
Sowasvonphi

Hallo,

hat vielleicht jemand eine Idee Gott ?
Komme da erwähnten Stelle nicht weiter. Also das Struktogramm in Code umzuschreiben.

Grüße

Sophie
Sowasvonphi

Hallo Karlito,

Zitat:

- Die Schleifenbedingung schlägt fehl und somit die Schleife abgebrochen

Ahso war das gemeint, solange die Zahl ungleich Null ist wird die Schleife nicht verlassen. Ich habe mir nämlich komischerweise genau das Gegenteil gedacht.

Ich wollte jetzt zur Übung aus dem Struktogramm den Code schreiben, aber Probleme bereiten mir die Schleifen. (Bin halt noch am Anfang meiner C.Abenteuers)

Wie lese ich am besten das Struktogramm und wie fange ich dann am besten den Code daraus zu generieren. Ich habe jetzt versucht erstmal die äußere Schleife zu berücksichtigen, weil darunter ja sozusagen "alles fällt" bzw. davon abhängt.

Es gibt ja die zwei Typen von Schleifen.
Einmal while for (abweisende Schleife, Bedingung am Anfang)
und do while (nicht abweisende Schleife), Bedingung am Schluss).

Die äußere Schleife ist eine do-while-Schleife mit der Bedingung, dass n != 0. Und die innere Schleife ist eine while-for-Schleife, solange i <=n ist?

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
#C
/*Quadratziffern*/

main()
{
int n;
printf("%d Bitte geben Sie eine Zahl ein:\n", n);
scanf("&d", &n);
do
 {
if(n>0)
printf("%d Quadratzzahl ist:\n");
n*n;
else if(n<0)
printf("negative Zahl\n")
for(i <= n)
printf("Ausgabe von i:")
i*i;
i++;
while(n>0)
 }
}

Aber ob das so in Ordnung geht, bezweifle ich unglücklich

Danke für die Nachricht,

Sophie
Karlito

Hallo So[latex]\phi[/latex],

die Schleife wird ja solange durchlaufen wie n ungleich 0 ist. D.h. sobald n = 0, wird die schleife Abgebrochen.

Zum besseren Verständnis:
- n wird eingelesen (0)
- Das erste if geht in die rechte Seite
- Das zweite if in der rechten Seite geht wiederum in die rechte Seite
- Es wird nichts getan (Die rechte Seite ist leer)
- Die Schleifenbedingung schlägt fehl und somit die Schleife abgebrochen

Besten Gruß,

Karlito
Sowasvonphi Nassi-Shneiderman-Diagramm erstellen

Meine Frage:
Hallo,

ich habe Probleme beim Verständnis von dem Ende des Nassi-Shneidermann Diagramms.

Zuerst einmal zur Aufgabenstellung:
Quadratziffern
In einer (äußeren) Schleife sollen ganze Zahlen in eine Variable n eingelesen werden. Die Reaktion des Programms soll davon abhängen, welchen Wert (Positiv, negativ oder gleich Null) die Variable hat.
Treffen soll man folgende Fallunterscheidung:
- Ist die eingelesene Zahl größer als Null, so soll in einer inneren Schleife ausgegeben werden:
Zahl Quadratzahl
1 1
2 4
3 9
n n*n
- ist die eingelesene Zahl n kleiner Null, so soll ausgegeben werden: Negative Zahl
- ist die eingelesene Zahl n gleich Null, so soll das Programm die (äußere Schleife) abbrechen.


Meine Ideen:
Also im Groben und Ganzen verstehe ich was zu tun ist und wie man es macht, aber und jetzt kommt's. Der letzte Satz ist für mich irgendwie "unlogisch" wahrscheinlich, weil ich ein Teil nicht verstanden habe.

Es steht ja:
- ist die eingelesene Zahl n gleich Null, so soll das Programm die (äußere Schleife) abbrechen.

Jetzt ist aber im Diagramm in der letzten Zeile, wenn n ungleich Null ist wird die Schleife durchlaufen. Wo aber ist jetzt die Bedingung wenn n=0 ist, dass dann die Schleife verlassen wird?

Hänge da jetzt längere Zeit davor und wollte Euch deswegen um Meinung fragen.

Würde mich jedenfalls freuen, wenn mir eine Person ein kurze Auskunft geben könnte. Danke jetzt schon,

MfG Sophie

Sowasvonphi hat dieses Bild (verkleinerte Version) angehängt:
Qhoch2ziffern.png