/*a)Kirjoita määrittely tietueelle, jonka avulla voit esittää tason pisteen (x,y). Jos haluat, voit käyttää typedef-määrittelyä. b) Määrittele muutamia pisteitä käsittelemällä ohjelmassa suoraan tietueen kenttiä. c) Kirjoita funktio luo_piste(), jolle annetaan parametreina pisteen x- ja y-koordinaatit. Funktio palauttaa arvonaan pisteen. Funktion kutsu on muotoa: p1 = luo_piste(x1,y1); /* p1 on määritelty: struct Piste p1; * Tee yksi toimiva ohjelma, jossa esiintyvät yo. asiat. Palauta pelkkä c-tiedosto.*/ #include int main(void) { struct Piste { int x; int y; } ; // Tehdään Piste niminen tietuetyyppi, joka sisältää arvot int x ja int y struct Piste arvot[2]; // Luodaan arvot niminen array, joka on tyyppiä Piste. (luotiin äskön) arvot[0].x = 1; arvot[0].y = 2; arvot[1].x = 3; arvot[1].y = 2; arvot[2].x = 6; arvot[2].y = 4; // Sijoitettiin vähän arvoja, kuten tehtävänannossa käskettiin. struct Piste pl; // tehdään Piste tyyppinen muuttuja nimeltään pl, kuten ohjeessa käskettiin. struct Piste luo_piste(int x1, int y1) // funktion luo_piste määrittely. Funktio palauttaa Piste tyyppisen arvon ja ottaa vastaan kaksi int tyyppistä arvoa. { struct Piste foo; // ei tullut mieleen parempaa varmatoimista tapaa palauttaa structia. Tehdään siis funktion sisäiseen käyttöön foo nimenen struct joka on Piste tyyppiä. foo.x = x1; foo.y = y1; return foo; // palautetaan foo } pl = luo_piste(5,9); // käytetään funktiota arvoilla x=5, y=9 printf("\nLuotu piste: (%d, %d) \n", pl.x, pl.y); // kerrotaan käyttäjälle arvot struct Piste summavektori; // luodaan Piste tyyppinen muuttuja nimeltään summavektori struct Piste paikkavektoreiden_summa(int x1,int y1,int x2,int y2) // funktiomäärittely. sama homma ku aiemmin, vähän isommalla määrällä vastaanotettavia arvoja { struct Piste foo; foo.x = x1 + x2; foo.y = y1 + y2; return foo; } summavektori = paikkavektoreiden_summa(1, 2, 3, 3); // käytetään luotua funktiota printf("\nPaikkavektoreiden summa: (%d, %d) \n", summavektori.x, summavektori.y); }