[ casperns2 @ 23.10.2012. 19:44 ] @
Pokusao sam sam da resim ovaj zadatak u javi i ne znam gde gresim. Zelim da se u niz ubaci 5 brojeva, i posle program da ispise broj koji je upisan na odredjenom mestu.
Mozda nisam izvrsio import nekih paketa ali pocetnik sam i ucim, zato se i javljam.


[ nemnesic @ 23.10.2012. 19:46 ] @
Daj code?
[ casperns2 @ 23.10.2012. 19:48 ] @
Evo kod, nisam ni siguran da li je ovo izvodljivo kao sto sam ja napisao?
[ nemnesic @ 23.10.2012. 19:51 ] @
nemoj da saljes slike koda. daj copy / paste lepo ovde.
[ casperns2 @ 23.10.2012. 19:59 ] @
public class Niz {

public static void main(String[] args)
{ConsoleReader in= new ConsoleReader(System.in);
int[] lista;
int i;
for ( i=0; i<5; i++)
{System.out.println("Unesite " +i+ ". broj u listu");
lista=in.readInt();
}
System.out.println("Koji po redu broj iz liste zelite da vidite?");
int p=in.readInt();
for (i=0;i<p; i++)
{}
System.out.println(p+ ". broj po redu u listi je" + lista);
}

}


ili



public class Niz {

public static void main(String[] args)
{ConsoleReader in= new ConsoleReader(System.in);
int[] lista;
int i;
for ( i=0; i<5; i++)
{System.out.println("Unesite " +i+ ". broj u listu");
lista=in.readInt();
}
System.out.println("Koji po redu broj iz liste zelite da vidite?");
int p=in.readInt();
i=p;
System.out.println(p+ ". broj po redu u listi je "lista);
}
}
[ nemnesic @ 23.10.2012. 20:04 ] @
Odakle si nasao ovaj ConsoleReader()?

Odakle si nasao ovaj primer?
[ casperns2 @ 23.10.2012. 20:19 ] @
Zadatak sam video da je na forumu resavan u nekom drugom programskom jeziku... neki C jezik , pa sam pokusao da ga resim u javi.

ConsoleReader? - U nekom prirucniku za javu sto sam skinuo sa neta... verovatno nesto nije u redu cim ga pominjes?
[ nemnesic @ 23.10.2012. 20:23 ] @
evo primera kako da citas input: http://www.codingdiary.com/dev.../ConsoleReaderExampleCode.html

znaci zameni ovaj ConsoleReader. i probaj ponovo. Ako ne radi slobodno se javi.

pozdrav
nn
[ casperns2 @ 23.10.2012. 20:37 ] @
Ok, hvala, promenicu sada...

Inace kada u DOS-u ukucam komandu javac Niz.java za drugi kod koji sam kopirao , izbaci mi ove greske.
[ casperns2 @ 23.10.2012. 20:58 ] @
Evo kako sam promenio ConsoleReader.

public class Niz {

public static void main(String[] args)
{Console console = System.console();
int[] lista;
int i;
for ( i=0; i<5; i++)
{System.out.println("Unesite " +i+ ". broj u listu");
lista=console.readInt();
}
System.out.println("Koji po redu broj iz liste zelite da vidite?");
int p=console.readInt();
i=p;
System.out.println(p+ ". broj po redu u listi je "lista);
}
}

...........
kada tajj kod pokrenem u JCreator izbaci mi ovu gresku:

--------------------Configuration: <Default>--------------------
Unesite 5. broj
3
java.lang.ArrayIndexOutOfBoundsException
at Niz.main(Niz.java, Compiled Code)
Exception in thread "main"
Process completed.


Najbolje mozda da predjen na neki novi zadatak ali nije ni resenje uvek odustajati kada naidjemo na problem a sigurno je resiv, sada za mene izgleda neresivo ali sto ga vise resavam sve vise zelim da vidim resenje problema i ceo kod...

Ne znam da li treba da skinem neke klase jave u istu datoteku kao i klasa ovog programa?
[ del-boy @ 23.10.2012. 21:35 ] @
Code (java):

import java.io.*;

