понедељак, 11. новембар 2013.

3. Razred: Naredbe za ulaz i izlaz

Naredbe za ulaz i izlaz

U svim prethodnim zadacima za unos podataka i prikazivanje rezultata koristili smo komponente tipa TEdit, tačnije svojstvo Text ove komponente.
U nekoliko zadataka za prikazivanje rezultata koristili smo i komponentu tipa TLabel, odnosno svojstvo Caption.
Svojstvo Caption koristili smo i kao osobinu TForm glavnog obrasca programa za prikazivanje rezultata.
Oba svojstva su tipa String, te za unos i prikazivanje brojeva smo koristili naredbe za konverziju tipova podataka kao što su StrToFloat, FloatToStr, StrToInt i IntToStr.

U zadatku u kojem se izračunava loglički izraz koristili smo komponetu tipa TCheckBox, i svojstvo Checked koje je logičkog tipa podataka (boolean) te nije bilo potrebno da koristimo i naredbe za konverziju tipova podataka.

U svakom slučaju, primetili ste da smo u algoritmu ove korake prikazivali kao ulaz ili izlaz a da smo sintaksno gledano u programu koristili naredbu dodele da bi povezali odnosno preneli (dodelili) vrednost promenljive svojstvu komponente i obrnuto.

Takođe, primetili smo da smo u svakom programu imali samo jedan prikazan i to glavni prozor aplikacije (Form1).

Postoji mnogo načina za prilazivanje rezultata, odnosno vrednosti izlaznih promenljivih i unos podataka.

Izlazna naredba ShowMessage

Jedna od često korišćenih naredbi za izlaz, odnosno prikazivanje vrednosti promenljivih je naredba ShowMessage. Sintaksa ove naredbe je:

ShowMessage ( izraz );

Gde je izraz tipa string. Tako, na primer, umesto naredbe

Label1.Caption := 'Marko';

možemo napisati

ShowMessage ( 'Marko' );

Kada prilikom testiranja, odnosno izvršavanja program izvrši ovu naredbu, na ekranu će se pojaviti novi prozor (dijalog box) u kojem će biti ispisana navedena poruka i jedno dugme OK za zatvaranje tog prozora.

Ako unesemo sledeće linije programskog koda:

Var
a, b, c : Real;
Begin
a := StrToFloat ( Edit1.Text );
b := StrToFloat ( Edit1.Text );
c := a + b;
ShowMessage ( FloatToStr ( a ) + ' + ' + FloatToStr ( b ) + ' = ' + FloatToStr ( c ) );
End;

I prilikom izvršavanja programa unesemo brojeve 10 i 15, dobićemo prozor kao na slici 1:
ShowMessage
Slika 1. Prozor ShowMessage

Ulazna naredba InputBox

Jedna od često korišćenih naredbi za ulaz, odnosno unos vrednosti promenljivih je naredba InputBox. Sintaksa ove naredbe je:

InputBox ( naslov, pitanje, podrazumevana_vrednost );

Gde su naslov, pitanje i podrazumevana_vrednost tipa string, naslov je tekst koji će biti prikazan u naslovu prozora, pitanje tekst koje će biti prikazano u samom prozoru, a podrazumevana_vrednost podrazumevani tekst koji će biti prikazan u okviru za unos podataka. Tako, na primer, umesto naredbe

S := Edit1.Text;

možemo napisati

S := InputBox ( 'Unos podataka', 'Unesite ime ucenika', '' );

Kada prilikom testiranja, odnosno izvršavanja program izvrši ovu naredbu, na ekranu će se pojaviti novi prozor (dijalog box) u kojem će biti ispisane navedene poruke i jedno dugme OK za zatvaranje tog prozora, kao i jedan okvir u kojem će korisnik uneti željenu vrednost.

Ako unesemo sledeće linije programskog koda:

