"We are back" « oc.at

Flussdiagramme

Profimelker 28.12.2006 - 11:20 7290 21
Posts

Profimelker

Little Overclocker
Registered: Dec 2006
Location: WU
Posts: 79
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
Bearbeitet von Profimelker am 05.01.2007, 09:57

rettich

Legend
waffle, waffle!
Avatar
Registered: Jan 2004
Location: wien
Posts: 794
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

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11354
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

Little Overclocker
Registered: Dec 2006
Location: WU
Posts: 79
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
Bearbeitet von Profimelker am 04.01.2007, 09:34

murcielago

Dr. Doom
Avatar
Registered: Oct 2002
Location: *
Posts: 2714
Code:
int c = 0;
while (c != 3) {
  printf("Taste druecken: ");
  c = getch();
}

Profimelker

Little Overclocker
Registered: Dec 2006
Location: WU
Posts: 79
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

Little Overclocker
Registered: Dec 2006
Location: WU
Posts: 79
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
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz