Nyckelord: Datatyp, Variabel, Deklarera, Pythagoras sats, Scanner
Skapa Pythagoras sats i Java
I denna uppgift ska vi programmera Pythagoras sats för att beräkna längden av hypotenusan på en rätvinklig triangel. Pythagoras sats säger:
a2 + b2 = c2Där vinkeln mellan katet a och katet b är rätvinklig (90 grader).
Input från användaren
Använd klassen Scanner för att ta input från användaren. Programmet ska först fråga användaren vad längden på katet a är. När längden har angivits ska programmet direkt fråga vad längden på katet b är. Om du behöver upprepning på hur man använder klassen scanner, kan du läsa avsnittet: Klassen Scanner i Java – Skicka inputs till programmet.
Utgå från programmet:
import java.util.Scanner; // Importerar klassen Scanner
public class DatatyperUppgift5 {
public static void main(String[] args) {
// Skriv din kod här
}
}
- Skapa ett nytt scanner-objekt och ge objektet namnet
input. - Fråga användaren vad längden på katet a är och vänta på input från användaren. Spara inputen som ett flyttal.
- Fråga användaren vad längden på katet b är och vänta på input från användaren. Spara inputen som ett flyttal.
Ledtråd
Skapa ett objekt (instans) av klassen scanner med följande kod:
Scanner input = new Scanner(System.in);
Ett flyttal (double) kan sedan sparas med:
double kateta = input.nextDouble();
Beräkna Pythagoras sats med hjälp av klassen java.lang.Math
Vi ska nu använda klassen java.lang.Math för att beräkna Pythagoras sats.
- Ta värdet på katet a i kvadrat (upphöjt med två) och spara resultatet som ett flyttal i en ny variabel. Använd funktionen
powijava.lang.Mathsom hjälp. - Ta värdet på katet b i kvadrat och spara resultatet som ett flyttal i en ny variabel.
- Summera de två värdena och spara värdet som ett flyttal i en ny variabel.
- Ta roten ur summan med hjälp av funktionen
sqrti klassenjava.lang.Math. - Skriv ut resultatet. Detta är hypotenusan!
Ledtråd
Använd klassen java.lang.Math för att beräkna kvadraten (pow) och roten ur (sqrt) med följande kod:
double cKvadrat = Math.pow(katetA, 2) + Math.pow(katetB, 2);
double hypotenusa = Math.sqrt(cKvadrat);
Lösning
Svar:
// Importerar klassen Scanner
import java.util.Scanner;
public class DatatyperUppgift5 {
public static void main(String[] args) {
// Skapar ett nytt scanner-objekt.
Scanner input = new Scanner(System.in);
// Fråga efter och spara ner första talet
System.out.println("Ange första sidan av triangeln: ");
double katetA = input.nextDouble();
// Fråga efter och spara ner andra talet
System.out.println("Ange andra sidan av triangeln: ");
double katetB = input.nextDouble();
// Utför beräkningarna a^2 och b^2
double katetAKvadrat = Math.pow(katetA, 2);
double katetBKvadrat = Math.pow(katetB, 2);
// Beräkna ut c^2
double hypotenusaKvadrat = katetAKvadrat + katetBKvadrat;
// Beräkna hypotenusan och skriv ut resultatet
double hypotenusa = Math.sqrt(hypotenusaKvadrat);
System.out.println("Hypotenusan är: " + hypotenusa);
}
}
Utskriften blir exempelvis:
Ange första sidan av triangeln:
5
Ange andra sidan av triangeln:
2
Hypotenusan är: 5.385164807134504
Förklaring:
Vi skapar ett nytt objekt (instans) av klassen scanner med:
Scanner input = new Scanner(System.in);
Vi använder nextDouble för att ta inputen från användaren och spara värdet som en double. Här antar vi att användaren skickar in rätt format.
Vi beräknar upphöjt med hjälp av funktionen pow i klassen Math:
double katetAKvadrat = Math.pow(katetA, 2); // a^2
Och roten ur med funktionen sqrt i klassen Math:
double katetAKvadrat = Math.sqrt(val);
Vanliga frågor om Uppgift 5 - Pythagoras sats
Vad handlar Uppgift 5 - Pythagoras sats om?
Övningsuppgift i Java: Pythagoras sats. Träna själv med fria ledtrådar och facit.
Hur övar jag på Uppgift 5 - Pythagoras sats?
Kör exemplen själv, ändra ett värde i taget och jämför sedan resultatet med förklaringen på sidan.