Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem sa uporedjivanjem razlicitih vrednosti...?

[es] :: Java :: Problem sa uporedjivanjem razlicitih vrednosti...?

[ Pregleda: 1381 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

casperns2
Full Stack Java Web Developer
Novi Sad

Član broj: 288154
Poruke: 227
..11.cust.bredbandsbolaget.se.



+45 Profil

icon Problem sa uporedjivanjem razlicitih vrednosti...?20.12.2012. u 22:37 - pre 137 meseci
Pozdrav, jos uvek se upoznavam sa javom i naisao sam na problem koji nikako da resim, ako neko ima malo vremena da mi da neki savet i pomognete. Trenutni kod radi kako zelim i sve funkcionise ali zelim da ubacim neke promene. Ukratko,u kodu gde su vrednosti INT , zelim da ubacim i odgovore koje imaju String vrednost.
A opet mi se javlja jos jedan problem ako i napravim odgovore koji imaju String vrednost, u daljem kodu ne mogu sa istim kodom porediti odgovore korisnika i tacne odgovore, jer je kod za INT vrednosti... nadam se da ce te razumeti sta mi pravi problem. Evo ga i ceo kod pa ce biti mozda jasnije sta zelim.....

Code:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Matematika extends java.applet.Applet {
    
    public static void main(String[] args) {
        try {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            String kraj;
int rezultat=0;
            String[] pitanje = new String[10];
            pitanje[0] = ("Koliko je 5*6/3=? ?");
            pitanje[1] = ("Koliko minuta ima u 2 cela dana?");
            pitanje[2] = ("Koliko je 53-43?");
            pitanje[3] = ("Koliko je 5+5*4-2+7-4+8/2+5-29=? ");
            int[] odgovori = {10, 2880, 10, 6};
            
           
            do {
                System.out.println("Izaberi pitanje od 1 do 10?");
                int p = Integer.parseInt(br.readLine());
                System.out.println("Pitanje broj " + p + " je: " + pitanje[p - 1]);
                System.out.print("Odgovor je: ");
                int odgovor = Integer.parseInt(br.readLine());
                if (odgovor == odgovori[p - 1]){
             rezultat=rezultat+5;
             System.out.println("Bravo, odgovor je tacan!");}
      
                else
                 {System.out.println("Odgovor " + odgovor + " nije tacan.Tacno resenje je : " + odgovori[p - 1]);
               rezultat=rezultat-2; }

                    System.out.println("Zelite li novo pitanje? da/ne ?");
                kraj = br.readLine();
            } while (kraj.equals("da"));

            System.out.println("Kraj!Vas rezultat je: "+rezultat+" poena.");
        } catch (IOException e) {
            System.out.println("Greska: " + e.getMessage());
        }
    }
}
 
Odgovor na temu

FooLControL
Serbia

Član broj: 168531
Poruke: 74
*.dynamic.isp.telekom.rs.



+8 Profil

icon Re: Problem sa uporedjivanjem razlicitih vrednosti...?21.12.2012. u 02:36 - pre 137 meseci
Konvertuj String u Integer, ako je exception, tj. ako ne moze da konvertuje znaci da nije broj i da odgovor nije tacan, ako ne baca exception, onda proveri sa tacnim odgovorom. Ako sam dobro razumeo sta si pitao.
 
Odgovor na temu

bantu

Član broj: 38670
Poruke: 305
89.111.240.*



+27 Profil

icon Re: Problem sa uporedjivanjem razlicitih vrednosti...?21.12.2012. u 07:14 - pre 137 meseci
Razmizšljaj u objektno orjentisanom duhu. Napravi novu klasu koja se zove Odgovor.
 
Odgovor na temu

casperns2
Full Stack Java Web Developer
Novi Sad

Član broj: 288154
Poruke: 227
*.mobileonline.telia.com.



+45 Profil

icon Re: Problem sa uporedjivanjem razlicitih vrednosti...?21.12.2012. u 09:54 - pre 137 meseci
@Foolkontrol, malo cu googlati kasnije da vidim tacno kako bi se to radilo jer nisam bas najbolje upucen u te termine i metode koje si pomenuo.

@bantu , dobar savet da se treba razmisljati uvek u objektno orjentisanom duhu ali meni jos ne ide toliko dobro to razmisljanje da mogu resiti ovo. Cak i da napravim jednu ili dve klase sa pitanjima i odgovorima razlicitih vrednosti(int ili String), buni me kasnije kako kod provere rezultata gde uporedjujem odgovor i ono sto korisnik unese da funkcionise. Jer za int i String vrednosti nije isti kod prilikom poredjenja, tj. provere rezultata.

Da li je moguce da mozda napravim dve grupe ili klase odgovora . Kada korisnik izabere broj pitanja odredi se koja je klasa( da li sa int ili String vrednostima) i od zavisnosti koja je ,program ide na onaj deo programa gde je poredjenje za tu vrednost.

 
Odgovor na temu

FooLControL
Serbia

Član broj: 168531
Poruke: 74
*.dynamic.isp.telekom.rs.



+8 Profil

icon Re: Problem sa uporedjivanjem razlicitih vrednosti...?21.12.2012. u 12:12 - pre 137 meseci
Nemoj praviti dve klase pitanja i odgovora jer nema smisla. Najbolje bi ti bilo da su ti tacni odgovori i odgovori koje unosi korisnik String, nema veze sto su brojevi. Ispitujes String sa Stringom metodom equals(). Uopste nemas potrebe za Integer-om jer ne koristis njegove operacije, sabiranje, oduzimanje itd.
 
Odgovor na temu

bantu

Član broj: 38670
Poruke: 305
89.111.240.*



+27 Profil

icon Re: Problem sa uporedjivanjem razlicitih vrednosti...?21.12.2012. u 14:03 - pre 137 meseci
Možda može ovako, probaj.
Code:

public class Odgovor {
    
    private Object t;

    public Odgovor(Object value) {
        this.t = value;
    }
    
    public Object getValue() {
        return t;
    }

    @Override
    public boolean equals(Object obj) {        
        if (!(obj instanceof Odgovor)) {
            return false;
        }        
        Odgovor o = (Odgovor) obj;        
        return t.equals(o.getValue());
    }    

}

Code:

public class Main {

    public static void main(String[] args) {
        
        Odgovor o = new Odgovor("Tacno");
        Odgovor o1 = new Odgovor("Necacno");
        Odgovor o2 = new Odgovor("Tacno");
        
        Odgovor o3 = new Odgovor(1);
        Odgovor o4 = new Odgovor(2);
        Odgovor o5 = new Odgovor(1);
        Odgovor o6 = new Odgovor("1");
        
        //false
        System.out.println(o.equals(o1));
        //true
        System.out.println(o.equals(o2));
        
        //false
        System.out.println(o3.equals(o4));
        //true
        System.out.println(o3.equals(o5));
        
        //false
        System.out.println(o.equals(o3));
        
        //false
        System.out.println(o3.equals(o6));

    }

}
 
Odgovor na temu

casperns2
Full Stack Java Web Developer
Novi Sad

Član broj: 288154
Poruke: 227
..11.cust.bredbandsbolaget.se.



+45 Profil

icon Re: Problem sa uporedjivanjem razlicitih vrednosti...?21.12.2012. u 14:47 - pre 137 meseci
@FooLControL, mislim da je za mene trenutno najlakse tako da uradim, samo da zamenim vrednost u string i promenim kod pri poredjenju za String vrednosti

@bantu hvala na pomoci, ovaj nacin mi je malo tezi ali sigurno cu pokusati i na ovaj nacin da uradim i da vidim kako sve funkcionise i sta je kako povezano radi kasnih komplikovanih zadataka i vezbanja. Nadam se da cu uklopiti sve kako treba.

Javim jesam li uspeo i na koji nacin.

Pozdrav
 
Odgovor na temu

casperns2
Full Stack Java Web Developer
Novi Sad

Član broj: 288154
Poruke: 227
..11.cust.bredbandsbolaget.se.



+45 Profil

icon Re: Problem sa uporedjivanjem razlicitih vrednosti...?23.12.2012. u 09:20 - pre 137 meseci
Resenje je bilo jako prosto, kao sto je rekao FooLControL , samo sam stavio vrednosti u String i resen problem.

Sada cu pokusati malo da nadogradim program, na primer da uvedem promenljivu koja ce uticati da kada korisnik izabere na pitanje broj 5, ne dobije uvek isto pitanje vec da se menjaju. Videcu koje mogucnosti postoje , na primer zavisno koji je minut na kompjuteru ili koji je sat, da pitanje koje izabere se sabere sa trenutnim brojem minuta koliko je na satu i tada bi se odredjeno pitanje nalazilo cesto pod brugim brojem, naravno vise pitanja bi stavio u niz.

Code:
System.out.println("Izaberi pitanje od 1 do 10?");
                int p = Integer.parseInt(br.readLine());
                System.out.println("Pitanje broj " + p + " je: " + pitanje[p - 1]);


gde bi umesto [p-1] stavio neku drugu formulu ili sta vec, uglavnom ako ne uspem preko googla da resim, javicu se.

Pozdrav!
 
Odgovor na temu

[es] :: Java :: Problem sa uporedjivanjem razlicitih vrednosti...?

[ Pregleda: 1381 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.