Forum: PC-Programmierung [java] "URI" rechner


von werweiß_ (Gast)


Lesenswert?

Hallo Community,

ich bin ziemlich neu im Bereich Java (11 Klasse Fachabitur) und hab eine 
Aufgabe bekommen indem ich ein Rechner für die URI-Formel programmieren 
soll.
Ich soll nämlich mindesten vier Möglichkeiten Angeben um eine komplette 
Reihenschaltung mit drei Widerständen zu berechnen (Teilspannung, 
Teilwiderstand, Gesamtstrom, Gesamtwiderstand, Gesamtspannung).

Zum Beispiel soll man mit den Angaben von R1, U2, U3 und Iges alles 
ausrechnen (R2, R3, Rges, U1, U3, Uges, Iges)

Bis jetzt habe ich nur programmiert das man den Gesamtwiderstand, 
Teilspannung usw einzeln berechnen kann sprich man hat zum beispiel R1, 
R2, R3 das alles wird addiert und Rges wird ausgerechnet (Code steht 
unten). Könnte etwas umständlich aussehen aber ich würde es gerne das 
unbedingt mit der switch-case Bedingung programmieren (case 1 wurde 
bisschen umgeändert als test)
1
import java.util.Scanner;
2
public class URIrechnerERWEITERUNG
3
{
4
    public static void main(String[] args)
5
    {
6
        while(true)
7
        {
8
            Scanner scan = new Scanner (System.in);
9
            System.out.print("Geben Sie einen Wert ein => 1. Spannung | 2. Widerstand | 3. Strom |\n 4. Widerstand~addition | 5. Spannung~addition | 6. Teilwiderstand |\n 7. Teilspannung\n\n\n");
10
            int auswahl = scan.nextInt ();
11
            switch (auswahl)
12
            {
13
                case 1: System.out.print("Geben sie R1 ein \n");
14
                        int U1 = scan.nextInt();
15
                        
16
                        System.out.println("\nGeben Sie den U2 ein\n");
17
                        int U2 = scan.nextInt();
18
                        
19
                        System.out.println(U1+" + "+U2+" = "+(U1+U2)+" \n                 Das Ergebnis fuer Uges\n\n"); 
20
                        break;
21
                        
22
                case 2: System.out.print("Geben Sie die Spannung ein\n"); 
23
                        int Spannung = scan.nextInt();
24
       
25
                        System.out.println("\nGeben Sie den Strom ein"); 
26
                        int Strom2 = scan.nextInt(); 
27
       
28
                        System.out.print(Spannung+" / "+Strom2+" = "+(Spannung/Strom2)+" \nDas Ergebnis fuer den Widerstand\n\n");
29
                        break;
30
                        
31
                case 3: System.out.print("Geben Sie die Spannung ein\n"); 
32
                        int Spannung2 = scan.nextInt();
33
       
34
                        System.out.println("\nGeben Sie den Widerstand ein"); 
35
                        int Widerstand2 = scan.nextInt();
36
       
37
                        System.out.print(Spannung2+" / "+Widerstand2+" = "+(Spannung2/Widerstand2)+" \nDas Ergebnis fuer den Strom\n\n");
38
                        break;                        
39
                        
40
                case 4: System.out.println("Geben Sie den ersten Widerstand ein\n");
41
                        int WiderstandEINS = scan.nextInt();
42
                        
43
                        System.out.println("Geben Sie den zweiten Widerstand ein\n");
44
                        int WiderstandZWEI = scan.nextInt();
45
                        
46
                        System.out.println("Geben Sie den dritten Widerstand ein\n");
47
                        int WiderstandDREI = scan.nextInt();
48
                        
49
                        System.out.println(WiderstandEINS+" + "+WiderstandZWEI+" + "+WiderstandDREI+" = "+(WiderstandEINS+WiderstandZWEI+WiderstandDREI)+" \n Das Ergebnis fuer den Widerstand\n\n");   
50
                        break;
51
                        
52
                case 5: System.out.println("Geben Sie die erste Spannung ein\n");
53
                        int SpannungEINS = scan.nextInt();
54
                        
55
                        System.out.println("Geben Sie die zweite Spannung ein\n");
56
                        int SpannungZWEI = scan.nextInt();
57
                        
58
                        System.out.println("Geben Sie die dritte Spannung ein\n");
59
                        int SpannungDREI = scan.nextInt();
60
                        
61
                        System.out.println(SpannungEINS+" + "+SpannungZWEI+" + "+SpannungDREI+" = "+(SpannungEINS+SpannungZWEI+SpannungDREI)+" \n Das Ergebnis fuer den Spannung\n\n");     
62
                        break;
63
                        
64
                case 6: System.out.println("Geben Sie den Gesamten Widerstand ein\n");
65
                        int WiderstandGesamt = scan.nextInt();
66
                        
67
                        System.out.println("Geben Sie den ersten Teilwiderstand ein\n");
68
                        int ErsterTeilwiderstand = scan.nextInt();
69
                        
70
                        System.out.println("Geben Sie den zweiten Teilwiderstand ein\n");
71
                        int ZweiterTeilwiderstand = scan.nextInt();
72
                        
73
                        System.out.println(WiderstandGesamt+" - "+ErsterTeilwiderstand+" + "+ZweiterTeilwiderstand+" = "+(WiderstandGesamt-ErsterTeilwiderstand+ZweiterTeilwiderstand)+" \n Das Ergebnis fuer einen Teilwiderstand\n\n");     
74
                        break;
75
                        
76
                        
77
                case 7: System.out.println("Geben Sie die Gesamte Spannung ein\n");
78
                        int SpannungGesamt = scan.nextInt();
79
                        
80
                        System.out.println("Geben Sie die erste Teilspannung ein\n");
81
                        int ErsteTeilspannung = scan.nextInt();
82
                        
83
                        System.out.println("Geben Sie die erste Teilspannung ein\n");
84
                        int ZweiteTeilspannung = scan.nextInt();
85
                        
86
                        System.out.println(SpannungGesamt+" - "+ErsteTeilspannung+" + "+ZweiteTeilspannung+" = "+(SpannungGesamt-ErsteTeilspannung+ZweiteTeilspannung)+" \n Das Ergebnis fuer eine Teilspannung\n\n");     
87
                        break;
88
                        
89
                        default: System.out.println("Es sind nur die Zahlen 1, 2, 3, 4, 5, 6, 7 verfügbar");
90
                    }
91
                }
92
            }
93
        }

