delphi zadaci za ucenike

25
Zadaci za vežbe Delphi Zadatak 1. Kreirati aplikaciju u kojoj će se menjati boja obrasca kao odgovor na tri događaja: - pokretanje aplikacije (FormCreate) - klik na obrazac (OnClick) - dvoklik na obrazac (OnDblClick) Svaki događaj kreira različitu boju obrasca. U metodi FormCreate dodati još jedan red kojim se natpis forme (Caption) menja u ’Ovo je moj prvi Delhi program’. Zadatak 2. Na obrazac dodati Labelu i podesiti veličinu slova na 26, Bold. Kreirati aplikaciju kojom se klikom na labelu njen Caption menja u IV5 (ili IV6). Na isti obrazac dodati još 2 labele, dva edit polja i jedno dugme. Natpisi u labelama su: Label1: Unesi ime i prezime Label2: Uneto ime i prezime Edit polja su na početku prazna. Natpis dugmeta treba da bude Ispiši. Kada se pokrene aplikacija i kada se u prvo edit polje unese ime i prezime, i kada se klikne na dugme Ispiši , u drugom edit polju treba da se pojavi isti tekst kao u prvom. Programski kod: Edit2.text := Edit1.text; Zadatak 3. Podesiti svojstva forme na sledeće vrednosti: Name: obrazac1 Caption: zadatak 3 Color: clred Top: 200 1

Upload: emilija-jovanovic

Post on 17-Jan-2016

119 views

Category:

Documents


6 download

DESCRIPTION

delphi

TRANSCRIPT

Page 1: Delphi Zadaci Za Ucenike

Zadaci za vežbe Delphi

Zadatak 1.

Kreirati aplikaciju u kojoj će se menjati boja obrasca kao odgovor na tri događaja:

- pokretanje aplikacije (FormCreate)- klik na obrazac (OnClick)- dvoklik na obrazac (OnDblClick)

Svaki događaj kreira različitu boju obrasca.

U metodi FormCreate dodati još jedan red kojim se natpis forme (Caption) menja u ’Ovo je moj prvi Delhi program’.

Zadatak 2.

Na obrazac dodati Labelu i podesiti veličinu slova na 26, Bold. Kreirati aplikaciju kojom se klikom na labelu njen Caption menja u IV5 (ili IV6).

Na isti obrazac dodati još 2 labele, dva edit polja i jedno dugme. Natpisi u labelama su:Label1: Unesi ime i prezimeLabel2: Uneto ime i prezime

Edit polja su na početku prazna.

Natpis dugmeta treba da bude Ispiši.

Kada se pokrene aplikacija i kada se u prvo edit polje unese ime i prezime, i kada se klikne na dugme Ispiši , u drugom edit polju treba da se pojavi isti tekst kao u prvom.

Programski kod: Edit2.text := Edit1.text;

Zadatak 3.

Podesiti svojstva forme na sledeće vrednosti:

Name: obrazac1Caption: zadatak 3Color: clredTop: 200Left: 300Width: 300Height: 400

Na obrazac dodati labelu koja će u početku biti prazna, a klikom na nju će se ispisati ime i prezime učenika koji kreira zadatak, fontom veličine 30, bold, plavom (ili nekom drugom) bojom.

Programski kod:

label1.caption := ’Pera Perić’; (na primer)label1.font.size := 30;label1.font.style := [fsbold];

1

Page 2: Delphi Zadaci Za Ucenike

label1.font.color := clblue;

Dodati dugme za zatvaranje aplikacije (Close).

Zadatak 4.Kreirati aplikaciju koja klikom na dugme ispisuje neku informaciju u dijalog prozoru. Takođe dodati dugme za zatvaranje aplikacije.

Natpisi dugmića:Button1: HelloButton2: Close

Programski kod (pritiskom na dugme Hello):

MessageDlg(’Zdravo svima!’,mtInformation,[mbOk],0)

Zadatak 5.

Kreirati aplikaciju u kojoj se tekst u labeli proizvoljno poravnava.

Na obrazac postaviti jednu labelu i 4 dugmeta. Labelu ostaviti praznu, a natpise dugmića postaviti redom:

Levo, Centrirano, Desno, Kraj.

Dugmiće programirati na sledeći način:

Label1.Alignment := taLeftJustify;

Label1.Alignment := taRightJustify;