public class Niz {
        public static void main(String[] args) {
                try {
                        int[] lista = new int[5];
                        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
                        for (int i = 0; i < 5; i++) {
                                System.out.print("Unesite " + (i + 1) + ". broj: ");
                                lista[i] = Integer.parseInt(br.readLine());
                        }
                        System.out.println("Koji broj po redu zelite da prikazete (od 1 do 5)?");
                        int index = Integer.parseInt(br.readLine());
                        System.out.println(index + ". po redu je " + lista[index-1]);
                }
                catch (IOException e) {
                        System.out.println("Greska: " + e.getMessage());
                }
        }
}
 
[ casperns2 @ 23.10.2012. 21:49 ] @
Hvala najlepse i nemnesic-u i del-boy na pomoci.

Izgledalo mi je tako jednostavno a na kraju nikada ne bih sa ovim znanjem uspeo napisati kod, sada ga moram dobro zapamtiti i prouciti da ne bih jos nekada izgubio celo vece na slicnom problemu...
[ casperns2 @ 25.10.2012. 12:04 ] @
Code:
Pozdrav ,
ako imam na primer ovakav izraz

Code:
class Matematika
   { public static void main(String[]args)
      BufferedReader in = new BufferedReader(new InputStreamReader(System.in))
      String [] pitanja;
      int [] odgovori;
           System.out.println("Izaberite pitanje od 1 do 10? ");
             ......
             ......    \\  izvrsavanje zadataih naredbi
             ......
             ......     \\Kada je korisnik zavrsio sa prvim pitanjem ispisuje se poruka ..

    System.out.println("Da li zelite novo pitanje? da\ne " );
    String dane=in.readLine(); 
          if (dane.equals("da"))    \\ Da li je moguce da iz ovog dela ako je odgovor "DA" ,da se program vrati na pocetak na onaj deo 
                     ...                    \\  gde se ispisuje naredba " System.out.println("Izaberite pitanje od 1 do 10? ");" 
                                            \\i opet da izvrsava postojeci kod
                     ...  
               
                else
                     break;       \\kraj programa    



Sada sam se setio, mozda sam pogresio sto nisam napravio metodu za pitanja, na kraju kada se korisnik pita ako zeli novo pitanje samo da se pozove metoda... pokusacu tako... u svakom slucaju svaki savet je dobro dosao.
[ nemnesic @ 25.10.2012. 14:57 ] @
pogledaj do while loop...


znaci pseudo code bi bilo:

Code:

 do {
          user input

  } while(input == "DA")


[ casperns2 @ 25.10.2012. 16:52 ] @
Gde gresim ???

Code:
import java.io.*;
import java.util.*;
public class Matematika
    
{public static void main(String[]args)
   { ConsoleReader in=new ConsoleReader(System.in);
   String reply;
   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 4?");
       int p=in.readInt();
          System.out.println("Pitanje broj "+p+" je: "+ pitanje[p-1]);
          System.out.print("Odgovor je: ");
      int odgovor=in.readInt();
      if (odgovor==odgovori[p-1])
          System.out.println("Bravo, odgovor je tacan!");
               else
               System.out.println("Nije tacno, pokusajte jos jedanput! "+ pitanje[p-1]);
                   odgovor=in.readInt();
                     if (odgovor==odgovori[p-1])
                        System.out.println("Bravo, odgovor je tacan!");
                       else
                          System.out.println("Odgovor "+odgovor+" nije tacan.Tacno resenje je : " +odgovori[p-1]);
                          System.out.println("Zelite li novo pitanje? da/ne ?");
           reply=in.readLine();
       }
      while (reply.equals("da");
      System.out.println("Kraj!");
      }
   }
   


[Ovu poruku je menjao casperns2 dana 25.10.2012. u 18:07 GMT+1]
[ nemnesic @ 25.10.2012. 17:08 ] @
Ponovo ti koristis ovaj ConsoleReader.
Pogledaj sta ti je del-boy napisao. koristi BufferedReader
[ casperns2 @ 25.10.2012. 17:37 ] @
Svestan sam toga, znao sam da ces primetiti ali i u prvom kodu kada sam pisao koristio sam BufferedReader ali mi je javljao neke greske koje kasnije sa ovim ConsoleReader nije... verovatno nisam dobro koristio ali sigurno cu to promeniti uskoro.

Inace promenio sam malo kod ali kada dodje do kraja prvi put ne zavrsi program ali nece ni da pokrene ponovo pitanje..

Code:
      do
           {System.out.println("Izaberi pitanje od 1 do 4?");
          int p=in.readInt();

.
..
.
.
Code:
     System.out.println("Zelite li novo pitanje? da/ne ?");           
                 String kraj=in.readLine();
           }
              while (kraj.equals("da"));
           System.out.println("Kraj!");


Sve prodje kako treba i na kraju me pita da li zelim novo pitanje, kada ukucam da nista se ne desava , mogu nastaviti da pisem sta bilo ali me ne vraca na pocetak kod DO a neispisuje ni kraj programa.
[ nemnesic @ 25.10.2012. 17:43 ] @
evo ovo bi trebalo da radi:

Code:


/**
 * Created with IntelliJ IDEA.
 * User: nem
 * Date: 10/25/12
 * Time: 12:03 PM
 * To change this template use File | Settings | File Templates.
 */

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

public class Matematika

{
    public static void main(String[] args) {
        try {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            String reply;
            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])
                    System.out.println("Bravo, odgovor je tacan!");
                else
                    System.out.println("Nije tacno, pokusajte jos jedanput! " + pitanje[p - 1]);
                odgovor = Integer.parseInt(br.readLine());
                if (odgovor == odgovori[p - 1])
                    System.out.println("Bravo, odgovor je tacan!");
                else
                    System.out.println("Odgovor " + odgovor + " nije tacan.Tacno resenje je : " + odgovori[p - 1]);
                System.out.println("Zelite li novo pitanje? da/ne ?");
                reply = br.readLine();
            } while (reply.equals("da"));
            System.out.println("Kraj!");
        } catch (IOException e) {
            System.out.println("Greska: " + e.getMessage());
        }
    }
}

