Prikaži potpunu verziju : Programiranje u Javi
Teo sam da vas pitam 2 pitanja pa ako neko zna i ako ga ne mrzi da mi odgovori...
1.Napisao sam jedan program ali ne znam kako da namestim da u promenljivu mogu da kucam neki text..(npr. kao sto kod tipa int se kuca celi broj..)Na guglu sam naso nesto sa stringom ali nista nisam razumeo posto sam tek poceo da programiram u javi.....
2. Ne znam kako(ili dal moze)da se napravi neka baza ili nesto gde bi program sacuvavao unesene podatke....
Eo koda programa
/*
*Prva nezvanicna Beogradska liga
*/
public class PrvaBeogradskaLiga
{
public static void main(String[]args)
{
String Match1;
int rezultat1;
Match1=Typeit.inInt("Radnicki Nbg vs. ");
System.out.println("\n");
rezultat1=Typeit.inInt("Rezultat je ");
System.out.println("\n");
System.out.println("Rezlutat utakmice Radnicki Nbg protiv "+Match1+" je "+rezultat1);
System.out.println("\n");
//Izbacuje mi gresku incompatible types
}
}
Da napomenem tek sam poceo da ucim javu i zeleo bi da napravim ovj program u koji bi upisivao rezultate mog kluba i da bi kasnije mogao nekako u programu da nadjem te rezultate(npr preko pretrazivaca ili neceg slicnog...ovo je tek pocetak program i odnosi se samo na prvu utakmicu...
Nadam se da ce neko biti voljan i imati strpljenja da mi pomogne....:)
To sto ti treba sam objasnila u ovoj temi http://www.sk.rs/forum/showthread.php?t=53522 , pa ti pogledaj ;)
Ne smaras me, slobodno pitaj ;)
Znaci BufferedReader je vec gotova klasa, koju imas na izvolte.. Nju uvozis iz java.io paketa, tako sto na samom pocetku koda napises import java.io.* (ovo ce ti uvesti sve klase koje sadrzi java.io paket, a samim tim i BufferedReader)
i evo kako bi npr izgledao ovaj tvoj kod
import java.io.*;
public class NekaKlasa {
public static void main(String[]args) throws IOException {
BufferedReader Unos = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Unesite vrednost za Match1: ");
String Match1 = Unos.readLine(); //ovde se unosi taj string
System.out.println("Uneli ste: " + Match1); //ovde ispisujes na ekran
}
}
E hvala puno sve radi savrseno:)...samo hteo sam da te pitam dal znas kako da mi to sacuva podatke koje sam uneo da pri pokretanju programa ne moram da upisujem svaki put isto nego da mi ono upisao ostane upisano(valjda razumes sta hocu....nesto kao kreiranje nekog fajla u kom bi program sacuvavao podatke i da bi se taj fajl pokretao pri pokretanju program)....:D
Mozes npr sve sto uneses da upisujes u neki .txt file.. Ali pri svakom ponovnom pokretanju programa, morao bi ponovo da ucitavas sve iz fajla u promenljive.. Evo ja cu ti sad dati neki primer, jer se tako najbolje vidi sve..
import java.io.*;
public class Blabla {
public static void main(String [] args) throws Exception{
File f = new File("izlaz.txt");
if (f.exists()) {
BufferedReader IzlazIzFajla = new BufferedReader(new FileReader("izlaz.txt")); //ovaj bufferedreader ti ustvari sluzi za citanje iz fajla.. kad napises IzlazIzFajla.readLine() on ti vrati String koji predstavlja jedan red u tom fajlu
BufferedReader Unos = new BufferedReader(new InputStreamReader(System.in));
String [] nizUnosa;
System.out.println("Do sada ste uneli: ");
String pomocnaPromenljiva = IzlazIzFajla.readLine();
int brojac=0;
//ovom while petljom brojim koliko ima redova u file-u
while (pomocnaPromenljiva != null) {
pomocnaPromenljiva = IzlazIzFajla.readLine();
brojac++;
}
IzlazIzFajla.close();
//ovim ponovo otvaram file
IzlazIzFajla = new BufferedReader(new FileReader("izlaz.txt"));
nizUnosa = new String[brojac+1];
//unos stringova iz fajla u niz stringova
for(int i=0; i<brojac; i++) {
nizUnosa[i] = IzlazIzFajla.readLine();
System.out.println(nizUnosa[i]);
}
//ovde pisem u file
System.out.println("Unesite nesto novo: ");
nizUnosa[brojac] = Unos.readLine();
PrintWriter UlazUFile = new PrintWriter(new FileWriter("izlaz.txt",true));
UlazUFile.append("\n" + nizUnosa[brojac]);
UlazUFile.close();
} else {
System.out.println("ne postoji file sa navedenim imenom");
}
}
}
PS moras napraviti prazan tekstualni fajl na mestu gde ti se nalazi program, a koji se u ovom slucaju zove izlaz.txt
I jel u ovaj txt document ne pisem vise nista???K0d programa pisem u njegovu klasu ili da dodam u txt???E i u txt da napisem public class izlaz ili ime klase glavnog koda...????
I hvala na svim odgovorima do sada.....
Nisam sigurna sta tacno hoces da pitas, ali u txt file ne pises nista.. On ti sluzi za to da sacuva sve sto je korisnik do sada uneo.. Ovaj program sto sam navela prvo ispisuje sve sto je u fajlu, pa onda od korisnika trazi da unese jos nesto, i to stavlja u fajl.. To sam napravila samo da ti demonstriram kako se uzimaju podaci iz fajla i kako se u njega upisuju.. Ako ne napravis txt file, program ce ispisati da file sa navedenim imenom ne postoji..
Obrati samo paznju da buffered reader na svom izlazu uvek daje string, pa ako ti treba broj (ili neki drugi tip podataka) moras da obavis konverziju (kasting).
Primer:
String aString = "78";
int aInt = Integer.parseInt(aString);
@yellua
Pa nije mi jasno kako da taj primer prilagodim sebi...:) i da ga ubacim u celi kod....A kod je predugacak pa ne mogu da ga napisem ovde:mad:
Hteo sam da pitam kako da ovaj kod dupliram 16 puta(tj.da me 16x pita ista pitanja)...
/*
*Prva nezvanicna liga Beograda
*created by vuk
*/
import java.io.*;
public class radnicki
{
public static void main(String[]args) throws IOException {
//promenljive
int rezultat1;
int brojgolova1;
int matchbrojgolova1;
int rezultatmatch1 ;
String txtrezultat1;//
String txtrnbvs1; //
String razmakveliki; //
String strelica; //
String rezultatje; //
String radnickipobednik;//
String pobednik1; //
String crtice; //
String txtbodovi;//
//uvod
System.out.println("");
System.out.println("------");
System.out.println("");
System.out.println("Kolo broj 1.");
System.out.println("");
System.out.println("");
//Match string
BufferedReader Unos = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Radnicki Nbg protiv ");
String Match1 = Unos.readLine();
System.out.println("");
FileWriter fWriter = null;
BufferedWriter writer = null;
brojgolova1 = Typeit.inInt("Broj golova Radnickog je ");
System.out.println("");
matchbrojgolova1 = Typeit.inInt("Broj golova " + Match1+ " je ");
rezultat1= brojgolova1 ;
rezultatmatch1=matchbrojgolova1 ;
razmakveliki=" "; //
txtrnbvs1="Radnicki nbg protiv "; //
txtrezultat1 = rezultat1+":"+rezultatmatch1;//
strelica=" --->";
rezultatje = "Rezultat je "; //
crtice= "-------";
System.out.println("");
System.out.println("Rezultat utakmice Radnicki Nbg protiv " + Match1 + " je " + rezultat1 + ":" + rezultatmatch1 ) ;
System.out.println("");
System.out.println("Domacin je bila ekipa ");
String Domacin1 = Unos.readLine();
System.out.println("");
{
if(brojgolova1>matchbrojgolova1) //petlja za 3 boda ukoliko je pobedio radnicki
System.out.println("Radnicki dobija 3 boda");
}
{
if(brojgolova1==matchbrojgolova1) //petlja ako je nereseno
System.out.println("Radnicki i ekipa " + Match1 + " dobijaju po 1 bod");
}
{
if(brojgolova1<matchbrojgolova1) //petlja okoloko je dobio match1
System.out.println("Ekipa " + Match1 + " dobija 3 boda ");
}
//petlja
try
{
fWriter = new FileWriter("kolo1.txt");
writer = new BufferedWriter(fWriter);
//novi red
writer.newLine();
writer.write(crtice); writer.newLine();
//novi red
writer.newLine();
writer.write(strelica);
writer.write(razmakveliki);
writer.write(txtrnbvs1);
writer.write (Match1); writer.newLine();
writer.newLine();
writer.write(strelica);
writer.write(razmakveliki);
writer.write(rezultatje);
writer.write(txtrezultat1); writer.newLine();
//ovo je ok sad(za rezultat i match
writer.newLine();
writer.newLine();
writer.close();
} catch (Exception e) {
}
}
}
Znaci trebalo bi da se duplira 16x a da svaki put sacuva u drugi txt file..psl help(da napomenem tek sam poceo da ucim u javi)
Ne znam kako bi islo u Javi, pogledaj kako se koriste for petlje. U Cpp je ovako:
for (int i = 0; i < 16; i++)
{
kod koji se ponavlja 16x
}
i = 0 -inicijalizacija varijable
i < 16 - uslov za trajanje petlje
i++ - povecanje i za 1 pri sledecem ponavljanju petlje.
U Javi ce biti malo drugacije. Eto, znas da ti trebaju for petlje :)
Btw mislim da bi ti isto ovako radila for petlja i u Javi, samo i++ zamenis sa i = i +1
I u Javi postoje unarni operatori za inkrementiranje i dekrementiranje tako da je i++ potpuno ispravno ;) Usput @marosh, imaš mnogo đubreta u kodu tipa nepotrebnih writeln i readln metoda tako da nije na odmet da kod skratiš recimo putem ispisivanja više stvari u okviru jedne writeln metode. Isto tako nema potrebe da svaki put kad hoćeš da dodaš novu liniju pozivaš newLine() metodu iz System paketa već možeš jednostavno da iskoristiš tzv. escape karaktere koje recimo možeš da vidiš na sledećoj stranici (http://java.sun.com/docs/books/tutorial/java/data/characters.html - skroluj dole)
Btw mislim da bi ti isto ovako radila for petlja i u Javi, samo i++ zamenis sa i = i +1
da, zato sto je samo C++ toliko napredan i ispred svog vremena da podrzava taj nacin inkrementiranja :)
a zapravo tuzna istina je da je VB jedan od jako rektih koji ih ne podrzava. (pricamo o VB6)
^^How should I know that? :) U Javi ne radim (a sa Cpp sam tek poceo) pa sam rekao coveku ono sto znam.
Eto (ako ne kontam pogresno), sad znam da i Java podrzava ++ inkrementaciju.
Hvala puno na svim odgovorima ali ima jedan problem...Kad koristim ovu pretlju for....problem je u tome sto kad me pita drugi put(3.,4.,5...) upisuje rezultate u isti txt file i onda obrise ono iz proslog upisivanja...ne znam kako da namestim da mi upisuje u drugi txt file ili barem da nebrise ono iz starog... :nov_mad2:I imam jos 1 pitanje...Kako da namestim da kad popunim sve sto pita u prvom kodu da se program ugasi al pri ponovnom pokretanju preskoci prvi i idma krene na sledeci kod(kodovi se svi samo ponavljaju)...:)
Eh, pa na pocetku petlje konvertujes integer -i- u neki string (npr ime varijable StringI) onda npr saberes stringove "ime", StringI i " ".txt" i cuvace se u razlicitih 16 fajlova rezultati ;)
ime0.txt
ime1.txt
ime2.txt
itd.
Pokusaj da shvatis kako sve to radi ;)
@ marosh
izvini, ali ne uci se tako programiranje.
tebi je neko pokazao kako da ubacis petlju i ti su tu lupio copy i paste, i sada kada ne radi kako bi zeleo, pojma nemas ni zasto ne radi ni kako da popravis.
MORAS da krenes od nekih osnova, ako mislis da razumes sta radis.
a ako zelis da ti mi tako iz 10 pokusaja sastavimo program, a da ti pojma nemas sta se tu dogadja, onda je to sasvim druga stvar.
Hvala ponovo..Resio sam problem ovako:
for(int r=1; r < 16;r++)
a txt file namestio da se zove "kolo"+r+"txt
Verujem da mislis "kolo" + r +".txt" ;)
Pitanje za one koji znaju: u Javi postoji operator+ koji dozvoljava "klasicno" sabiranje stringova kao ovo:
"abc" + "abc" + nekiString
? :D
Bar se u Cpp to zove operator, valjda ih ima i u Javi, sta znam pitam, pocela Java da mi deluje primamljivo za razvoj aplikacija :D
Verujem da mislis "kolo" + r +".txt" ;)
Pitanje za one koji znaju: u Javi postoji operator+ koji dozvoljava "klasicno" sabiranje stringova kao ovo:
"abc" + "abc" + nekiString
? :D
Bar se u Cpp to zove operator, valjda ih ima i u Javi, sta znam pitam, pocela Java da mi deluje primamljivo za razvoj aplikacija :D"Klasično sabiranje stringova" se stručno zove konkatenacija (concatenation) i može da se radi na nekoliko načina uključujući i "+" operator ali se generalno "+" izbegava zato što je gledano po performansama najgora moguća varijanta spajanja dva stringa.
Da ne bih radio čisto prepisivanje pogledaj koje su boljealternative za spajanje stringova: http://www.ibm.com/developerworks/websphere/library/bestpractices/string_concatenation.html
naravno, to ne znaci da ako samo na jednom mestu spajas dva stringa i nista vise, da je pogresno da jednostavno odradis prvi + drugi i cao.
nema potrebe uvoditi stringbuffer za jednu,dve, nekoliko operacija.
medjtuim cim pocne da raste broj, stringbuffer postaje isplativije resenje.
isto vazi za C# i StringBuilder
vBulletin® v3.8.7, Copyright ©2000-2024, vBulletin Solutions, Inc.