Label1.Alignment := taCenter;

Kada se pokrene aplikacija, u labelu uneti proizvoljan tekst i primeniti opcije dugmića.

Zadatak 6. Kalkulator

Kreirati aplikaciju koja obavlja funkcije kalkulatora.

Programirati svako dugme ponaosob.

Programski kod za sabiranje:

procedure TForm1.Button1Click(Sender: TObject);var pBr, dBr, rez : integer;begin

2

Page 3: Delphi Zadaci Za Ucenike

pBr := StrToInt(Edit1.text); dBr := StrToInt(Edit2.text); rez := pBr + dBr; Edit3.Text:=IntToStr(rez) end;

Ostali dugmići se programiraju analogno, s tim da se za deljenje može koristiti operacija DIV ili, ukoliko se

koristi operacija /, potrebno je koristiti funkcije StrToFloat i FloatToStr.Dugmićima osobinu ShowHint postaviti na TRUE i u osobine Hint napisati odgovarajući tekst: sabiranje, oduzimanje, množenje, deljenje.

Zadatak 7.

Napisati aplikaciju koja učitava katete pravouglog trougla a i b i izračunava i prikazuje hipotenuzu c, oba oštra ugla i njegovu površinu.

Edit polja nazvati redom: katetaA, katetaB, hipotenuzaC, povrsinaP, ugaoAlfa, ugaoBeta.Programski kod za dugme Izračunaj:

procedure TForm1.Button1Click(Sender: TObject);const Pi = 3.141592;var a,b,c,P,alfa,beta : real;

begina := StrToFloat(katetaA.Text);b := StrToFloat(katetaB.Text);c := sqrt(sqr(a) + sqr(b));P := a*b/2;alfa := arctan(a/b)*180/Pi;beta := arctan(b/a)*180/Pi;hipotenuzaC.text := FloatTostr(c);povrsinaP.text := FloatTostr(P);ugaoAlfa.text := FloatTostr(alfa);ugaoBeta.text := FloatTostr(beta);end;

Zadatak 8.

Napisati aplikaciju koja računa površinu i zapreminu pravilne četvorostrane piramide, ako su joj poznate osnovna ivica a i bočna ivica s.

3

Page 4: Delphi Zadaci Za Ucenike

Edit polja nazvati redom: osnovna, bocna, povrsina, zapremina.

Programski kod za dugme Pokreni:procedure TForm1.Button1Click(Sender: TObject);vara,s,d,h,ha,baza,v,m,p: real;begina := StrToFloat(osnovna.text);s := StrToFloat(bocna.text);d := a*sqrt(2);h := sqrt(sqr(s)-sqr(d/2));ha := sqrt(sqr(s)-sqr(a/2));baza := sqr(a);v := baza*h/3;m := 2*a*ha;p := baza + m;povrsina.text := FloatToStr(p); zapremina.text := FloatToStr(v);end;

ili

procedure TForm1.Button1Click(Sender: TObject);var a,s,p,v:real;begin a:=StrToFloat(osnovna.text); s:=StrToFloat(bocna.text); p:=sqr(a) + 2*a*sqrt(sqr(s)-sqr(a/2)); v:=sqr(a)*sqrt(sqr(s)-sqr(a)/2)/3; povrsina.text:=FloatToStr(p); zapremina.Text:=FloatToStr(v);end;

Zadatak 9.

Ispisati najmanji od 3 uneta cela broja.

4

Page 5: Delphi Zadaci Za Ucenike

Ubaciti još jednu labelu (Label4) i izbrisati joj Caption. U njoj će biti ispisan najmanji uneti broj.

Programski kod za dugme Izracunaj:procedure TForm1.Button1Click(Sender: TObject);var a,b,c,min: integer;begin a:=StrToInt(edit1.text); b:=StrToInt(edit2.text); c:=StrToInt(edit3.text); min:=a; if b<min then min:=b; if c<min then min:=c; Label4.Caption:='Najmanji broj je '+IntToStr(min);end;

Primer izvršenog programa:

Zadatak 10.

Rešiti kvadratnu jednačinu ax2 + bx +c =0 na sledeći način:D<0 -> Nema realnih rešenja;D=0 -> Ima dva jednaka realna rešenja x=-b/(2*a);D>0 -> Ima dva različita realna rešenja x1=(-b+sqrt(D)/(2*a)) i x2=(-b-sqrt(D)/(2*a)).

