[ Eugen Reisen @ 03.04.2005. 07:58 ] @
| Oprostite, ako mislite da ovo nije u skladu s pravilnikom, ali ako imate malo volje i vremena, pomoć!!!
Bi mi tko mogao pomoći napraviti jedan program u Turbo Pascalu. Trebao bih napraviti jedan kvizic milijaner, ako bi mi tko htio pomoći ovo napraviti bio bih jako zahvalan. (kviz sa više razina). U kviz ne moram staviti npr. Baš sve kako je u milijaneru. Naprimjer ne moram staviti u program baš kako je u milijaneru(kako u njemu postoji poziv u pomoć, prepoloviti tako da ostanu samo dva ….) već može biti i neka druga pomoć(da nebude komplicirano). Trebalo bi to izvesti da program ne bude previše kompliciran(ali da bude što bolji). Trebalo bi izračunati koliko si novaca dobio i tako. Da bude sličan Kvizicu milijaneru, ali se neke komplicirane stvari mogu i izbaciti.
PLEASE, POMOĆ!!!!!!!
[Ovu poruku je menjao Eugen Reisen dana 12.04.2005. u 09:41 GMT+1] |
[ Eugen Reisen @ 03.04.2005. 21:18 ] @
Please jel bi mi tko mogao pomoći, bio bih jako zahvalan???
[ smfilip @ 03.04.2005. 21:21 ] @
a sta ce ti takvo nesto? ne vidim svrhu pravljenja toga,stavise,cisto gubljenje vremena,osim ako nemas neki dobar razlog...
EDIT: Pa vec si jednom dobio kod?! zasto trazis ponovo isto!
[Ovu poruku je menjao smfilip dana 03.04.2005. u 22:24 GMT+1]
[ Eugen Reisen @ 03.04.2005. 21:24 ] @
Joj da znaš kak mi taj program treba, ako ga znaš, please pomoć!!!
[ Eugen Reisen @ 03.04.2005. 21:26 ] @
Zbog toga jer onaj program previše odstupa od zadatka, sada sam bio malo konkretniji.
Please pomoć!!!
[ Srki_82 @ 04.04.2005. 00:58 ] @
Takav program je vrlo lako napraviti. Vise ces se zezati da napravis da sve izgleda lepo (da ispisujes sve na pravom mestu, da koristis lepe boje i slicno) nego sto ces pisati kod. Sve u svemu ovako bi bisao kod:
1. Napravis fajl sa pitanjima (6 redova za svako pitanje, 1. red je pitanje, od 2. do 5. reda su ponudjena pitanja, a 6. red je redni broj tacnog odgovora, ali uvek mozes smisliti i neki bolji nacin zapisivanja... meni ovaj izgleda nekako najlaksi)
2. Na pocetku programa ucitas ovaj fajl u niz recorda (Jedan record sadrzi 5 stringa u kojima su pitanje i odgovori, i jedan integer koji sadrzi tacan odgovor)
3. Ucitana su pitanja, znas koliko ih ima i ulazis u repeat ili neku drugu petlju koja ce se ponavljati sve dok igrac ne stigne do zadnjeg pitanja ili dok ne pogresi
4. Unutar petlje ispisujes prvo pitanje i ponudjene odgovore
5. Igrac izabira jedan od odgovora
6. Ako je pogodio dodaje mu se neka suma i ide dalje, ako je promasio ili stigao do kraja ispisuje se poruka i izlaz iz programa ili nesto slicno
7. Kraj repeat ili neke druge petlje... uzima se sledeci pitanje i petlja moze da se vrti dalje
To ti je ceo program... mozes da ga napises za 20 minuta... mozda i manje :)
[ Srki_82 @ 04.04.2005. 16:09 ] @
Reci sta ti nije jasno pa cemo ti pomoci. Tesko da ces naci nekog ko ce sesti i napisati ti kod za koji ces ti posle preuzeti zasluge ma kako male one bile. Pocni sam da kuckas pa kad negde zaglavis dodji ovde i pitaj npr. kako se brise ekran, kako da otvorim fajl i procitam string iz njega i slicno. Tako ces pre zavrsiti program, a i naucices nesto novo.
[ peromalosutra @ 08.04.2005. 20:43 ] @
Ja sam prije radio nesto slicno (ali sam formatirao disk i nisam ga sacuvao) i tvoj kviz ne bi trebao da bude problem.
Napises jednu proceduru koja ce da provjerava odgovore na pitanja koja izgleda otprilike ovako:
Procedure provjera;
Begin
Readln (odgovor);
If odgovor=tacanodg
then
begin
writeln ('Tacan odgovor.');
brtacnih:=brtacnih+1;
end
else
Begin
Writeln ('Pogresan odgovor, tacan odgovor je ',tacanodg,'.');
brnetacnih:=brnetacnih+1;
zivot:=zivot-1;
end;
readln;
end;
a zatim napises svako pitanje kao proceduru kao sto je to predlozio Srki_82.
U toj proceduri treba da je definisan i tacan odgovor. Ako je odgovor na pitanje pogresan igrac gubi zivot, ali umjesto zivot:=zivot-1; mozes staviti, na primjer,
kraj:=true.
U tom slucaju u glavnom programu stavis naredbu repeat, a zatim proceduru koja bira pitanje pomocu
Randomize;
pitanje:=random (broj_pitanja);
a repeat petlja da se zavrsava sa
until kraj=true;
To je samo gruba slika, ali nadam se da ce ti pomoci.
[ Srki_82 @ 08.04.2005. 22:51 ] @
Eto... decko koji je tek poceo s programiranjem i pascal-om je sve shvatio... ako se samo malo potrudis Eugen Reisen-e i napravis bar nesto sto lici na Milionera, odvojicu 20-ak minuta i napraviti kviz (tebi ce ostati samo da napises pitanja) kao Milioner. Imaces sve... pitanja, pomoc publike, pomoc prijatelja i 50:50 pomoc. Samo nemoj da mi prepises kodove koje su ti do sad dali... probaj da uradis nesto sa fajlovima u kojima se nalaze pitanja.
Za kad ti je trebao ovaj zadatak? 
[ Eugen Reisen @ 09.04.2005. 17:12 ] @
OK, učinit ću što kažeš.
Trebao bi mi do ponedjeljka.
[ Eugen Reisen @ 09.04.2005. 19:01 ] @
Nešto sam pokušavao ali jednostavno ne znam kako da to učinim ono s filom kao što si napisao. A bez toga je neke stvari u programu nemoguce učiniti.
Program milioner;
Var b:text;
c:integer;
suma: integer;
Procedure krivo;
Begin
Writeln (' zao mi je doviĐenja');
End;
Begin
Assign(b,'doc.dat');
Rewrite(b);
Writeln('1. pitanje: ');
Writeln(' Dali je ovaj zadatak tezak? ');
Writeln(' 1) Ne ');
Writeln(' 2) Uz pomoc mozda ne ');
Writeln(' 3) Da ');
Writeln(' 4) Da svakako ');
Readln(c);
If c=1 Then Writeln(' Pogresan odgovor ');
If c=3 Then Writeln(' Pogresan odgovor ');
If c=4 Then Writeln(' Pogresan odgovor ');
If c=2 Then Writeln (' Uspjesno ste odgovorili na pitanje za 100kn ');
Readln;
if c=2 Then
Begin
Writeln('2. pitanje: ');
Writeln(' Sto je povjest ');
Writeln(' 1) Znanost o biljkama ');
Writeln(' 2) Znanost koja prouźava prirodu ');
Writeln(' 3) Znanost koja je usmjerena na proslost ');
Writeln(' 4) Znanost o źovjeku ');
Readln(c);
If c=1 Then Writeln(' Pogresan odgovor ');
If c=3 Then Writeln(' Pogresan odgovor ');
If c=3 Then Writeln(' Uspjesno ste odgovorili na pitanje za 200 kn ');
If c=4 Then Writeln(' Pogresan odgovor ');
End else krivo;
Writeln(' Osvojili ste ' , suma)
Writeln(' Trenutno imate 200 kuna');
Readln;
End.
A tvoj dio obećanja...
[ Eugen Reisen @ 09.04.2005. 23:04 ] @
Please , pomozite mi!!!?
[ Srki_82 @ 10.04.2005. 01:51 ] @
Bas si se potrudio 
Ok... posto nemam TP napisacu ti program u Delphi-u... koristicu obicnu console aplikaciju pa ce verovatno samo neke sitne izmene biti potrebne ako uopste i bude bilo potrebe za izmenama... napisacu ti programcic u nedelju poslepodne.
[ Toyo @ 10.04.2005. 02:32 ] @
He he.
Sve sto si video u prethodna 3 dana na forumu si sipao u jedan lonac, promuckao i.... mislio da ce da proradi :)
Ima tu svacega, i sume koje se nikada ne inicijalizuju, vec samo ispisuju, i otvaranje datoteke koja nicemu ne sluzi, procedura koja ima jednu liniju i koristi se samo jednom....ma cudo od programa!
[ Srki_82 @ 10.04.2005. 02:41 ] @
Pa... videcu da ubacim sveeee sto mi padne na pamet pa ako ne nauci kako sta i zbog cega radi tesko da ce odbraniti rad... ili ga bar malo sam osakatiti da bude losiji :)
Sta bih mogao sve da dodam?
[ Eugen Reisen @ 10.04.2005. 08:20 ] @
Ja ti učim T. Pascal tek odnedavno, pa zbog mi je i potrebna pomoć.
Pa u program bi trebalo biti uključeno ono što sam na početku napisao, pomoć...
Unaprijed hvala!!!
[ Eugen Reisen @ 10.04.2005. 08:22 ] @
Ne moraš se toliko truditi na estetiku, ja ću ga osuti bojama i dr.
[ Srki_82 @ 10.04.2005. 16:56 ] @
Posto Delphi nema ReadKey, ClrScr i slicne funkcije pisem ti ovaj kod iz glave ovde na forumu pa ce 100% biti nekih gresaka, ali ces to lako ispraviti.
Code: program Milioner;
uses
Crt, Dos;
const
MaxBrojPitanja = 100;
PocetnaSuma = 100;
TacanOdgovorBonus = 2;
BrojPitanja = 20;
type
TPitanje = record
Pitanje: String;
Odgovori: array [1..4] of String;
TacanOdgovor: Byte;
Tezina: Byte;
end;
var
Pitanja: array [0.. MaxBrojPitanja - 1] of TPitanje;
PitanjaFajl: Text;
Suma: Real;
BrojUcitanihPitanja: Integer;
BrojPitanjaZaKviz: Integer;
TrenutnoPitanje: Byte;
Kraj: Boolean;
Pitanje: TPitanje;
Pogresno: Boolean;
PolaPola, Prijatelj, Publika: Boolean;
Odgovor: Integer;
function IzaberiPitanje(RB: Integer): TPitanje;
begin
Result := Pitanja[Random(MaxBrojPitanja)];
{Prilikom biranja pitanja trebalo bi dodati jos i proveru
da li je to pitanje vec izvuceno i na tezinu pitanja
u odnosu na redni broj... bilo bi glupo da prvo pitanje
bude teze od zadnjeg, zar ne?}
end;
function Ulaz(C: Char): Boolean;
var
Code: Integer;
begin
Result := False;
Case C of
'1'..'4':
begin
Val(C, Odgovor, Code);
Result := True;
end;
'5': if PolaPola then PomocPP;
'6': if Prijatelj then PomocPr;
'7': if Publika then PomocPu;
'0': Halt(0);
end;
end;
procedure PomocPP;
var P1, P2: Byte;
begin
P1 = Pitanje.TacanOdgovor;
while P1 = Pitanje.TacanOdgovor do P1 := Random(4) + 1;
P2 := P1;
while (P2 = Pitanje.TacanOdgovor) or (P2 = P1) do P2 := Random(4) + 1;
WriteLn(' Odgovori pod ', P1, ' i ', P2, ' su pogresni';
end;
procedure PomocPr;
begin
WriteLn(' Mislim da je tacan odgovor pod ', Random(4) + 1);
{Prijatelj samo lupa... trebalo bi napraviti da ima vece
sanse da kaze tacan odgovor u pocetku, a kasnije sve manje}
end;
procedure PomocPu;
var
P1, P2, P3, P4: Integer;
begin
P1 := Random(101);
P2 := Random(101 - P1);
P3 := Random(101 - P1 - P2);
P4 := Random(101 - P1 - P2 - P3);
WriteLn(' 1. ', P1, '%');
WriteLn(' 2. ', P1, '%');
WriteLn(' 3. ', P1, '%');
WriteLn(' 4. ', P1, '%');
end;
begin
ClrScr;
Randomize;
WriteLn('Milioner 1.0');
WriteLn;
WriteLn('Molim Vas sacekajte dok se pitanja ucitaju.');
BrojUcitanihPitanje := 0;
{$I-}
Assign(PitanjaFajl, 'Pitanja.cfg');
Reset(PitanjaFajl);
while (not Eof(PitanjaFajl)) and (BrojUcitanihPitanja <= MaxBrojPitanja) do
begin
Inc(BrojUcitanihPitanja);
ReadLn(PitanjaFajl, Pitanja[BrojUcitanihPitanja].Pitanje);
ReadLn(PitanjaFajl, Pitanja[BrojUcitanihPitanja].Odgovori[1]);
ReadLn(PitanjaFajl, Pitanja[BrojUcitanihPitanja].Odgovori[2]);
ReadLn(PitanjaFajl, Pitanja[BrojUcitanihPitanja].Odgovori[3]);
ReadLn(PitanjaFajl, Pitanja[BrojUcitanihPitanja].Odgovori[4]);
ReadLn(PitanjaFajl, Pitanja[BrojUcitanihPitanja].TacanOdgovor);
ReadLn(PitanjaFajl, Pitanja[BrojUcitanihPitanja].Tezina);
end;
Close(PitanjaFajl);
{$I+}
IOResult;
if BrojUcitanihPitanja < BrojPitanja then
BrojPitanjaZaKviz := BrojUcitanihPitanja
else
BrojPitanjaZaKviz := BrojPitanja;
Repeat
WriteLn(' Dobrodosli u kviz Milioner!!!');
WriteLn;
Kraj := False;
Suma := 0;
TrenutnoPitanje := 1;
Pogresno := False;
PolaPola := True;
Prijatelj := True;
Publika := True;
while (TrenutnoPitanje <= BrojPitanjaZaKviz) and
(not Pogresno) do
begin
Pitanje := IzaberiPitanje(TrenutnoPitanje);
Inc(TrenutnoPitanje);
WriteLn(Pitanje.Pitanje);
WriteLn('1. ', Pitanje.Odgovori[1]);
WriteLn('2. ', Pitanje.Odgovori[2]);
WriteLn('3. ', Pitanje.Odgovori[3]);
WriteLn('4. ', Pitanje.Odgovori[4]);
if PolaPola then
WriteLn('5. Pola-pola');
if Prijatelj then
WriteLn('6. Prijatelj');
if Publika then
WriteLn('7. Publika');
WriteLn('0. Izlaz');
Repeat Until Ulaz(ReadKey);
if Odgovor = Pitanje.TacanOdgovor then
begin
WriteLn('Tacno!!!');
if Suma = 0 then
Suma := PocetnaSuma
else
Suma := Suma * TacanOdgovorBonus;
WriteLn('Sada imate ', Suma:0:2, ' din.');
end
else
begin
WriteLn('Pogresno!!!');
Pogresno := True;
WriteLn('Osvojili ste ', Suma:0:2, ' din.');
end;
end;
WriteLn('Da li zelite da izadjete?');
if UpCase(ReadKey) = 'D' then Kraj := True;
Until Kraj;
end.
Eto... sad ga samo sredi, ispravi greske, dodaj sta ti treba, oduzmi sta ne treba... format fajla u kojem su pitanja provali sam... to je bar lako 
[ Eugen Reisen @ 10.04.2005. 18:14 ] @
Ok, zbilja puno hvala, sad ću da ga prostudiram.
Ako neke ne budem kužil budem te pital
thanx!!!
[ Eugen Reisen @ 10.04.2005. 19:39 ] @
Nemogu da shvatim zašto mi kompajler neprestano javlja gresku u ovom djelu:
function IzaberiPitanje(RB: Integer): TPitanje; - kaze: Invalid function result type
begin
Result := Pitanja[Random(MaxBrojPitanja)]; - te da ne prepoznaje result
{Prilikom biranja pitanja trebalo bi dodati jos i proveru
da li je to pitanje vec izvuceno i na tezinu pitanja
u odnosu na redni broj... bilo bi glupo da prvo pitanje
bude teze od zadnjeg, zar ne?}
end;
Sta mislis kako bi se ovo moglo ispraviti???
[ RnD57 @ 10.04.2005. 20:11 ] @
Ne bi trebalo da mozhesh ceo record da vracash kao vrednost funkcije...
Probaj da vracash pokazivach na record ili redni broj pitanja koje je izabrano [tj. integer ili longint].
Tezhinu pitanja mozhesh da realizujesh tako shto cesh u fajlu sa pitanjima da ih klasifikujesh kao pitanja za 100din pitanja za 200din itd. pa da ishchitavash neko od onih koje odgovara trenutnom budzhetu...
E sad, da li je vec izvucheno... mozhesh da napravish niz integera ili longintova od [maxPitanja] elemenata u koji cesh da smeshtash vec izabrana pitanja, pa pri biranju novog da pozivash funkciju koja ce da radi sa tim nizom.
[ Eugen Reisen @ 10.04.2005. 20:53 ] @
Bi mogao tko da ovo ispravi jer vec sam sve pokusao i nikako da mi proradi:
Function IzaberiPitanje(Rb: integer): TPitanje;
begin
Result := Pitanja[random(MaxBrojPitanja)];
{Prilikom biranja pitanja trebalo bi dodati jos i proveru
da li je to pitanje vec izvuceno i na tezinu pitanja
u odnosu na redni broj... bilo bi glupo da prvo pitanje
bude teze od zadnjeg, zar ne?}
[ --SOULMaTe-- @ 10.04.2005. 21:09 ] @
Pa rekao ti je covek, turbo pascal ne podrzava vracanje sloga kao rezultat funkcije. Uzmi free pascal ako bas zelis to da radis.
[ Srki_82 @ 10.04.2005. 21:45 ] @
Upsss... zaboravih da pascal ne moze da vraca record... ili koristi pointer na TPitanje ili vrati index za pitanje pa rati sa Pitanja promenljivom u glavnom delu.
[ RnD57 @ 10.04.2005. 21:46 ] @
Nisam siguran kako se beshe u pascalu nizovi prenose kao parametri [po adresi, naravno, ali kako to napisati]:
Code:
function proveri (longint temp, longint vecIzabranaPitanja[], var longint brojIzabranihPitanja) : boolean;
var
boolean ok;
integer i;
begin
ok:=true;
for i:=1 to brojIzabranihPitanja do if vecIzabranaPitanja[i]=temp then ok:=false;
if ok then begin
vecIzabranaPitanja[i+1]=temp;
brojIzabranihPitanja:=brojIzabranihPitanja+1;
proveri:=ok;
end;
function rbPitanja (vecIzabranaPitanja[], var brojIzabranihPitanja) : longint;
var
longint temp;
begin
repeat
temp:=random(maxBrojPitanja);
until proveri(temp, vecIzabranaPitanja[], brojIzabranihPitanja);
end;
[ Eugen Reisen @ 10.04.2005. 21:47 ] @
Dali bi možda tko mogao nekako ispraviti greške u programu milijaner???
Ako tko zna bio bih mu jako zahvalan!!!?
[ Eugen Reisen @ 10.04.2005. 21:57 ] @
A kako bi onda ja trebao napisati ovu funkciju da bi radila:
Function IzaberiPitanje(Rb: integer): TPitanje;
begin
Result := Pitanja[random(MaxBrojPitanja)];
End;
[ Srki_82 @ 10.04.2005. 22:00 ] @
Probaj sam da ispravis funkciju da vrati broj pitanja koju je udabrala umesto samog pitanja. Treba samo rezultat da promenis u integer i da vratis index... sasvim jednostavno. Kad to ispravis recicu ti sta dalje.
[ Eugen Reisen @ 10.04.2005. 22:09 ] @
Možda ovako???
Function IzaberiPitanje(Result,Rb: integer): integer;
begin
Result := Pitanja[random(MaxBrojPitanja)];
End;
Ne verujem.
Jednostavno ne znam kako bi to postigao.
[ Srki_82 @ 10.04.2005. 22:18 ] @
Pa... tebi ce jedino pomoci citanje neke knjige o osnovama Pascala jer izgleda ne znas... pa... nista... a trazis da ti neko drugi uradi domaci zadatak ili sta vec sto nije po pravilniku ES-a.
[ Eugen Reisen @ 10.04.2005. 22:19 ] @
Kako misliš da promenim index???
[ Srki_82 @ 10.04.2005. 22:21 ] @
Kada napises Podaci[X] promenljiva Podaci je niz, a promenljiva X je index
[ Eugen Reisen @ 10.04.2005. 22:25 ] @
Funkcije nikako ne mogu da shvatim, učim pascal oko 4mj a već radimo ovakve stvari.
[ Toyo @ 10.04.2005. 22:30 ] @
Ajde ja cu da ti postujem za 1 sat. (posto vidim da ti to nece ici a ja nemam sta da radim)
Skidam TP, pa cu da pocnem, samo nemoj vise ovo da radis. Ti bi bas hteo sve na tacni. Znam da je tesko, ali moras da se potrudis.
[ Eugen Reisen @ 10.04.2005. 22:31 ] @
Kako bi trebalo definirati ovu funkciju?
I kompajler mi neprestno javlja grešku u tome dijelu, a result kao da ne prepoznaje.
[ Eugen Reisen @ 10.04.2005. 22:34 ] @
Hvala srkiju, toyi i svakome koji mi se trude pomoći.
Znam da se to za vas sve čini kao igra, ja zbilja u to ulažem mnogo napora i uistinu se trudim da shvatim taj Pascal.
[ Srki_82 @ 10.04.2005. 22:38 ] @
Code: function IzaberiPitanje(Rb: integer): integer;
begin
Result := Random(MaxBrojPitanja);
End;
To ti je ta funkcija, ali sad glavni deo nece raditi pa ces morati da u promenljivu Pitanje upacis Pitanja[IzaberiPitanje]. To ces uratidi sa Move komandom.
Code: Move(Pitanja[IzaberiPitanje], Pitanje, SizeOf(TPitanje));
Sad jos samo stavi to na pravo mesto i probaj da pokrenes program.
[ Eugen Reisen @ 10.04.2005. 22:42 ] @
Ali program ne prepoznaje result i piše unknown identifier.
[ Srki_82 @ 10.04.2005. 22:45 ] @
Cudno... zar TP 7 ne podrzava Result promenljivu u funkcijama!? Ako je to problem samo umesto Result napisi ime funkcije... dakle:
Code: function Sabiranje(A, B: Integer): Integer;
begin
Sabiranje := A + B;
end;
[ Toyo @ 10.04.2005. 22:46 ] @
Nece ga ni nikada prepoznati. Moras da stavis umesto result:=, izaberipitanje:=
Cekaj kad dodjes do ucitavanja pitanja iz fajla. Fajl je tekstualni a treba da ucitas tacan odgovor u byte :))
[ Eugen Reisen @ 10.04.2005. 22:54 ] @
function Sabiranje(A, B : integer): integer;
Begin sabiranje:=A+B;
End;
function IzaberiPitanje(RB: Integer): integer;
begin
Sabiranje:= Random(MaxBrojPitanja); -ovdje iza sabiranja traži još nešto u zagradi.
end;
[ Eugen Reisen @ 10.04.2005. 23:11 ] @
Sad se je već sve dobro zakuhalo i zakompliciralo.
Uopće ne prepoznaje pomoćPP i dr. pomoći, zbilja ne kužim!!!
[ RnD57 @ 10.04.2005. 23:16 ] @
Da l' ti znash shta znachi analogija ?!?
Pa, bre lik, tamo je bilo sabiranje:=... jer se funkcija zove sabiranje.
E sad, kako se zove tvoja funkcija? IzaberiPitanje!
To znachi da cesh da kuckash: IzaberiPitanje:=random(MaxBrojPitanja);
Btw, jesi li siguran da si izabrao pravu shkolicu?
[Ovu poruku je menjao RnD57 dana 11.04.2005. u 00:17 GMT+1]
[ Eugen Reisen @ 10.04.2005. 23:16 ] @
Hvala vam što imate volje da mi pomognete Srki_82, Toyo...
Pomoću Srki(a)_82 shvatio sam neke stvari, a Toyo skida i T.Pascal da mi pomogne.
[ Srki_82 @ 10.04.2005. 23:19 ] @
Joj... ta fukcija Sabiranje je bio samo primer da bi mogao sam da ispravis IzaberiPitanje... ona nema nikakve veze sa programom. Odustajem... sad ce ti Toyo pomagati... zar ne Toyo?
@Toyo
ReadLn cita iz Text fajla sve bez problema. Naravno ako uradis ReadLn i zatrazis Byte, a na poziciji koja treba da se procita Byte ima nekih levih karaktera izbacice gresku, ali ako je tu bas broj on ce ga bez problema ucitati... 100%
P.S.
Idem da uzmem konopac, pa na tavan i da se besim!
[Ovu poruku je menjao Srki_82 dana 11.04.2005. u 00:21 GMT+1]
[ Eugen Reisen @ 10.04.2005. 23:20 ] @
Promjenio sam ja ono što si rekao
ali mi sad neće prepoznati pomoći.
function Ulaz(C: Char): Boolean;
var
Code: Integer;
begin
Ulaz := False;
Case C of
'1'..'4':
begin
Val(C, Odgovor, Code);
Ulaz := True;
end;
'5': if PolaPola then PomocPP;
'6': if Prijatelj then PomocPr;
'7': if Publika then PomocPu;
'0': Halt(0);
end;
end;
[ Eugen Reisen @ 10.04.2005. 23:23 ] @
E srk_82 puno ti hvala iako možda nije baš program ispao tako kao što si planirao(naravno, kad nemaš pascal), ali si me neke stvari sigurno naučio u vezi s T. Pascalom
[ Eugen Reisen @ 10.04.2005. 23:27 ] @
Baš me zanima kako Toyo sa tim napreduje?
[ Toyo @ 10.04.2005. 23:31 ] @
Code:
Program kviz;
uses crt;
type
pitanje = record
pit:String;
o1,o2,o3,o4,tac:String[50];
end;
var f: Text;
pitanja:array[1..50] of Pitanje;
op, err, od,pit,i:integer;
zarada, dinara: longint;
idemo, prekid, bilopola:Boolean;
begin
clrscr;
assign(f,'pitanja.txt');
reset(f);
{$I-}
if ioresult = 0 then
begin
i := 1;
while not eof(f) do
begin
readln(f,pitanja[i].pit);
readln(f,pitanja[i].o1);
readln(f,pitanja[i].o2);
readln(f,pitanja[i].o3);
readln(f,pitanja[i].o4);
readln(f,pitanja[i].tac);
if not eof(f) then
inc(i);
end;
close(f);
writeln('Broj ucitanih pitanja =',i);
idemo := true;
prekid := false;
bilopola:=false;
dinara := 1000;
zarada := 0;
randomize;
while idemo and not prekid do
begin
writeln('Pitanje za ',dinara,'dinara');
pit := random(i)+1;
writeln('Pitanje: ',pitanja[pit].pit);
writeln(' 1)',pitanja[pit].o1);
writeln(' 2)',pitanja[pit].o2);
writeln(' 3)',pitanja[pit].o3);
writeln(' 4)',pitanja[pit].o4);
writeln;
write(' Odgovori (1-4) Pola pola = 0 Prekid = 999 >');
readln(od);
val(pitanja[pit].tac, op, err);
if od=0 then
if not bilopola then
begin
bilopola := true;
writeln('Odgovor je pod ', op, ' ili pod ', ((op+2) mod 4) +1);
readln(od);
end
else
begin
writeln('Pola pola je bilo');
readln(od);
end;
if od=999 then
prekid := true
else
if op=od then
begin
zarada := dinara;
dinara := dinara *2;
end
else
idemo := false;
end;
writeln;
writeln;
if not prekid then
zarada := 0;
writeln('Zaradili ste ', zarada,' dinara');
end
else
writeln('Greska pri ucitavanju pitanja');
readln;
{$I+}
end.
U uploadu imas 5 primer-pitanja. Zameni tekst pravim pitanjima, ali upamti 1 red 1 pitanje (nemoj pitanje da napravis u 2 reda),i 1 red 1 odgovor (moras da imas 4 odgovora) a zatim u sledecem redu sledi tacan odgovor.
[ Eugen Reisen @ 10.04.2005. 23:33 ] @
OK sad ću da isprobam, pa ti odmah javim
[ Eugen Reisen @ 10.04.2005. 23:39 ] @
Kompajliral sem ga i piše mi file not found
Nekužim: U uploadu imas 5 primer-pitanja. Zameni tekst pravim pitanjima, ali upamti 1 red 1 pitanje (nemoj pitanje da napravis u 2 reda),i 1 red 1 odgovor (moras da imas 4 odgovora) a zatim u sledecem redu sledi tacan odgovor.
Gdje u uploadu???
[ Srki_82 @ 10.04.2005. 23:43 ] @
Toyo... imam spreman kanap i za tebe  Sacuvacu ti jedno mesto na tavanu pored sunki!
[ Eugen Reisen @ 10.04.2005. 23:44 ] @
U uploadu pa naravno, ali zašto mi piše file not found?
[ Toyo @ 10.04.2005. 23:46 ] @
Nesto me drndo wireless pa je malo duze trajalo. Dole ispod programa se nalazi fajl pitanja txt njega stavi u direktorijum gde je program. Menjas ga sa notepadom ili nekim dos editorom.
@srki_82
He he. Pa sto mislis sto sam skidao TP? Ne brini sve ce da radi. Odgovorima idem da pozatvaram sve ove pocetnicke topice, pa kad dojem na forum da procitam nesto pametno.
[ Eugen Reisen @ 10.04.2005. 23:54 ] @
Ne žikim gde je file pitanja.txt
kak ga staviti u direktorijum?
[ RnD57 @ 10.04.2005. 23:56 ] @
Pametno???
[ Eugen Reisen @ 11.04.2005. 00:06 ] @
Zašto uvjek piše file not found???
[ Toyo @ 11.04.2005. 00:10 ] @
Fajl je ispod programa koji sam ti napisao. Tik uz tekst [Odgovor na temu]. Pogledaj jos jednom.
[ Eugen Reisen @ 11.04.2005. 00:12 ] @
Mislim to znam ali u programu mi piše da file nije pronađen??? Zašto?
[ Eugen Reisen @ 11.04.2005. 00:15 ] @
Kam da stavim taj file?
[ Srki_82 @ 11.04.2005. 00:18 ] @
Dajte mi da budem mod samo jedan dan... ustvari samo 5 minuta :)
@mods
Da li neko ovo cita?
[ Toyo @ 11.04.2005. 00:19 ] @
Uuuuf.
Srki jel jos vazi ono za konopac? (Ja donosim vinjak i pivo)
Glaedaj ovako: Kliknes na taj fajl i skines ga u tvoj kompjuter. Internet eksplorer ga je stavio u neki direktorijum gde se downloaduju fajlovi. Kada ga nadjes (na tvom racunaru) klikni jednom na njega, zatim desni klik misem, izaberi copy, odi do direktorijuma gde je tvoj paskal program i tamo stavi paste. Taj fajl mora da bude u direktorijumu gde ti je izvrsni (exe) fajl od kviza.
Nadam se da si shvatio.
[ Eugen Reisen @ 11.04.2005. 00:21 ] @
Jesam ali svejedno ne želi? Kako?
[ Toyo @ 11.04.2005. 00:27 ] @
Ajde sad da se ovde dopisujemo kako se skidaju fajlovi (pa ce mozda neko da izbrise)
1.Kako si nazvao program?
2.U kojem direktorijumu se nalazi?
3.U kojem direktorijumu se nalazi taj program sa nastavkom .exe?
Ajde odgovori prvo na ova 3 pitanja
[ Eugen Reisen @ 11.04.2005. 00:28 ] @
Slušaj:
Najprije sam kopiral kod i zaljepio ga u notepad. Spremio pa sam ga otvorio pomoću Turbo Pascala. Tu sam zaljepio i pitanja.txt, pa ne želi kako onda?
[ Srki_82 @ 11.04.2005. 00:29 ] @
@Toyo
Konopac je spreman... mozemo i da mezimo suknice dok visimo ;) Ko zeli da se pridruzi neka izvoli.
Najbolje bi bilo da mu kompajliras program i zajedno sa pitanjima spakujes u jedan zip.
[ Toyo @ 11.04.2005. 00:33 ] @
Pa ne lepis pitanja zajedno sa kodom.
pitanja.txt MOOOORA da bude u direktorijumu gde se snimaju paskal programi. C:\TP\WORK\ (ili neki slican).Znaci mora da ga kopiras kao fajl, a ne da ga lepis ispod koda.
Oooooooooooooodlicna ideja o kompajliranju :)))))))))))))))))))))
Evo sad cu.
Done.
Evo ti zip, raspakuj ga i startuj.
[ Eugen Reisen @ 11.04.2005. 00:39 ] @
Jesam stavio sam kako si rekao i ok program radi, sve je u redu.
[ Eugen Reisen @ 11.04.2005. 00:43 ] @
Puno HVAAAAAAlllaa i tebi i srkiju
Spasili ste me!!!!
[ RnD57 @ 11.04.2005. 01:29 ] @
Ajde, modovi, sada kad je sve gotovo, obrishite ovu sramotu od teme. Pleeeeeeeeez 
[ matovicv @ 24.05.2005. 11:15 ] @
Toyo gledao sam ti malo ovu igricu i nesto mi nije jasno a ima i par bug-ova.
Sta ti znaci ono err u varijablama?
Bug-ovi su ti na odgovorima ono od 1-4 kada pritisnes 0 da uradi pola pola i 999 da prekine program. Uspio sam rijesiti da kada pritisnes 0 da popolovi pitanje a ne da kaze Pola pola je bilo, ali nemogu da napravim da kada pritisnes 1-4 da ako pogrijesis odmah pise pogresan odgovor i da napise zaradili ste toloko i toliko dinara a kad odgovoris tacno da predje na drugo pitanje a ne da mi prvo pise pola pola je bilo pa onda tek kada opet upises odgovor predje na drugo pitanje. Tako je i kod prekida kada upises 999 prvo pise pola pola je bilo pa onda opet upises 999 tada zavrsi i pise zaradili ste toliko i toliko dinara.
Nadam se da razumijes.
[ matovicv @ 24.05.2005. 19:19 ] @
Skontao sam umjesto
writeln;
writeln;
if not prekid then
zarada := 0;
writeln('Zaradili ste ', zarada,' dinara');
end
treba
writeln;
writeln;
if prekid then
zarada := 0;
writeln('Zaradili ste ', zarada,' dinara');
end
Sada sve radi.
[ popsvele @ 28.05.2005. 19:47 ] @
Tek sad sam se bavio ovim citanjem i prika,predlazem ti da promenis skolu,pa pola djaka iz mog odjeljenja bi to ukapiralo i to jos radimo na tandy 1000 racunarima
idi na http://www.im.ns.ac.yu/persona...vo_i_informatika_i7_2004_5.htm
pa vidi kako je osnove pascala objasnio jedan strucnjak ,vjeruj mi brze ces kapirat...
P.S.
ne odustaji,samo radi,a ostalima treba reci da se niko nije naucen rodio,pa ni ja nisam znao ove stvari do prije godinu dana...samo rad,is ve ce se isplatiti
poz
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|