Kolokwium 1 z PRM, 2007.04.12 ZESTAW_1

Imię i nazwisko: ................................................................................. Grupa: ................................... Wynik:................................

W polu kratkowanym przedstawić wynik działania zapisanego poniżej programu. Jedna kratka odpowiada jednemu znakowi wydruku.

#define <stdio.h>

#define A(x,y,z) y*(i+(3*x+z))+1

#define PR(format,val) printf(" "#val"=%"#format",",(val))

#define NL printf("\n")

#define PRINT1(f,x1) PR(f,x1), NL

#define PRINT2(f,x1,x2) PR(f,x1), PRINT1(f,x2)

#define PRINT3(f,x1,x2,x3) PR(f,x1), PRINT2(f,x2,x3)

#define EN 3

#define EOS '\0'

#define NEXT(i) wejscie[i++]

#define FALSE 0

#define TRUE 1

void fun1(int*);

void fun2(float*);

void main(void)

{ char c; int high, i=3, j=4, in, low, tab[]={2,3,1,4,6};

char wejscie[]="Grupy M4 - M6 pisza kolokwium 1 z PRM w dniu 12/04/2007.";

float *wsk,arr[]={5.3568e-3,6.14542678,-691.656,-8.1,-3.24654e+4,2879.4,-2.51,4.545e-2};

printf("Zestaw 1:\n%3d.%04d.%3d.\n",A(2-1,3+1,4*2)*2,2+A(3-1,4+1,1+2)/2,2*A(2+2,2-3,4-3)%2);

wsk=&arr[i/2];

printf("%9s:%4.1f,%-12.3e\n","ptr=arr",*wsk+j,*(wsk+j));

fun1(tab);

fun2(wsk-1);

high=i=in=low=0;

while((c=NEXT(i))!=EOS) if(c<'0')low++; else if(c>'9')high++; else ++in;

PRINT3(-2d,low,in,high);

i=low=in=high=0; j=FALSE;

while((c=NEXT(i))!=EOS && !j) if(c<'Z')low++; else if(c>'A')high++; else in++;

if(low>=EN || high>+EN || in>=EN) j=TRUE;

PRINT3(-3d,low,in,high);

i=low=in=high=0; j=FALSE;

while((c=NEXT(i))!=EOS && !j)

if(c<'a') j=(++low==EN); else if(c>'z') j=(high++==EN); else j=(++in==EN);

PRINT3(-4d,low,in,high);

}

void fun1(int *tab)

{ int i=2, j; char ciag[]={"Fun1:%-4d,%2d,%-3d.%05d:%-3d"};

i=(j=++tab[1])-1;

++tab[--j];

tab[i++-1]=--j;

printf(ciag,i+++1,j++,*(tab+1),*tab,--tab[2]);

}

void fun2(float *wsk)

{ int j,i; char ciag[]={"wsk=arr["};

printf("\nFun2:\n");

for(j=1,i=5-j;j<4;j++,ciag[4]++)

printf("%-9s%1u%1s;%3.0f,%.3e\n",ciag,--i+2,"]",*(wsk+1)*j,*wsk+j);

}

Kolokwium 1 z PRM, 2007.04.12 ZESTAW_2

Imię i nazwisko: ................................................................................. Grupa: ................................... Wynik:................................

W polu kratkowanym przedstawić wynik działania zapisanego poniżej programu. Jedna kratka odpowiada jednemu znakowi wydruku.

#include <stdio.h>

#define A(x,y,z) (y*(i+(3*x+z)))+1

#define PR(format,val) printf(" "#val"=%"#format",",(val))

#define NL printf("\n")

#define PRINT1(f,x1) PR(f,x1), NL

#define PRINT2(f,x1,x2) PR(f,x1), PRINT1(f,x2)

#define PRINT3(f,x1,x2,x3) PR(f,x1), PRINT2(f,x2,x3)

#define EN 3

#define EOS '\0'

#define NEXT(i) wejscie[i++]

#define FALSE 0

#define TRUE 1

void fun1(int*);

void fun2(float*);

void main(void)

