==FLOD==Zajász és Webizé

A minimum és a maximum kiválasztás tétele

 

Egyszerre fogunk venni két tételt, mert ez a kettő alig különbözik egymástól és együtt is jól bemutathatóak (egyébként az interneten mászkálva én úgy látom, hogy mindenki egyszerre mutatja be őket, úgyhogy én sem fogok kilógni a sorból). Az alábbi példában megkeressük egy tömb legkisebb és legnagyobb tagját.

 

var szamok = [5,7,15,20,38,43,52,67,2];
var szamok_meret = szamok.length;
var min=szamok[0];
var max=szamok[0];

// Minimum kiválasztás
for(var i=0; i<szamok_meret;i++){
if(szamok[i]<min){
min=szamok[i];
}
}

//Maximum kiválasztás
for(var i=0; i<szamok_meret; i++){
if(szamok[i]>max){
max=szamok[i];
}
}

document.write(“A tömbben szereplő legkisebb szám a “+min+”, a legnagyobb pedig a “+max+”.”);

 

És készen is vagyunk! Nem is volt olyan nehéz, igaz? 🙂 Na de azért nézzük végig, hogy mit is csináltunk! Legelőször is létrehoztunk egy tömböt “szamok” néven. Ez a tömb tartalmazza azokat a számokat amelyeket vizsgálni fogunk. A “szamok_meret” nevű tömbünkben gyorsan el is mentjük szokás szerint a tömbünk méretét, hogy aztán majd jól végig lehessen pörgetni a mostanra már jól begyakorolt  for ciklussal. A Következő két lépésben érdekes dolgot fogunk tenni: létrehozunk egy “min” nevű változót és hozzárendeljük a “szamok” nevű tömbünk első elemét, azaz a szamok[0]-t (azt ugye nem felejtettük el, hogy a tömb elemeinek indexelése 0-val kezdődik). Ugyanezt megcsináljuk “max” nevű változónkkal is, tehát először azt feltételezzük, hogy a tömb első eleme a legkisebb, aztán utána kapásból már azt, hogy az első eleme a legnagyobb. Na és akkor itt jön a nagy trükk. Egy for ciklussal végig pörgetjük a tömböt és köröknént megvizsgáljuk, hogy a soron következő elem kisebb-e a “min” változóba elmentett értékkel. Ha igen, akkor ezzel a számmal felülírjuk a “min” változónk értékét. Mire a ciklus lefut a “min” változónk már a tömb ténylegesen legkisebb számát fogja tartalmazni. A maximum kiválasztás is ugyanezen elven működik, csak ott értelemszerűen arra vizsgálunk, hogy a soron következő elem nagyobb-e a “max” nevű változónkba mentett értéknél. Miután a két for ciklus végzett már nem marad más hátra, mint a végeredményről tájékoztatni a felhasználót. Ezt én a már szintén jól begyakorolt document.write() függvénnyel tettem meg.

 

<<< Előző lecke Következő lecke >>>