: Bearbeitet durch User
von Ohm (Gast)


Lesenswert?

werweiß_ schrieb:
> Rechner für die URI-Formel

Was kann man bei einem Uniform Resource Identifier (Abk. URI) denn 
berechnen?

von Selbsternannter Weltverbesserer (Gast)


Lesenswert?

Hallo,

@werweiß_
leider schreibst Du nicht was Deine Frage ist oder wolltest Du nur Dein 
Programm vorstellen?

Mit freundlichen Grüßen
Selbsternannter Weltverbesserer

von werweiß_ (Gast)


Lesenswert?

Mit der URI-Formel soll ich alles in dieser Reihenschaltung berechnen 
(einzelne Teilwiderstände, einzelne Teilspannungen, Gesamtwiderstände, 
Gesamtspannung und den Strom) berechnen das alles auf einmal mit nur 
vier Möglichkeiten

von werweiß_ (Gast)


Lesenswert?

Die Frage lautet wie ich mit dieser Formel eine komplette 
Reihenschaltung mit drei Widerständen berechnen kann, mit nur vier 
Angaben ( z.B R1, U2, U3, Iges)

von Ohm (Gast)


Lesenswert?

werweiß_ schrieb:
> Mit der URI-Formel soll ich alles in dieser Reihenschaltung berechnen

Wenn Du mit "URI" das Ohmsche Gesetz meinst, wo liegt denn da das 
Problem?

von Ohm (Gast)


Lesenswert?

werweiß_ schrieb:
> Die Frage lautet wie ich mit dieser Formel eine komplette
> Reihenschaltung mit drei Widerständen berechnen kann, mit nur vier
> Angaben ( z.B R1, U2, U3, Iges)

Das ist doch nun wirklich eine superleichte Aufgabe, wenn man das 
Ohmsche Gesetz verstanden hat.

von Reinhard M. (Gast)


Lesenswert?

ganz kleiner Tipp
vlt. wegen dem  System.out.println ganz vergessen.

in einer Reihenschaltung fliesst überall der gleiche ...

von werweiß_ (Gast)


Lesenswert?

Ja damit ist das Ohmsche Gesetz genannt @Ohm

