/*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 <stdio.h>int main(void){struct Piste { int x; int y;} ; // Tehdään Piste niminen tietuetyyppi, joka sisältää arvot int x ja int ystruct 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=9printf("\nLuotu piste: (%i, %i) \n", pl.x, pl.y); // kerrotaan käyttäjälle arvotstruct Piste summavektori; // luodaan Piste tyyppinen muuttuja nimeltään summavektoristruct 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 funktiotaprintf("\nPaikkavektoreiden summa: (%i, %i) \n", summavektori.x, summavektori.y);}