{ char c; int high, i=4, j=3, in, low, tab[]={1,2,3,4,6};

char wejscie[]="Grupy M4 - M6 pisza 12/04/2007 kolokwium 1 z PRM.";

float *wsk,arr[]={4.2568e-3,3.24142678,-29.1356,-41.1,-3.39654e+3,2897.34,-5.1,4.555e-2};

printf("Zestaw 2:\n%3d.%4d.%3d.\n",A(2-1,3+1,4*2)/2,2+A(3-1,4+1,1+2)*2,2*A(2+2,2-3,4-3)%2);

wsk=&arr[i/2];

printf("%9s:%4.1f,%-13.3e\n","ptr=arr",*wsk+j,*(wsk+j));

fun1(tab);

fun2(wsk-1);

high=i=in=low=0;

while((c=NEXT(i))!=EOS) if(c<'0')++low; else if(c>'9')high++; else ++in;

PRINT3(-4d,low,in,high);

i=low=in=high=0; j=FALSE;

while((c=NEXT(i))!=EOS && !j) if(c<'A')--low; else if(c>'Z')high--; else in++;

if(low>=EN || high>+EN || in>=EN) j=TRUE;

PRINT3(-3d,low,in,high);

i=low=in=high=0; j=FALSE;

while((c=NEXT(i))!=EOS && !j) if(c>'z')

j=(low==EN); else if(c>'a') j=(high++==EN); else j=(++in==EN);

PRINT3(-2d,low,in,high);

}

void fun1(int *tab)

{ int i=2, j; char ciag[]={"Fun1:%-05d,%2d,%-3d;%05d\':%-3d"};

i=(j=tab[1]++)-1;

++tab[++j];

tab[i-1]=j--;

printf(ciag,i+++1,j++,*(tab+2),*tab,--tab[3]);

}

void fun2(float *wsk)

{ int j,i; char ciag[]={"%9s%1u%1c;%5.1f,%.4e\n"};

printf("\nFun2:\n");

for(j=1,i=5-j;j<4;j++,ciag[11]++)

printf(ciag,"wsk=arr[",i+2,']',*(wsk+1)+j,*wsk+j);}

}

Kolokwium 1 z PRM, 2007.04.12 ZESTAW_3

Imię i nazwisko: ................................................................................. Grupa: ................................... Wynik:................................

W polu kratkowanym przedstawić wynik działania zapisanego poniżej programu. Jedna kratka odpowiada jednemu znakowi wydruku.

#include <stdio.h>

#define A(y,z,x) (y*(i+(3*x+z)))+2

#define PR(format,val) printf(" "#val"=%"#format",",(val))

#define NL printf("\n")

#define PRINT1(f,x1) PR(f,x1), NL

#define PRINT2(f,x1,x2) PR(f,x1), PRINT1(f,x2)

#define PRINT3(f,x1,x2,x3) PR(f,x1), PRINT2(f,x2,x3)

#define EN 3

#define EOS '\0'

#define NEXT(i) wejscie[i++]

#define FALSE 0

#define TRUE 1

void fun1(int*);

void fun2(float*);

void main(void)

{ char c; int high, i=4, j=3, in, low, tab[]={8,4,3,2,6,7};

char wejscie[]="Osoby z grup M4 - M6 pisza 12/04/2007 kolokwium_1 z PRM.";

float *wsk,arr[]={4.3568e-3,3.34142678,-39.1356,-43.1,-3.39654e+3,2897.34,-5.3,4.355e-2};

printf("Zestaw 3:\n%3d.%4d.%3d.\n",A(2-1,3+1,4*2)/2,2+A(3-1,4+1,1+2)*2,2*A(2+2,2-3,4-3)%2);

wsk=&arr[j];

printf("%9s:%4.1f,%013.3e\n","ptr=arr",*wsk+j,*(wsk)+j);

fun1(tab);

fun2(wsk-1);

high=i=in=low=0;

while((c=NEXT(i))!=EOS) if(c<'0')low--; else if(c>'9')high--; else ++in;

PRINT3(-3d,low,in,high);

i=low=in=high=0; j=TRUE;

while((c=NEXT(i))!=EOS && j) if(c>'Z')low++; else if(c<'A')high++; else in++;

if(low>=EN || high>+EN || in>=EN) j=TRUE;

PRINT3(-3d,low,in,high);

i=low=in=high=0; j=FALSE;

while((c=NEXT(i))!=EOS && !j)

if(c<'a') j=(low==EN); else if(c>'z') j=(high++==EN); else j=(++in==EN);

PRINT3(-3d,low,in,high);

}

