struktuurid vol2 n.
Download
Skip this Video
Download Presentation
Struktuurid vol2

Loading in 2 Seconds...

play fullscreen
1 / 12

Struktuurid vol2 - PowerPoint PPT Presentation


  • 154 Views
  • Uploaded on

Struktuurid vol2. Risto Heinsar & Ott Madis Ozolit. Struktuuride initsialiseerimisest. Struktuuri initsialiseerimine, kui andmed on järjest esitatud: toode kaup1 ={ 4.00 , " Kurk " };

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Struktuurid vol2' - aimee-hampton


Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
struktuurid vol2

Struktuurid vol2

Risto Heinsar & Ott Madis Ozolit

struktuuride initsialiseerimisest
Struktuuride initsialiseerimisest
  • Struktuuri initsialiseerimine, kui andmed on järjest esitatud:toode kaup1={4.00, "Kurk"};
  • Struktuuri initsialiseerimine, kui andmed on suvalises järjekorras:toode kaup2={.hind=0.50, .nimetus="Kapsas"};
  • Struktuuride massiivi initsialiseerimine esimesel meetodil:toodekaubad[]={{0.40, "Kiirnuudlid"}, {0.70,"Pelmeenid"}};

Risto Heinsar & Ott Madis Ozolit

n ide 1
Näide 1

1 #include <stdio.h>

2

3 typedefstruct{

4 float hind;

5 char nimetus[30];

6 } toode;

7

8 intmain(void){

9 toodekaup= {.hind=0.50, .nimetus="Kapsas"};

10 toodekaubad[]={

11 {0.40, "Kiirnuudlid"}, {0.70,"Pelmeenid"}

12 };

13 printf("%.2f eur - %s\n", kaup.hind, kaup.nimetus);

14 printf("%.2f eur - %s\n", kaubad[0].hind, kaubad[0].nimetus);

15 printf("%.2f eur - %s\n", kaubad[1].hind, kaubad[1].nimetus);

16 return 0;

17 }

Risto Heinsar & Ott Madis Ozolit

struct tagastusega funktsioon
Struct tagastusega funktsioon
  • Meenutame, et struktuur oli andmetüüp – seega ka funktsiooni tagastus võib olla struktuur
  • Struktuur tüüpi funktsioon tagastab ühetervikliku struktuuri.

Loome struktuuri tüübidefinitsiooni

Loome funktsiooni prototüübi

Loome funktsiooni

typedefstruct{

intx, y;

} punkt;

punktsisestaPunkt();

punktsisestaPunkt(){

punktajutine;

ajutine.x = 5;

ajutine.y = 7;

return ajutine;

}

Risto Heinsar & Ott Madis Ozolit

n ide 2
Näide 2

1 #include <stdio.h>

2 #include <math.h>

3

4 typedefstruct{

5 intx, y;

6 } punkt;

7

8 punktsisestaPunkt(intnr);

9

10 intmain(){

11 punktsirge[2];

12 sirge[0]=sisestaPunkt(1);

13 sirge[1]=sisestaPunkt(2);

14 printf("Loigupikkus on %.2f", sqrt(pow(sirge[1].x - sirge[0].x, 2) + pow(sirge[1].y - sirge[0].y, 2)));

15 return 0;

16 }

17

18 punktsisestaPunkt(intnr){

19 punktajutine;

20 printf("Sisestapunkti %d x ja y kordinaat\n> ", nr);

21 scanf("%d %d", &ajutine.x, &ajutine.y);

22 return ajutine;

23 }

Risto Heinsar & Ott Madis Ozolit

viitamisega seotud operatsioonid
Viitamisega seotud operatsioonid
  • int *p // viida deklareerimine
  • &muutuja // muutujalt aadressi pärimine
  • *p // viidatava väärtuse poole pöördumine
  • p=&muutuja // viidale muutuja aadressi omistamine
  • *p=55 // viidatavale mälupesale andmete kirjutamine
  • printf("%p", p) // viidal salvestatud aadressi trükkimine
  • printf("%d", *p) // viidataval aadressil olevate andmete trükkimine

Risto Heinsar & Ott Madis Ozolit

viitadest visuaalselt
Viitadest visuaalselt

#include <stdio.h>

intmain(void){

intnum=25, *p;

p=&num;

return 0;

}

*p0199FF8A

num

25

Risto Heinsar & Ott Madis Ozolit

viidad ja massiivid visuaalselt
Viidad ja massiivid visuaalselt

*p48F9AC91

intarray[]={5,3,7,3,5};

int*p;

p=array;

array[0]5

array[1]3

array[2]7

array[3]3

array[4]5

*(p+0)

*(p+1)

*(p+2)

*(p+4)

*(p+3)

Risto Heinsar & Ott Madis Ozolit

viidad ja struktuurid
Viidad ja struktuurid
  • Struktuuridele annab samamoodi viidata

structtootaja{

inttootajaKood;

char eesnimi[20];

char perenimi[20];

float tunnitasu;

};

structtootaja indrek;

structtootaja *strPtr;

strPtr=&indrek;

Risto Heinsar & Ott Madis Ozolit

viida kaudu p rdumine
Viida kaudu pöördumine

Need 2 kirjutusviisi on samaväärsed!

(*strPtr).tootajakood;

(*strPtr).eesnimi;

(*strPtr).perenimi;

(*strPtr).tunnitasu;

strPtr->tootajakood;

strPtr->eesnimi;

strPtr->perenimi;

strPtr->tunnitasu;

Peab meeldima!

Risto Heinsar & Ott Madis Ozolit

n ide 3
Näide 3

1 #include <stdio.h>

2 #include <string.h>

3

4 typedefstruct{

5 inttootajaKood;

6 char eesnimi[20];

7 char perenimi[20];

8 float tunnitasu;

9 } tootaja;

10

11 void trykiInfo(tootaja*ptr);

12

13 intmain(void) {

14 tootajaindrek={75, "Indrek", "Tamm", 2.75};

15 trykiInfo(&indrek);

16 return 0;

17 }

18

19 void trykiInfo(tootaja*ptr){

20 printf("Tootaja %06d, %s %s teenibtunnis %2.2f",

21 ptr->tootajaKood, ptr->eesnimi, ptr->perenimi, ptr->tunnitasu);

22 }

Risto Heinsar & Ott Madis Ozolit

tunnit
Tunnitöö
  • Loe sisse failidest ja salvesta struktuuridesse:
    • Tooted – tootekood, toote nimetus
    • Laoseis – tootekood, laoseis
  • Sorteeri tooted toote nime alusel tähestikulises järjekorras
  • Väljasta ainult need tooted, mille laojääk on alla 5 ühiku
  • Kasuta vähemalt ühes funktsioonis viitasid struktuurile!

Risto Heinsar & Ott Madis Ozolit