URL: https://www.overclockers.at/coding-stuff/flussdiagramme_173959/page_1 - zur Vollversion wechseln!
Hallo zusammen!
Ich brauche eure hilfe zum Thema Flussdiagramme. muss nämlich für die Schule ein paar zeichnen. Wäre nett wenn mir jemand eine Anleitung zeigen könnte oder (noch besser) welche für mich zeichnen könnte. Ich stell hier mal 2 Programme rein, hab aber noch 4 od. 5 andere für die ich auch fludis brauche.
2. Programm:
#include<stdio.h>
#include<ctype.h>
int main()
{
int c;
while(1)
{
c=getch();
printf("Taste druecken: ");
if(c==3)
{
break;
}
if(isalpha(c))
printf("%2.2x %c Buchstabe\n",c,c);
{
if(isdigit(c))
printf("%2.2x %c Zahl\n",c,c);
}
}
getch();
}
1. Programm:
#include<stdio.h>
int main()
{
int a;
a=0;
while(a<=127)
{
if(a<=32)
printf("%3d %2.2x %8.8b\n",a,a,a);
else
printf("%3d %2.2x %8.8b %c\n",a,a,a,a);
a++;
}
getch();
}
Schon im voraus viel dank für eure hilfe!!
Und womit hast du jetzt ein Problem?
Klingt nach Schule, habt ihr es im Unterricht nicht besprochen wie soetwas auszusehen hat?
Oftmals verstehen die Leute unterschiedliche Sachen unter einem "Flussdiagramm".
Wikipedia führt zu diesem Artikel: Programmablaufplan.
Mit dem dortigen Beispiel wirst vermutlich mal nen ersten Entwurf hinbekommen. Deine ersten Versuche kannst du dann ja posten und du wirst sicher Feedback dazu erhalten.
Edith: Zum Thema möcht ich noch loswerden dass die klassischen Flussdiagramme mittlerweile schon ordentlich angestaubt sind. UML (2.0) gehört die Welt. Damit lassen sie Abläufe meiner Ansicht nach vielschichtiger darstellen.
Danke erstmal
Ja wir haben es in der Schule durchgenommen aber bei der Lehrerin versteht es eh keiner (zumindest meine Ansicht, die Lehrerin sieht das vielleicht anders). Den Link den du gepostet hast, genau solch ein Flussdiagramm brauch ich für die Schule.
Die ersten Versuche werd ich sobald als möglich posten.
Hier meine ersten Versuche:
2.
1.
Wenn was falsch ist: BITTE SAGEN!!
Ich selbst hab auch noch ein paar Fragen.
Beim ersten geht das irgendwie anders als mitn isdigit u. isalpha?
Beim zweiten muss ich noch das a=0 irgendwie einfügen??
was macht im ersten beispiel das "while" in einem eigenen kasti? das ding erklärt den ablauf, nicht die code-zeilen, die du verwendet wirst, um das programm später umzusetzen.
setze decisions ein, die du mit ja/nein beantworten kannst. für ein flussdiagramm durchaus auch mit einer formulierten frage (im extremfall etwa: "ist die eingegebene variable eine zahl? ja/nein"). dann wirds leichter zu lesen.
bei solch trivialen problemen reicht übrigens meist ein gemeinsamer endpunkt, zu dem alle wege führen.
Sorry komplett falsch 
es heisst While schleife .... insofern sollte dir klar sein das dein diagramm mindestens eine schleife enthalten muss, ich sehe keine einzige.
While heisst immer ...to etwas solange bis ein gewisser fall eintritt ... daher brauchst du in deinem diagramm eine schleife in der etwas gemacht wird, und eine eine abbruchbedingung bei der dann die schleife verlassen werden soll.
eine Anmerkung noch ...ist das dein code ? ... while(1) ist nie gut (ausgenommen vieleicht es handelt sich um ein µC programm, da diese ja meist unendlich lange laufen sollen 
nicht alles ist gleich ein Platform unabhängiger Java Server der abertausende clients bedienen muss ..... was ich damit sagen will .... wieso mit einem schlachtkreuzer auf tontauben schiessen ?Zitat von Frys_AssassinEdith: Zum Thema möcht ich noch loswerden dass die klassischen Flussdiagramme mittlerweile schon ordentlich angestaubt sind. UML (2.0) gehört die Welt. Damit lassen sie Abläufe meiner Ansicht nach vielschichtiger darstellen.
soweit mich ich erinnern kann, sollte dieser Code auch funktionieren
Code:printf("Taste druecken: "); while((c = getch()) != 3) { printf("Taste druecken: "); if(isalpha(c)) printf("%2.2x %c Buchstabe\n",c,c); else { if(isdigit(c)) printf("%2.2x %c Zahl\n",c,c); } }
da gibts ein nettes tool namens "easycase" das macht dir aus vorhandenem c-code solche diagramme, bzw. kannst du auch direkt via diagramm das programm "zeichnen"...
wobei IMMER zuerst das flussdiagramm da sein sollte und nicht erst der programmcode. denn VORHER überlegen was man baut und nicht mal drauf los arbeiten und dann 3mal umschreiben müssen.
Danke erstmal für das rege Interesse, ich werd dann meine Fehler ausbessern und posten. Aber jetzt hab ich mal ein paar neue Programme:
3.
#include<stdio.h>
#include<string.h>
int main()
{
char s[30];
int n;
while(1)
{
fgets(s,30,stdin);
s[strlen(s)-1]='\0';
n=strlen(s);
printf("%d Zeichen \n",n);
if(n==0)
{
printf("Keine Zeichen eingegeben!\n",n);
break;
}
}
getch();
}
4.
#include<stdio.h>
#include<string.h>
int main()
{
char v[80],n[80],z[200];
int s;
while(1)
{
printf("Vorname\n",v);
fgets(v,80,stdin);
s=strlen(v);
v[strlen(v)-1]='\0';
if(s==1)break;
printf("Nachname\n");
fgets(n,80,stdin);
s=strlen(n);
n[strlen(n)-1]='\0';
strcpy(z,v);
strcat(z," ");
strcat(z,n);
printf("Danke fuer deine Mitarbeit, %s!\n",z);
}
getch();
}
5.
#include<stdio.h>
int main()
{
FILE *out;
int z;
z=0;
out=fopen("ASCIITAB.txt","w");
while(z<=127)
{
if(z<=32)
fprintf(out,"%3d %2.2x %8.8b\n",z,z,z);
else
fprintf(out,"%3d %2.2x %8.8b %c\n",z,z,z,z);
z++;
}
fclose(out);
getch();
}
Hoffe ich hab eure Verbesserungsvorschläge umgestetzt, falls nicht bitte sagen. Ein Programm hab ich noch, aber das poste ich wann anders.
EDIT: Hab vergessen: das Flussdiagramm kommt ja eigentlich zuerst, aber möchts nicht mehr umdrehen! sry
also zum ersten diagramm:
die while schleife ist falsch.
die bedingung lautet nicht "while n==0" sondern "while n!= 0", denn du führst ja code aus, so lange bis kein zeichen eingegeben worden ist. deshalb muss dann auch ja und nein zweig vertauscht werden.
edit:
verwechsle die bedeutung von while nicht mit until. (vom englischen gebrauch).
denn deine schleifen lauten im code "while(!BreakCondition)" während du in den diagrammen immer "while(BreakCondition)" im sinne von "führe aus solange bis" verwendetst.
außerdem bau bitte das while(1) aus, das macht man einfach nicht 
das while n!=0 heißt: für solange aus, solange nicht null ist oder?
jop
ist nichts anderes alsCode:while(i<5) printf("%d", i++);
vielleicht ist das verständlicherCode:kopf: if(i>=5) goto ende; printf("%d", i++); goto kopf; ende: return;
also schleifen bricht man normalerweise nicht mit einem break ab. Das is eine ziemlich unsaubere lösung. Das geht hier noch anders 
und die while(1) wurde dir eh shcon gesagt 
Zitat von AngelOfDeathZitat von JCMhm, die Feinarbeit scheint ein wenig mühsam zu sein. Ebenso gestaltet sich der FPS nicht ganz so einfach. Aber ich muss ihnen das lassen - eine sexy Idee
das ist anscheinend eine Aufgabe, wo eben der Code extra so gewählt wurde und er aufzeichnen soll, was das tut...Zitat von Burschi1620also schleifen bricht man normalerweise nicht mit einem break ab. Das is eine ziemlich unsaubere lösung. Das geht hier noch anders
und die while(1) wurde dir eh shcon gesagt
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026