OPERACIJE SA BROJEVIMA

   Izgled forme rešenja ovog zadataka prikazan je na donjoj slici.

   Forma koristi iste alate kao i prethodna tj.: Label, Edit i Button. Glavni deo koda ovog programa je sledeći:

.
.
procedure TForm1.Kontrola_prvog_broja(Sender: TObject);
Var s:string;
n:real;
gr: integer;
Begin
s:=Edit1.Text; Val(s,n,gr);
If gr <> 0 Then Begin
ShowMessage('Nije dobro unesen broj 1');
Edit1.SetFocus; Edit1.SelectAll;
End
end;

procedure TForm1.Kontrola_drugog_broja(Sender: TObject);
Var s:string;
n:real;
gr: integer;
Begin
s:=Edit2.Text; Val(s,n,gr);
If gr <> 0 Then Begin
ShowMessage('Nije dobro unesen broj 2');
Edit2.SetFocus; Edit2.SelectAll;
End
end;

procedure TForm1.SaberClick(Sender: TObject);
begin
Edit3.Text:=FloatToStr(StrToFloat(Edit1.Text)+StrToFloat(Edit2.Text));
Label2.Caption:='+';
end;

procedure TForm1.OduzmiClick(Sender: TObject);
begin
Edit3.Text:=FloatToStr(StrToFloat(Edit1.Text)-StrToFloat(Edit2.Text));
Label2.Caption:='-';
end;

procedure TForm1.PomnoziClick(Sender: TObject);
begin
Edit3.Text:=FloatToStr(StrToFloat(Edit1.Text)*StrToFloat(Edit2.Text));
Label2.Caption:='X';
end;

procedure TForm1.PodeliClick(Sender: TObject);
begin
Label2.Caption:='/';
If(StrToFloat(Edit2.Text))=0 Then Begin
ShowMessage('Delenje nulom');
Edit2.SetFocus;
Edit2.SelectAll
End
Else
Edit3.Text:=FloatToStr(StrToFloat(Edit1.Text)/StrToFloat(Edit2.Text));
end;

end.

   Objasniti ćemo glavne karakteristike ovog programa:

  • Sadržaj Edit polja je string promenljiva pa je neophodno iskontrolisati da li je unešen numerički podataka u dato polje za broj. To se kontroliše u procedurama Kontrola_prvog_broja i Kontrola_drugog_broja. U događajima(Events) i atributu onExit uneli smo naziv dati procedura(događaj će proradit nakon napuštanja polja). Unutar procedure promenljivoj s dodeli smo vrednost sadržaja polja(s:=Edit1.Text) a zatim smo pozvali proceduru Val koja string promenljivu konvertuje u numeričku. U slučaju ako string nije numerički treći parameter te procedure gr imaće vrednost različitu od 0. U tom slučaju dajemo poruku o grešci sa ShowMessage, vraćamo se ponovo na to polje sa metodom SetFocus a njegov sadržaj se selektuje metodom SelectAll.
  • U procedurama SabriClick, OduzmiClick, PomnoziClick i PodeliClick vršimo dogovarajuću aritmetičku operaciju i prikazujemo dobijeni rezultat. Da bi izvršili odgovarajuću aritmetičku operaciju neophodno je prvo sadržaj polja(koji je tipa string) pretvoriti u numeričku promenljivu pomoću funkcije StrToFloat i na kraju dobijeni rezultat konvertovati u string funkcijom FloatToStr. Takođe u polju Label2 prikažemo znak matematičke operacije npr. za sabiranje: Label2.Caption:='+';
  • Kada je u pitanju operacija delenja neopohodno ispitati da li je delilac jednak nuli pa ako jeste izdamo odgovarajuću poruku o grešci.

  Kompletan kod programa možete preuzeti ovde.



http://vojo.milanovic.org
© Copyright, 2005, Milanovic Vojo
All Rights Reserved.