Anzahl an Werte einlesen |
11.11.2017, 12:04 | Auf diesen Beitrag antworten » | ||||||||||
Informatikanfänger20 | Anzahl an Werte einlesen Hallo, es geht um folgende Aufgabe: Schreiben Sie ein Programm in Java, welches zunächst die Anzahl der einzugebenden Werte einliest. Anschließend sollen die Werte(positiveGleitkommazahlen) nacheinander von der Konsole gelesen und in einem array gespeichert werden. Nachdem das geometrische Mittel dieser Zahlen bestimmt wurde, soll sowohl dieses ,als auch der Inhalt des Arrays in umgekehrter Reihenfolge ausgegeben werden. Wie mache ich das 1. Die Anzahl der Werte einliest und dann in einem Array speichert. Das also die Arraylänge von der Eingabe abhängt? |
||||||||||
|
|||||||||||
11.11.2017, 13:21 | Auf diesen Beitrag antworten » | ||||||||||
eulerscheZahl |
|
||||||||||
11.11.2017, 13:37 | Auf diesen Beitrag antworten » | ||||||||||
Informatikanfänger20 | Danke ![]() ![]() D.h du liest eine Zahl n ein und mit einer for Schleife legst du dann ein array an an der 0. bis zur 4. Stelle. Warum muss man dann sageb dass die values im Array vom Typ double sein sollen. Das array ist doch als typ doublr erzeugt worden? |
||||||||||
11.11.2017, 20:09 | Auf diesen Beitrag antworten » | ||||||||||
eulerscheZahl | Meinst du das values[i] = sc.nextDouble();? Ich könnte auch versuchen, da einen String reinzupacken (würde aber nicht funktionieren). Die rechte und linke Seite sind zunächst einmal unabhängig zu betrachten. Dann wird geschaut, ob sie auch den gleichen Typ haben (bzw. ein impliziter Cast erlaubt ist, man kann auch ein int in eine double Variable schreiben). |
||||||||||
Anzeige | |||||||||||
|
|||||||||||
11.11.2017, 21:40 | Auf diesen Beitrag antworten » | ||||||||||
Informatikanfänger20 |
Ja genau. Warum muss das eine Zahl nochmal in jedes Feld eingelesen werden. Es ist doch schon vom Typ double? |
||||||||||
12.11.2017, 12:38 | Auf diesen Beitrag antworten » | ||||||||||
eulerscheZahl | Wenn kein Wert zugewiesen wird, steht der Dafaultwert (=0) darin und keine Nutzereingabe. |
||||||||||
12.11.2017, 20:09 | Auf diesen Beitrag antworten » | ||||||||||
Informatikanfänger20 | Vielen Dank. Jetzt stoße ich auf das Problem die werte im Array miteinander zu multiplizieren und die Wurzel zu bilden: Die Wurzel wäre doch Math.sqrt(...); Aber wie multipliziere ich: |
||||||||||
12.11.2017, 23:07 | Auf diesen Beitrag antworten » | ||||||||||
Informatikanfänger20 | Ich habe es bis hierhin geschafft:
Irgendwas ist falsch: Es kommt immer 0,0 raus bei jeder Eingabe? |
||||||||||
13.11.2017, 00:41 | Auf diesen Beitrag antworten » | ||||||||||
as_string | Erstens: es kommt deshalb immer 0 raus, weil Du "speicher" mit einer 0 initialisierst und dann nur andere Zahlen drauf multiplizierst. Aber eine 0 bleibt bei Multiplikation 0, immer... Zweitens: wenn Du zu einer bestehende Zahl etwas dazu multiplizieren willst, dann schrieb doch besser
Drittens: meines Wissens ist das geometrische Mittel nicht die Quadratwurzel des Produkts sondern die n-te Wurzel der n Faktoren des Produkts. Wenn Du also 4 Zahlen eingelesen hast und diese auch zusammen multiplizierst, dann musst Du am Ende die 4-te Wurzel und nicht einfach die Quadratwurzel ziehen. Gruß Marco PS: warum heißt die Klasse eigentlich "sotierer"? Wenn es um das Sortieren geht, dann fehlt ein r und außerdem hat diese Aufgabe ja nichts mit sortieren zu tun. |
||||||||||
13.11.2017, 08:01 | Auf diesen Beitrag antworten » | ||||||||||
Informatikanfänger20 | Danke für deine Erläuterungen ![]() Ja das stimmt. Es ist die n-te Wurzel. Wie mache ich das? Speicher darf nicht 0 sein, soll ich es mit 1 initialsieren? Ich werde die Klasse umbennen. Sotierer war einfach schon gespeichert ![]() |
||||||||||
13.11.2017, 08:14 | Auf diesen Beitrag antworten » | ||||||||||
Karlito | So: Und herausfinden, wie man in Java Potenzen macht. Bitte nicht sowas machen:
Besten Gruß, Karlito |
||||||||||
13.11.2017, 08:24 | Auf diesen Beitrag antworten » | ||||||||||
as_string | So weit ich weiß geht das nur über die Funktion Math.pow(x, y). Die rechnet x-hoch-y aus. Die n-te Wurzel ist ja einfach x^(1/n). Allerdings hier Vorsicht: wenn Du nur 1/n schreibst und n ein int ist, macht er eine Ganzzahldivision und in diesem Fall würde dann immer 0 raus kommen. Du musst dann also 1.0/n schreiben. Gruß Marco Edit: huch, da habe ich zu lange getippt. Karlito war ganze 10min schneller! |
||||||||||
13.11.2017, 13:30 | Auf diesen Beitrag antworten » | ||||||||||
Informatikanfänger20 | Danke ![]() Das ist bis jetzt mein Ergebnis:
Die Ausgabe der umgekehrten Reihenfolge funktioniert noch nicht. Wo ist da der Fehler? |
||||||||||
13.11.2017, 15:54 | Auf diesen Beitrag antworten » | ||||||||||
Informatikanfänger20 | Ich habe es hinbekommen. Danke für eure Hilfe ![]() ![]() ![]() |
||||||||||
14.11.2017, 02:44 | Auf diesen Beitrag antworten » | ||||||||||
as_string | Ich verstehe den letzten Teil der Aufgabe aber nicht so, dass das Array in sich umgedreht werden soll, sondern nur dass die Ausgabe in umgekehrter Reihenfolge passieren soll. Das könntest Du auch einfach machen, indem Du in der for Schleife von n-1 runter nach 0 zählst und alle Elemente direkt ausgibst. Ich weiß nicht, was genau Du noch korrigiert hast, aber in der letzten for-Schleife steht die Zahl 4 als Obergrenze. Muss das aber nicht passend zu n sein und nicht immer 4? Außerdem stimmt das mit dem Reihenfolge umdrehen überhaupt nicht. Das ist ja fast eine Art sortieren oder so... Gruß Marco |
||||||||||
14.11.2017, 07:03 | Auf diesen Beitrag antworten » | ||||||||||
Informatikanfänger20 | Ja ich hätte gedacht, dass es so gemeint, dass man dass Array sotieren soll. Aber du meinst einfach, dass ich mein Array einfach folgendermaßen ausgeben lasse:
|
||||||||||
14.11.2017, 11:23 | Auf diesen Beitrag antworten » | ||||||||||
as_string | Sortieren ja so wie so nicht, da ist ja nur die Rede von:
Also ich verstehe das eben so, dass das Array "in umgekehrter Reihenfolge ausgegeben werden soll. Da ist weder die Rede von Sortieren noch davon, dass das Array selbst verändert werden soll, oder? Zumindest verstehe ich das so. Gruß Marco |
||||||||||
15.11.2017, 08:57 | Auf diesen Beitrag antworten » | ||||||||||
Informatikanfänger20 | D.h so wie ich es mit der for Schleife gemacht habe: Also z.b im Arra steht 4 3 8 5. Dann ist die Ausgabe 5 8 3 4 oder? |
||||||||||
15.11.2017, 10:09 | Auf diesen Beitrag antworten » | ||||||||||
as_string | Genau. So verstehe ich das zumindest. Gruß Marco |
||||||||||
15.11.2017, 13:12 | Auf diesen Beitrag antworten » | ||||||||||
Informatikanfänger20 | Gut. Danke für deine Hilfe ![]() ![]() ![]() |
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
|
Die Neuesten » |
|