Rešitev LAV 20
Conditions d’achèvement
1. naloga
#include <stdio.h>
#include <stdlib.h>
char nakljucno(void)
{
if (rand()%2 == 0)
return rand()%26 + 97;
else
return rand()%26 + 65;
}
void vnesi(char t[8][8])
{
int i,j;
for (i=0;i<8;i++)
for (j=0;j<8;j++)
{
if (i==j)
t[i][j] = nakljucno();
else if (i+j==7)
t[i][j] = rand()%10 + 48;
else
t[i][j] = ' ';
}
}
void izpis(char t[8][8])
{ int i,j;
for (i=0;i<8;i++)
{
for (j=0;j<8;j++)
{
printf("%02c ",t[i][j]);
}
printf("\n");
}
}
int main(void)
{
char p[8][8];
vnesi(p);
izpis(p);
return 0;
}
2. naloga
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void vnesi(int *t,int n)
{
int i;
for (i=0;i<n;i++)
{
t[i] = rand() % 46 + 55;
}
}
void izpis(int *t, int n)
{
int i;
for (i=0;i<n;i++)
printf("%d\n",t[i]);
}
int vsota(int *t,int n)
{
int i,v=0;
for (i=0;i<n; i++)
v = v + t[i];
return v;
}
void izpis_odstopanje(int *t, int n)
{
int i,v;
v = vsota(t,n)/40;
for (i=0;i<n; i++)
printf("%d - %d\n",t[i],abs(v-t[i]));
}
int main(void)
{
int t[40];
srand(time(NULL));
vnesi(t,40);
izpis(t,40);
izpis_odstopanje(t,40);
return 0;
}
3. naloga
#include <stdio.h>
#include <stdlib.h>
void vnos(int *t,int n)
{
int i;
for (i=0;i<n;i++)
t[i] = 0; // inicializiramo podatke v tabeli na 0
do
{
printf("Vnesi velikost (0 za zakljucek): ");
scanf("%d",&i);
if (i==0)
break;
if (i<=140)
t[0] = t[0] + 1;
else if ((i>140) && (i<=150))
t[1] = t[1] + 1;
else if ((i>150) && (i<=160))
t[2] = t[2] + 1;
else if ((i>160) && (i<=170))
t[3] = t[3] + 1;
else if ((i>170) && (i<=180))
t[4] = t[4] + 1;
else if ((i>180) && (i<=190))
t[5] = t[5] + 1;
else if ((i>190) && (i<=200))
t[6] = t[6] + 1;
else if (i>200)
t[7] = t[7] + 1;
}
while(i!=0);
}
void izpis(int *t, int n)
{
int i;
printf("Stevilo ljudi, ki so manjši ali enaki 140 je %d\n",t[0]);
printf("Stevilo ljudi, ki so veliki med 140 in 150 je %d\n",t[1]);
printf("Stevilo ljudi, ki so veliki med 150 in 160 je %d\n",t[2]);
printf("Stevilo ljudi, ki so veliki med 160 in 170 je %d\n",t[3]);
printf("Stevilo ljudi, ki so veliki med 170 in 180 je %d\n",t[4]);
printf("Stevilo ljudi, ki so veliki med 180 in 190 je %d\n",t[5]);
printf("Stevilo ljudi, ki so veliki med 190 in 200 je %d\n",t[6]);
printf("Stevilo ljudi, ki so večji ali enaki 200 je %d\n",t[7]);
}
int vecjih(int *t,int n)
{
int i,v,r=0;
printf("Vnesi velikost: ");
scanf("%d",&v);
if (v<=140)
for (i=1;i<n;i++)
r = r + t[i];
else if ((v>140) && (v<=150))
for (i=2;i<n;i++)
r = r + t[i];
else if ((v>150) && (v<=160))
for (i=3;i<n;i++)
r = r + t[i];
else if ((v>160) && (v<=170))
for (i=4;i<n;i++)
r = r + t[i];
else if ((v>170) && (v<=180))
for (i=5;i<n;i++)
r = r + t[i];
else if ((v>180) && (v<=190))
for (i=6;i<n;i++)
r = r + t[i];
else if ((v>190) && (v<=200))
for (i=7;i<n;i++)
r = r + t[i];
else if (v>200)
r = 0;
return r;
}
void statistika(int *t, int n)
{
int i;
float v=0;
for (i=0;i<n;i++)
v += t[i];
printf("Stevilo ljudi, ki so manjsi ali enaki 140 je %d - (%0.2f%%)\n",t[0],t[0]*100/v);
printf("Stevilo ljudi, ki so veliki med 140 in 150 je %d - (%0.2f%%)\n",t[1],t[1]*100/v);
printf("Stevilo ljudi, ki so veliki med 150 in 160 je %d - (%0.2f%%)\n",t[2],t[2]*100/v);
printf("Stevilo ljudi, ki so veliki med 160 in 170 je %d - (%0.2f%%)\n",t[3],t[3]*100/v);
printf("Stevilo ljudi, ki so veliki med 170 in 180 je %d - (%0.2f%%)\n",t[4],t[4]*100/v);
printf("Stevilo ljudi, ki so veliki med 180 in 190 je %d - (%0.2f%%)\n",t[5],t[5]*100/v);
printf("Stevilo ljudi, ki so veliki med 190 in 200 je %d - (%0.2f%%)\n",t[6],t[6]*100/v);
printf("Stevilo ljudi, ki so vecji ali enaki 200 je %d - (%0.2f%%)\n",t[7],t[7]*100/v);
}
int main(void)
{
int t[8];
vnos(t,8);
izpis(t,8);
printf("Vecjih od podane velikosti je %d ljudi.\n",vecjih(t,8));
statistika(t,8);
return 0;
}
4. naloga
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
void napolni(int *t,int n)
{
int i;
for (i=0;i<n;i++)
t[i] = rand()%2;
}
void izpisi(int *t,int n)
{
int i;
for (i=0;i<n;i++)
printf("%d",t[i]);
printf("\n");
}
void nepredznaceno(int *t,int n)
{
int i,j=0;
long r=0;
for (i=n-1;i>=0;i--,j++)
{
r = r + t[i]*pow(2,j);
}
printf("Pretvorjeno v nepredznaceno vrednost je %ld\n",r);
}
void predznaceno(int *t,int n)
{
int i,j=0;
long r=0;
for (i=n-1;i>=1;i--,j++)
{
r = r + t[i]*pow(2,j);
}
if (t[0]==1)
r *= -1; // negativna
printf("Pretvorjeno v predznaceno vrednost je %ld\n",r);
}
void sestej(int *t,int *t2,int *t3,int n)
{
int i,d=0;
int r=0;
for (i=n-1;i>=0;i--)
{
r = t[i]+t2[i]+d;
switch (r)
{
case 2:
t3[i] = 0; d = 1; break;
case 3:
t3[i] = 1; d = 1; break;
default:
t3[i] = r;
d = 0;
}
}
}
int main(void)
{
int st[16],st2[16],r[16];
char i;
srand(time(NULL));
do
{
printf("***************MENI***************\n");
printf("1. generiranje tabel\n");
printf("2. izpis tabel\n");
printf("3. izpis kot nepredznaceno stevilo\n");
printf("4. izpis kot predznaceno stevilo\n");
printf("5. sestevek dveh binarnih stevil\n");
printf("0. izhod\n");
printf("\n");
printf("Izbira> ");
scanf("%c",&i);
switch (i)
{
case '1':
napolni(st,16);
napolni(st2,16);
break;
case '2':
izpisi(st,16);
izpisi(st2,16);
break;
case '3':
nepredznaceno(st,16);
break;
case '4':
predznaceno(st,16);
break;
case '5':
sestej(st,st2,r,16);
izpisi(st,16);
izpisi(st2,16);
izpisi(r,16);
break;
}
} while(i!='0');
return 0;
}
#include <stdio.h>
#include <stdlib.h>
char nakljucno(void)
{
if (rand()%2 == 0)
return rand()%26 + 97;
else
return rand()%26 + 65;
}
void vnesi(char t[8][8])
{
int i,j;
for (i=0;i<8;i++)
for (j=0;j<8;j++)
{
if (i==j)
t[i][j] = nakljucno();
else if (i+j==7)
t[i][j] = rand()%10 + 48;
else
t[i][j] = ' ';
}
}
void izpis(char t[8][8])
{ int i,j;
for (i=0;i<8;i++)
{
for (j=0;j<8;j++)
{
printf("%02c ",t[i][j]);
}
printf("\n");
}
}
int main(void)
{
char p[8][8];
vnesi(p);
izpis(p);
return 0;
}
2. naloga
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void vnesi(int *t,int n)
{
int i;
for (i=0;i<n;i++)
{
t[i] = rand() % 46 + 55;
}
}
void izpis(int *t, int n)
{
int i;
for (i=0;i<n;i++)
printf("%d\n",t[i]);
}
int vsota(int *t,int n)
{
int i,v=0;
for (i=0;i<n; i++)
v = v + t[i];
return v;
}
void izpis_odstopanje(int *t, int n)
{
int i,v;
v = vsota(t,n)/40;
for (i=0;i<n; i++)
printf("%d - %d\n",t[i],abs(v-t[i]));
}
int main(void)
{
int t[40];
srand(time(NULL));
vnesi(t,40);
izpis(t,40);
izpis_odstopanje(t,40);
return 0;
}
3. naloga
#include <stdio.h>
#include <stdlib.h>
void vnos(int *t,int n)
{
int i;
for (i=0;i<n;i++)
t[i] = 0; // inicializiramo podatke v tabeli na 0
do
{
printf("Vnesi velikost (0 za zakljucek): ");
scanf("%d",&i);
if (i==0)
break;
if (i<=140)
t[0] = t[0] + 1;
else if ((i>140) && (i<=150))
t[1] = t[1] + 1;
else if ((i>150) && (i<=160))
t[2] = t[2] + 1;
else if ((i>160) && (i<=170))
t[3] = t[3] + 1;
else if ((i>170) && (i<=180))
t[4] = t[4] + 1;
else if ((i>180) && (i<=190))
t[5] = t[5] + 1;
else if ((i>190) && (i<=200))
t[6] = t[6] + 1;
else if (i>200)
t[7] = t[7] + 1;
}
while(i!=0);
}
void izpis(int *t, int n)
{
int i;
printf("Stevilo ljudi, ki so manjši ali enaki 140 je %d\n",t[0]);
printf("Stevilo ljudi, ki so veliki med 140 in 150 je %d\n",t[1]);
printf("Stevilo ljudi, ki so veliki med 150 in 160 je %d\n",t[2]);
printf("Stevilo ljudi, ki so veliki med 160 in 170 je %d\n",t[3]);
printf("Stevilo ljudi, ki so veliki med 170 in 180 je %d\n",t[4]);
printf("Stevilo ljudi, ki so veliki med 180 in 190 je %d\n",t[5]);
printf("Stevilo ljudi, ki so veliki med 190 in 200 je %d\n",t[6]);
printf("Stevilo ljudi, ki so večji ali enaki 200 je %d\n",t[7]);
}
int vecjih(int *t,int n)
{
int i,v,r=0;
printf("Vnesi velikost: ");
scanf("%d",&v);
if (v<=140)
for (i=1;i<n;i++)
r = r + t[i];
else if ((v>140) && (v<=150))
for (i=2;i<n;i++)
r = r + t[i];
else if ((v>150) && (v<=160))
for (i=3;i<n;i++)
r = r + t[i];
else if ((v>160) && (v<=170))
for (i=4;i<n;i++)
r = r + t[i];
else if ((v>170) && (v<=180))
for (i=5;i<n;i++)
r = r + t[i];
else if ((v>180) && (v<=190))
for (i=6;i<n;i++)
r = r + t[i];
else if ((v>190) && (v<=200))
for (i=7;i<n;i++)
r = r + t[i];
else if (v>200)
r = 0;
return r;
}
void statistika(int *t, int n)
{
int i;
float v=0;
for (i=0;i<n;i++)
v += t[i];
printf("Stevilo ljudi, ki so manjsi ali enaki 140 je %d - (%0.2f%%)\n",t[0],t[0]*100/v);
printf("Stevilo ljudi, ki so veliki med 140 in 150 je %d - (%0.2f%%)\n",t[1],t[1]*100/v);
printf("Stevilo ljudi, ki so veliki med 150 in 160 je %d - (%0.2f%%)\n",t[2],t[2]*100/v);
printf("Stevilo ljudi, ki so veliki med 160 in 170 je %d - (%0.2f%%)\n",t[3],t[3]*100/v);
printf("Stevilo ljudi, ki so veliki med 170 in 180 je %d - (%0.2f%%)\n",t[4],t[4]*100/v);
printf("Stevilo ljudi, ki so veliki med 180 in 190 je %d - (%0.2f%%)\n",t[5],t[5]*100/v);
printf("Stevilo ljudi, ki so veliki med 190 in 200 je %d - (%0.2f%%)\n",t[6],t[6]*100/v);
printf("Stevilo ljudi, ki so vecji ali enaki 200 je %d - (%0.2f%%)\n",t[7],t[7]*100/v);
}
int main(void)
{
int t[8];
vnos(t,8);
izpis(t,8);
printf("Vecjih od podane velikosti je %d ljudi.\n",vecjih(t,8));
statistika(t,8);
return 0;
}
4. naloga
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
void napolni(int *t,int n)
{
int i;
for (i=0;i<n;i++)
t[i] = rand()%2;
}
void izpisi(int *t,int n)
{
int i;
for (i=0;i<n;i++)
printf("%d",t[i]);
printf("\n");
}
void nepredznaceno(int *t,int n)
{
int i,j=0;
long r=0;
for (i=n-1;i>=0;i--,j++)
{
r = r + t[i]*pow(2,j);
}
printf("Pretvorjeno v nepredznaceno vrednost je %ld\n",r);
}
void predznaceno(int *t,int n)
{
int i,j=0;
long r=0;
for (i=n-1;i>=1;i--,j++)
{
r = r + t[i]*pow(2,j);
}
if (t[0]==1)
r *= -1; // negativna
printf("Pretvorjeno v predznaceno vrednost je %ld\n",r);
}
void sestej(int *t,int *t2,int *t3,int n)
{
int i,d=0;
int r=0;
for (i=n-1;i>=0;i--)
{
r = t[i]+t2[i]+d;
switch (r)
{
case 2:
t3[i] = 0; d = 1; break;
case 3:
t3[i] = 1; d = 1; break;
default:
t3[i] = r;
d = 0;
}
}
}
int main(void)
{
int st[16],st2[16],r[16];
char i;
srand(time(NULL));
do
{
printf("***************MENI***************\n");
printf("1. generiranje tabel\n");
printf("2. izpis tabel\n");
printf("3. izpis kot nepredznaceno stevilo\n");
printf("4. izpis kot predznaceno stevilo\n");
printf("5. sestevek dveh binarnih stevil\n");
printf("0. izhod\n");
printf("\n");
printf("Izbira> ");
scanf("%c",&i);
switch (i)
{
case '1':
napolni(st,16);
napolni(st2,16);
break;
case '2':
izpisi(st,16);
izpisi(st2,16);
break;
case '3':
nepredznaceno(st,16);
break;
case '4':
predznaceno(st,16);
break;
case '5':
sestej(st,st2,r,16);
izpisi(st,16);
izpisi(st2,16);
izpisi(r,16);
break;
}
} while(i!='0');
return 0;
}
Modifié le: mercredi 26 février 2014, 03:47