scheint leicht zu sein aber ich bin ein Eintsteiger und sitz schon eine 
halbe Ewigkeit an diesem Programm und habe es nur geschafft die ganzen 
Teilwiderstände etc. einzeln zu berechnen.

von werweiß_ (Gast)


Lesenswert?

@rm1

welches System.out.println ist gemeint?

von Reinhard M. (Gast)


Lesenswert?

war ein Scherz, ich will damit sagen, manchmal sieht man den Wald vor 
lauter Bäumen nicht ;-)

Wenn in der Reihenschaltung überall der gleich Strom fliesst,
kann man die Teilspannung bei gegebenem Teilwiderstand
und den Teilwiderstand bei gegebener Teilspannung leicht ausrechnen.

von Ohm (Gast)


Lesenswert?

werweiß_ schrieb:
> scheint leicht zu sein aber ich bin ein Eintsteiger und sitz schon eine
> halbe Ewigkeit an diesem Programm und habe es nur geschafft die ganzen
> Teilwiderstände etc. einzeln zu berechnen.

Dein Programm ist mir wegen der vielen Zeilenumbrüche zu 
unübersichtlich, um mir das anzuschauen. Aber ich wiederhole noch mal, 
dass das Ohmsche Gesetz eines der einfachsten Gesetze der Elektrotechnik 
ist.

von werweiß_ (Gast)


Lesenswert?

@rm1

Das ausrechnen für mich ist kein Problem nur ich weiß nicht wie ich es 
als Programm schreiben soll um alles zu berechnen.

von Reinhard M. (Gast)


Lesenswert?

werweiß_ schrieb:
> Die Frage lautet wie ich mit dieser Formel eine komplette
> Reihenschaltung mit drei Widerständen berechnen kann, mit nur vier
> Angaben ( z.B R1, U2, U3, Iges)

Achso, ich hatte mich hierauf bezogen, nicht auf das softwaretechnische

von Ohm (Gast)


Lesenswert?

werweiß_ schrieb:
> Das ausrechnen für mich ist kein Problem nur ich weiß nicht wie ich es
> als Programm schreiben soll um alles zu berechnen.

Das Programm ist zwar jetzt wegen der langen Zeilen immer noch 
unübersichtlich, aber etwas besser lesbar.
Dein Ansatz ist völlig falsch. Du mußt zuerst einmal abfragen, was 
berechnet werden soll und dann mußt Du die vier bekannten Werte 
abfragen, z.B. R1, U2, U3 und Iges oder Uges, Iges, R1 und R3, und dann 
die restlichen Werte berechnen und ausgeben.
Ein tip zum Berechnen wurde Dir ja schon von Reinhard M. gegeben.

von werweiß_ (Gast)


Lesenswert?

@Ohm

Soll man in der switch-case Bedingung abfragen oder schon davor?

von Blinky (Gast)


Lesenswert?

werweiß_ schrieb:
> Die Frage lautet wie ich mit dieser Formel eine komplette
> Reihenschaltung mit drei Widerständen berechnen kann, mit nur vier
> Angaben ( z.B R1, U2, U3, Iges)

- Der Strom ist in der gesamten Reihenschaltung gleich
  (Iges = I1 = I2 = I3)

R1 = bekannt (oder U1 / I1)
U1 = R1 * Iges
I1 = Iges

R2 = U2 / Iges
U2 = bekannt (oder R2 * I2, Uges -(U1 + U3))
I2 = Iges

R3 = U3 / Iges
U3 = bekannt (oder R3 * I3, Uges -(U1 + U2))
I3 = Iges

Rges = R1 + R2 + R3
Iges = bekannt (oder I = U / R in einem Widerstand oder gesamt )
Uges = U1 + U2 + U3

von Ohm (Gast)


Lesenswert?

werweiß_ schrieb:
> Soll man in der switch-case Bedingung abfragen oder schon davor?

