9
Struktuurid (a.k.a. kirjed) Risto Heinsar & Ott Madis Ozolit

Struktuurid ( a.k.a . kirjed)

  • Upload
    albany

  • View
    55

  • Download
    8

Embed Size (px)

DESCRIPTION

Struktuurid ( a.k.a . kirjed). Risto Heinsar & Ott Madis Ozolit. Mis asi on struktuur. Järjekordne andmetüüp Struktuuri sisu saad ise koostada Stuktuur koosneb teistest andmetüüpidest ( int , float , double jt). struct tootaja { int tootajaKood ; char eesnimi [ 20 ]; - PowerPoint PPT Presentation

Citation preview

Page 1: Struktuurid ( a.k.a . kirjed)

Struktuurid (a.k.a. kirjed)

Risto Heinsar & Ott Madis Ozolit

Page 2: Struktuurid ( a.k.a . kirjed)

2

Mis asi on struktuur

• Järjekordne andmetüüp• Struktuuri sisu saad ise koostada• Stuktuur koosneb teistest andmetüüpidest (int, float, double jt)

struct tootaja{ int tootajaKood; char eesnimi[20]; char perenimi[20]; float tunnitasu; };struct tootaja indrek;

2013

Page 3: Struktuurid ( a.k.a . kirjed)

3

Struktuurile tüübi loomine

• Luues struktuurile tüübi, saame hiljem vältida iga struktuuri eraldi määramist• Struktuuri tüübid kirjutatakse programmi päisesse pärast preprotsessori

direktiive.

#include <stdio.h>typedef struct{ int tootajaKood; char eesnimi[20]; char perenimi[20]; float tunnitasu;} andmed; int main(void){ andmed tootaja[10];}

2013

Page 4: Struktuurid ( a.k.a . kirjed)

4

Struktuuris väljade poole pöördumine• Tavaliselt eraldatakse stuktuuri nimi ja välja nimi üksteisest punktiga

struktuurinimi.väljanimi indrek.tunnitasu=15.4; printf("%f", indrek.tunnitasu); tootaja[5].tunnitasu=indrek.tunnitasu; strcpy(tootaja[3].eesnimi, "Indrek");

• Struktuuridel saab kasutada ka omistustehet! struktuurA=struktuurB; tootaja[5]=indrek;

2013

Page 5: Struktuurid ( a.k.a . kirjed)

5

Näide 1 1 #include <stdio.h>

2 #include <string.h>

3

4 struct tootaja{

5 int tootajaKood;

6 char eesnimi[20];

7 char perenimi[20];

8 float tunnitasu;

9 };

10

11 int main(void) {

12 struct tootaja indrek;

13 indrek.tootajaKood = 75;

14 indrek.tunnitasu = 2.75;

15 strcpy(indrek.eesnimi, "Indrek");

16 strcpy(indrek.perenimi, "Tamm");

17 printf("Tootaja %06d, %s %s teenib tunnis %2.2f",

18 indrek.tootajaKood, indrek.eesnimi, indrek.perenimi, indrek.tunnitasu);

19 return 0;

20 }2013

Page 6: Struktuurid ( a.k.a . kirjed)

6

Näide 2 1 #include <stdio.h>

2 #include <math.h>

3

4 typedef struct {

5 int x;

6 int y;

7 } punkt;

8

9 int main(void) {

10 double pikkus;

11 punkt sirge[2];

12 sirge[0].x = 10;

13 sirge[0].y = 6;

14 sirge[1].x = 9;

15 sirge[1].y = 2;

16 pikkus = sqrt(pow(sirge[1].x - sirge[0].x, 2) + pow(sirge[1].y - sirge[0].y, 2));

17 printf("Lõigu pikkus on %lg", pikkus);

18 return 0;

19 }

2013

Page 7: Struktuurid ( a.k.a . kirjed)

7

Kodutöö I

• Nüüdseks on kõik vajalik kodutöö I sooritamiseks läbi võetud!

• Meenutame, et korrektne kodutöö eeldab järgnevat:• Failide kasutamine• Struktuuride (kirjete) kasutamine• Funktsioonide kasutamine• Trepitud kood

2013

Page 8: Struktuurid ( a.k.a . kirjed)

8

Kodutöö I

• Kodutöö variant vastavalt matriklinumbri viimasele numbrile:http://www.tud.ttu.ee/im/Vladimir.Viies/PROGRAMMEERIMINE/PR2/Progra_II_12/Pr2_kodu_I_12/

• Esitada tuleb ainult kood ja vajalikud andmefailid selle jooksutamiseks!

• Kodutööd moodustavad 35% hindest!• Tähtaeg on enne I KT toimumist – st 4. õppenädala lõpuks!2013

Page 9: Struktuurid ( a.k.a . kirjed)

9

Tunnitöö

• Loe failist sisse töötaja isikuandmed: isikukood, eesnimi, perekonnanimi ja linn.• Programm peab olema võimeline töötama erineva arvu

lähteandmetega!• Andmed tuleb lugeda struktuuridesse (struktuuri massiiv)• Kasutaja sisestab klaviatuurilt linna nime• Programm trükib ekraanile kõik küsitud linnas elavate inimeste isikuandmed• Kui ühtegi isikut ei leitud, siis tuleb sellekohane teade!

2013