void fun1(int *tab)

{ int i=2, j; char ciag[]={"Fun1:%-5d,%2d,%-3d\".%05d:%4d"};

i=(j=tab[1]++)-1;

--tab[++j];

tab[i+1]=j--;

printf(ciag,i+++1,j++,*(tab+1)*2,*tab,--tab[3]);

}

void fun2(float *wsk)

{ int j,i; char ciag[]={"%9s%1u%1s;%5.1f,%.3e\n"};

printf("\nFun2:\n");

for(j=1,i=5-j;j<4;j++,(*(ciag+13))++)

printf(ciag,"wsk=arr[",i-1,"\"",*(wsk)+j,*wsk-7*j);

}

Kolokwium 1 z PRM, 2007.04.12 ZESTAW_4

Imię i nazwisko: ................................................................................. Grupa: ................................... Wynik:................................

W polu kratkowanym przedstawić wynik działania zapisanego poniżej programu. Jedna kratka odpowiada jednemu znakowi wydruku.

#include <stdio.h>

#define A(y,z,x) (y*i+(3*x+z))+1

#define PR(format,val) printf(" "#val"=%"#format",",(val))

#define NL printf("\n")

#define PRINT1(f,x1) PR(f,x1), NL

#define PRINT2(f,x1,x2) PR(f,x1), PRINT1(f,x2)

#define PRINT3(f,x1,x2,x3) PR(f,x1), PRINT2(f,x2,x3)

#define EN 3

#define EOS '\0'

#define NEXT(i) wejscie[i++]

#define FALSE 0

#define TRUE 1

void fun1(int*);

void fun2(float*);

void main(void)

{ char c; int high, i=3, j=3, in, low, tab[]={5,4,3,2,6,7};

char wejscie[]="12/04/2007 osoby z grup M4 - M6 pisza kolokwium_1 z PRM.";

float *wsk,arr[]={4.2568e-3,3.24142678,-29.1356,-41.1,-3.39654e+3,2897.34,-5.1,4.555e-2};

printf("Zestaw 4:\n%3d.%4d.%3d.\n",A(2-1,3+1,4*2)*2,2+A(3-1,4+1,1+2)/2,2*A(2+2,2-3,4-3)%2);

wsk=&arr[2];

printf("%9s:%4.1f,%13.3e\n","ptr=arr",*wsk+j%2,*(wsk)+j);

fun1(tab);

fun2(wsk+1);

high=i=in=low=0;

while((c=NEXT(i))!=EOS) if(c<'0')low++; else if(c>'9')high++; else ++in;

PRINT3(-5d,low,in,high);

i=low=in=high=0; j=FALSE;

while((c=NEXT(i))!=EOS && !j) if(c<'A')low++; else if(c>'Z')high++; else in++;

if(low>=EN || high>+EN || in>=EN) j=TRUE;

PRINT3(-3d,low,in,high);

i=low=in=high=0; j=FALSE;

while((c=NEXT(i))!=EOS && !j)

if(c<'a') j=(low++==EN); else if(c>'z') j=(high++==EN); else j=(++in==EN);

PRINT3(-4d,low,in,high);

}

void fun1(int *tab)

{ int i=2, j;

i=(j=tab[0]++)-1;

--tab[--j];

tab[i+1]=j--;

printf("Fun1:%- 4d,%2d,%-3d.%5d:%-3d",i+1,--j,*(tab)*2,*tab%2,--tab[3]);

}

void fun2(float *wsk)

{ int j,i;

printf("\nFun2:\n");

for(j=1,i=5-j;j<4;j++)

printf("%9s%1u%1s;%5.1f,%13.4e\n","wsk=arr[",i-1,"\"",*(wsk)+j,*wsk-(3*j)%2);

}