Gyakorlati alapok

2 szám közötti egészek egyszerű adatbekéréssel

 

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

Az egyszerű adatbekérés azt jelenti, hogy csak egyetlen bemeneti adatot vagy adatcsoportot kérünk be és nem vizsgáljuk meg azok helyességét.

 

Egészen idáig egyetlen adatbekéréssel foglalkoztunk (valójában csakis olyan geometriai alakzatokkal, amelyek 1 paraméterrel meghatározhatók voltak, például négyzet, kör). Ebben a fejezetben csupán az lesz a feladat, hogy 2 db bemeneti adatot kérünk be és azonnal ki is írjuk a köztük lévő egész számokat. Ezt könnyen megtehetjük 1 db for ciklus bevetésével, amelynek kezdő ciklusszáma a bekért 1., utolsó ciklusszáma pedig a bekért 2. szám:

 

for (int i = elsoSzam; i <= masodikSzam; i++)

 

Még egyszer hangsúlyozva: az algoritmusban még mindig nincs számellenőrzés, de mit teszünk abban az esetben, ha felhasználó nagyobb 1. számot ad meg a 2.-nál (if (elsoSzam >= masodikSzam))? Ezt azért le kell kezelnünk, másként fejre áll tőle algoritmusunk. (Valójában nem történik semmi.) A megoldás, hogy egy ideiglenes int tarolo bevetésével mi magunk fordítjuk meg az értékeket:

 

if (elsoSzam >= masodikSzam){
    tarolo = elsoSzam;
    elsoSzam = masodikSzam;
    masodikSzam = tarolo;
    for (int i = elsoSzam; i <= masodikSzam; i++){
        System.out.print (i + " ");
    }
}
 

Nézzük meg a futtatható Java-kódot:

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    int tarolo = 0;
    System.out.println("Kérem, hogy adja meg az 1. számot!!");
    String oldal = in.nextLine();
    int elsoSzam = Integer.parseInt(oldal);
    System.out.println("Kérem, hogy adja meg a 2. számot!!");
    oldal = in.nextLine();
    int masodikSzam = Integer.parseInt(oldal);

    if (elsoSzam >= masodikSzam){
        tarolo = elsoSzam;
        elsoSzam = masodikSzam;
        masodikSzam = tarolo;
        for (int i = elsoSzam; i <= masodikSzam; i++){
            System.out.print (i + " ");
        }
    }
    else
        for (int i = elsoSzam; i <= masodikSzam; i++){
            System.out.print (i + " ");
        }
    }
}

 

Végeredmény:

Kérem, hogy adja meg az 1. számot!!
45
Kérem, hogy adja meg a 2. számot!!
23
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45