Házi feladat

 

Alapfejezet - Hatványozódjunk...

 

Házi feladat - Írjunk programot, ami bekér egy egész számot és kiírja az első annyi darab négyzetszámot!

 

A probléma megértése már fél siker. Nekem 1. körben nem sikerült, mert simán hatványozást implementáltam. Ezen kódokat összehasonlítás végett alább tanulmányozhatjuk, a helyes értelmezést pedig most Polonszki-Pálinkó Tímea mutatja meg. Ebben a vonatkozásban a növekvő számsor négyzetszámai vannak kilistázva, még pedig bekért szám mértékéig, például:

 

5


0
1
4
9
16

 

...mert:

 

0 * 0 = 0
1 * 1 = 1

2 * 2 = 4

3 * 3 = 9

4 * 4 = 16

 

A négyzetszámok kilistázását nekünk Tímea többféle iteráló módszerrel is megmutatja.

 

Egyúttal megjegyzem, ha jól tudom, a hatványozó megoldás végül el lett fogadva, úgyhogy szerintem a tanár sem volt tisztában a kérdés bonyolult jellegével.

 

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

 

 

 

 

 

 

 

 

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
    System.out.println("Kérek egy egész számot!");
    Scanner sc = new Scanner(System.in);
    int db = sc.nextInt();
    int kitevo = 2;
    double eredmeny = 1;
    for(int alap = 0; alap < db; alap++){
        eredmeny = Math.pow(alap, kitevo);
        System.out.println((int)eredmeny);
    }

    System.out.println("Kérek egy másik számot!");
    db = sc.nextInt();

    for(int alap = 0; alap < db; alap++){
        System.out.println(alap * alap);
    }

    System.out.println("Kérek egy harmadik számot!");
    db = sc.nextInt();
    int alap = 0;
    do{
        int negyzetszam = alap * alap;
        System.out.println(negyzetszam);
        alap++;
        }while(alap < db);
    }
}

 

Végeredmény:

Kérek egy egész számot!
5
0
1
4
9
16
Kérek egy másik számot!
10
0
1
4
9
16
25
36
49
64
81
Kérek egy harmadik számot!
3
0
1
4

 

 

Az eredeti, hatványozó kódok

 

Ha például 5 hatványait szeretnénk megtudni, akkor csak az első 5 db hatványra vagyunk kíváncsiak. Mivel azonban minden szám 0. hatványa mindig 1 (tehát x0 = 1), ezért 1 + 5 hatványt kell kilistáznunk. Mindezt könnyű beállítanunk az int kitevo = alap értékadással és további, pontos deklarálásokkal. A konkrét hatványozásról a beépített Math.pow(alap, i) függvény gondoskodik:

 

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

 

 

 

 

 

 

 

 

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    System.out.println("Kérem adja meg az alapot!");
    int alap = scanner.nextInt();
    int kitevo = alap;
    double eredmeny = 1;
    for(int i = 0; i <= kitevo; i++){
        eredmeny = Math.pow(alap, i);
        System.out.println(i + ". hatvány: " + eredmeny);
        }
    }
}

 

Végeredmény:

Kérem adja meg az alapot!
5
0. hatvány: 1.0
1. hatvány: 5.0
2. hatvány: 25.0
3. hatvány: 125.0
4. hatvány: 625.0
5. hatvány: 3125.0

 

Nézzük meg elöltesztelő ciklussal is (részben tanulói megoldás):

 

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

 

 

 

 

 

 

 

 

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int i = 0;
    double eredmeny = 0;

    System.out.println("Az első hány hatványt írjam ki?");
    int alap = sc.nextInt();

    while (i <= alap) {
        eredmeny = Math.pow(alap, i);
        System.out.println(eredmeny);
        i++;
        }
    }
}

 

Végeredmény:

Az első hány hatványt írjam ki?
5
1.0
5.0
25.0
125.0
625.0
3125.0