1 / 9

Järjendit tagastavad meetodid. Kahekordne tsükkel

Järjendit tagastavad meetodid. Kahekordne tsükkel. 6. loeng. void m(form. param. loetelu){ < teha ära mingi tegevus (parameetreid arvestades)> }. Tühitüüpi meetod m. Erijuht: tegevuseks on antud järjendi elementide väärtuste muutmine (näiteks järjendi sorteerimine).

verena
Download Presentation

Järjendit tagastavad meetodid. Kahekordne tsükkel

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Järjendit tagastavad meetodid. Kahekordne tsükkel 6. loeng

  2. void m(form. param. loetelu){ < teha ära mingi tegevus (parameetreid arvestades)> } Tühitüüpi meetod m Erijuht: tegevuseks on antud järjendi elementide väärtuste muutmine (näiteks järjendi sorteerimine) void m( tüüp[ ] a, …){ // muuta järjendi a elementide väärtusi // (tavaliselt tsüklis, i = 0, 1, …, a.length-1): … a[i] = …; … } lihttüüp m(form. param. loetelu){ < leida vastus: väärtus tüüpi lihttüüp (parameetreid arvestades)> return <avaldis tüüpi lihttüüp> ; } Lihttüüpi meetod m Nt: int double boolean

  3. Järjendit tagastav meetod Nt: int[] double[] String[] tüüp[ ] m(form. param. loetelu){ //(parameetreid arvestades) // leida uue järjendi pikkus: … // teha uus järjend: tüüp[ ] uus = new tüüp[pikkus]; // omistada väärtused uue järjendi elementidele // (tavaliselt tsüklis, i = 0, 1, …, uus.length-1): … uus[i] = …; … // tagastada viit uuele järjendile: return uus; }

  4. int[] hinne; hinne = rahvaPoolt(); static int[ ] rahvaPoolt(){ // Antud: - // Tulemus: luuakse uus järjend pikkusega 7, kus // elementide väärtused on juhuarvud lõigult [0; 40] // teha uus järjend: int[ ] uus = new int[7]; // omistada väärtused uue järjendi elementidele: for(int i = 0; i < 7; i++){ uus[i] = (int)(Math.random()*41); } // tagastada viit uuele järjendile: return uus; }

  5. Tsükkel Korrata iga i korral (i = …): <sooritada korratav tegevus, tavaliselt i väärtusest sõltuvalt> Kahekordne tsükkel: korratav tegevus on omakorda tsükkel (või sisaldab tsüklit) Korrata iga i korral (i = …): Korrata iga j korral (j = …): <sooritada korratav tegevus, tavaliselt i ja j väärtusest sõltuvalt> Välimine tsükkel Sisemine tsükkel

  6. static void sortM(int[] a){ // Antud: järjend a // Tulemus: järjend sorteeritud mittekahanevalt // Algoritm: mullimeetod for(int i = a.length-1; i >= 1; i--){ // järjendi osas a[0] .. a[i] viia suurim viimasele kohale // naaberelementide väärtuste vahetamise teel: for(int j = 0; j < i-1; j++){ // kui naabrid a[j] ja a[j+1] ei ole õiges järjestuses, // siis vahetada: if(a[j] > a[j+1] ){ int x = a[j]; a[j] = a[j+1]; a[j+1] = x; } } } }

  7. static void sort(int[] a){ // Antud: järjend a // Tulemus: järjend sorteeritud mittekahanevalt // Algoritm: pistemeetod --- vt Aabits, Järjendid (II) for(int i = 1; i < a.length; i++){ // a[0] ... a[i-1] on mittekahanevas järjestuses int b = a[i]; // talletada a[i] int j; // teha pistekoht (j+1) osas a[0] ... a[i-1] väärtusele b: for(j = i-1; j >= 0; j--){ if(a[j] <= b) break; a[j+1] = a[j]; } a[j+1] = b; // pista b oma kohale } }

  8. Kahe järjendina antud andmete sorteerimine Näide. Olgu antud 1) tantsijate nimede järjend, näiteks String[] nimi = {“Gerly”, “Erki”, “Indrek”, “Ingrid”, “Aivar”, “Mikk”, “Vilja” }; 2) nendele pandud hinnete järjend (samas järjestuses) int[] hinne = {36, 26, 30, 28, 29, 26}; Ülesandeks on sorteerida hinnete mittekasvamise järjekorras nii hinded kui ka nimed. Vastav meetod on järgmisel slaidil, selle rakendamine: sort(hinne, nimi);

  9. static void sort(int[] a, String[] nimi){ // Antud: järjendid a ja nimi // Tulemus: järjendid sorteeritud mittekasvavalt, a väärtuste järgi // Algoritm: pistemeetod for(int i = 1; i < a.length; i++){ // a[0] ... a[i-1] on mittekahanevas järjestuses int b = a[i]; // talletada a[i] String bb = nimi[i]; // talletadanimi[i] int j; for(j = i-1; j >= 0; j--){ if(a[j] > b) break; a[j+1] = a[j]; nimi[j+1] = nimi[j]; } a[j+1] = b; // pista b oma kohale nimi[j+1] = bb; // pista bb oma kohale } }

More Related