[Aabits, vihik 4; klass Jada0]

Slides:



Advertisements
Seotud esitlused
MSE Soojusmajandus ENERGIA TARBIMINE 2 osa.
Advertisements

Eesti maaelu arengukava vahehindamine
Rahvatervise süsteemi kaasajastamine
Tere tulemast kogemuskohtumisele!
Hariduse väljakutsed, üldhariduskoolide võrk ja koolivõrgu programm
Korvpalluri füüsiline ettevalmistus
Täiskasvanu kui enesearengu subjekt
Esitluse väljavõte:

[Aabits, vihik 4; klass Jada0] Loenguplaan L4 Kordamine: Ühiksuurendamine Üldtsüklidirektiiv Järjenditöötlus (I). Massiivi töötlemise meetodid Järjend kui ühemõõtmeline massiiv Algtüüp vs viittüüp Massiivi loomine Tsükkel üle massiivi [Aabits, vihik 4; klass Jada0]

Tingimusdirektiiv (if ... else) if( loogiline avaldis){ … “kui-siis” osa } else … “muidu” osa false loog. av. true … “kui-siis” osa loogiline avaldis ? … “kui-siis” osa … “muidu” osa … “muidu” osa

Kordamiseks Antud programmilõigu puhul täita tabel: int x, t; ... if(x++ > 100) t = 1; else if (x++ > 50) t = 0; else t = -1; x alg-väärtus x lõpp- väärtus t lõpp- 49 50 75 100 Täita sama tabel, kui programmilõigus on aval- dised x++ asendatud aval- disega ++x .

C - sammu järeltegevus(ed) S - sisu Üldtsüklidirektiiv: for(A; B; C){ S }//for A B? S C – + A - eeltegevus(ed) B - loogiline avaldis (jätkamistingimus) C - sammu järeltegevus(ed) S - sisu