Var
a : Real;
Begin
a := StrToFloat ( InputBox ( 'Unos podataka', 'Prvi sabirak:', '' ) );
{ ostale naredbe u programu }
End;

Prilikom izvršavanja programa dobićemo prozor kao na slici 2:
InputBox
Slika 2. Prozor InputBox

Primer korišćenja naredbi ShowMessage i InputBox

Kalkulator
Slika 3. Kalkulator
Na primeru programa kalkulator biće prikazano korišćenje ovih naredbi korak po korak.
  1. Kreiraj novi projekat
  2. Snimi novi projekat u novi prazan folder Zad30
  3. Dodaj četiri komande komponente tipa TButton na formu i promeni njihove osobine tako da budu kao što je prikazano na slici 3
  4. Promeni nazive (name) komponenti tipa TButton tako da budu redom: Sabiranje, Oduzimanje, Mnozenje i Deljenje
  5. Programiraj događaj OnClikck svake komponente tipa TButton i unestite linije programskog koda prikazane na kraju ovog članka
  6. Kompajliraj program, ukoliko je potrebno ispravi sintaksne greške, i testiraj program, šta primećuješ?
  7. Preuzmi gotovo rešenje (aplikaciju) i uporedi da li radi slično kao tvoje
  8. Zatvori prozor testiranja, snimi ceo projekat i spakuj ceo folder projekta (pre toga izbriši Exe fajl)
  9. Preuzmi ceo projekat ovde napravljen u razvojnom okruženju Borland Delphi 6.0 i pregledaj, prouči i pokušaj da iskoristiš za svoje rešenje u svom razvojnom okuženju


Programski kod Unit1.pas:


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Sabiranje: TButton;
Oduzimanje: TButton;
Mnozenje: TButton;
Deljenje: TButton;
procedure SabiranjeClick(Sender: TObject);
procedure OduzimanjeClick(Sender: TObject);
procedure MnozenjeClick(Sender: TObject);
procedure DeljenjeClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

{ Sabiranje }
Procedure TForm1.SabiranjeClick ( Sender: TObject );
Var
a, b, c : Real;
Begin
a := StrToFloat ( InputBox ('Unos podataka','Prvi sabirak:',''));
b := StrToFloat ( InputBox ('Unos podataka','Drugi sabirak:',''));
c := a + b;
ShowMessage ( FloatToStr ( a ) + ' + ' + FloatToStr ( b ) + ' = ' + FloatToStr ( c ) );
End;

{ Oduzimanje }
Procedure TForm1.OduzimanjeClick ( Sender: TObject );
Var
a, b, c : Real;
Begin
a := StrToFloat ( InputBox ('Unos podataka','Umanjenik:',''));
b := StrToFloat ( InputBox ('Unos podataka','Umanjilac:',''));
c := a - b;
ShowMessage ( FloatToStr ( a ) + ' - ' + FloatToStr ( b ) + ' = ' + FloatToStr ( c ) );
End;

{ Mnozenje }
Procedure TForm1.MnozenjeClick ( Sender: TObject );
Var
a, b, c : Real;
Begin
a := StrToFloat ( InputBox ('Unos podataka','Prvi cinilac:',''));
b := StrToFloat ( InputBox ('Unos podataka','Drugi cinilac:',''));
c := a * b;
ShowMessage ( FloatToStr ( a ) + ' * ' + FloatToStr ( b ) + ' = ' + FloatToStr ( c ) );
End;

{ Deljenje }
Procedure TForm1.DeljenjeClick ( Sender: TObject );
Var
a, b, c : Real;
Begin
a := StrToFloat ( InputBox ('Unos podataka','Deljenik:',''));
b := StrToFloat ( InputBox ('Unos podataka','Delilac:',''));
c := a / b;
ShowMessage ( FloatToStr ( a ) + ' / ' + FloatToStr ( b ) + ' = ' + FloatToStr ( c ) );
End;

END.

Нема коментара: