Esitlus üles laadida
Esitlus laaditakse üles. Palun oodake
1
[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]
2
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
3
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 .
4
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
5
Täita lüngad ültsüklidirektiivides (for-tsüklites):
double x; ... for( ){ // korrata 9 korda: x = Math.sqrt(x); }
6
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
7
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
8
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++;
9
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.
10
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
11
Ühemõõtmeline massiiv
Järjend 3, -5, 93, 2 Ühemõõtmeline massiiv [0] [1] [2] [3] length [0] [1] [2] [3] length a
12
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 ˜ ˜
13
Massiivi loomine (I) ? ? ? ? 0 0 0 0 4 a 3 -5 93 2 int[ ] a;
a = new int[4]; ? ? ? ? [0] [1] [2] [3] length a a[0] = 3; a[1] = -5; a[2] = 93; a[3] = 2;
14
Massiivi loomine (II) 3 -5 93 2 3 -5 93 2 4 a
int[ ] a = {3, -5, 93, 2}; //ainult algväärtustamisel [0] [1] [2] [3] length a System.out.println(“n = “ + a.length); System.out.println(“a[2] = “ + a[2]);
15
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( )
16
Massiivi töötlemise meetodid
17
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
18
Massiivi töötlemise meetodid. Massiiv argumendina
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 }
19
Massiivi töötlemise meetodid. Loendamine
Ülesanne: leida, mitu positiivset elementi leidub antud järjendis Antud järjend Vastus 3, -5, 93, 3, -1, 31, 15, -9, -25, 0, 0, -4, 0,
20
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)
21
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
22
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)
Seotud esitlused
© 2024 SlidePlayer.ee Inc.
All rights reserved.