Überleg doch erstmal, wieviel verschiedene Möglichkeiten es gibt. Du 
hast 3 Widerstände und den Gesamtwidersdtand, 3 Teilspannungen und die 
Gesamtspannung und eventuell 3 Teilströme, wenn Dich jemand verwirren 
will, da ein Teilstrom ja dem Gesamtstrom entspricht.
Das heißt, Du hast 9 einzelne Werte, von denen immer 4 bekannt sein 
müssen, um die anderen zu berechnen, wobei nur die Kombinationen Sinn 
machen, bei denen nicht alle 4 Werte die Spannungen oder Widerstände 
sind.
Um also heraus zu bekommen, was berechnet werden soll, müsstest Du alle 
diese Kombinationen vorstellen und eine davon wählen lassen. Abhängig 
von der Auswahl könntest Du dann in Deinem switch-case die restlichen 
Werte berechnen und ausgeben.
Ich würde das mit einer grafischen Oberfläche lösen: Die drei 
Widerstände als Textboxen in Reihe, dazu ebenfalls in Reihe eine Textbox 
für den Gesamtstrom. Über den Widerständen als Textbox die 
Teilspannungen und eine Textbox über alles für die Gesamtspannung.
Beim Start alle Textboxen löschen. Dann zyklisch abfragen, ob sich in 
den Textboxen was geändert hat. Wenn 4 Werte eingegeben wurden, diese 
auf Plausibilität prüfen, dann die fehlenden Werte berechnen und in die 
entsprechenden Textboxen eintragen.

von Ohm (Gast)


Angehängte Dateien:

Lesenswert?

Ohm schrieb:
> Ich würde das mit einer grafischen Oberfläche lösen:

Ungefähr so wie im Anhang.

von Karl H. (kbuchegg)


Lesenswert?

Ohm schrieb:
> werweiß_ schrieb:

> Um also heraus zu bekommen, was berechnet werden soll, müsstest Du alle
> diese Kombinationen vorstellen

Wobei der Aufgabensteller Mitleid hatte. Ihm reichen 4 Varianten aus all 
diesen Möglichkeiten.

> Das ausrechnen für mich ist kein Problem nur ich weiß nicht wie ich es als 
Programm schreiben soll um alles zu berechnen.

Das ist ein Widerspruch.
WEnn du die entsprechenden Berechnungen auf Papier machen kannst, dann 
kannst du das auch programmieren.

Rundherum kommt nur noch die Abfrage und Auswertung, welcher Fall 
eigentlich zu rechnen ist. Je nach Fall fragst du deinen Benutzer um die 
entsprechenden Werte und rechnest die fehlenden aus. WO ist das Problem?
1
Welchen Fall wollen Sie berechnen? Welche Werte kennen Sie?
2
1) 3 Widerstände + Gesamtstrom
3
2) 3 Widerstände + Gesamtspannung
4
5
Ihre Wahl: 1
6
7
Berechnung der Werte mittels 3 Widerstände und Gesamtstrom.
8
Ihre Eingabe:
9
Wert des Widerstand 1 [Ohm]:    1000
10
Wert des Widerstand 2 [Ohm]:    1000
11
Wert des Widerstand 3 [Ohm]:    1000
12
Wert des Gesamtstroms [Ampere]: 3
13
14
*********************************************
15
Spannungsteiler:
16
17
Gesamtwiderstand: 3000 Ohm
18
Gesamtspannung:   9000 Volt
19
Gesamtstrom:         3 Ampere
20
21
Widerstand 1:   1000 Ohm,  Teilspannung: 3000 Volt
22
Widerstand 2:   1000 Ohm,  Teilspannung: 3000 Volt
23
Widerstand 3:   1000 Ohm,  Teilspannung: 3000 Volt
24
25
*********************************************
26
Welchen Fall wollen Sie berechnen? Welche Werte kennen Sie?
27
....

: Bearbeitet durch User
von Karl H. (kbuchegg)


Lesenswert?

> aber ich würde es gerne das unbedingt mit der switch-case Bedingung 
programmieren

falsche Herangehensweise.
Man überlegt sich zuerst, wie die Programmlogik sein soll und dann sucht 
man sich das richtige Werkzeug dafür.

von werweiß_ (Gast)


Lesenswert?

Danke euch allen

@kbuchegg ja anfangs war gewollt das ich das ganze mit der switch-case 
Bedingnung programmiere da habe ich mich ausversehen falsch formuliert.

von Vlad T. (vlad_tepesch)


Lesenswert?

die Frage, die ich mir beim Blick auf das JAva-Programm gestellt habe, 
ist: was passiert in Java, wenn ich zwei Ints dividiere?

Ein Kurzer Test auf Ideone.com zeigt: Das gleiche wie in C

> 5 / 3 = 1

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.