Forum Astronomskog Magazina

Ostale teme => Crna Rupa => Temu započeo: kostur poslato Oktobar 27, 2012, 10:02:14 PRE PODNE

Naslov: Programiranje
Poruka od: kostur poslato Oktobar 27, 2012, 10:02:14 PRE PODNE
Nisam znao gde da metnem ovu temu. Smatram da bi dobro došla za nas koji imamo problema sa programiranjem. Naime, ako ima neko ko zna u Delphi-u da programira, sad je pravi čas da se javi.

Znači, treba da napravim calc, vrlo jednostavan sa poljima a, b i rešenje. e sad, on se sastoji od tri labela, tri edita i dugmeta. Labeli su tu da označe da je Edit1 = a; Edit2 = b; Edit3 = r.

I sad kad otvorim button sa naznakom plus ( '+' )

process
var a,b,r:real;
begin
a:=StrToFloat(Edit1.Text);
b:=StrToFloat(Edit2.Text);
r:=StrToFloat(Edit3.Text);
r:=a+b;
end;
end.

Kad idem na Run, i ukucam u edite recimo 2 i 3, on mi izbaci poruku kako ' i " nisu prave vrednosti (nešto tako), da li ima greške u kodu?
Naslov: Odg: Programiranje
Poruka od: gile.ms poslato Oktobar 27, 2012, 11:47:29 PRE PODNE
process
var a,b,r:real;
begin
a:=StrToFloat(Edit1.Text);
b:=StrToFloat(Edit2.Text);
// r:=StrToFloat(Edit3.Text); ovo "leti" napolje, ne učitavamo r iz Edit-a već ga računamo...
r:=a+b;
Edit3.setText(r); // nisam siguran da sam uboo sintaksu, ali na ovom mestu treba da prikažemo rezultat na predviđenom mestu...
end;
end.

nadam se da sam pomogao  :)
Naslov: Odg: Programiranje
Poruka od: kostur poslato Oktobar 27, 2012, 12:14:04 POSLE PODNE
E to sam tražio! Hvala!
To jest morao sam malo da iskarikiram 8)


procedure TForm1.Button1Click(Sender: TObject);
var a,b:real;
begin
a:=strtofloat(edit1.Text);
b:=strtofloat(edit2.text);
Edit3.Text:=FloatToStr(a+b);
end;
end.


Tačno nisam trebao r da ubacujem - HVALA!!!!
Naslov: Odg: Programiranje
Poruka od: kostur poslato Oktobar 30, 2012, 11:30:05 PRE PODNE
Eh, ali ako recimo ubacim da je a = nečemu, a b prazno, onda mi izbacuje isto to. Kako da podesim da ako je edit2.text null onda je jednak nuli?
Naslov: Odg: Programiranje
Poruka od: Sima_Strahota poslato Oktobar 30, 2012, 10:00:05 POSLE PODNE
Ne znam kako to funkcionise u Delfiju, ali C# i Java, recimo, imaju kontrolu gresaka, to jest nesto sto se zove Exception.
Funkcionise tako sto 'hvata' sve nepravilnosti, kao sto su recimo deljenje nulom, citanje prazne vrednosti i kojesta jos.

A trebalo bi da mozes i da proveris taj edit box na null vrednost?

Naravno, uvek mozes da varas, pa da ga pri startovanju programa podesis na 0 :)
Naslov: Odg: Programiranje
Poruka od: orion310591 poslato Oktobar 31, 2012, 03:53:15 PRE PODNE
Ne moze s "prazno" da se radi... jer ces ko zna koju vrednost tako da povuces s ko zna koje lokacije, moras da zadas nulu u slucaju da ti je to B "prazno".
Naslov: Odg: Programiranje
Poruka od: gile.ms poslato Oktobar 31, 2012, 10:44:54 PRE PODNE
napravis neku if else konstrukciju tipa


if edit1.Text = '' then a:=0; else a:=strtofloat(edit1.Text);


ne znam kako ide sintaksa u delfiju, ali if/else je svuda isto...

P.S. ovo rešenje nije otporno na slučajeve kada se u box upiše string koji nije broj... ali na netu imaš more primera sigurno...
Naslov: Odg: Programiranje
Poruka od: kostur poslato Oktobar 31, 2012, 11:37:23 PRE PODNE
ma delfi sugavi, sto u skoli ne ucimo c++ ili javu, ovako nikad ne bih radio u njemu
Naslov: Odg: Programiranje
Poruka od: Sima_Strahota poslato Oktobar 31, 2012, 12:01:08 POSLE PODNE
Svaki programski jezik je koristan na svoj nacin i u svakom mozes da uradis (uglavnom) sve. Pogotovo u modernim jezicima. Ako te zanima programiranje, onda ti je u principu svejedno.

Evo sad vidim da Delphi ima ono o cemu sam govorio: http://www.delphibasics.co.uk/Article.asp?Name=Exceptions
Koristeci ovo mozes da uhvatis razne greske i da ih se resis.
Takodje, za kontrolu ulaza mozes da koristis i Regular Expressions, sto je po meni bolja varijanta.