Rešitev LAV 28
Completion requirements
1. naloga
#include <stdio.h>
#include <string.h>
struct datum {
int dan;
int mesec;
int leto;
};
struct lastnosti {
int starost;
int visina;
int teza;
};
struct oseba {
char ime[30];
char priimek[40];
char naslov[50];
struct datum roj_dan;
struct lastnosti lastnost;
};
void vnos_datum(struct datum *d)
{
fflush(stdin);
printf("Vnesi dan: ");
scanf("%d",&d->dan);
printf("Vnesi mesec: ");
scanf("%d",&d->mesec);
printf("Vnesi leto: ");
scanf("%d",&d->leto);
}
void izpis_datum(struct datum d)
{
printf("%d.%d.%d\n",d.dan,d.mesec,d.leto);
}
void vnos_lastnosti(struct lastnosti *l)
{
printf("Vnesi starost: ");
scanf("%d",&l->starost);
printf("Vnesi visino: ");
scanf("%d",&l->visina);
printf("Vnesi tezo: ");
scanf("%d",&l->teza);
}
void izpis_lastnosti(struct lastnosti l)
{
printf("Starost: %d\nVisina: %d\nTeza: %d\n",l.starost,l.visina,l.teza);
}
void vnos_oseba(struct oseba *o)
{
printf("Vnesi ime: ");
scanf("%s",o->ime);
printf("Vnesi priimek: ");
scanf("%s",o->priimek);
fflush(stdin);
printf("Vnesi naslov: ");
fgets(o->naslov,50,stdin);
if (o->naslov[strlen(o->naslov)-1]=='\n')
o->naslov[strlen(o->naslov)-1] = '\0';
printf("Rojstni dan\n");
vnos_datum(&o->roj_dan);
printf("Lastnosti\n");
vnos_lastnosti(&o->lastnost);
}
void izpis_oseba(struct oseba o)
{
printf("Ime: %s\nPriimek: %s\nNaslov: %s\nRojstni dan: ",o.ime,o.priimek,o.naslov);
izpis_datum(o.roj_dan);
izpis_lastnosti(o.lastnost);
}
int najstarejsi(struct oseba *o,int n)
{
int i,p;
p=0;
struct datum d;
d = o[p].roj_dan;
for (i=1;i<n;i++)
{
if (o[i].roj_dan.leto <= d.leto)
if (o[i].roj_dan.mesec <= d.mesec)
if (o[i].roj_dan.dan <= d.dan)
{
p = i;
d = o[i].roj_dan;
}
}
return p;
}
int main(void)
{
struct oseba osebe[10];
int i;
int n = 10;
for (i=0;i<n;i++)
vnos_oseba(&osebe[i]);
for (i=0;i<n;i++)
izpis_oseba(osebe[i]);
printf("Najstarejsa oseba je:\n");
izpis_oseba(osebe[najstarejsi(osebe,n)]);
return 0;
}
2. naloga
#include <stdio.h>
#include <conio.h>
#include <string.h>
struct vreme {
int temp;
int vlaznost;
char vreme[20];
};
void vnos(struct vreme *v)
{
printf("Vnesi temperaturo: ");
scanf("%d",&v->temp);
printf("Vnesi vlaznost v %%: ");
scanf("%d",&v->vlaznost);
printf("Vnesi vreme (soncno, oblacno, delno oblacno): ");
scanf("%s",v->vreme);
}
void izpis(struct vreme v)
{
if (v.temp <= 5)
printf("Obleci se toplo, zunaj je mraz");
else if ((v.temp > 5) && (v.temp <= 17))
printf("Obleci se srednje toplo, zunaj je hladno");
else if (v.temp > 17)
printf("Obleci se v kratke rokave, zunaj je vroce");
if (strcmp(v.vreme,"soncno")==0)
{
// nic posebnega
}
else if ((strcmp(v.vreme,"oblacno")==0) && (v.vlaznost > 50))
printf(" in vzemi deznik, mozne so padavine");
else if ((strcmp(v.vreme,"delno oblacno")==0) && (v.vlaznost > 50))
printf(" in vzemi deznik, mozne so padavine");
printf(".");
}
int main(void)
{
struct vreme v;
vnos(&v);
izpis(v);
getch();
return 0;
}
3. naloga
#include <dos.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
struct cas {
int ur,min,sec;
};
void vnos(struct dostime_t t, struct cas *c)
{
c->ur = t.hour;
c->min = t.minute;
c->sec = t.second;
}
void izpis(struct cas c, struct cas c2)
{
long p1,p2;
p1 = c.sec+c.min*60+c.ur*3600;
p2 = c2.sec+c2.min*60+c2.ur*3600;
printf("Potekli cas je %ld sekund\n",p2-p1);
}
int main(void)
{
struct dostime_t cas1,cas2;
struct cas c1,c2;
_dos_gettime(&cas1);
vnos(cas1,&c1);
do
{
} while (!kbhit());
_dos_gettime(&cas2);
vnos(cas2,&c2);
izpis(c1,c2);
return 0;
}
4. naloga
#include <stdio.h>
#include <conio.h>
#include <math.h>
struct tocka {
int x,y;
};
struct trikotnik {
struct tocka tocke[3];
};
struct kvadrat {
struct tocka tocke[4];
};
void vnos_tocke(struct tocka *t)
{
printf("Vnesi x: ");
scanf("%d",&t->x);
printf("Vnesi y: ");
scanf("%d",&t->y);
}
void izpis_tocke(struct tocka t)
{
printf("Koordinata (x,y) = (%d,%d)\n",t.x,t.y);
}
void vnos_trikotnik(struct trikotnik *t)
{
int i;
for (i=0;i<3;i++)
vnos_tocke(&t->tocke[i]);
}
void izpis_trikotnik(struct trikotnik t)
{
int i;
for (i=0;i<3;i++)
izpis_tocke(t.tocke[i]);
}
float razdalja(struct tocka t1, struct tocka t2)
{
return abs(sqrt(pow(t1.x-t2.x,2)+pow(t1.y-t2.y,2)));
}
float obseg_trikotnik(struct trikotnik t)
{
// a + b + c
return razdalja(t.tocke[0],t.tocke[1])+razdalja(t.tocke[1],t.tocke[2])+razdalja(t.tocke[2],t.tocke[0]);
}
float ploscina_trikotnik(struct trikotnik t)
{
return 1.0/2.0*abs(t.tocke[0].x*(t.tocke[1].y-t.tocke[2].y)+t.tocke[1].x*(t.tocke[2].y-t.tocke[0].y)+t.tocke[2].x*(t.tocke[0].y-t.tocke[1].y));
}
void vnos_kvadrat(struct kvadrat *k)
{
int i;
for (i=0;i<4;i++)
vnos_tocke(&k->tocke[i]);
}
void izpis_kvadrat(struct kvadrat k)
{
int i;
for (i=0;i<4;i++)
izpis_tocke(k.tocke[i]);
}
float obseg_kvadrat(struct kvadrat k)
{
return (razdalja(k.tocke[0],k.tocke[1])+razdalja(k.tocke[1],k.tocke[2])+razdalja(k.tocke[2],k.tocke[3])+razdalja(k.tocke[3],k.tocke[0]));
}
float ploscina_kvadrat(struct kvadrat k)
{
return (razdalja(k.tocke[0],k.tocke[1])*razdalja(k.tocke[1],k.tocke[2]));
}
void narisi_trikotnik(struct trikotnik t)
{
int i;
for (i=0;i<17;i++)
{
gotoxy(50+i,14);
printf("*");
}
for (i=1;i<=8;i++)
{
gotoxy(50+i,14-i);
printf("*");
gotoxy(66-i,14-i);
printf("*");
}
}
void narisi_kvadrat(struct kvadrat k)
{
int i;
for (i=50;i<=70;i++)
{
gotoxy(i,5);
printf("*");
gotoxy(i,14);
printf("*");
}
for (i=6;i<14;i++)
{
gotoxy(50,i);
printf("*");
gotoxy(70,i);
printf("*");
}
}
int main(void)
{
char c;
struct trikotnik t;
struct kvadrat k;
clrscr();
printf("Pritisni 1 za trikotnik oz. 2 za kvadrat: ");
scanf("%c",&c);
if (c == '1')
{
vnos_trikotnik(&t);
izpis_trikotnik(t);
printf("Obseg trikotnika je %0.2f\n",obseg_trikotnik(t));
printf("Ploscina trikotnika je %0.2f\n",ploscina_trikotnik(t));
narisi_trikotnik(t);
}
else if (c == '2')
{
vnos_kvadrat(&k);
izpis_kvadrat(k);
printf("Obseg kvadrata je %0.2f\n",obseg_kvadrat(k));
printf("Ploscina kvadrata je %0.2f\n",ploscina_kvadrat(k));
narisi_kvadrat(k);
}
getch();
return 0;
}
#include <stdio.h>
#include <string.h>
struct datum {
int dan;
int mesec;
int leto;
};
struct lastnosti {
int starost;
int visina;
int teza;
};
struct oseba {
char ime[30];
char priimek[40];
char naslov[50];
struct datum roj_dan;
struct lastnosti lastnost;
};
void vnos_datum(struct datum *d)
{
fflush(stdin);
printf("Vnesi dan: ");
scanf("%d",&d->dan);
printf("Vnesi mesec: ");
scanf("%d",&d->mesec);
printf("Vnesi leto: ");
scanf("%d",&d->leto);
}
void izpis_datum(struct datum d)
{
printf("%d.%d.%d\n",d.dan,d.mesec,d.leto);
}
void vnos_lastnosti(struct lastnosti *l)
{
printf("Vnesi starost: ");
scanf("%d",&l->starost);
printf("Vnesi visino: ");
scanf("%d",&l->visina);
printf("Vnesi tezo: ");
scanf("%d",&l->teza);
}
void izpis_lastnosti(struct lastnosti l)
{
printf("Starost: %d\nVisina: %d\nTeza: %d\n",l.starost,l.visina,l.teza);
}
void vnos_oseba(struct oseba *o)
{
printf("Vnesi ime: ");
scanf("%s",o->ime);
printf("Vnesi priimek: ");
scanf("%s",o->priimek);
fflush(stdin);
printf("Vnesi naslov: ");
fgets(o->naslov,50,stdin);
if (o->naslov[strlen(o->naslov)-1]=='\n')
o->naslov[strlen(o->naslov)-1] = '\0';
printf("Rojstni dan\n");
vnos_datum(&o->roj_dan);
printf("Lastnosti\n");
vnos_lastnosti(&o->lastnost);
}
void izpis_oseba(struct oseba o)
{
printf("Ime: %s\nPriimek: %s\nNaslov: %s\nRojstni dan: ",o.ime,o.priimek,o.naslov);
izpis_datum(o.roj_dan);
izpis_lastnosti(o.lastnost);
}
int najstarejsi(struct oseba *o,int n)
{
int i,p;
p=0;
struct datum d;
d = o[p].roj_dan;
for (i=1;i<n;i++)
{
if (o[i].roj_dan.leto <= d.leto)
if (o[i].roj_dan.mesec <= d.mesec)
if (o[i].roj_dan.dan <= d.dan)
{
p = i;
d = o[i].roj_dan;
}
}
return p;
}
int main(void)
{
struct oseba osebe[10];
int i;
int n = 10;
for (i=0;i<n;i++)
vnos_oseba(&osebe[i]);
for (i=0;i<n;i++)
izpis_oseba(osebe[i]);
printf("Najstarejsa oseba je:\n");
izpis_oseba(osebe[najstarejsi(osebe,n)]);
return 0;
}
2. naloga
#include <stdio.h>
#include <conio.h>
#include <string.h>
struct vreme {
int temp;
int vlaznost;
char vreme[20];
};
void vnos(struct vreme *v)
{
printf("Vnesi temperaturo: ");
scanf("%d",&v->temp);
printf("Vnesi vlaznost v %%: ");
scanf("%d",&v->vlaznost);
printf("Vnesi vreme (soncno, oblacno, delno oblacno): ");
scanf("%s",v->vreme);
}
void izpis(struct vreme v)
{
if (v.temp <= 5)
printf("Obleci se toplo, zunaj je mraz");
else if ((v.temp > 5) && (v.temp <= 17))
printf("Obleci se srednje toplo, zunaj je hladno");
else if (v.temp > 17)
printf("Obleci se v kratke rokave, zunaj je vroce");
if (strcmp(v.vreme,"soncno")==0)
{
// nic posebnega
}
else if ((strcmp(v.vreme,"oblacno")==0) && (v.vlaznost > 50))
printf(" in vzemi deznik, mozne so padavine");
else if ((strcmp(v.vreme,"delno oblacno")==0) && (v.vlaznost > 50))
printf(" in vzemi deznik, mozne so padavine");
printf(".");
}
int main(void)
{
struct vreme v;
vnos(&v);
izpis(v);
getch();
return 0;
}
3. naloga
#include <dos.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
struct cas {
int ur,min,sec;
};
void vnos(struct dostime_t t, struct cas *c)
{
c->ur = t.hour;
c->min = t.minute;
c->sec = t.second;
}
void izpis(struct cas c, struct cas c2)
{
long p1,p2;
p1 = c.sec+c.min*60+c.ur*3600;
p2 = c2.sec+c2.min*60+c2.ur*3600;
printf("Potekli cas je %ld sekund\n",p2-p1);
}
int main(void)
{
struct dostime_t cas1,cas2;
struct cas c1,c2;
_dos_gettime(&cas1);
vnos(cas1,&c1);
do
{
} while (!kbhit());
_dos_gettime(&cas2);
vnos(cas2,&c2);
izpis(c1,c2);
return 0;
}
4. naloga
#include <stdio.h>
#include <conio.h>
#include <math.h>
struct tocka {
int x,y;
};
struct trikotnik {
struct tocka tocke[3];
};
struct kvadrat {
struct tocka tocke[4];
};
void vnos_tocke(struct tocka *t)
{
printf("Vnesi x: ");
scanf("%d",&t->x);
printf("Vnesi y: ");
scanf("%d",&t->y);
}
void izpis_tocke(struct tocka t)
{
printf("Koordinata (x,y) = (%d,%d)\n",t.x,t.y);
}
void vnos_trikotnik(struct trikotnik *t)
{
int i;
for (i=0;i<3;i++)
vnos_tocke(&t->tocke[i]);
}
void izpis_trikotnik(struct trikotnik t)
{
int i;
for (i=0;i<3;i++)
izpis_tocke(t.tocke[i]);
}
float razdalja(struct tocka t1, struct tocka t2)
{
return abs(sqrt(pow(t1.x-t2.x,2)+pow(t1.y-t2.y,2)));
}
float obseg_trikotnik(struct trikotnik t)
{
// a + b + c
return razdalja(t.tocke[0],t.tocke[1])+razdalja(t.tocke[1],t.tocke[2])+razdalja(t.tocke[2],t.tocke[0]);
}
float ploscina_trikotnik(struct trikotnik t)
{
return 1.0/2.0*abs(t.tocke[0].x*(t.tocke[1].y-t.tocke[2].y)+t.tocke[1].x*(t.tocke[2].y-t.tocke[0].y)+t.tocke[2].x*(t.tocke[0].y-t.tocke[1].y));
}
void vnos_kvadrat(struct kvadrat *k)
{
int i;
for (i=0;i<4;i++)
vnos_tocke(&k->tocke[i]);
}
void izpis_kvadrat(struct kvadrat k)
{
int i;
for (i=0;i<4;i++)
izpis_tocke(k.tocke[i]);
}
float obseg_kvadrat(struct kvadrat k)
{
return (razdalja(k.tocke[0],k.tocke[1])+razdalja(k.tocke[1],k.tocke[2])+razdalja(k.tocke[2],k.tocke[3])+razdalja(k.tocke[3],k.tocke[0]));
}
float ploscina_kvadrat(struct kvadrat k)
{
return (razdalja(k.tocke[0],k.tocke[1])*razdalja(k.tocke[1],k.tocke[2]));
}
void narisi_trikotnik(struct trikotnik t)
{
int i;
for (i=0;i<17;i++)
{
gotoxy(50+i,14);
printf("*");
}
for (i=1;i<=8;i++)
{
gotoxy(50+i,14-i);
printf("*");
gotoxy(66-i,14-i);
printf("*");
}
}
void narisi_kvadrat(struct kvadrat k)
{
int i;
for (i=50;i<=70;i++)
{
gotoxy(i,5);
printf("*");
gotoxy(i,14);
printf("*");
}
for (i=6;i<14;i++)
{
gotoxy(50,i);
printf("*");
gotoxy(70,i);
printf("*");
}
}
int main(void)
{
char c;
struct trikotnik t;
struct kvadrat k;
clrscr();
printf("Pritisni 1 za trikotnik oz. 2 za kvadrat: ");
scanf("%c",&c);
if (c == '1')
{
vnos_trikotnik(&t);
izpis_trikotnik(t);
printf("Obseg trikotnika je %0.2f\n",obseg_trikotnik(t));
printf("Ploscina trikotnika je %0.2f\n",ploscina_trikotnik(t));
narisi_trikotnik(t);
}
else if (c == '2')
{
vnos_kvadrat(&k);
izpis_kvadrat(k);
printf("Obseg kvadrata je %0.2f\n",obseg_kvadrat(k));
printf("Ploscina kvadrata je %0.2f\n",ploscina_kvadrat(k));
narisi_kvadrat(k);
}
getch();
return 0;
}
Last modified: Wednesday, 26 February 2014, 3:47 AM