110 likes | 295 Views
Massiivid array. Tunnitöö #1. Joonistame eelmise nädala 5-arvu summeerimise UMLina redaktoris Selleks: Käivita terminal Käivita käsk „ cad “ Käivita käsk „ argouml “ Alustamiseks valime „New activity diagramm“ NB! Salvesta tööd pidevalt!. Massiivi olemus.
E N D
Tunnitöö #1 • Joonistame eelmise nädala 5-arvu summeerimise UMLina redaktoris • Selleks: • Käivita terminal • Käivita käsk „cad“ • Käivita käsk „argouml“ • Alustamiseks valime „New activity diagramm“NB! Salvesta tööd pidevalt!
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) • Muutuja deklareerimisel on nurksulu sees suurus intarvud[5]; • Muutuja 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 vtblue.pri.ee/tty - > Prog1 - > Tunnikoodid - > 3_tunnikood.c
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() { inti, j, arvuMassiiv[5][5]; for(i= 0; i< 5; i++) { for(j = 0; j< 5; j++) { arvuMassiiv[i][j]= 0; } } return 0; }
#define makrod • #define makrod täidetakse enne koodi kompileerimist • Töötab „find and replace“ põhimõttel • Paigutatakse koodi algusse kohe pärast #include käske #define <tunnus><asendus> #define SUURUS 7 #define MIN0 • Tähtsaim eesmärk: maagiliste numbrite likvideerimine!
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
Kodutöö • Modifitseeri korrutustabeli koodi nii, et: • Kasutaja saaks sisestada ise suuruse (pikkus x laius) • 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 • Joonista kohandatud korrutustabelile algoritm soovitavalt juba CAD vahendiga.