Upload
arthur-richards
View
50
Download
5
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
Massiividarray
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
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
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
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
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
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
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
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
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
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