Aufgabenballt3

array
frei nach java ist eine insel:

nun sollte der punkt ja klar sein :wink:

peacen


hab ich auch und es ist ja (zumindest stehts so in den java büchern) das Intervall [0,301)

hab meinen code nich mehr im kopf^^. aber ich denke mich erinnern zu können das es int ist, demnach nur ganze zahlen demnach von 0 bis 300. 100% werden angezeigt.


[quote=java ist eine insel]
Nach reiner Java-Lehre jedenfalls gehören die Klammern hinter den Typbezeichner, so hat es Gosling gewollt.
[/quote]Mehr will ich dazu auch nicht verlieren…


kann mir jemand helfen?
Aufgabe 3.3. Ich hab nur 5% bekommen… für diesen Quellcode:

import java.lang.Math;
public class MinimumSuche {
   static public void main(String[]args){
	System.out.println (minSuche());
	}
	static public double minSuche(){
	double a=(double)(Math.random());
	double b=(double)(Math.random());
	double c=(double)(Math.random());
	System.out.println(a);
	System.out.println(b);
	System.out.println(c);
	double d=(double)(Math.min(a,b));
	double e=(double)(Math.min(c,d));
	if (d<e){return d;
	} else {return e;}
		
	}
}

a) pack deinen Code bitte in die dafür vorgesehnen Tags!
b) Lies die Aufgabenstellung

import java.lang.Math;
public class MinumumSuche {
  public static void main(String[] args) {
      double[] Zufallszahlen = new int[3];  // ich mag's gern kompliziert!
      for(int  i = 0; i  < 3; ++1) {
        Zufallszahlen[i] = Math.random();
        System.out.println(Zufallszahlen[i]);
     }
     System.out.println(minSuche(Zufallszahlen[0], Zufallszahlen[1], Zufallszahlen[2]);
  }
  public double minSuche(double a, b, c) {
    if(a <= b && a <= c)
      return a;
    else if (b <= c)
      return b;
    return c;

  }
}

ok, danke, verstanden :-/


Dann bin ich’s zufrieden. :finger:


Die Math Klasse kann man ja auch ohne import … benutzen; Oder wäre das dann „dreckiger“ Code?


Hmm dieses Testverfahren ist etwas merkwuerdig…
Ich bekomm mit meinem Code bloss 5% obwohl er voll funktionsfaehig ist…

kann das daran liegen, dass ich kein if else verwendet hab, oder ist sonst noch was falsch?

import java.lang.Math;

public class MinimumSuche
{

	public static double minSuche(double [] a)
	{
		double min = a[0] < a[1] ? a[0] : a[1];
		min = a[2] < min ? a[2] : min;
		return min;
	}
	
	public static void main(String [] args)
	{
		double [] zahlen = {Math.random(),Math.random(),Math.random()};
		for (int i = 0; i < 3; i++) 
		  {System.out.println((i + 1) + ".Zahl : " + zahlen[i]);}
		System.out.println("Minimum: " + minSuche(zahlen));
	}
}

Also hier im CIP Pool funktioniert die Java Runtime wenigstens :-D.
Und ich bin sehr verwundert, dass ich jetzt bei allen drei die 100% stehen hab. ^^ fuer so nen javano0b … danke fuer die hilfestellung jedenfalls :cheesy:


Ein Array als Argument für minSuche() ist zwar durchaus praktisch, aber leider mag das der Testcase nicht. Verwende drei getrennte Variablen, dann sollte alles hinhauen.


Mein Code erzielt ebenfalls nur 15%, obwohl ich mir recht sicher bin, dass alles korrekt ist. Ich vertraue einfach mal darauf, dass die Technik sich irrt.

public class SoEinZufall {
	static int x;
	
	public static int intRandom(double z) {
		z*=301;
		x = (int) z;
		return x;
	}

	public static void main(String[] args) {
		intRandom(Math.random());
		System.out.println(x);
	}
}

Lies dir mal genau die Aufgabenstellung durch.
Nimmt intRandom einen Parameter??

public class SoEinZufall {
   public static void main(String[] args) {
     System.out.println(intRandom());
   }

   public static int intRandom() {
      return (int) Math.random() * 301;
   }
}

return (int) Math.random() * 301;

Ich denke, dass das nicht stimmt!
Z.B. Ich kriege bei Math.random die Zahl 0.99999999999999999
und multipliziere mit 301. Nach return (int) Math.random() * 301; kommt eine Zahl größere als 300 raus!!! :finger:


…oder schon. Ich weiß nicht, wie (int) rundet :anx:


(int) rundet nicht!

Bei der Multiplikation von einem float (hier: Math.random() ) mit einem int (hier: 301) entsteht wieder ein float. Mit (int) castest du das ganze wieder in einen int, schneidest also einfach nur alles ab, was sich hinter dem Komma befindet.


Jetzt klar. Danke!


Vielen Dank. Allerdings ist mir doch nicht ganz klar, wo in der Aufgabestellung steht, dass man keine Parameter für intRandom() verwenden darf (mal abgesehen davon natürlich, dass es unnötig umständlich ist :confused: ).

sagen wir es so
Wenn es Parameter gegeben haben sollte, dann wäre es bestimmt in der Aufgabenstellung gewsesen.


Habe ich richtig verstanden, dass eine abstrakte Klasse keine Instanzen hat?