100 likes | 254 Views
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
E N D
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 maatriksiks
Massiivi deklareerimisest • Massiivi suurus määratakse ära deklareerimise ajal nurksulgudes muutuja nime järel intarvud[10]//massiiv 10 täisarvu jaoks chartekstiVali[15]//massiiv 14+1 tähemärki • Massiivid võivad olla n-dimensioonilised ning dimensioonide pikkused võivad olla erinevad, nt intelemendid[N][M][K]
1-dimensiooniline massiiv (vektor) • Massiivi deklareerimisel on nurksulu sees selle suurus intarvud[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]);
Tunnitöö #2 • Võta aluseks eelmisel tunnil tehtud arvude summeerimise koodi • Kirjuta see kood ümber nii, et • sisestatud arvud salvestatakse 1-dimensioonilisse massiivi (vektor) • Vahesummad salvestatakse ja kuvatakse ekraanile teisest massiivist. • Tsükli kasutusel vaba voli • Kui algmaterjal puudu, siis võta koodinäidete alt sum.c
#define makrod • #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 SUURUS 7 #define MIN0 • Eesmärk: Likvideerida koodist maagilised numbrid
2-dimensiooniline massiiv (maatriks) • Antud juhul on tegu ruutmaatriksiga (dimensioonide suurused võrdsed)intmassiiv[5][5]
2-dimensioonilise massiivi läbikäik #include <stdio.h> intmain(void) { inti, j, arvuMassiiv[5][5]; for(i= 0; i< 5; i++) { for(j = 0; j< 5; j++) { arvuMassiiv[i][j]= 0; } } return 0; }
Tunnitöö #3 • 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 printfformaatimine %4d
Tunnitöö #4 / KODUTÖÖ • Modifitseeri korrutustabeli koodi nii, et: • Kasutaja saaks sisestada ise suuruse (pikkus x laius) • Kasuta mõlema jaoks eraldi dowhile () tsüklit • Abi piiramiseks leiad liittingimuste kasutamisest • Piira ära maksimaalne suurus vastavalt programmiakna laiusele • Hoiata kasutajat lubatud piiride ületamise kohta • Küsi kasutajalt uuesti suurus • Programmi peab olema võimalik korrata ilma taaskäivitamata