You are on page 1of 3

A tmb szekvencilis feldolgozsakor a tmb elemeit sorban, egyesvel dolgozzuk fel.

Feladat: Krjnk be 10 szmot a konzolrl - minden bekrsnl rjuk ki az elem sorszmt. Ezutn rjuk ki a szmokat elszr a bekrs sorrendjben, azutn pedig visszafel. Forrskd: import extra.*; public class Szamok { int[] szamok = new int[10]; void beker() //a 10 db szm bekrse { for(int i=0; i<szamok.length; i++) szamok[i] = Console.readInt(i+1+".szm: "); } void kiirElore() //a szmok kirsa bekrsi sorrendben { for(int i=0; i<szamok.length; i++) System.out.print(szamok[i]+" "); System.out.println(); } void kiirVissza() //a szmok kirsa visszafel { for(int i=szamok.length-1; i>=0; i--) System.out.print(szamok[i]+" "); System.out.println(); } public static void main(String[] args) { Szamok szamok = new Szamok(); szamok.beker(); szamok.kiirElore(); szamok.kiirVissza(); } }

A program elemzse: A szmokat egy tmbben troljuk. A tmbt s az azon dolgoz algoritmusokat egy szamok nev t zel objektumba tesszk. A Szamok osztly felelssge a 10 db szm beolvassa, trolsa s kirsa elre s visszafel amely egy ugyanilyen nev tmbbe van begyazva, az objektum szletsekor, egy inicializl kifejez l hozzuk ltre (//1), minden elem kezdeti rtke nulla. A beker(), a kiirElore() s a kiirVissza() metdusok m ind e szmokat tartalmaz tmbn dolgoznak. A beker() s a kiirElore() metdusokban a ciklus 0-rl indul, s a lngth-1-ig megy, a kiirVissza() metdusban a tmb elemeit fordtott sorrendben dolgozzuk fel, ott a ciklus length-1-tl 0-ig megy . Bekrskor a felhasznlnak mindig eggyel nagyobb indexet runk ki, mint a programbeli valsg: Szmra az 1-tl indul sorszmo termszetes.

--------------------------------------------------------------------------------------------------------------------------

2. feladat: Krjnk be szvegeket a konzolrl az res szveg vgjelig. Ha nem tudunk mr tbb szveget t formljuk errl a felhasznlt. Vgl rjuk ki a szvegeket elszr a bekrs sorrendjben, azutn pedig vissza Forrskd: import extra.*; public class Szovegek { String[] szovegek = new String[100]; int nSzoveg = 0; //100 szveg fr bele //szvegek szma

void beker() //a szvegek bekrse { String szoveg; while (true) { if(nSzoveg == szovegek.length) { System.out.println("Betelt!"); break; } szoveg = Console.readLine(nSzoveg+1+". szveg: "); if(szoveg.equals("")) break; szovegek[nSzoveg] = szoveg; nSzoveg++; } } void kiirElore() //a szvegek kirsa a bekrs sorrendjben { for(int i=0; i<nSzoveg; i++) System.out.print(szovegek[i]+" "); System.out.println(); } void kiirVissza() //a szvegek kirsa fordtott sorrendben { for(int i=nSzoveg-1; i>=0; i--) System.out.print(szovegek[i]+" "); System.out.println(); } public static void main(String[] args) { Szovegek szovegek = new Szovegek(); szovegek.beker(); szovegek.kiirElore(); szovegek.kiirVissza(); } }

A program elemzse: A szovegek objektumban most a bevitt szvegek szmt (nSzoveg) is trolnunk kell, hiszen az futskor vltozik. a beker() eljrs ciklusban a kilps felttelt felesleges megfogalmaznunk - ha a tmb betelt, vagy a lhsznl vgjelet t, egyszeren kiugrunk a ciklusbl. Az elbbi esetben figyelmeztetjk a felhasznlt, nehogy fe leslegesen fradjon. Ha a tmbben van hely: nSzoveg<szovegek.length, s a szveg nem vgjel: !szoveg.equals(""), a szveget betesszk a tmb soron kvetkez elembe: szovegek[nSzoveg]=szoveg, s nveljk a tmbben lv szvegek szmt: nSzo

You might also like