2010-09-20, 17:59
  #613
Medlem
Att du får en massa utskrifter är ju inte så konstigt eftersom du har en loop som anropar "kasta" och "arYatzy"-metoderna, och i dem finns det System.out.println.
Citera
2010-09-20, 18:09
  #614
Medlem
Jo det e sant !!!

for (int i=0; i<GGR; i++) {

y.kasta();
y.arYatzy();
}
Det som skrivas ut på skärmen hur många gånger det blev yatzy. Även
hur många procent av totala antalet kast det är ska skrivas ut.


Har du nån bra tips ?????
Citera
2010-09-20, 18:37
  #615
Medlem
Rorass avatar
Citat:
Ursprungligen postat av sosososos
Jo det e sant !!!

for (int i=0; i<GGR; i++) {

y.kasta();
y.arYatzy();
}
Det som skrivas ut på skärmen hur många gånger det blev yatzy. Även
hur många procent av totala antalet kast det är ska skrivas ut.


Har du nån bra tips ?????
Kod:
int sum 0;
for (
int i=0i<GGRi++) {   
     
        
y.kasta();   
   if(
y.arYatzy())
            
sum++;
     } 
Sedan får du klura ut resten själv.
Citera
2010-09-21, 00:51
  #616
Medlem
Kära Människor



Metoden "calculate (String op1, String op, String op2)" ska göra om op1 och op2 till double och sedan köra calculate(deouble, String, double)-metoden.

Gör jag inte det ???
Jag tycker att jag skrev rätt men det e inte så enligt min lära , har jag gjort fel ???????????

Kod:
import java.io.*; 
import java.util.*; 

public class 
calc


               

    public static 
