Avatar billede nybro Nybegynder
25. februar 2007 - 15:15 Der er 6 kommentarer og
1 løsning

Hjælp til opgave med generering af tal

Jeg har fået en opgave hvor jeg skal opstille nogle regnestykker med henholdsvis 1,2,3 og 4 cifre.
Hvis man vælger regnestykker med 4 cifre skal jeg generer tal der kun indholder 4 tal. Det lykkedes mig også nogle gange med jeg kan ikke slippe for programmet generer tal med 3 cifre. Koden jeg er nået frem til er her:

import java.util.*;                                                                   

public class Ob1_1
{
    public static void main (String[]arg)
    {
    System.out.println("velkommen til regneprogrammet");                   
    System.out.println("");                   

    int cifre=0, a=0, b=1, c=1, d=0, f=0, g=0, e=0, slut =2;                       
    double svar=0, opg=0, k=0;                                                           
   
   
    while (slut ==2)                               
    {
       
        java.util.Scanner tastatur = new java.util.Scanner(System.in);           
           
        System.out.println("Angiv antallet af opgaver");
        opg=tastatur.nextInt();
   
        System.out.println("Angiv cifre i regnestykkerne mellem 1 og 4");
        cifre=tastatur.nextInt();
   
        Random generator = new Random();                           
        if (cifre == 4) f =8999; g = 1000;                   
        if (cifre == 3) f = 899; g = 100;
        if (cifre == 2) f = 89; g = 10;
        if (cifre == 1) f = 10; g = 0;
            while (opg > a)                                   
            {
           
                b = generator.nextInt(f)+ g;           
                c = generator.nextInt(f)+ g;
               
                d = b + c;                                           
                       
                a++;                                               
               
                System.out.println(b + "+" + c+ "= ?");
                e=tastatur.nextInt();                       
               
                if (e == d)                                       
                    k++;
                if (e ==d)                                       
                    System.out.println("Rigtigt"); 
                   
                if (e != d)
                    System.out.println("Forkert, det rigtige svar er : "+d);       
       
            }
       
       
        svar = k/opg*100;                                               
        System.out.println("Du havde "+svar+"% rigtige");       
        System.out.println("");   
        System.out.println("Tryk 1 for at afslutte, eller 2 for at køre programmet igen");
       
        slut=tastatur.nextInt();                       
        a = 0;   
        }
    }
}
Avatar billede kalp Novice
25. februar 2007 - 15:24 #1
Du kunne spare dig selv for en masse kode hvis du blot gemte dine tal i et array.

f.eks

int[] mineTal;

< her taster bruger 1,2,3,4 ind >

mineTal = new int[Det Indtastede Tal];

og så en løkke

for(int i = 0; i < mineTal.Length(); i++)
{
mineTal[i] = et genereret tal..;
}

altså det var kort skitseret:)
Avatar billede erikjacobsen Ekspert
25. februar 2007 - 15:29 #2
if (cifre == 4) {f =8999; g = 1000; }
Avatar billede nybro Nybegynder
25. februar 2007 - 15:32 #3
Tak for det hurtige svar. Problemet er at vi ikke er nået så langt endnu :( Kan se i min bog at det ligger lidt længere fremme..
Avatar billede nybro Nybegynder
25. februar 2007 - 15:39 #4
erikjacobsen->
Det hjalp ;) 1000 tak for hjælpen.
Hvis du smider et svar får du point
Avatar billede erikjacobsen Ekspert
25. februar 2007 - 15:42 #5
Jeg samler slet ikke på point, tak.
Avatar billede nybro Nybegynder
25. februar 2007 - 15:45 #6
Men så mange gange tak for hjælpen :)
Avatar billede nybro Nybegynder
26. februar 2007 - 18:22 #7
Så smupper jeg pointne selv ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester