11
Massiivid array

Massiivid array

Embed Size (px)

DESCRIPTION

Massiivid array. Massiivi olemus. Massiiv on ühte tüüpi andmete kogum (hulk) Täisarvud ( int ) Murdarvud ( float , double ) Tähemärgid ( char ) // tuntud ka, kui string Jne Massiivi elemendid on indekseeritud alates nullindast Massiivi liikmete poole pöördutakse indeksite abil - PowerPoint PPT Presentation

Citation preview

Page 1: Massiivid array

Massiividarray

Page 2: Massiivid array

2

Massiivi olemus

• Massiiv on ühte tüüpi andmete kogum (hulk)• Täisarvud (int)• Murdarvud (float, double)• Tähemärgid (char) // tuntud ka, kui string• Jne

• Massiivi elemendid on indekseeritud alates nullindast• Massiivi liikmete poole pöördutakse indeksite abil• 1-dimensioonilist massiivi kutsutakse ka vektoriks• 2-dimensioonilist massiivi kutsutakse ka maatriksiks2015

Page 3: Massiivid array

3

Massiivi deklareerimisest

• Massiivi suurus määratakse ära deklareerimise ajal nurksulgudes muutuja nime järel

int arvud[10] //massiiv 10 täisarvu jaoks

char tekstiVali[15] //massiiv 14+1 tähemärki

• Massiivid võivad olla n-dimensioonilised ning dimensioonide pikkused võivad olla erinevad, nt

int elemendid[N][M][K]

2015

Page 4: Massiivid array

4

1-dimensiooniline massiiv (vektor)

• Massiivi deklareerimisel on nurksulu sees selle suurusint arvud[5];

• Massiivi poole pöördumisel on nurksulgude sees soovitud elemendi indeks, st

arvud[indeks]

• Nt trükkimaks välja massiivi kolmandat elementi kirjutame:

printf("%d", arvud[2]);

arvud[0] arvud[1] arvud[2] arvud[3] arvud[4]

2015

Page 5: Massiivid array

5

Tunnitöö #1

• Koostada algoritm ja selle põhjal programm

• Klaviatuurilt loetakse sisse 5 arvu

• Pärast sisestust kuvatakse ekraanile järgnev tulemus:• Kasutaja sisestatud arvude loetelu• Kõige väiksem sisestatud arv• Kõige suurem sisestatud arv

2015

Page 6: Massiivid array

6

Täiustused edasijõudnutele

• Tee järgnevad muudatused algsesse programmijuppi:• Leia ka arvude keskmine, summa ja korrutis• Kasuta ka kena vormistust – abiks nt "%3d", "%3.2f" jne • Luba kasutajal ise öelda kui mitu arvu ta tahab sisestada.

2015

Page 7: Massiivid array

7

#define makrod (preprotsessori direktiiv)• #define makrod täidetakse enne koodi kompileerimist• Töötab suuresti „find and replace“ põhimõttel• Paigutatakse koodi algusse kohe pärast #include käske

#define <tunnus> <asendus>

#define SIZE 7

#define TEXTFIELD_LEN 30

#define OPTIONS "settings.ini"

• Eesmärk: Likvideerida koodist maagilised numbrid, konstandid2015

Page 8: Massiivid array

8

2-dimensiooniline massiiv (maatriks)

• Antud juhul on tegu ruutmaatriksiga (dimensioonide suurused võrdsed)

int massiiv[5][5]massiiv[0][0] massiiv[0][1] massiiv[0][2] massiiv[0][3] massiiv[0][4]

massiiv[1][0] massiiv[1][1] massiiv[1][2] massiiv[1][3] massiiv[1][4]

massiiv[2][0] massiiv[2][1] massiiv[2][2] massiiv[2][3] massiiv[2][4]

massiiv[3][0] massiiv[3][1] massiiv[3][2] massiiv[3][3] massiiv[3][4]

massiiv[4][0] massiiv[4][1] massiiv[4][2] massiiv[4][3] massiiv[4][4]

2015

Page 9: Massiivid array

9

2-dimensioonilise massiivi läbikäik

#include <stdio.h>

 

int main(void)

{

int i, j, arvuMassiiv[5][5];

for (i = 0; i < 5; i++)

{

for (j = 0; j < 5; j++)

{

arvuMassiiv[i][j] = 0;

}

}

return 0;

}

2015

Page 10: Massiivid array

10

Tunnitöö #2

• Loo 2-dimensiooniline täisarvude massiiv 10x10 korrutustabeli jaoks• Massiivi pikkuste ja tsükli piirajate puhul väldi maagilisi numbreid!• Korrutustabel salvestatakse massiivi genereerimise käigus

→Kasuta for() tsükleid!

• Korrutustabeli ekraanile kuvamiseks loetakse see massiivist→Kasuta while() tsükleid!

• Korrutustabelit kuvades kasuta inimlikku vormindust→Reavahetused tsüklis õiges kohas→Numbrite vormindamiseks printf formaatimine %4d

2015

Page 11: Massiivid array

11

Kodutöö

•Modifitseeri korrutustabeli koodi nii, et:• Kasutaja saaks sisestada ise suuruse (pikkus x laius)• Piira ära pikkuse ja laiuse suurus vastavalt palju sul

programmiaknasse tegelikult mahub!• Kui kasutaja sisestab ebasobiva suuruse, siis küsitakse talt seda uuesti. Selleks

kasuta do while() tsüklit

• Programmi peab olema võimalik korrata taaskäivitamata

• Tee tehtu kohta ka UMLis algoritm. Selleks kasuta tunnitöö #2 seisu!

2015