Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich bin im ersten Semester Programmieren und hab nen Aufgabenzettel den ich bis morgen abgeben muss, hab alle Aufgaben gelöst außer der letzten. Ich bin am verzweifeln und hab keine Ahnung wie ich das machen soll. Ich hoffe ihr könnt mir weiter helfen:
In der Java-Bibliotheksklasse java.lang.Math existiert die Methode Math.random() mit
deren Hilfe eine (quasi) zuf¨allige Zahl z vom Typ double Im Intervall mit 0 (kleiner gleich) z < 1 erzeugt
werden kann, z.B. durch double r = Math.Random();.
a) Nutzen Sie Math.random() und die explizite Typkonversion, um zuf¨allige Werte vom
Typ int im Intervall [-500, 500] zu erzeugen und auszugeben.
b) Schreiben Sie dazu eine Anweisungsfolge, die zus¨atzlich den Absolutbetrag der erzeugten
Zahl berechnet (Ohne Verwendung einer vorgegebenen Bibliothek) und ausgibt.
c) Erzeugen Sie nun solange zuf¨allige Zahlen (im o.g. Intervall) bis zum ersten Mal der
Fall eintritt, dass die Differenz zwischen der erzeugten Zahl und deren Absolutbetrag
grßoßer als 900 (im Absolutbetrag) ist.
b und c sind ja nun keiner Erwähnung wert,
da stelle eine Frage wenn du sie hast, nachdem du angefangen hast,
aber zu verraten gibts da eigentlich nix?,
a ist ein ganz klein wenig tricky, der entscheidene Tipp:
Math.random() liefert ein Interval von 0 bis 1,
um dieses z.B. auf 0-10 zu erhöhen multiplizierst du einfach die Zufallszahl mit 10,
auf diese Art kannst du dir ein beliebiges Interval erzeugen
b und c sind ja nun keiner Erwähnung wert,
da stelle eine Frage wenn du sie hast, nachdem du angefangen hast,
aber zu verraten gibts da eigentlich nix?,
a ist ein ganz klein wenig tricky, der entscheidene Tipp:
Math.random() liefert ein Interval von 0 bis 1,
um dieses z.B. auf 0-10 zu erhöhen multiplizierst du einfach die Zufallszahl mit 10,
auf diese Art kannst du dir ein beliebiges Interval erzeugen
public class Zufall
{
public static void main(String[] args)
{
double r = Math.random();
int z=((int)((r*1001)-500)); // Verschiebt die zufallszahl in den richtigen bereich*/
System.out.println(+z);
}
}
Hab a) jetzt raus aber b) und c) bereiten mir noch Kopfschmerzen!
Muss hier aufhören Zufallszahlen auszugeben wenn eine Differenz zwischen -500 und 500 ergibt.
Ich muss hier also ne for Schleife drum schreiben aber was schreibe ich als Bedingung.
ein Programm sollte modular sein,
das was du für b geschrieben hast verwendest du in c,
und zwar als separate Operation, nicht irgendwie 3 Zeilen Code kopiert
naja, wenn du getZufallsZahl(); und getAbsolutDazu(zahl2); duch den jeweiligen Code direkt ersetzt sollte es zumindest auch funktionieren,
was meinst du mit 'passt nicht'?
der Code muss in die Schleife rein wenn du ihn mehrmals ausführen willst
ein Programm sollte modular sein,
das was du für b geschrieben hast verwendest du in c,
und zwar als separate Operation, nicht irgendwie 3 Zeilen Code kopiert
naja, wenn du getZufallsZahl(); und getAbsolutDazu(zahl2); duch den jeweiligen Code direkt ersetzt sollte es zumindest auch funktionieren,
was meinst du mit 'passt nicht'?
der Code muss in die Schleife rein wenn du ihn mehrmals ausführen willst
Okay du hast recht aber man muss das ja alles verknüpfen und das ist mein Problem, ich bin noch nicht so geübt im Programme schreiben. Ich weiss jetzt nicht wie die Verbindung aussehen soll mit meinem Programm und dem was du mir geschrieben hast:
Okay du hast recht aber man muss das ja alles verknüpfen und das ist mein Problem, ich bin noch nicht so geübt im Programme schreiben. Ich weiss jetzt nicht wie die Verbindung aussehen soll mit meinem Programm und dem was du mir geschrieben hast:
Das Programm sieht jetzt so aus der startet auch aber es kommt die ganze Zeit die Gleiche Zeile wiederholt
z.B.: Der Zufallswert lautet 233
Aber ich will das das Programm immer wieder neue Zufallswerte angibt, bis eine Differenz von 900 entsteht und dann stoppt (Aber das weisst du ja) Was mache ich falsch?
public class Zufall
{
public static void main(String[] args)
{
public static void main(String[] args) {
int z;
do {
double r = Math.random(); // hierher muss das
z=((int)((r*1001)-500));
if (z<0)
z=z*(-1);
System.out.println("Der Zufallswert lautet: "+z);
} while (z<450);
}
Du erzeugst nur einmal eine Zufallszahl, die dann nicht mehr änderst, logisch dass da immer der gleiche Wert rauskommt. Die random Anweisung muss in die Schleife rein, siehe Code.
public static void main(String[] args) {
int z;
do {
double r = Math.random(); // hierher muss das
z=((int)((r*1001)-500));
if (z<0)
z=z*(-1);
System.out.println("Der Zufallswert lautet: "+z);
} while (z<450);
}
Du erzeugst nur einmal eine Zufallszahl, die dann nicht mehr änderst, logisch dass da immer der gleiche Wert rauskommt. Die random Anweisung muss in die Schleife rein, siehe Code.
Ja stimmt hast recht. Hab was durcheinander gebracht es werden solange Zufallszahlen ausgegeben bis ein höhrer Wert als 450 erzeugt wird, dann setzt das Programm aus.