PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C-Sourcen portieren --> Syntax Errors



raoulduke
17-07-2003, 08:45
Hi Jungs !
Habn kleines Problem, da ich absoluter
Dummy bin, was C angeht. Ich hab nen
Quellcode, in C geschrieben, der einst
für eine IBM Mainframe (z/OS - USS)
geschrieben wurde. An und für sich sollte
die Portierung kein Thema sein, gcc
gibt nur leider Syntaxfehler zurück und
ich kann damit leider kaum was anfangen.
Es sind um genau zu sein 4 Programme,
die CPU bzw. Speicherintensiv rechnen.
Ich poste euch mal die sourcen, vielleicht
kann mir ja jemand weiterhelfen !?
( 'gcc -o bench001 bench001.c' <--stimmt schon oder ? )
bench001.c
_______________________________________________
#include <stdio.h>
int main(int argc, char **argv)
ä
int i,j,N;
char Flag;
N=0;
Flag='E';
sscanf(argv??(1??),"%d",&N);
if(N>0)Flag='N';
if(Flag=='E') ä
printf("Usage: bench001 NÖn");
printf("N (integer) = number of iterationsÖn");
return 0;
ü;
j=1;
for(i=1;i<=N;i++) ä
j=j+i;
j=i*j;
j=j-i;
j=j % i;
j+=1;
ü;
return 0;
ü
_______________________________________________
bench002.c
_______________________________________________
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv)
ä
int i,j,N,B,C,S;
char Flag;
char *buffer,*heap;
N=0;
B=0;
S=0;
C=0;
Flag='E';
if(argc==5) ä
Flag='N';
sscanf(argv??(1??),"%d",&B);
if(B==0)Flag='E';
sscanf(argv??(2??),"%d",&C);
if(C==0)Flag='E';
sscanf(argv??(3??),"%d",&S);
if(S==0)Flag='E';
sscanf(argv??(4??),"%d",&N);
if(N==0)Flag='E';
ü;
if(Flag=='E') ä
printf("Usage: bench002 B C S NÖn");
printf("B (integer) = blocksizeÖn");
printf("C (integer) = number of blocksÖn");
printf("S (integer) = steppingÖn");
printf("N (integer) = number of iterationsÖn");
return 0;
ü;
buffer=(char *) malloc(B);
heap =(char *) malloc(B*C);
j=0;
for(i=1;i<=N;i++) ä
memcpy(&heap??(j*B??),buffer,B);
j+=S;
j=j%C;
ü;
free(buffer);
free(heap);
return 0;
ü
_______________________________________________
bench003.c
_______________________________________________
#include <stdio.h>
int main(int argc, char **argv)
ä
int i,j,N;
char Flag,ch;
N=0;
Flag='E';
sscanf(argv??(1??),"%c",&ch);
if(ch=='y')Flag='p';
if(ch=='Y')Flag='p';
if(ch=='n')Flag='n';
if(ch=='N')Flag='n';
sscanf(argv??(2??),"%d",&N);
if(N==0)Flag='E';
if(Flag=='E') ä
printf("Usage: bench003 p NÖn");
printf("p (y/n) = print result to stdoutÖn");
printf("N (integer) = sets limit for prime number search to NÖn");
return 0;
ü;
for(i=2;i<N;i++) ä
for(j=2;j<i;j++)
if(i%j==0) break;
if(i==j)
if(Flag=='p')
printf("%d ",i);
ü;
return 0;
ü
_______________________________________________
Bench004.c
_______________________________________________
#include <stdio.h>
typedef unsigned char byte;
const byte Mask??(8??)=ä0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x 80ü;
int main(int argc, char **argv)
ä
int i,j,N;
char Flag,ch;
byte *sieve;
N=0;
Flag='E';
sscanf(argv??(1??),"%c",&ch);
if(ch=='y')Flag='p';
if(ch=='Y')Flag='p';
if(ch=='n')Flag='n';
if(ch=='N')Flag='n';
sscanf(argv??(2??),"%d",&N);
if(N==0)Flag='E';
if(Flag=='E') ä
printf("Usage: bench004 p NÖn");
printf("p (y/n) = print result to stdoutÖn");
printf("N (integer) = sets limit for prime number search to NÖn");
return 0;
ü;
sieve=(byte *) malloc(N/8+1);
for(i=0;i<N/8+1;i++)sieve??(i??)=0;
for(i=2;i<N;i++) ä
if((sieve??(i/8??) & Mask??(i%8??))Ü=0)continue;
if(Flag=='p')printf("%d ",i);
for(j=i+i;j<N;j+=i)sieve??(j/8??)!=Mask??(j%8??);
ü;
free(sieve);
return 0;
ü
_______________________________________________
Vielen Dank schon mal vorab !
Duke

wraith
17-07-2003, 11:54
Das Problem ist,daß da viel Müll in den Files drinsteht (wie hast du die denn kopiert?).
ä steht hier für { z.b
Naja.das erste müßte wohl korrekt so aussehen


#include <stdio.h>

int main(int argc, char **argv)
{
int i,j,N;
char Flag;
N=0;
Flag='E';
sscanf(argv[1],"%d",&N);

if(N>0)
Flag='N';

if(Flag=='E')
{
printf("Usage: bench001 N");
printf("N (integer) = number of iterations");
return 0;
}

j=1;
for(i=1;i<=N;i++)
{
j=j+i;
j=i*j;
j=j-i;
j=j % i;
j+=1;
}
return 0;
}

raoulduke
17-07-2003, 14:59
Danke, habs schon gelöst !

ä={
ü=}
??(=[
??)=]
Ö=\

Duke.

(Fehler von der Interpretation von FTP (ASCII))