Wie berechne ich in Java Umfang und Flächeninhalt vom Kreis?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Eingaben auf der Konsole kannst du mit einem Scanner-Objekt einlesen lassen.

import java.util.Scanner;

public class MyApplication {
  public static void main(String[] args) {
    Scanner reader = new Scanner(System.in);
    int number = reader.nextInt();
    int anotherNumber = reader.nextInt();
    // ...

    reader.close();
  }
}

Wenn du ihn nicht mehr brauchst, kannst du ihn schließen. Beachte, dass du danach keine Eingaben mehr einlesen kannst. Auch nicht mit einem neuen Scanner-Objekt, denn beim Schließen des ersten Objekts wird auch der Eingabekanal geschlossen.

Die Methoden, die ein Scanner so parat hat, kannst du hier einsehen.

Wieso du den Wert von Pi manuell eingeben sollst, kann ich gerade nicht nachvollziehen. Dafür stellt Java Konstanten bereit.

double pi = Math.PI;

Folgendermaßen musst du einmal einen Wert für den Radius einlesen lassen und diesen in die Formeln für Umfangs- und Flächenberechnung einsetzen. Das schaffst du allein.

Die zweite Aufgabe fordert im Vergleich zu Aufgabe 1 nichts neues. Die Formeln kann man sich wieder leicht via Google heraussuchen.

DerAusDemBlock 
Fragesteller
 15.11.2021, 23:58

Danke dir vielmals!

0

Zu den Aufgaben 1 und 2:

import java.util.Scanner;

public class Main{

    public static void main(String str[]) {
        Scanner scanner = new Scanner(System.in);

        System.out.println("Aufgabe 1) - Kreis");

        for (;;) {
            try {
                System.out.println("\nWie lautet der Radius?");
                final double radius = Double.parseDouble(scanner.nextLine());

                System.out.println("\nDer Kreisumfang beträgt: " + Math.PI * 2 * radius);
                System.out.println("Die Kreisfläche beträgt: " + Math.PI * radius * radius);
            } catch (Exception e) {
                System.out.println("\nBei der Eingabe oder der Rechnung ist ein Fehler unterlaufen!");
            }

            System.out.println("\nSie können das Programm nun mit der Eingabe -y beenden. Wollen Sie fortsetzen, wählen Sie eine beliebige Eingabe.");
            if (scanner.nextLine().equals("-y")) break;
        }


        System.out.println("\nAufgabe 2) - Zylinder");

        for (;;) {
            try {
                System.out.println("\nWie lautet der Radius?");
                final double radius = Double.parseDouble(scanner.nextLine());

                System.out.println("\nWie lautet die Höhe?");
                final double height = Double.parseDouble(scanner.nextLine());

                System.out.println("\nDas Volumen beträgt: " + Math.PI * radius * radius * height);
                System.out.println("Die Oberfläche beträgt: " + 2 * Math.PI * radius * radius + 2 * Math.PI * radius * height);
            } catch (Exception e) {
                System.out.println("\nBei der Eingabe oder der Rechnung ist ein Fehler unterlaufen!");
            }

            System.out.println("\nSie können das Programm nun mit der Eingabe -y beenden. Wollen Sie fortsetzen, wählen Sie eine beliebige Eingabe.");
            if (scanner.nextLine().equals("-y")) break;
        }
    }
}

Zu Aufgabe 3:

i = 0;

Die Zählvariable i wird nicht inkrementiert, dadurch hat man eine Endlosschleife erzeugt.

Richtig wäre z.B. folgendes:

++i;

Oder gesamt:

int i = 0;
while (i <= 100) {
    System.out.println("Die Zahl " + i + " ist " + (i % 2 == 0 ? "" : "un") +  "gerade");
    ++i;
}

Vorzuziehen wäre dabei eine for-Schleife:

for (int i = 0; i <= 100; ++i) {
    System.out.println("Die Zahl " + i + " ist " + (i % 2 == 0 ? "" : "un") +  "gerade");
}

Oder noch kürzer:

for (int i = 0; i <= 100; System.out.println("Die Zahl " + i + " ist " + (i % 2 == 0 ? "" : "un") +  "gerade"), ++i);
DerAusDemBlock 
Fragesteller
 17.11.2021, 17:53

Oh gott ich danke dir. Hat mir echt weiter geholfen!!

0