ÖVNINGSUPPGIFT

Uppgift 6 - Arean på en cirkel

Försök själv först. Ledtrådar och facit finns längre ner – helt utan inloggning.


Nyckelord: Datatyper, Variabler

datainsamling

Skapa flera metoder som tillsammans räknar ut arean på en cirkel

a:

Skriv en metod inputValue() där användaren får skriva in ett nummer. Metoden ska returnera värdet som användaren skriver in.

b:

Skriv en metod power(), där metoden får in två heltal. Metoden ska returnera det första talet upphöjt i det andra.

c:

Skriv en metod circleArea() som kvadrerar ett tal och som sedan multiplicerar resultatet med pi. Metoden ska returnera resultatet.

d:

Skriv en metod showNumber() som visar användaren ett reellt tal med två decimaler i en dialogruta.

e:

Skriv ett program som använder sig av ovanstående metoder för att skriva ut arean på en cirkel vars radie är ett tal som användaren skriver in.

Ledtråd A

Använd klassen Scanner för att be användaren om en input.

Ledtråd B

Använd klassen math.pow() för att ta en double, upphöjt i en annan double.

Ledtråd C

Radien på en cirkel beräknas genom att ta radien * radien * pi. Gör beräkningen och returnera resultatet som en double.

Ledtråd D

Visa en dialogruta kan man göra genom att använda klassen JOptionPane. Du behöver importera klassen swing för att kunna använda dig av JFrames.

import javax.swing.*;
JFrame frame = new JFrame("Arean på cirkel");
JOptionPane.showMessageDialog(frame, "Arean på cirkeln är: " + output);
Ledtråd E

Använd resultatet från föregående metod och skicka in resultatet i nästa. Exempelvis:

double value = inputValue();
double area = circleArea(value);
showNumber(area);
System.exit(0);

System.exit(0) behövs för att avsluta programmet efter att dialogrutan har visats.

Svar
/* Importerar klassen swing för att visa dialogrutor
 * och Scanner för att ta emot input.
 */
import javax.swing.*;
import java.util.Scanner;
public class Uppgift6 {
    public static void main(String[] args) {
        double value = inputValue();
        double area = circleArea(value);
        showNumber(area);
        System.exit(0);
    }

    // Metod som heter inputValue, frågar användaren om en radie och returnerar värdet som en double
    static double inputValue(){
        Scanner input = new Scanner(System.in);
        System.out.println("Skriv in radien på cirkeln: ");
        return input.nextDouble();
    }

    // Tar en double upphöjt i en annan double. Returnerar svaret som en double.
    static double power(double val, double power) {
        return Math.pow(val, power);
    }

    // Beräknar arean på en cirkel, givet radien
    static double circleArea(double radius) {
        return power(radius, 2) * Math.PI;
    }

    /* Skapar en dialogruta som visar arean på en cirkel
     * Använder String.format för att formatera talet till en string med två decimaler
    */
    static void showNumber(double val) {
        String output = String.format("%.2f", val);

        // Skapar en dialogruta som visar ett meddelande
        JFrame frame = new JFrame("Arean på cirkel");
        JOptionPane.showMessageDialog(frame, "Arean på cirkeln är: " + output);
    }
}

Förklaring

Varje metod sköter sin del av programmet. Metoderna kan sedan återanvändas i andra metoder. Exempelvis använder vi i ovanstående exempel metoden power() för att beräkna arean av cirkeln i metoden circleArea().

Vi använder static för alla metoder i detta exempel eftersom vi anropar metoderna direkt från huvudklassen.

Fler uppgifter