[ casperns2 @ 25.10.2012. 18:00 ] @
Hvala , sada radi, samo sto sada pokusavam da nadjem gde sam ja gresio.

Da li je moralo da se koristi String reply;
Ili je moglo i da definisem String kraj; (kraj.equals("da"));
[ nemnesic @ 25.10.2012. 18:06 ] @
posalji mi ceo kod koji ne radi.
[ casperns2 @ 25.10.2012. 18:44 ] @
Ovaj prvi kod koji sam poslao... Jeste da sam koristio ConsoleReader ali ne bi zbog toga trebalo da bude problema oko izvrsavanja programa...
Sta u ovom kodu nije dobro???

Code:
import java.io.*;
import java.util.*;
public class Matematika
    
{public static void main(String[]args)
   { ConsoleReader in=new ConsoleReader(System.in);
   String reply;
   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 4?");
       int p=in.readInt();
          System.out.println("Pitanje broj "+p+" je: "+ pitanje[p-1]);
          System.out.print("Odgovor je: ");
      int odgovor=in.readInt();
      if (odgovor==odgovori[p-1])
          System.out.println("Bravo, odgovor je tacan!");
               else
               System.out.println("Nije tacno, pokusajte jos jedanput! "+ pitanje[p-1]);
                   odgovor=in.readInt();
                     if (odgovor==odgovori[p-1])
                        System.out.println("Bravo, odgovor je tacan!");
                       else
                          System.out.println("Odgovor "+odgovor+" nije tacan.Tacno resenje je : " +odgovori[p-1]);
                          System.out.println("Zelite li novo pitanje? da/ne ?");
           reply=in.readLine();
       }
      while (reply.equals("da"));
      System.out.println("Kraj!");
      }
   }
[ nemnesic @ 25.10.2012. 18:49 ] @
Moras onda da mi posaljes i ConsoleReader da bi debug-ovao program.
[ casperns2 @ 25.10.2012. 18:51 ] @
Code:
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;

/** 
   A class to read strings and numbers from an input stream.
   This class is suitable for beginning Java programmers.
   It constructs the necessary buffered reader, 
   handles I/O exceptions, and converts strings to numbers.
*/

public class ConsoleReader
{  /**
      Constructs a console reader from an input stream
      such as System.in
      @param inStream an input stream 
   */
   public ConsoleReader(InputStream inStream)
   {  reader = new BufferedReader
         (new InputStreamReader(inStream)); 
   }
   
   /**
      Reads a line of input and converts it into an integer.
      The input line must contain nothing but an integer.
      Not even added white space is allowed.
      @return the integer that the user typed
   */
   public int readInt() 
   {  String inputString = readLine();
      int n = Integer.parseInt(inputString);
      return n;
   }
   
