Gyakorlati alapok

Pithagorasz tétele egyszerű adatbekéréssel

 

Pithagorasz tétele talán a legismertebb és egyúttal a leghasznosabb matematikai tétel a világon, olyannyira, hogy például Einstein a fény természetének bizonyításakor is hivatkozott rá:

 

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

 

Derékszögű háromszög leghosszabb oldalának (átfogójának) négyzete megegyezik a másik 2 oldal (befogók) négyzetösszegével.
 

www.informatika-programozas.hu

Kiszámításához csupán 2 bemeneti adatra van szükségünk, a 2 db oldalhosszra és 2 csomagot kell importálnunk:

Az adatbekérő metódus String adattípusban kapja meg a bemeneti adatot, ám nekünk a számítás elindításához valamilyen numerikus típus szükséges. Célszerű a bemeneti adatokat (a és b) és a kimeneti adatokat double típusra deklarálnunk, ezáltal lebegőpontos számokkal is tudunk dolgozni (például 3,456). Ezután a String típusú bemeneti adatot át kell alakítanunk double típusra, amelyet a Double osztály parseDouble() metódusa végez el nekünk. Matematikailag nézve 1 db képletünk van, ezt kell implementálnunk:

 

a2 + b2 = c2

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);
    System.out.println("Kérem, hogy adja meg az egyik oldalhosszt (a)!");
    String oldal = in.nextLine();
    double a = Double.parseDouble(oldal);
    System.out.println("Kérem, hogy adja meg az egyik oldalhosszt (b)!");
    oldal = in.nextLine();
    double b = Double.parseDouble(oldal);

    double cNegyzet = (a * a) + (b * b);
    System.out.println("C értéke: " + Math.sqrt(cNegyzet));
    }
}

 

Végeredmény:

Kérem, hogy adja meg az egyik oldalhosszt (a)!
1
Kérem, hogy adja meg az egyik oldalhosszt (b)!
1
C (átfogó) értéke: 1.4142135623730951

 

A kódban észrevehetjük, hogy a String oldal összetett adattípust egymás után kétszer is felhasználtuk, hiszen az 1. bemeneti adatot azonnal eltároltuk double a változóba.

 

A kód nem kezeli le azt a jelenséget, ha a 2 bevitt befogóhossz azonos hosszúságú, ám ebben az esetben ez nem probléma, hiszen lehetséges az, hogy derékszögű háromszög 2 befogója azonos hosszúságú legyen.

 

Természetesen a befogók négyzetre emelése belső függvénnyel is megoldható ((Math.pow(a, 2) + Math.pow(b, 2)), de inkább az egyszerűbb eljárást választottam ((a * a) + (b * b)).

 

C (átfogó) négyzetgyökvonásáról egy belső függvény (Math.sqrt(cNegyzet)) gondoskodott.