Programski kod za dugme Izracunaj:

procedure TForm1.Button1Click(Sender: TObject);var a,b,c,D,x,x1,x2:real;begina:= StrToFloat(Edit1.text);b:= StrToFloat(Edit2.text);c:= StrToFloat(Edit3.text);D:=b*b-4*a*c;if D<0 then ShowMessage('Nema realnih resenja')else if D=0 then begin x:=-b/(2*a); ShowMessage('Ima dva jednaka resenja koja iznose ' + FloatToStr(x))

5

Page 6: Delphi Zadaci Za Ucenike

end else begin x1:=(-b+sqrt(D))/(2*a); x2:=(-b-sqrt(D))/(2*a); ShowMessage('x1=' + FloatToStr(x1) + #13+ 'x2=' + FloatToStr(x2)); end;

end;

Zadatak 11. CheckBox

Na obrazac postaviti 7 CheckBox-ova, za svaki dan u sedmici po jedan, pod nazivima: Prvi dan, Drugi dan,... Sedmi dan. Postaviti i labele kao sto je prikazano na donjoj slici. Kada se klikne na CheckBox čiji je naziv Prvi dan, u istom redu treba da se pojavi naziv prvog dana u sedmici (Ponedeljak) i tip dana: radni ili neradni. Kada se CheckBox isključi, naziv i tip dana treba da nestanu.Analogno programirati i za ostale dane u sedmici.

Na početku, aplikacija može ovako izgledati:

Programski kod za Prvi dan:

procedure TForm1.CheckBox1Click(Sender: TObject);beginif CheckBox1. checked then begin Label3.caption:='Ponedeljak'; Label10.caption:='radni'; endelse begin Label3.caption:=''; Label10.caption:=''; endend;

Programirati svaki CheckBox ponaosob.

Da biste znali koja je koja labela, dok ne dovršite pogramiranje ostavite nazive (Caption) labela nepromenjene. Kada aplikacija bude kreirana, izbrišite sve nazive labelama od 3 do 16.

Primer izvršenog programa:

6

Page 7: Delphi Zadaci Za Ucenike

Zadatak 12. RadioButton

Kreirati aplikaciju koja će na formi imati 5 radio dugmića i ostale komponente kao na slici:

Programski kod za RadioButton trougao:

procedure TForm1.trougaoClick(Sender: TObject);beginif trougao.Checked then begin obim.Text:='a+b+c'; povrsina.text:='a*h/2' end;end;

RadioButton komponente nazvati redom: trougao, kvadrat, pravougaonik, romb, trapez (osobina Name).Edit1 polje nazvati obim, a Edit2 povrsina (osobina Name).

Primer izvršenog programa:

Ostale formule:

Kvadrat: O = 4*a, P= a*aPravougaonik: O = 2*a+2*b, P= a*bRomb: O = 4*a, P= d1*d2/2Trapez: O = a+b+c+d, P= (a+b)/2*h.

Zadatak 13.Napisati aplikaciju koja računa ukupni otpor na osnovu zadatih vrednosti u Edit komponentama.Načini vezivanja mogu biti:Redni: R1 + R2Paralelni: 1 / (1/R1 + 1/R2)

Programski kod za dugme Racunaj:

procedure TForm1.RacunajClick(Sender: TObject);var R1, R2, R: real;begin R1 := StrToFloat(otporR1.text); R2 := StrToFloat(otporR2.text); if redno.checked then R:= R1 + R2; if paralelno.checked then R:= 1/(1/R1 + 1/R2); otporR.text := FloatToStr(R); end;

Edit polja nazvati redom: otporR1, otporR2, otporR.

7

Page 8: Delphi Zadaci Za Ucenike

Radio dugmiće nazvati: Redno i Paralelno. Dugme nazvati Racunaj.

Zadatak 14. RadioGroup

Zadatak urađen na času teorije uraditi na računaru:

Postaviti na obrazac jedan RadioGroup i popuniti mu sadržaj raznim muzičkim pravcima: Rock, Pop, Jazz... Kada se odabere određena stavka u RadioGroup, u labeli ispisati odabrani pravac, a u edit polju nešto što korisnika na to asocira (recimo, kod rok muzike napisati Billy Idol).

Programirati pomoću naredbe CASE:

procedure TForm1.RadioGroup1Click(Sender: TObject);begincase RadioGroup1.ItemIndex of0: begin label1.Caption:='Rock'; edit1.Text:='Billy Idol' end;1: begin label1.Caption:='Pop'; edit1.Text:='Madonna' end;end;end;

Analogno dovršiti programiranje i za ostale muzičke pravce.

Program bi mogao da izgleda ovako:

Zadatak 15. ListBox

Pošto se ListBox programira gotovo identično kao RadioGroup, smatram da nije potrebno da se radi zadatak vezan za ovu komponentu, ali vam ostavljam mogućnost da uradite jedan primer ako imate neki interesantan .

Zadatak 16. ComboBox

U ComboBox napisati sledeći sadržaj: Muzika, Film, Književnost, Sport, Destinacija, Dokolica.

Odabirom neke od oblasti, u labeli ispisati svoju omiljenu muziku, film itd. Primer izgleda aplikacije:

8

Page 9: Delphi Zadaci Za Ucenike

Programirati na sledeći način:

procedure TForm1.ComboBox1Change(Sender: TObject);begincase ComboBox1.ItemIndex of0: label1.caption:= 'Rock' + #13 + 'Billy Idol';1: label1.caption:= 'Venders' + #13 + 'Lisabonska prica';2: label1.caption:= 'Markes' + #13 + 'Ljubav u doba kolere';end;end;

Ostale stavke se programiraju analogno.Znak #13 govori o tome da će tekst koji sledi biti prebačen u novi red.

Zadatak 17. GroupBox

Kreirati aplikaciju:

First object je GroupBox i u njemu se nalaze RadioButtons. Position i Second object su RadioGroup.

Odabirom po jedne stavke iz svakog odeljka, ispisuje se rečenica u labeli ispod.

Programski kod za dugme ChangeText:

procedure TForm1.Button1Click(Sender: TObject);var i:integer; phrase:string;begin for i:=0 to GroupBox1.ControlCount-1 do

9

Page 10: Delphi Zadaci Za Ucenike

if (GroupBox1.Controls[i] as TRadioButton).Checked then phrase:=(GroupBox1.Controls[i] as TRadioButton).Caption; phrase:= phrase + ' ' + RadioGroup1.Items[RadioGroup1.ItemIndex] + ' ' + RadioGroup2.Items[RadioGroup2.ItemIndex]; label1.Caption:=phrase;end;

Zadatak 18.

Kreirati aplikaciju:

Na obrascu sa desne strane postavljen je Panel, na kom je stavljen RadioGroup1 (čiji je Caption Boja panela), zatim jedan ScrollBar i RadioGroup2 (čiji je Caption Poravnavanje panela). Osobina panela Align je na početku postavljena na alRight, a osobina Visible na False, što panel čini nevidljivim u momentu kada se pokrene aplikacija.

CheckBox Podešavanja omogućava prikazivanje i sakrivanje panela.

Kada se unese visina u centimetrima u prvo edit polje, korisnik iz ComboBox-a bira pol (žena/muškarac) i potom se idealna težina upisuje u drugo edit polje. Visina se izračuvana po obrascu:Za žene: visina – 110;Za muškarce: visina – 100.

Ostale funkcije u zadatku su očigledne i ne zahtevaju dodatno objašnjenje.

Ceo programski kod zadatka:

procedure TForm1.CheckBox1Click(Sender: TObject); begin

panel1.visible:=CheckBox1.Checked; end;

procedure TForm1.RadioGroup1Click(Sender: TObject); begin

case RadioGroup1.ItemIndex of 0:form1.Color:=clbtnface; 1:form1.Color:=clblue; 2:form1.Color:=clyellow; end;

10

Page 11: Delphi Zadaci Za Ucenike

end; procedure TForm1.RadioGroup2Click(Sender: TObject); begin

case RadioGroup2.ItemIndex of 0:panel1.Align:=alleft; 1:panel1.Align:=alright; end;

end;

procedure TForm1.ComboBox1Change(Sender: TObject); begin if edit1.Text<>'0' then

if ComboBox1.ItemIndex=0 then Edit2.Text:= inttostr(strtoint(edit1.text) - 100)

else Edit2.Text:= inttostr(strtoint(edit1.text) - 110) ; end;

procedure TForm1.ScrollBar1Change(Sender: TObject); begin

Edit1.Font.Size:=ScrollBar1.Position; ComboBox1.Font.Size:=ScrollBar1.Position;Edit2.Font.Size:=ScrollBar1.Position; label4.Caption:= 'Velicina slova: '+ inttostr(ScrollBar1.Position);

end;

Zadatak 19. GroupBox (zadatak iz knjige)

Kreirati aplikaciju koja, na osnovu podataka o učeniku i o njegovim ocenama, izračunava njegov prosek, ukoliko su podaci tačno uneti. U suprotnom ispisuje poruku o grešci.

Postavljena su 2 GroupBox-a: Podaci o učeniku i Ocene u koja su postavljene labele, jedan CheckBox i edit polja kao na slici:

11

Page 12: Delphi Zadaci Za Ucenike

Edit polja za Ime, Prezime i Grad nazvana su redom (osobina Name): ime, prezime, grad. CheckBox je nazvan Uspeh. Edit polja u koja se unose ocene nazvana su rednim brojevima od prvi do cetrnaesti.

Postavljena je još jedna labela (label18) čiji je caption u početku prazan, a u koju se kasnije ispisuje prosek učenika.

Programski kod dugmeta Izračunaj:procedure TForm1.Button1Click(Sender: TObject);var a,b,i,j: integer; c:real; s:string;begin i:=0; b:=0; if length(ime.text)>1 then inc(i); if length(prezime.text)>1 then inc(i); if length(grad.text)>1 then inc(i); val(prvi.Text,a,j); if (j=0) and ((a>1) and (a<6)) then begin b:=b+a;inc(i) end; val(drugi.Text,a,j); if (j=0) and ((a>1) and (a<6)) then begin b:=b+a;inc(i) end; val(treci.Text,a,j); if (j=0) and ((a>1) and (a<6)) then begin b:=b+a;inc(i) end; val(cetvrti.Text,a,j); if (j=0) and ((a>1) and (a<6)) then begin b:=b+a;inc(i) end; val(peti.Text,a,j); if (j=0) and ((a>1) and (a<6)) then begin b:=b+a;inc(i) end; val(sesti.Text,a,j); if (j=0) and ((a>1) and (a<6)) then begin b:=b+a;inc(i) end; val(sedmi.Text,a,j); if (j=0) and ((a>1) and (a<6)) then begin b:=b+a;inc(i) end;

12

Page 13: Delphi Zadaci Za Ucenike

val(osmi.Text,a,j); if (j=0) and ((a>1) and (a<6)) then begin b:=b+a;inc(i) end; val(deveti.Text,a,j); if (j=0) and ((a>1) and (a<6)) then begin b:=b+a;inc(i) end; val(deseti.Text,a,j); if (j=0) and ((a>1) and (a<6)) then begin b:=b+a;inc(i) end; val(jedanaesti.Text,a,j); if (j=0) and ((a>1) and (a<6)) then begin b:=b+a;inc(i) end; val(dvanaesti.Text,a,j); if (j=0) and ((a>1) and (a<6)) then begin b:=b+a;inc(i) end; val(trinaesti.Text,a,j); if (j=0) and ((a>1) and (a<6)) then begin b:=b+a;inc(i) end; val(cetrnaesti.Text,a,j); if (j=0) and ((a>1) and (a<6)) then begin b:=b+a;inc(i) end; c:=b/(i-3); Str(c:5:2,s); if (i=17) and (uspeh.checked) then label18.Caption:='Srednja ocena ucenika je ' + s else label18.Caption:='Pogresno uneti podaci!'end;

Primer izgleda aplikacije nakon izvršavanja:

Zadatak 20. Memo

Kreirati aplikaciju koja omogućava određivanje stila (bold i/ili italic) i fonta (Times New Roman, Arial ili Courier) teksta u komponenti Memo.

13

Page 14: Delphi Zadaci Za Ucenike

Na obrazac postaviti Memo komponentu i otkucati sadržaj u osobini Lines. Takođe postaviti 2 labele, 2 CheckBox-a i 3 radio dugmića. Imena (Name) CheckBox-ova i radio dugmića su identična kao njihovi nazivi (Caption).

Izgled aplikacije:

Programski kod za CheckBox bold:procedure TForm1.boldClick(Sender: TObject);beginif bold.Checked then memo1.Font.style:=memo1.Font.style + [fsbold]else memo1.Font.style:=memo1.Font.style - [fsbold]end;

Analogno programirati i CheckBox italic.

Programski kod za RadioButton Arial:procedure TForm1.ArialClick(Sender: TObject);beginif Arial.checked then memo1.Font.name:='Arial'end;

Analogno programirati i RadioButton TimesNewRoman i Courier.

Na obrazac dodati još jedno dugme Pronađi i edit polje u koje će se upisati tekst koji želimo da obeležimo. Klikom na dugme Pronađi u tekstu će se obeležiti prvo pojavljivanje stringa koji je zadat u edit polju.

Svojstvo Memo komponente Hide Selection postaviti na false.

Kod dugmeta Pronađi:procedure TForm1.pronadjiClick(Sender: TObject);var k:integer;begin k:=Pos(edit1.Text,memo1.text); if k>0 then begin memo1.SelStart:=k-1; memo1.SelLength:=Length(edit1.text); end else ShowMessage('Takav tekst ne postoji!')end;

Dodati na obrazac i dugme Zameni i edit polje u kom će se uneti tekst kojim želimo da zamenimo tekst iz prvog edit polja. Dakle, sada aplikacija izgleda ovako:

14

Page 15: Delphi Zadaci Za Ucenike

Dugme Zameni isprogramirati tako da kada kliknemo na njega izvrši se prepravka Memo teksta na taj način da se string iz prve edit komponente zameni stringom navedenim u drugoj edit komponenti.

Programski kod dugmeta Zameni:procedure TForm1.zameniClick(Sender: TObject);var k:integer; s:string;begin s:=memo1.Text; k:=Pos(edit1.Text,s); while k>0 do begin Delete(s,k,Length(edit1.text)); Insert(edit2.Text,s,k); k:=Pos(edit1.Text,s); end; memo1.Text:=s;end;

Proširiti obrazac sa još 3 dugmeta, za levo, desno i centrirano poravnanje.

Kod dugmeta Levo:procedure TForm1.levoClick(Sender: TObject);begin memo1.Alignment:=taLeftJustify;end;

Desno i Sredina programirati analogno (Desno: taRightJustify, Sredina: taCenter).

Dodati još 2 dugmeta za odabir boje fonta i pozadine. Da bi to bilo omogućeno, na obrazac postaviti komponentu ColorDialog iz palete Dialogs.

Konačni izgled aplikacije:

15

Page 16: Delphi Zadaci Za Ucenike

Kod dugmeta Font:procedure TForm1.fontClick(Sender: TObject);begin colorDialog1.Color:=Memo1.Font.color; if ColorDialog1.Execute then memo1.Font.Color:=colorDialog1.Color;end;

Dugme za promenu boje pozadine (Pozadina) se programira na sličan način, samo se svugde izostavlja reč font.

Zadatak 21. StringGrid zvezdice

Kreirati aplikaciju koja ispisuje zvezdice u svim poljima tabele.Na obrazac postaviti komponentu StringGrid, koja se nalazi na kartici Additional i jedno dugme sa natpisom Ispisi zvezdice.

Broj kolona i redova proizvoljno odrediti.

Klikom na dugme, tabela dobija sledeći izgled:

Programski kod dugmeta Ispisi zvezdice:procedure TForm1. IspisiZvezdiceClick(Sender: TObject);var i,j:integer;

16

Page 17: Delphi Zadaci Za Ucenike

beginfor i:=0 to StringGrid1.ColCount-1 do for j:=0 to StringGrid1.RowCount-1 do StringGrid1.cells[i,j]:='*'end;

Zadatak 22. StringGrid uređeni parovi

Kreirati aplikaciju koja ispisuje uređene parove kolone i vrste ćelije u svim poljima tabele.

Na obrazac postaviti komponentu StringGrid i jedno dugme sa natpisom Ispisi.

Klikom na dugme, tabela dobija sledeći izgled:

Programski kod dugmeta Ispisi:procedure TForm1.IspisiClick(Sender: TObject);var i,j,c,r:integer;begin c:=StringGrid1.ColCount; r:=StringGrid1.RowCount; for i:=0 to c-1 do for j:=0 to r-1 do StringGrid1.Cells[i,j]:='(' + IntToStr(i) + ',' + IntToStr(j) + ')';end;

Zadatak 23. StringGrid tablica množenja

Kreirati aplikaciju koja ispisuje tablicu množenja 10x10.

Na obrazac postaviti komponentu StringGrid i osobine ColCount i RowCount postaviti na 11. Dodati i jedno dugme sa natpisom Ispisi.

Klikom na dugme, tabela dobija sledeći izgled:

17

Page 18: Delphi Zadaci Za Ucenike

Programski kod dugmeta Ispisi:procedure TForm1.IspisiClick(Sender: TObject);var i,j:integer;begin StringGrid1.cells[0,0]:='x'; for i:=1 to 10 do StringGrid1.Cells[i,0]:=IntToStr(i); for i:=1 to 10 do StringGrid1.Cells[0,i]:=IntToStr(i); for i:=1 to 10 do for j:=1 to 10 do StringGrid1.Cells[i,j]:=IntToStr(i*j);end;

Zadatak 24. StringGrid Dijagonala

Kreirati aplikaciju koja na glavnoj dijagonali tabele ispisuje zvezdice, ispod glavne dijagonale ispisuje razliku vrste i kolone, a iznad ispisuje njihov zbir.

Pored StringGrid komponente, na obrazac dodati još 2 dugmeta i 2 labele: Jednu za unošenje broja kolona, a drugu za unošenje broja redova.

Dodati 2 dugmeta: Formatiraj i Ispisi. Klikom na dugme Formatiraj, u fiksiranoj koloni i fiksiranom redu prikazuju se redni brojevi kolona i redova.

Pre aktiviranja dugmića, neophodno je uneti željeni broj kolona i redova.

Izgled aplikacije nakon klika na dugme Formatiraj:

18

Page 19: Delphi Zadaci Za Ucenike

Programski kod dugmeta Formatiraj:procedure TForm1.FormatirajClick(Sender: TObject);var i,j:integer;beginStringGrid1.ColCount:=StrToInt(edit1.text)+1;StringGrid1.RowCount:=StrToInt(edit2.text)+1;for i:=0 to StringGrid1.ColCount-1 do StringGrid1.Cells[i,0]:=IntToStr(i);for j:=0 to StringGrid1.RowCount-1 do StringGrid1.Cells[0,j]:=IntToStr(j);end;

Klikom na dugme Ispisi, tabela dobija sledeći izgled:

Programski kod dugmeta Ispisi:procedure TForm1.IspisiClick(Sender: TObject);var i,j:integer;beginStringGrid1.ColCount:=StrToInt(edit1.text)+1;StringGrid1.RowCount:=StrToInt(edit2.text)+1;for i:=1 to StringGrid1.ColCount-1 do

19

Page 20: Delphi Zadaci Za Ucenike

for j:=1 to StringGrid1.RowCount-1 do if i=j then StringGrid1.Cells[i,j]:='*' else if j>i then StringGrid1.Cells[i,j]:=IntToStr(j-i) else StringGrid1.Cells[i,j]:=IntToStr(j+i)end;

Zadatak 25. StringGrid Top u šahu

Kreirati aplikaciju koja će simulira šahovsku tablu, doduše, željenih dimenzija. Klikom na dugme Napadni, zvezdicama će se obeležiti ona polja koja bi bila napadnuta ukoliko bi se figura Top našla na zadatim koordinatama.

Početni izgled aplikacije:

Pre aktiviranja dugmića, neophodno je uneti željeni broj kolona i redova, kao i koordinate figure Top.

Dugme Formatiraj ima istu ulogu i isti programski kod kao u prethodnom zadatku.

Edit polja za koordainate Top-a nazvati redom TopKolona i TopVrsta.

Programski kod dugmeta Napadni:procedure TForm1.NapadniClick(Sender: TObject);var i,j,col,row:integer;begin col:=StrToInt(TopKolona.text); row:=StrToInt(TopVrsta.text); for i:=1 to StringGrid1.ColCount-1 do for j:=1 to StringGrid1.RowCount-1 do if (col=i) or (row=j) then StringGrid1.Cells[i,j]:='*'end;

Primer izgleda izvršene aplikacije nakon pravilnog unošenja podataka i klika na oba dugmeta:

20

Page 21: Delphi Zadaci Za Ucenike

21