Täita lüngad ültsüklidirektiivides (for-tsüklites): double x; ... for( . . . ){ // korrata 9 korda: x = Math.sqrt(x); }

B. int n, s = 0; ... for( . . . ){ // korrata iga i korral, // i = 0, 1, ... n-1: s = s + i; } Lõigu B korral Kirjutada lühemalt tsüklidirektiivi sisu Viia tsüklidirektiivi sisu tsükli päisesse Mis leitakse (muutujasse s) tsüklidirektiivi täitmise tulemusena? Kirjutada lõik B võimalikult lühidalt

C - sammu järeltegevus(ed) S - sisu break ja continue for(A; B; C){ S }//for A B? S C A B? S C – + break; continue; A - eeltegevus(ed) B - loogiline avaldis (jätkamistingimus) C - sammu järeltegevus(ed) S - sisu

Lühendada järgmine programm, kasutades eelkontrolliga tsüklidirektiivide (while-tsüklite) asemel üldtsüklidirektiive. class Algarvud{ static int algus = 50; //* static int lõpp = 100; //* public static void main(String[] args){ int i = algus; while(i < lõpp){ if(onAlgarv(i) && onAlgarv(i+2)){ System.out.println ("kaksikud: " + i + " ja " + (i+2)); break; } i++;

static boolean onAlgarv(int n){ // Antud: arv n // Tulemus: kontrollitakse, // kas n on algarv if(n == 2) return true; if(n < 2) return false; //* if(n%2 == 0)return false; //* int tõke = (int)Math.round(Math.sqrt(n)); int k = 3; while(k <= tõke){ if(n%k == 0)return false; k += 2; } return true; }// Koondada üheks tärniga märgitud direktiivid.

Järjend Jada – lineaarselt järjestatud hulk Järjend – lõplik jada Massiiv – ühte ja sama tüüpi muutujate hulk Vt. Aabits, vihik 4. Vt. Leksikon, märksõna: massiiv

Ühemõõtmeline massiiv Järjend 3, -5, 93, 2 Ühemõõtmeline massiiv 3 -5 93 2 4 [0] [1] [2] [3] length 3 -5 93 2 3 -5 93 2 4 [0] [1] [2] [3] length a

int x; int[] y; String z; Algtüüpi muutuja x: x koht täisarvu jaoks Viittüüpi muutuja (ehk osuti) y: int[] y; y koht täisarvude massiivi (objekti) viida jaoks Viittüüpi muutuja (ehk osuti) z: String z; z koht sümbolijärjendit si- saldava objekti viida jaoks objekti viit objekti aadress ˜ ˜

Massiivi loomine (I) ? ? ? ? 0 0 0 0 4 a 3 -5 93 2 int[ ] a; a = new int[4]; ? ? ? ? 0 0 0 0 4 [0] [1] [2] [3] length a a[0] = 3; a[1] = -5; a[2] = 93; a[3] = 2; 3 -5 93 2

Massiivi loomine (II) 3 -5 93 2 3 -5 93 2 4 a int[ ] a = {3, -5, 93, 2}; //ainult algväärtustamisel 3 -5 93 2 3 -5 93 2 4 [0] [1] [2] [3] length a System.out.println(“n = “ + a.length); System.out.println(“a[2] = “ + a[2]);

Massiivi töötlemine. Tsükkel üle massiivi int[] a = {3, -5, 93, 2}; // a.length = 4 int[] b = {31, 15, -9, -25, 0, 0, 100};//b.length = 7 for(int i=0; i < a.length; i++){ System.out.println(a[i]); }//for for(int i=0; i < b.length; i++){ System.out.println(b[i]); * i = 0, . . ., a.length-1 väljastada( ) * i = 0, . . ., b.length-1 väljastada( )

Massiivi töötlemise meetodid

Massiivi töötlemise meetodid static void trüki(int[] m){ for(int i=0; i < m.length; i++){ System.out.println(m[i]); }//for }//trüki

Massiivi töötlemise meetodid. Massiiv argumendina 3 -5 93 2 4 int[] a = {3,-5,93,2}; int[] b = {31,15,-9,-25,0,0,100}; trüki(a); trüki(b); a [0] [1] [2] [3] length m static void trüki(int[] m){ for(int i=0; i < m.length; i++){ System.out.println(m[i]); }//for }

Massiivi töötlemise meetodid. Loendamine Ülesanne: leida, mitu positiivset elementi leidub antud järjendis Antud järjend Vastus 3, -5, 93, 3, -1, 3 4 31, 15, -9, -25, 0, 0, 100 3 -4, 0,- 3 0

Massiivi töötlemise meetodid. Loendamine static int posArv(int[] m){ int loe = 0; for(int i=0; i < m.length; i++){ if(m[i] > 0) loe++; }//for return loe; }//posArv posArv(m) --- Antud: massiiv m --- Tulemus: tagastatakse m pos. el. arv loe := 0 * i = 0, . . ., m.length-1 loe ++ (loe)

Massiivi töötlemise meetodid. Klass Jada0 [Aabits, vihik 4] int max(int[] a) int min(int[] a) int summa(int[] a) double keskmine(int[] a) int negArv(int[] a) boolean onNeg(int[] a) int mitu(int[] a, int e) void vahetada(int[] a, int i, int j) void sort(int[] a) int[] asukoht(int[] a, int e) int otsiKoht(int[] a, int x) int[] lisa(int[] a, int k, int x) int[] eemalda(int[] a, int k) void trüki(String nimi, int[] a) void main(String[] args) Antud Tulemus järjend a tagast.: int järjend a tagast.: double järjend a tagast.: boolean järjend a, arv e tagast.: int järjend a, indeksid i,j a muudetud järjend a a muudetud järjend a, arv e tagast.: viit uuele järjend a, arv x tagast.: int järjend a, ind.k, arv e tagast.: viit uuele järjend a, indeks k tagast.: viit uuele sõne nimi, järjend a trükitud nimi+a sõnejärjend args testitulemused

Massiivi töötlemise meetodid. Klass Jada0 [Aabits, vihik 4] Järjendi uurimise meetodid int max(int[] a) int min(int[] a) int summa(int[] a) double keskmine(int[] a) int negArv(int[] a) boolean onNeg(int[] a) int mitu(int[] a, int e)