   /**
      Reads a line of input and converts it into a floating-
      point number. The input line must contain nothing but 
      a nunber. Not even added white space is allowed.
      @return the number that the user typed
   */
   public double readDouble() 
   {  String inputString = readLine();
      double x = Double.parseDouble(inputString);
      return x;
   }
   
   /**
      Reads a line of input. In the (unlikely) event
      of an IOException, the program terminates. 
      @return the line of input that the user typed, null
      at the end of input
   */
   public String readLine() 
   {  String inputLine = "";

      try
      {  inputLine = reader.readLine();
      }
      catch(IOException e)
      {  System.out.println(e);
         System.exit(1);
      }

      return inputLine;
   }

   private BufferedReader reader; 
}
[ nemnesic @ 25.10.2012. 19:08 ] @
Problem ti je if ..else

Uvek stavljaj zagrade { ... } kada radiis if - else...jer iako nisu obavezne uvek mnogo je preglednije

evo konacnog resenja:


Code:

public class Matematika

{
    public static void main(String[] args) {
        ConsoleReader in = new ConsoleReader(System.in);
        String reply;
        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 4?");
            int p = in.readInt();
            System.out.println("Pitanje broj " + p + " je: " + pitanje[p - 1]);
            System.out.print("Odgovor je: ");
            int odgovor = in.readInt();

            if (odgovor == odgovori[p - 1]) {
                System.out.println("Bravo, odgovor je tacan!");
            } else {
                System.out.println("Nije tacno, pokusajte jos jedanput! " + pitanje[p - 1]);
                odgovor = in.readInt();
                if (odgovor == odgovori[p - 1]) {
                    System.out.println("Bravo, odgovor je tacan!");
                } else {
                    System.out.println("Odgovor " + odgovor + " nije tacan.Tacno resenje je : " + odgovori[p - 1]);
                }
            }
            System.out.println("Zelite li novo pitanje? da/ne ?");
            reply = in.readLine();
        }
        while (reply.equals("da"));
        System.out.println("Kraj!");
    }
}
[ casperns2 @ 25.10.2012. 19:21 ] @
Da, sada je sve kako treba, razmisljao sam da je moguci problem u IF petlji ali nisam bio siguran kako funkcionise i gde se stavljaju zagrade kada ima vise krakova i naredbi unutar if petlje.

Hvala jos jednom, mnogo znace ovi saveti i pomoci , nadam se da se necu uskoro javljati sa problemima.

Pozdrav!
[ casperns2 @ 29.10.2012. 11:49 ] @
Evo me opet, ne odustajem ijako stalno nailazim na probleme koji nisu jasno razumljivi za pocetnike, ali na kraju gresku po gresku ispravim i male obicne programcice napisem i aplete.

Evo sta mi nije jasno, trazio sam vec par dana po google i za pravljenje instalacije skinuo par programa i probao ali ne ide pa nema sta drugo nego da pokusam ovde.Pa neko ako moze pomoci oko ovoga:

1.Da li moze u appletu da se pisu i dobijaju ulazne vrednosti, sve sto nalazim je samo ispis i crtanje u appletu, ima li nesto tipa BufferedReader da korisnik napise tekst ili broj koji ce se dalje koristiti u kodu?
2.Procitao sam i ovde i instalirao programe za pravljenje .exe fajlova ali nikako ne ide, mozda su starije teme, koji program za pravljenje instalacije koristite ili koji nacin. Na internetu cak i nadjem neke koje preporucuju ali nigde nema malo bolje objasnjeno sta treba sve da uradim da bi napravio instalaciju, ali napisite samo program koji preporucujete ili koristite pa cu se nekako snaci na kraju

Ostale manje probleme cu traziti po netu ali ovo me bas muci jer vec par dana pokusavam ali ne ide. Za aplet sam nalazio zadatke i primere ali svaki samo ispisuje nesto, postavlja dugmad ili crta..

Pozdrav
[ nemnesic @ 29.10.2012. 13:35 ] @
Za ovo pitanje si treba da otvoris novu temu jer se razlikuje od tvoj prvog pitanja...

aplet mozes lako da radis user input. evo pogedaj ovo: http://www.muq.org/~cynbe/java/classes/applets.html
[ casperns2 @ 29.10.2012. 14:30 ] @
Hvala za ovaj sajt oko appleta. To mi je i bitnije trenutno a za instalaciju cu videti , pokusacu jos malo sa google pa ako ne uspe javicu se.

Pozdrav