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;
}

Остання зміна: середу 26 лютого 2014 03:47 AM