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
importjava.util.Scanner;
2
publicclassURIrechnerERWEITERUNG
3
{
4
publicstaticvoidmain(String[]args)
5
{
6
while(true)
7
{
8
Scannerscan=newScanner(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
intauswahl=scan.nextInt();
11
switch(auswahl)
12
{
13
case1:System.out.print("Geben sie R1 ein \n");
14
intU1=scan.nextInt();
15
16
System.out.println("\nGeben Sie den U2 ein\n");
17
intU2=scan.nextInt();
18
19
System.out.println(U1+" + "+U2+" = "+(U1+U2)+" \n Das Ergebnis fuer Uges\n\n");
20
break;
21
22
case2:System.out.print("Geben Sie die Spannung ein\n");
23
intSpannung=scan.nextInt();
24
25
System.out.println("\nGeben Sie den Strom ein");
26
intStrom2=scan.nextInt();
27
28
System.out.print(Spannung+" / "+Strom2+" = "+(Spannung/Strom2)+" \nDas Ergebnis fuer den Widerstand\n\n");
29
break;
30
31
case3:System.out.print("Geben Sie die Spannung ein\n");
32
intSpannung2=scan.nextInt();
33
34
System.out.println("\nGeben Sie den Widerstand ein");
35
intWiderstand2=scan.nextInt();
36
37
System.out.print(Spannung2+" / "+Widerstand2+" = "+(Spannung2/Widerstand2)+" \nDas Ergebnis fuer den Strom\n\n");
38
break;
39
40
case4:System.out.println("Geben Sie den ersten Widerstand ein\n");
41
intWiderstandEINS=scan.nextInt();
42
43
System.out.println("Geben Sie den zweiten Widerstand ein\n");
44
intWiderstandZWEI=scan.nextInt();
45
46
System.out.println("Geben Sie den dritten Widerstand ein\n");
47
intWiderstandDREI=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
case5:System.out.println("Geben Sie die erste Spannung ein\n");
53
intSpannungEINS=scan.nextInt();
54
55
System.out.println("Geben Sie die zweite Spannung ein\n");
56
intSpannungZWEI=scan.nextInt();
57
58
System.out.println("Geben Sie die dritte Spannung ein\n");
59
intSpannungDREI=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
case6:System.out.println("Geben Sie den Gesamten Widerstand ein\n");
65
intWiderstandGesamt=scan.nextInt();
66
67
System.out.println("Geben Sie den ersten Teilwiderstand ein\n");
68
intErsterTeilwiderstand=scan.nextInt();
69
70
System.out.println("Geben Sie den zweiten Teilwiderstand ein\n");
71
intZweiterTeilwiderstand=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
case7:System.out.println("Geben Sie die Gesamte Spannung ein\n");
78
intSpannungGesamt=scan.nextInt();
79
80
System.out.println("Geben Sie die erste Teilspannung ein\n");
81
intErsteTeilspannung=scan.nextInt();
82
83
System.out.println("Geben Sie die erste Teilspannung ein\n");
84
intZweiteTeilspannung=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");
Hallo,
@werweiß_
leider schreibst Du nicht was Deine Frage ist oder wolltest Du nur Dein
Programm vorstellen?
Mit freundlichen Grüßen
Selbsternannter Weltverbesserer
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
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)
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?
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.
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.
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.
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.
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
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.
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
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.
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?
> 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.
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.
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