Avatar billede stjernen Nybegynder
09. december 2002 - 12:36 Der er 8 kommentarer og
1 løsning

Angående en opg. hvor bruger skal indtaste sand/falsk t. påstan

Hej! Sidder her med en opgave hvor programmet skal udskrive nogle påstande, hvortil brugeren skal indtaste true hvis påstanden (ifg. ham)er rigtig og false hvis påstanden er forkert. Hvis han så skriver sand til en påstand der er rigtig, skal programmet sige "rigtigt" og ellers "forkert".
Her er programmet, håber der er nogen der vil hjælpe...
import cs1.*;
import java.util.Random;

public class Type4
{
    public static void main (String [] args)
    {
        for (int i=1; i<10; i++)
        {
        Random generer = new Random();
        int tal1,tal2,tal3,tal4,tal5, sum, resultat, antalOperander, talTilfaeldig;
        boolean paastand;

        talTilfaeldig=generer.nextInt(50)+1;
        tal1=generer.nextInt(50)+1;
        tal2=generer.nextInt(50)+1;
        sum=tal1+tal2;

        System.out.print(tal1+"+"+tal2+"="+talTilfaeldig);
        paastand=Keyboard.readBoolean();

        if (sum==talTilfaeldig)
        {
            paastand=false;
            System.out.println("\t\t\tForkert");
        }
        else
        {
            paastand=true;
            System.out.println("\t\t\tRigtigt");
        }

        //tal3=generer.nextInt(50)+1;
        //tal4=generer.nextInt(50)+1;
        //tal5=generer.nextInt(50)+1;
        }

        //System.out.println (tal1+"  "+tal2+"  "+tal3+"  "+tal4+"  "+tal5);
    }


}
Avatar billede carstenknudsen Nybegynder
09. december 2002 - 12:48 #1
Hvad er problemet? Virker programmet ikke eller forstår
I det ikke? Specificer.
PS brug ikke import cs1.*; det er ikke en
standard Java pakke.
Avatar billede stjernen Nybegynder
09. december 2002 - 12:55 #2
Programmet virker desværre ikke som vi vil have den til. På nuværende tidspunkt svarer det "rigtig" ligemeget om vi skriver true eller false til en påstand. Håber det hjalp...
Avatar billede carstenknudsen Nybegynder
09. december 2002 - 13:04 #3
Indeni jeres if
skal I have
if (paastand) System.out.println("Forkert");
else System.out.println("Rigtigt");
og ligeledes i jeres else.
I overskriver lige nu det brugeren har indtastet,
derfor tester I aldrig om brugeren har indtastet
det korrekte.
Avatar billede disky Nybegynder
09. december 2002 - 13:07 #4
carsten:
den cs1 package er noget en eller anden skole har lavet, for læg mærke til hvor tit den er med her på eksperten når folk spørger om skole opgaver.
Avatar billede carstenknudsen Nybegynder
09. december 2002 - 13:07 #5
I if'en skal der stå som ovenfor
og i else'n skal der står
if (paastand) System.out.println("Rigtigt");
else System.out.println("Forkert");
Avatar billede arne_v Ekspert
09. december 2002 - 13:19 #6
Prøv og kig på følgende (som virker):

import java.io.*;
import java.util.Random;

public class Type4 {

    public static void main(String[] args) {
        for (int i = 1; i < 10; i++) {
            Random generer = new Random();
            int tal1, tal2, sum, talTilfaeldig;
            boolean paastand = false;

            talTilfaeldig = generer.nextInt(50) + 1;
            tal1 = generer.nextInt(50) + 1;
            tal2 = generer.nextInt(50) + 1;
            sum = tal1 + tal2;

            System.out.print(tal1 + "+" + tal2 + "=" + talTilfaeldig);
            try {
                byte[] b = new byte[80];
                int l  = System.in.read(b);
                String answer = new String(b, 0, l);
                paastand = answer.substring(0,1).equals("t");
            } catch (IOException e) {
            }

            if (paastand == (sum == talTilfaeldig)) {
                System.out.println("\t\t\tRigtigt");
            } else {
                System.out.println("\t\t\tForkert");
            }
        }
    }
}
Avatar billede arne_v Ekspert
09. december 2002 - 13:31 #7
????

Er der nogen som kan forklare mig, hvorfor
talTilfaeldig ikke skal indgå i vurderingen
af om det er rigtigt eller forkert ?
Avatar billede carstenknudsen Nybegynder
09. december 2002 - 13:59 #8
arne_v: det gør den også i den løsning jeg
leverede; der står at det skal tilføjes
indeni if'en (og else'n). Det er ikke det
mest elegante men det er der.
Avatar billede arne_v Ekspert
09. december 2002 - 14:04 #9
Ah. Du har duplikeret koden i både if og else.
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