String Calc (String op1String opString op2
    {
         
    
double tal1 Double.parseDouble(op1); 

         
double tal2 Double.parseDouble(op2); 
          
        
           
         return 
tal1 op tal2  ;
                           
                           }
                     
        


         

    

    public static 
void Calc(double op1String opdouble op2)
    {
     
     

          
double tal1 op1 ;
          
           
double tal2 op2;
     
double summan1 tal1 tal2;
double summan2 tal1 tal2;
double summan3 tal1 tal2;
double summan4 tal1 tal2;
double summan5 tal1 tal2;


    



      
              if (
op.equals("+") )    
                
                 { 
                
System.out.print(tal1 " + " tal2 " = " +(summan1)); 
            
                   }
           else if ( 
op.equals("-")) 
            {    
            
System.out.print(tal1 " - " tal2 " = " +(summan2));  
            } 
           

           else if (
op.equals("x")) 
            {    
            
System.out.print(tal1 " * " tal2 " = " +(summan3));  
            } 
           else if (
op.equals("*")) 
            {    
            
System.out.print(tal1 " * " tal2 " = " +(summan3));  
            } 
               else if (
op.equals("/") && tal1 != && tal2 != 0
                {    
                
System.out.print(tal1 " / " tal2 " = " +(summan4));  
                } 
                
               

        else if(
op.equals("/")  && tal1 == 0

            { 
              
System.out.print("Division med noll! \n"); 
             } 
            
                 else if(
op.equals("/")  && tal2 == 0

            { 
              
System.out.print("Division med noll! \n"); 
             } 
            
         
           else if(
op.equals("%")) 
           { 

            
System.out.print( tal1 " % " tal2 " = " +(summan5));
           }
           
else if (!
op.equals("+")|| !op.equals("-")|| !op.equals("*")|| !

op.equals("x")|| !op.equals("/")|| !op.equals("%")) 
                   { 
                    
System.out.println("Icke giltig operator: " op "\n"); 
                    
System.out.println("Följande operatorer är giltiga:"); 
                    
System.out.println("+ addition" "\n" "- subtraktion"); 
                    
System.out.println("* multiplikation" "\n"+"/ division"); 
                    
System.out.println("% modulus" "\n");
            
                   
                   
                   }
        
     }
                   

  




    

    public static 
void main(String [] argsthrows IOException
    
{
        
        try
         {


          
double tal1 Double.parseDouble(args[0]);
          
String op args[1];
          
double tal2 Double.parseDouble(args[2]);
          
       
          

          if ( 
args.length >= 4)    
                   {
                       
System.out.println("Användning: java Calc tal1 räknesätt tal2\n"); 
                   
System.out.println("tal1 - ett tal"); 
                   
System.out.println("räknesätt - +-x/%"); 
                   
System.out.println("tal2 - ett tal\n"); 
                   
System.out.println("Exempel: java calc 43.2 + 22.01"); 
              
                     }

        
calc.Calc(tal1optal2);
     
          
         } 
         catch (
Exception e
           { 
            
         
System.out.println("Användning: java Calc tal1 räknesätt tal2\n"); 
         
System.out.println("tal1 - ett tal"); 
         
System.out.println("räknesätt - +-x/%"); 
         
System.out.println("tal2 - ett tal\n"); 
         
System.out.println("Exempel: java Calc 43.2 + 22.01");   
          
     }
         
}
    } 
Citera
2010-09-21, 01:45
  #617
Medlem
Hej sosososos.

Du borde namnge dina saker som din lärare önskar så blir det lättare för alla att resonera kring vad som är vad.

För övrigt har din lärare rätt.

Du har inget anrop till "Calc(double op1, String op, double op2)" från metoden "Calc (String op1, String op, String op2)".

Din lärare vill troligast att det ska se ut så här:

Kod:
public static double Calc (String op1, String op, String op2)   {           
    double tal1 = Double.parseDouble(op1);  
    double tal2 = Double.parseDouble(op2);  
    return Calc(tal1,  op, tal2);
} 

public static double Calc(double op1, String op, double op2) {
    if(op.equals("+")){
        return tal1 + tal2;
    }
// etc, för alla räknesätt
}

Citera
2010-09-21, 02:16
  #618
Medlem
public static double Calc(double op1, String op, double op2){


Hej Kenny999!!

Du e verkligen en ängel!!!

Men tal1 + tal2; blir röda så jag måsta skriva
Double tal på nytt ?
eller ska jag anropa Calc (String op1, String op, String op2) till double Calc(double op1, String op, double op2) ??????

public static double Calc (String op1, String op, String op2) {
double tal1 = Double.parseDouble(op1);
double tal2 = Double.parseDouble(op2);
return Calc(tal1, op, tal2);
}

public static double Calc(double op1, String op, double op2){





double summan1 = tal1 + tal2;
double summan2 = tal1 - tal2;
double summan3 = tal1 * tal2;
double summan4 = tal1 / tal2;
double summan5 = tal1 % tal2;
Citera
2010-09-21, 04:26
  #619
Medlem
Jag tror att jag har löst uppgiften,
Tack snälla människor !!!
Citera
2010-09-21, 22:01
  #620
Medlem
Jag har den uppgiften kvar, O HAR BARA EN DAG PÅ MIG för att skicka alla mina uppgifter

Sedan så skulle jag vilja skapa en ytterligare testklass som i en loop gör 10 000 000 kast (10 miljoner). Efter att alla kast har gjorts ska det skrivas ut på skärmen hur många gånger det blev yatzy och hur många procent av totala antalet kast detta är. Procenten ska skrivas ut med maximalt 4 decimaler. Sedan ska det mätas hur lång tid i millisekunder det tar att göra alla kast med kontroll av yatzy.

Jag får det inte riktigt att fungera. Behöver hjälp med en funktion som räknar ut hur många gånger det blir yatzy, annars så fungerar klassen Yatzy som jag vill.

Jag vill att utskriften till skärmen ska se ut så här nånting:
"kastar tärningarna... klar (11851 ms)"

"Du fick Yatzy efter 7858 gånger vilket är 0,0786 procent."

För att få ut procenten tror jag att man kan ta antal yatzy/antal kast
Ex. 7858/10 000 000 = 0.0786%
Men det är som sagt funktionen för att få fram hur många Yatzy det blir på 10 000 000 kast som jag inte kan.

Någon som vet eller har något förslag???
Kod:
import java.util.*;
public class 
Yatzy {
        
int[] tärningar = new int[5];
public 
void kasta()
    {
    
        
System.out.print("Kasta tärningar");
        
System.out.println(" ");
    

    
for    (
int i0tärningar.lengthi++){
        
tärningar[i] = (int)(Math.random()*(-1) + 1) ;
        
System.out.print(" ");
        
System.out.print(tärningar[i]);
        
    }
        
System.out.println(" ");
        
System.out.println(" "); 

    }
    
    




public 
void kasta(boolean tarning1boolean tarning2boolean tarning3boolean tarning4boolean tarning5 )
{

    
System.out.println("Kasta men spara träningar");


    
boolean[] Tarning = new boolean[5]; 

    
     for (
int j0tärningar.lengthj++){
    
    
Tarning[0] = tarning1
    
Tarning[1] = tarning2
    
Tarning[2] = tarning3
    
Tarning[3] = tarning4
    
Tarning[4] = tarning5;     
    

     
    
  
        if (
tarning1|| tarning2||  tarning3||  tarning4||  tarning5 )
    
System.out.print(tärningar[j] = (int)(Math.random()*(-1) + 1));    
    
System.out.print(" ");    
    }
    }
        
public 
void sortera()

{
    
System.out.println(" "); 
    
System.out.println(" ");

        
System.out.print("sortera ");
        
System.out.println(" ");


        {
            for (
int i 0tärningar.length i++)
            {
                
// Sätter startgissning för minsta talet till index i
                
int maxIndex i;

                for (
int j 1tärningar.lengthj++)
                {
                    
// Är talet mindre får vi nytt minIndex
                    
if (tärningar[j] > tärningar[maxIndex])
                        
maxIndex j;
                }


                
int tmp tärningar[i];
                
tärningar[i] = tärningar[maxIndex];
                
tärningar[maxIndex] = tmp;
                
System.out.print(tärningar[i] + " "); 
               
            } 
              
        
            }
        
}

public 
boolean arYatzy() { 
    
System.out.println("kontrollerar  Yatzy"); 
    
boolean isItYatzy true
    for (
int j 0tärningar.length 1j++) 
         
isItYatzy isItYatzy && tärningar[j] == tärningar[1]; 
      if (
isItYatzy
         
System.out.println("Yatzy!!!"); 
         else { 
             for (
int j 0tärningar.lengthj++) 
                 
System.out.print(tärningar[j] + " "); 
           
System.out.println("ger inte Yatzy!"); 
         } 
      return 
isItYatzy
   } 
            
    


public 
String toString() { 
   
String u ""
   
System.out.println(" ");
 
   for (
int i 0tärningar.length i++) 
   {  
       
+= tärningar[i] + " "
   } 


   
  return 
u
 } 








        } 




Kod:
public class YatzyTest3 {  
 
    
    private final static 
int GGR 10000
    public static 
void main(String[] args)  {  
  
  
System.out.print("Sortering med SelectionSort tog... ");
    
long start System.currentTimeMillis(); 
  
int x ;
 
    for (
int i=0i<GGRi++){
    
       
int[] tärningar = new int[5];
   
    
    for    (
int h0tärningar.lengthi++){
            
tärningar[h] = (int)(Math.random()*(-1) + 1) ;
        
        
            
        
            
        }
    
boolean isItYatzy true
    for (
int j 0tärningar.length 1j++) 
         
isItYatzy isItYatzy && tärningar[j] == tärningar[1]; 
      if (
isItYatzy
   
isItYatzy true;
         else { 
             for (
int j 0tärningar.lengthj++) 
                 
isItYatzy false;
      }
       
            
x++; 
      }   
      
    
long tid System.currentTimeMillis() - start;      
       
    
    
System.out.print(tid " ms");        
    
System.out.println(" ");   

   
System.out.println("Du fick Yatzy " " gånger vilket är " + ((float)x) *1296 " procent"); 
           
}  


Citera
2010-09-21, 22:22
  #621
Medlem
hej sosososo, du har fått ett antal förslag på ändringar av ditt yatzy-program tidigare i denna tråd, och flera av dem ser fortfarande ut att vara bra förslag.
Citera
2010-09-21, 22:34
  #622
Medlem
Hej Kenny999!!1


det e YatzyTest3 som inte fungar !
DEt e fortf fel
(jag sov 4 igår o kom inte fram till nåt )
Tycker du att YatzyTest3 uppfyler kraven ?
Citera
2010-09-21, 22:52
  #623
Medlem
Svårt att säga, koden är lite rörig.

Du borde börja med att fixa koden som räknar ut om det är yatzy på ett enda kast (av alla tärningar), sen bygger du på med loopar och statistik sen.
Citera
2010-09-22, 01:33
  #624
Medlem
(HAR riktigt ångast, )
Det HÄR E MIN SISTA uppg, måste lämna den snart

Har löst den på två olika sätt,
vet att ingen av dem e rätt!! men kan nån hjälpa mig på vägen ( min hjärna fungera ej längra)
Kod:
public class YatzyTest3 {  
 
    

    public static 
void main(String[] args)  {  
   
double l 100;  
   
   
Yatzy2 y = new Yatzy2();  
   
    
int[] tärningar = new int[1000];
   
System.out.print("Kasta tärningarna... ");
    
long start System.currentTimeMillis();
    
int x 0;   
    
y.kasta();  
         
x+=y.isYatzy()?1:0
    for (
int i=0i<tärningar.lengthi++) {  
       
x++;
    } 
  
      
    
long tid System.currentTimeMillis() - start;      
       
    
    
System.out.print(tid " ms");        
    
System.out.println(" ");   

   
System.out.println("Du fick Yatzy " " gånger vilket är " + ((float)x) *l10000 " %"); 
           
}  







Kod:
import java.util.Arrays;

public class 
SorteringTid
{
    
    public 
void selectionSort(int[] a)
    {
        
System.out.print("Kasta tärningarna... ");
        
long start System.currentTimeMillis();
        
        for    (
int i0a.lengthi++){
                
a[i] = (int)(Math.random()*(-1) + 1) ;
                
                
            

         
boolean isItYatzy true
            for (
int j 0a.length 1j++) 
                 
isItYatzy isItYatzy && a[j] == a[1]; 
              if (
isItYatzy
                 
System.out.println("Yatzy!!!"); 
                 else { 
                     for (
int j 0a.lengthj++) 
                         
System.out.print(" "); 
                  
        }
}
        
long tid System.currentTimeMillis() - start;
        
System.out.println(tid " ms");
    }



    public static 
void main(String[] args)
    {
    
        
SorteringTid st = new SorteringTid();
double x0;

        
int[] selectionSortArray = new int[50];

        for (
int i 0selectionSortArray.lengthi++)
        {
            
selectionSortArray[i] = (int)(Math.random() *  10);
            
x++;
        }

           
        
st.selectionSort(selectionSortArray);
System.out.println("Du fick Yatzy " " gånger vilket är " + ((float)x) / 10000 " %"); 
    }

__________________
Senast redigerad av sosososos 2010-09-22 kl. 01:37.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in