Flussdiagramme - Seite 2

Seite 2 von 2 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/flussdiagramme_173959/page_2 - zur Vollversion wechseln!


Profimelker schrieb am 03.01.2007 um 18:39

Auf ein neues:


1.
#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();
}
click to enlarge

2.
#include<stdio.h>
#include<ctype.h>

int main()
{
int c = 0;
while(c!=3)
{

printf ("Taste druecken:");
c=getch();

if((1<=c && c<3) ||(3<c && c<33) ||(32<c && c<48) ||(57<c && c<65) || (90<c && c<97) || (122<c && c<127))
printf (" %2.2x %c Zeichen\n\n",c,c);

else if((64<c && c<91) || (96<c && c<123))
printf (" %2.2x %c Buchstabe\n\n",c,c);

else if(47<c && c<58)
printf (" %2.2x %c Ziffer\n\n",c,c);
}
}
click to enlarge
(Das ist das ganz erste)

3.
#include<stdio.h>
#include<string.h>

int main()
{
char s[30];
int n = 1;

while(n!=0)
{
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");
break;
}
}
getch();
}
click to enlarge

4.
#include<stdio.h>
#include<string.h>

int main()
{
char v[80],n[80],z[200];
int s = 1;

while(s!=0)
{
printf("Vorname\n",v);
fgets(v,80,stdin);
v[strlen(v)-1]='\0';
s=strlen(v);
if(s==0)
{
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();
}

click to enlarge

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();
}

click to enlarge
6.

#include <stdio.h>
#include <string.h>

int main(int argc, char* argv[])
{
char w[80], d[80], e[80];
FILE *vok;
int anz;

vok=fopen("vokabel.dat","r");
if (vok==0)
{
printf("Uebersetzungsdatei nicht vorhanden!!!\n");
return 1;
}
printf("zu uebersetzendes Wort:");
scanf("%s", w);



while( (strcmp(w,"fine") !=0 ) && (strcmp(w,"aus") !=0) )
{


while (1)
{
anz=fscanf(vok, "%s %s", d, e);
if (anz == 1)
break;


if (anz ==2)
{
if(strcmp(w, d) == 0)
{
printf("Englisch: %s\n\n", e);
break;


}
if(strcmp(w, e) ==0)
{
printf("Deutsch: %s\n\n", d);
break;
}


}
else
{
printf("Keine Uebersetzung gefunden\n\n");
break;
}
}

rewind(vok);
printf("zu uebersetzendes Wort:");
scanf("%s", w);
}
fclose(vok);
}
click to enlarge


rettich schrieb am 03.01.2007 um 19:31

Zitat von Profimelker
das mit while(1) hab ich in der Schule so glernt
und beim flussdiagramm while hineinschreiben haben wir in der schule auch so gmacht

unser informatikprofessor hat damals immer gesagt: "tuts wurm spielen und wenn wer reinkommt, dann tuts so als täts was arbeiten"

es ist nicht immer alles ohne hinterfragen hinzunehmen, was einem in der schule erzählt wird ;)


that schrieb am 04.01.2007 um 01:28

Zitat von Profimelker
Auf ein neues:

Unabhängig von den Flussdiagrammen sind leider auch alle deine Programme jetzt falsch:

...
int c;
while(c!=3)
{
...


"int c" deklariert zwar eine Variable, initialisiert sie aber nicht, d.h. der Wert ist undefiniert. Du musst vor der ersten Verwendung einen definierten Wert zuweisen, ansonsten ist das Programmverhalten vom Zufall abhängig.

Und hier:
...
fgets(s,30,stdin);
s[strlen(s)-1]='\0';
...

Was glaubst du passiert hier, wenn der User gar nichts eingibt?


Profimelker schrieb am 04.01.2007 um 09:32

int c;

printf ("Taste druecken:");
c=getch();
while(c!=3)
{
printf ("Taste druecken:");
c=getch();

if((1<=c && c.......

edit: würds auch so gehen?:

int c;
c = 5

while(c!=3)
{....


Wäre das so richtig?

und beim zweiten: Wenn ichs ausprobiere dann schließt das Programm


murcielago schrieb am 04.01.2007 um 09:37

Code:
int c = 0;
while (c != 3) {
  printf("Taste druecken: ");
  c = getch();
}


Profimelker schrieb am 04.01.2007 um 12:01

Zitat von that
Unabhängig von den Flussdiagrammen sind leider auch alle deine Programme jetzt falsch:

...
int c;
while(c!=3)
{
...


"int c" deklariert zwar eine Variable, initialisiert sie aber nicht, d.h. der Wert ist undefiniert. Du musst vor der ersten Verwendung einen definierten Wert zuweisen, ansonsten ist das Programmverhalten vom Zufall abhängig.

hab ich grad geändert

passen die Flussdiagramme dann dazu? das ist nämlich meine Hauptfrage


Profimelker schrieb am 05.01.2007 um 09:49

Ich bins nochmal
Wie ihr seht hab ich jetzt alle sechs programme + flussdiagramme online gestellt. Das letzte Programm (6) haben wir voriges Jahr (05/06) in der Schule mit der Lehrerin gemacht darum kann ich euch nicht viel dazu sagen.
Das einzige was bei dem Programm geändert ghört ist das man es wenn man enter drückt schließen kann (wäre nett wenn das jemand machen könnte, is aber nicht unbedingt nötig).
Ich bitte euch jetzt nicht über das while (1) und die while schleife mit break beenden was zu sagen, ich werd mich bemühen das bei den nächsten (selbstgemachten) programmen zu verwirklichen.
Das fludi wird höchstwarscheinlich falsch sein darum bräuchte ich verbesserungsvorschläge eurerseits.

mfg thomas




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026