Демонстрација hello world програма razred programiranje zadaci.pdf6 ...

21
1 <Лин_1> Демонстрација Hello World програма 1: procedure TForm1.btHelloClick(Sender: Tobject); 2: begin 3: ShowMessage('Hello World!'); 4: lbHello.Caption:= 'Hello World again!'; 5: end; <Лин_2> Демонстрација основних елемената Pascal језика procedure TForm2.PrikaziElemente(Sender: TObject); //Zaglavlje procedure, Click dogadjaj za dugme const //Deklaracija konstanti MAKSIMUM = 1000; DOBAR = 3.5; UZVICNIK = '!'; SKOLA = 'Gimnazija Sveti Sava'; Var //Deklaracija promenljivih CeoBroj, CeoBroj2, CeoRezultat : integer; //Celobrojne RealniBroj, RealniBroj2, RealniRezultat : real; //Decimalni, realni Znak : char; //Znakovni Tekst, Tekst2 : string; //Tekst, string Begin //Blok izvrsnih naredbi CeoBroj:= 250; //Inicijalizacija promenljivih RealniBroj := 3.33; Znak:= 'B'; Tekst:= 'Broj je: '; Tekst2:= IntToStr(MAKSIMUM); //Ceo broj u tekst ShowMessage(Tekst + Tekst2); //Spajanje stringova Tekst2:= IntToStr(CeoBroj); ShowMessage(Tekst + Tekst2); Tekst2:= FloatToStr(RealniBroj); //Decimalni broj u tekst ShowMessage(Tekst + Tekst2); ShowMessage('Najbolja skola je ' + SKOLA + UZVICNIK); CeoBroj2:= 100; CeoRezultat:= CeoBroj + CeoBroj2; //Krecemo sa aritmetikom celih brojeva ShowMessage (IntToStr(CeoRezultat)); CeoRezultat:= CeoBroj - CeoBroj2; ShowMessage (IntToStr(CeoRezultat)); CeoRezultat:= CeoBroj * CeoBroj2; ShowMessage (IntToStr(CeoRezultat));

Upload: dinhdiep

Post on 28-Apr-2018

231 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Демонстрација Hello World програма razred programiranje zadaci.pdf6  Заменити вредност два едит/текст

1

<Лин_1> Демонстрација Hello World програма

1: procedure TForm1.btHelloClick(Sender: Tobject);

2: begin

3: ShowMessage('Hello World!');

4: lbHello.Caption:= 'Hello World again!';

5: end;

<Лин_2> Демонстрација основних елемената Pascal језика

procedure TForm2.PrikaziElemente(Sender: TObject); //Zaglavlje procedure, Click dogadjaj za dugme

const //Deklaracija konstanti

MAKSIMUM = 1000;

DOBAR = 3.5;

UZVICNIK = '!';

SKOLA = 'Gimnazija Sveti Sava';

Var //Deklaracija promenljivih

CeoBroj, CeoBroj2, CeoRezultat : integer; //Celobrojne

RealniBroj, RealniBroj2, RealniRezultat : real; //Decimalni, realni

Znak : char; //Znakovni

Tekst, Tekst2 : string; //Tekst, string

Begin //Blok izvrsnih naredbi

CeoBroj:= 250; //Inicijalizacija promenljivih

RealniBroj := 3.33;

Znak:= 'B';

Tekst:= 'Broj je: ';

Tekst2:= IntToStr(MAKSIMUM); //Ceo broj u tekst

ShowMessage(Tekst + Tekst2); //Spajanje stringova

Tekst2:= IntToStr(CeoBroj);

ShowMessage(Tekst + Tekst2);

Tekst2:= FloatToStr(RealniBroj); //Decimalni broj u tekst

ShowMessage(Tekst + Tekst2);

ShowMessage('Najbolja skola je ' + SKOLA + UZVICNIK);

CeoBroj2:= 100;

CeoRezultat:= CeoBroj + CeoBroj2; //Krecemo sa aritmetikom celih brojeva

ShowMessage (IntToStr(CeoRezultat));

CeoRezultat:= CeoBroj - CeoBroj2;

ShowMessage (IntToStr(CeoRezultat));

CeoRezultat:= CeoBroj * CeoBroj2;

ShowMessage (IntToStr(CeoRezultat));

Page 2: Демонстрација Hello World програма razred programiranje zadaci.pdf6  Заменити вредност два едит/текст

2

CeoRezultat:= CeoBroj Div CeoBroj2;

ShowMessage (IntToStr(CeoRezultat));

CeoRezultat:= CeoBroj Mod CeoBroj2;

ShowMessage (IntToStr(CeoRezultat));

RealniBroj2 := 1.11;

RealniRezultat:= RealniBroj + RealniBroj2; //Sad aritmetika realnih brojeva

ShowMessage (FloatToStr(RealniRezultat));

RealniRezultat:= RealniBroj - RealniBroj2;

ShowMessage (FloatToStr(RealniRezultat));

RealniRezultat:= RealniBroj * RealniBroj2;

ShowMessage (FloatToStr(RealniRezultat));

RealniRezultat:= RealniBroj / RealniBroj2;

ShowMessage (FloatToStr(RealniRezultat));

end;

<Лин_3> Возило се креће брзином v (km/h) у трајању од t часова. Одштампати колико је километра пута

прешло возило (s = v * t).

1: procedure TForm3.btIzracunajClick(Sender: TObject);

2: var

3: Brzina, Vreme, Put: real;

4: begin

5: Brzina:= StrToFloat(edBrzina.Text);

6: Vreme:= StrToFloat(edVreme.Text);

7: Put:= Brzina * Vreme;

8: lbPut.Caption:= Format('%n', [Put]);

9: end;

<Лин_4> За унети полупречник r израчунати и исписати обим и површину круга.

1: procedure TForm4.btIzracunajClick(Sender: Tobject); 2: const 3: PI = 3.1415; 4: var 5: Poluprecnik, Obim, Povrsina: real; 6: begin

Page 3: Демонстрација Hello World програма razred programiranje zadaci.pdf6  Заменити вредност два едит/текст

3

7: Poluprecnik := StrToFloat(edPoluprecnik.Text); 8: Obim := 2 * Poluprecnik * PI; 9: Povrsina:= Sqr(Poluprecnik)*PI;

10: lbObim.Caption := Format('%n', [Obim]); 11: lbPovrsina.Caption := Format('%n', [Povrsina]); 12: end;

<Лин_5> Учитати почетну брзину V0 и угао у степенима U, и на основу тога израчунати максимални

домет хица по формули G

UV

D

)90

(20

, где је =3.14159, а G=9.81.

1: procedure TForm5.btIzracunajClick(Sender: Tobject);

2: const

3: PI = 3.14159;

4: G = 9.81;

5: var

6: PocetnaBrzina, Ugao, DometHica : real;

7: begin

8: PocetnaBrzina:= StrToFloat(edPocetnaBrzina.Text);

9: Ugao:= StrToFloat(edUgao.Text);

10: DometHica:= Sqr(PocetnaBrzina)*(Ugao*PI/90) / G;

11: lbDometHica.Caption:= Format('%n', [DometHica]);

12: end;

<Лин_6> Израчунати површину троугла по Хероновом обрасцу:

))()(( csbsassP , где s представља полуобим 2

cbas

.

1: procedure TForm6.btIzracunajClick(Sender: Tobject); 2: var 3: StranaA, StranaB, StranaC, Poluobim, Povrsina: real; 4: begin 5: StranaA:= StrToFloat(edStranaA.Text); 6: StranaB:= StrToFloat(edStranaB.Text); 7: StranaC:= StrToFloat(edStranaC.Text);

Page 4: Демонстрација Hello World програма razred programiranje zadaci.pdf6  Заменити вредност два едит/текст

4

8: Poluobim:= (StranaA + StranaB + StranaC) / 2; 9: Povrsina:= Sqrt(Poluobim * (Poluobim - StranaA) * (Poluobim - StranaB) * (Poluobim - StranaC));

10: lbPovrsina.Caption:= Format('%n', [Povrsina]); 11: end;

<Лин_7> Уносе се температуре по скали Фаренхајта и претвара у температуру по скали Целзија

следећом формулом: 8.1

32

TfTc , док се температура по скали Целзија претвара у температуру

по скали Фаренхајта следећом формулом: 32)8.1( TcTf .

1: procedure TForm7.btIzracunajClick(Sender: Tobject); 2: var 3: Temperatura1, Temperatura2 : real; 4: begin 5: Temperatura1:= StrToFloat(edTemperaturaCelzijus.Text); 6: Temperatura2:= Temperatura1 * 1.8 + 32; 7: lbTemperaturaFarenhajt.Caption:= Format('%n', [Temperatura2]); 8: Temperatura1:= StrToFloat(edTemperaturaFarenhajt.Text); 9: Temperatura2:= (Temperatura1 - 32) / 1.8;

10: lbTemperaturaCelzijus.Caption:= Format('%n', [Temperatura2]); 11: еnd;

<Лин_8> Ако се вредност неког артикла у доларима додељује променљивој Cena, саставити програм који одређује најмању количину новчаница од 50, 20, 10 динара, као и преостали износ у динарима за плаћање тог артикала.

1: procedure TForm8.btIzracunajClick(Sender: Tobject); 2: var 3: Cena, Dinara50, Dinara20, Dinara10: integer; 4: begin 5: Cena:= StrToInt(edCena.Text); 6: Dinara50:= Cena div 50; 7: Cena:= Cena mod 50; 8: Dinara20:= Cena div 20; 9: Cena:= Cena mod 20;

10: Dinara10:= Cena div 10; 11: Cena:= Cena mod 10; 12: lbDinara50.Caption:= IntToStr(Dinara50); 13: lbDinara20.Caption:= IntToStr(Dinara20);

Page 5: Демонстрација Hello World програма razred programiranje zadaci.pdf6  Заменити вредност два едит/текст

5

14: lbDinara10.Caption:= IntToStr(Dinara10); 15: lbDinara.Caption:= IntToStr(Cena); 16: end;

<Лин_8> За учитани троцифрени број, исписати све цифре у одговарајућем формату.

1: procedure TForm8.btIzracunajclick(Sender: Tobject); 2: var 3: Broj, Cifra100, Cifra10 : integer; 4: begin 5: Broj:= StrToInt(edBroj.Text); 6: Cifra100:= Broj Div 100; 7: Broj:= Broj Mod 100; 8: Cifra10:= Broj Div 10; 9: Broj:= Broj Mod 10; //Broj je sada jednocifren, treca pozicija

10: lbCifra100.Caption:= IntToStr(Cifra100); 11: lbCifra10.Caption:= IntToStr(Cifra10); 12: lbCifra1.Caption:= IntToStr(Broj); 13: ShowMessage('Prva: ' + IntToStr(Cifra100) + ', druga: ' + IntToStr(Cifra10) 14: + ', treca: ' + IntToStr(Broj) + '!'); 15: end;

<Лин_9> Рачун за телефон показује да има x

минута у јефтинијој, и y минута у скупљој

тарифној зони. Минут разговора у јефтинијој

зони износи 2 импулса, а у скупљој 4 импулса.

Ако један импулс кошта c динара, колико

износи цео рачун?

1: procedure TForm9.btIzracunajClick(Sender: Tobject); 2: var 3: CenaImpulsa, Racun: real; 4: MinutiJeftina, MinutiSkuplja: integer; 5: begin 6: MinutiJeftina:= StrToInt(edMinutiJeftina.Text); 7: MinutiSkuplja:= StrToInt(edMinutiSkuplja.Text); 8: CenaImpulsa:= StrToFloat(edCenaImpulsa.Text); 9: Racun:= (MinutiJeftina * 2 + MinutiSkuplja * 4) * CenaImpulsa;

10: lbRacun.Caption:= Format('%n', [Racun]); 11: end;

Page 6: Демонстрација Hello World програма razred programiranje zadaci.pdf6  Заменити вредност два едит/текст

6

<Лин_10> Заменити вредност два едит/текст бокса

1. procedure TForm10.btZameniClick(Sender: TObject); 2. var 3. Temp : String; 4. begin 5. Temp:= edVrednost1.Text; 6. edVrednost1.Text:= edVrednost2.Text; 7. edVrednost2.Text:= Temp; 8. end;

<If_1> За унети број, израчунати његову апсолутну вредност,

без коришћења уграђене функције Abs.

1: procedure TForm1.btIzracunajClick(Sender: TObject); 2: var 3: Broj: double; 4: begin 5: Broj:= StrToFloat(edBroj.Text); 6: if Broj < 0 then 7: Broj:= -Broj; 8: lbRezultat.Caption:= FloatToStr(Broj); 9: end;

<If_2> За унети број, проверити да ли је паран или непаран, без коришћења уграђене функције Odd.

1: procedure TForm1.btIzracunajClick(Sender: TObject); 2: var 3: Broj: integer; 4: begin 5: Broj:= StrToInt(edBroj.Text); 6: if Broj mod 2 = 0 then 7: lbRezultat.Caption:= 'Paran' 8: else 9: lbRezultat.Caption:= 'Neparan';

10: end;

<If_3> За три унета броја наћи и одштампати највећи.

1: procedure TForm2.btIzracunajClick(Sender: TObject); 2: var 3: Broj1, Broj2, Broj3, Max: double; 4: begin 5: Broj1:= StrToFloat(edBroj1.Text); 6: Broj2:= StrToFloat(edBroj2.Text); 7: Broj3:= StrToFloat(edBroj3.Text);

Page 7: Демонстрација Hello World програма razred programiranje zadaci.pdf6  Заменити вредност два едит/текст

7

8: Max:= Broj1; 9: if Broj2 > Max then Max:= Broj2;

10: if Broj3 > Max then Max:= Broj3; 11: lbMax.Caption:= FloatToStr(Max); 12: end;

<If_4> Колико се максимално молекула сумпорне киселине (H2SO4) може формирати од датих H атома водоника, S атома сумпора и O атома кисеоника.

1: procedure TForm2.btIzracunajClick(Sender: TObject); 2: var 3: H, S, O, Min: integer; 4: begin 5: H:= StrToInt(edH.Text); 6: S:= StrToInt(edS.Text); 7: O:= StrToInt(edO.Text); 8: Min:= H div 2; 9: if S < Min then Min:= S;

10: if O div 4 < Min then Min:= O div 4; 11: lbBrojMolekula.Caption:= IntToStr(Min); 12: end;

<If_5> Учитавају се два цела броја. Ако је први број већи од

другог рачуна се њихов производ, а у супротном збир.

1: procedure TForm5.btIzracunajClick(Sender: TObject); 2: var 3: Broj1, Broj2, Rezultat: integer; 4: begin 5: Broj1:= StrToInt(edBroj1.Text); 6: Broj2:= StrToInt(edBroj2.Text); 7: if Broj1 > Broj2 then 8: Rezultat:= Broj1 * Broj2 9: else

10: Rezultat:= Broj1 + Broj2; 11: end;

<If_6> За унету годину проверити да ли је преступна. Година је преступна ако је дељива са 4 и није година века (значи ако није дељива са 100) или ако је дељива са 400.

1: procedure TForm3.btIzracunajClick(Sender: TObject);

2: var Godina: integer; 3: begin 4: Godina:= StrToInt(edGodina.Text); 5: if (Godina mod 4 = 0) and (Godina mod 100 <> 0) or (Godina mod 400 = 0) then 6: lbRezultat.Caption:= 'Prestupna' 7: else 8: lbRezultat.Caption:= 'Nije prestupna'; 9: end;

Page 8: Демонстрација Hello World програма razred programiranje zadaci.pdf6  Заменити вредност два едит/текст

8

<If_7> На основу учитане температуре приказати агрегатно стање воде, по следећој функцији:

𝐴𝑔𝑟𝑒𝑔𝑎𝑡𝑛𝑜 𝑠𝑡𝑎𝑛𝑗𝑒 (𝑡) = {𝑙𝑒𝑑, 𝑡 < 0

𝑡𝑒𝑐𝑛𝑜, 0 ≤ 𝑡 < 100𝑡 ≥ 100

1: procedure TForm4.btIzracunajClick(Sender: TObject); 2: var 3: Temperatura: integer; 4: AgregatnoStanje: string; 5: begin 6: Temperatura:= StrToInt(edTemperatura.Text); 7: if Temperatura < 0 then 8: AgregatnoStanje:= 'led' 9: else if Temperatura < 100 then

10: AgregatnoStanje:= 'tecno' 11: else 12: AgregatnoStanje:= 'para'; 13: lbRezultat.Caption := AgregatnoStanje; 14: end;

<If_8> Учитатати странице троугла, и ако затварају троугао (a+b>c и a+c>b

и b+c>a) израчунати површину троугла по Хероновом обрасцу:

))()(( csbsassP , где је s полуобим: 2

cbas

, и одштампати

израчунату површину. Уколико странице не затварају троугао дати

одговарајућу поруку.

1: procedure TForm6.btIzracunajClick(Sender: TObject); 2: var 3: A, B, C, Poluobim, Povrsina: double; 4: begin 5: A:= StrToFloat(edStranaA.Text); 6: B:= StrToFloat(edStranaB.Text); 7: C:= StrToFloat(edStranaC.Text); 8: if (A+B>C) and (A+C>B) and (B+C>A) then 9: begin

10: Poluobim:= (A+B+C) / 2; 11: Povrsina:= Sqrt(Poluobim * (Poluobim - A) * (Poluobim - B) * (Poluobim - C)); 12: lbPovrsina.Caption:= FloatToStr(Povrsina); 13: end 14: else 15: lbPovrsina.Caption:= 'Stranice ne zatvaraju trougao!!!'; 16: end;

<If_9> На основу пређеног пута и времена израчунати

брзину (v=s/t). Онемогућити грешку која се јавља

конвертовањем текста у број. Пут мора бити већи или

једнак 0, док време мора бити веће од 0.

1: procedure Tform1.btIzracunajClick(Sender: Tobject); 2: var

Page 9: Демонстрација Hello World програма razred programiranje zadaci.pdf6  Заменити вредност два едит/текст

9

3: Put: integer; 4: Vreme, Brzina: double; 5: begin 6: // Da li je ceo broj? 7: if not TryStrToInt(edPut.Text,Put) then 8: begin 9: ShowMessage('Greska! ' + edPut.Text + ' nije ceo broj!');

10: edPut.SetFocus; 11: exit; // Izadji iz procedure! 12: end; 13: // Da li je decimalni broj? 14: if not TryStrToFloat(edVreme.Text,Vreme) then 15: begin 16: ShowMessage('Greska! ' + edVreme.Text + ' nije ceo broj!'); 17: edVreme.SetFocus; 18: exit; 19: end; 20: //Posto smo dosli dovde, promenljive Put i Vreme su inicijalizovane 21: //Da proverimo jos da li je put veci ili jednak nuli i vreme vece od nule 22: if (Put >=0) and (Vreme > 0) then 23: begin 24: Brzina:= Put / Vreme; 25: lbBrzina.Caption:= FloatToStr(Brzina); 26: end 27: else 28: begin 29: lbBrzina.Caption:= 'Greska!'; 30: edVreme.SetFocus; 31: end; 32: end;

<If_Case 1> За унету година (мора да буде позитиван број) и месец

(мора да буде у опсегу од 1 до 12) одштампати број дана. Година је

преступна ако је дељива са 4 и није година века (дељива са 100) или

ако је дељива са 400.

1: procedure TForm1.btIzracunajClick(Sender: TObject); 2: var 3: Godina, Mesec, BrojDana: integer; 4: begin 5: Godina:= StrToInt(edGodina.Text); 6: if Godina < 1 then 7: begin 8: ShowMessage('Pogresan unos'); 9: edGodina.SetFocus;

10: exit; 11: end; 12: Mesec:= StrToInt(edMesec.Text); 13: if (Mesec < 1) or (Mesec > 12) then 14: begin 15: ShowMessage('Pogresan unos'); 16: edMesec.SetFocus; 17: exit; 18: end;

Page 10: Демонстрација Hello World програма razred programiranje zadaci.pdf6  Заменити вредност два едит/текст

10

19: case Mesec of 20: 4, 6, 9, 11: BrojDana:= 30; 21: 2: if (Godina mod 4 = 0) and (Godina mod 100 <> 0) or (Godina mod 400 =0) then 22: BrojDana:= 29 23: else 24: BrojDana:= 28; 25: else 26: BrojDana:= 31; 27: end; 28: lbBrojDana.Caption:= IntToStr(BrojDana); 29: end;

<Case_1> На основу унете оцене исписати успех.

1. procedure TForm1.btPrikaziClick(Sender: TObject); 2. var 3. Ocena: integer; 4. Uspeh: string; 5. begin 6. Ocena:= StrToInt(edOcena.Text); 7. case Ocena of 8. 1: Uspeh:= 'Nedovoljan'; 9. 2: Uspeh:= 'Dovoljan';

10. 3: Uspeh:= 'Dobar'; 11. 4: Uspeh:= 'Vrlo dobar'; 12. 5: Uspeh:= 'Odlican'; 13. else 14. Uspeh:= 'Van opsega'; 15. end; 16. lbUspeh.Caption:= Uspeh; 17. end;

<Контроле_1> Мини дигитрон, уз помоћ RadioGroup.

1. procedure TForm1.btIzracunajClick(Sender: TObject); 2. var 3. Vrednost1, Vrednost2, Rezultat: double; 4. begin 5. Vrednost1:= StrToFloat(edVrednost1.Text); 6. Vrednost2:= StrToFloat(edVrednost2.Text); 7. case rgOperacije.ItemIndex of 8. 0: Rezultat:= Vrednost1 + Vrednost2; 9. 1: Rezultat:= Vrednost1 - Vrednost2; 10. 2: Rezultat:= Vrednost1 * Vrednost2; 11. 3: if Vrednost2 <> 0 then 12. Rezultat:= Vrednost1 / Vrednost2 13. else 14. begin 15. ShowMessage('Greska! Deljenje nulom'); 16. edVrednost2.SetFocus; 17. exit; 18. end; //If 19. end; //Case 20. if chkApsolutnaVrednost.Checked then 21. if Rezultat < 0 then 22. Rezultat:= -Rezultat;

Page 11: Демонстрација Hello World програма razred programiranje zadaci.pdf6  Заменити вредност два едит/текст

11

23. lbRezultat.Caption:= FloatToStr(Rezultat); 24. end;

5.2. [IFуIF-30п] По завршеном мечу уносе се поени за оба тима (edPoeniA и edPoeniB). У зависности од резултата приказати победника и разлику у поенима (пример: “Tim A (или B) je pobedio sa razlikom od: <Poena>”), или “Nereseno!”. procedure TForm1.btRezultatClick(Sender: TObject); var PoeniA, PoeniB: integer; Rezultat: string; begin PoeniA:=StrToInt(edPoeniA.Text); PoeniB:=StrToInt(edPoeniB.Text); if PoeniA > PoeniB then Rezultat:= 'Tim A je pobedio sa razlikom od: ' + IntToStr(PoeniA-PoeniB) else if PoeniB > PoeniA then Rezultat:= 'Tim B je pobedio sa razlikom od: ' + IntToStr(PoeniB-PoeniA) else Rezultat:= 'Nereseno!'; ShowMessage(Rezultat); end;

Page 12: Демонстрација Hello World програма razred programiranje zadaci.pdf6  Заменити вредност два едит/текст

12

FOR НАРЕДБА (for <Brojac> := <InicijalnaVrednost> to|downto <FinalnaVrednost> do <Naredba>; )

<For_1> Пет пута Hello World

1. procedure TForm1.btIzracunajClick(Sender: TObject); 2. var i:integer; 3. begin 4. for i:= 1 to 5 do 5. ShowMessage(IntToStr(i) + ': Hello World'); 6. for i:= 5 downto 1 do 7. ShowMessage(IntToStr(i) + ': Hello World'); 8. end;

<For_2> Дати таблицу суме првих n природних бројева.

1. procedure TForm1.btIzracunajClick(Sender: TObject); 2. var i, n, Suma: integer; 3. begin 4. n:= StrToInt(edN.Text); 5. Suma:=0; 6. for i:=1 to n do 7. begin 8. Suma:=Suma+i; 9. ShowMessage(‘Suma do broja ‘+IntToStr(i)+’: ‘+ IntToStr(Suma));

10. end; 11. end;

<For_3> Наћи збир и производ n реалних бројева.

1. procedure TForm1.btIzracunajClick(Sender: TObject); 2. var 3. Clan, Suma, Proizvod: double; 4. n,i: integer; 5. begin 6. n:= StrToInt(InputBox('Unos!','Broj n:','')); 7. Suma:=0; Proizvod:=1; 8. for i:= 1 to n do 9. begin

10. Clan:= StrToFloat(InputBox('Unos!', 'Clan:','')); 11. Suma:= Suma+Clan; 12. Proizvod:= Proizvod * Clan; 13. end; 14. ShowMessage('Suma: '+ FloatToStr(Suma) + ', proizvod: ' + FloatToStr(Proizvod)); 15. end;

<For_4> Наћи: Z=Xy.

1. procedure TForm1.btIzracunajClick(Sender: TObject); 2. var X, Z: double; 3. Y, i: integer; 4. begin 5. X:= StrToFloat(edX.Text); Y:= StrToInt(edY.Text); 6. Z:=1; 7. for i:=1 to Y do 8. Z:= Z * X;

Page 13: Демонстрација Hello World програма razred programiranje zadaci.pdf6  Заменити вредност два едит/текст

13

9. lbZ.Caption:=FloatToStr(Z); 10. end;

REPEAT И WHILE (repeat <Naredba1>; ...; <Naredban>; until Izraz;) (while <Izraz> do <Naredba>;)

<Repeat_1> Само бројеви од 1 до 9.

1. procedure TForm1.Button1Click(Sender: TObject); 2. var 3. Unos: string; 4. Broj: integer; 5. begin 6. repeat 7. Unos:=InputBox('Unos!', 'Unesi vrednost (0..9)',''); 8. Broj:=StrToInt(Unos); 9. ShowMessage(Unos);

10. until (Broj<1) or (Broj>9); 11. end;

<Repeat_2> Куповина, имамо будгет и провлачимо на каси, артикал по артикал док не пробијемо буџет.

1. procedure TForm1.Button1Click(Sender: TObject); 2. var Budget, Artikal, Total: double; 3. begin 4. Budget:= StrToFloat(edBudget.Text); 5. Total:=0; 6. repeat 7. Artikal:=StrToInt(InputBox('Unos!', 'Cena:','')); 8. Total:=Total + Artikal; 9. until Total >= Budget; 10. ShowMessage('Total: ' + FloatToStr(Total)); 11. end;

<While_1> Куповина, имамо будгет и провлачимо на каси, артикал по артикал док не пробијемо буџет.

1. procedure TForm1.Button1Click(Sender: TObject); 2. var Budget, Artikal, Total: double; 3. begin 4. Budget:= StrToFloat(edBudget.Text); 5. Total:=0; 6. while Total <= Budget do 7. begin 8. Artikal:=StrToInt(InputBox('Unos!', 'Cena:','')); 9. Total:=Total + Artikal; 10. end; 11. ShowMessage('Total: ' + FloatToStr(Total)); 12. end;

Page 14: Демонстрација Hello World програма razred programiranje zadaci.pdf6  Заменити вредност два едит/текст

14

<Repeat_3> Логин са лозинком, три покушаја 1. procedure TForm2.Button1Click(Sender: TObject); 2. const LOZINKA='pass'; 3. var Pokusaj: string; 4. i:integer; 5. begin 6. i:=0; 7. repeat 8. Pokusaj:=InputBox('Login!','Lozinka',''); 9. i:= i+1;

10. until (Pokusaj = LOZINKA) or (i=3); 11. if (Pokusaj = LOZINKA) then 12. ShowMessage('Registracija uspesna! Pokusaja: ' + IntToStr(i)) 13. else 14. ShowMessage('Registracija neuspesna!'); 15. end;

<While_3> Одредити колико унети број има цифара

1. procedure TForm3.Button1Click(Sender: TObject); 2. var Broj, Cifara:integer; 3. begin 4. Cifara:=0; 5. Broj:=StrToInt(edBroj.text); 6. while Broj<>0 do 7. begin 8. Broj:=Broj div 10; 9. Cifara:=Cifara+1;

10. end; 11. Showmessage('Uneti broj ima '+ IntToStr(Cifara)+ ' cifara'); 12. end;

<While_Repeat_3> Наћи: Z=Xy.

1. procedure TForm1.btIzracunajClick(Sender: TObject); 2. var X, Z: double; 3. Y, i: integer; 4. begin 5. X:= StrToFloat(edX.Text); Y:= StrToInt(edY.Text); 6. Z:=1; i:=1; 7. while i <= Y do 8. begin 9. Z:= Z * X; 10. i:=i + 1; 11. end; 12. lbZ.Caption:=FloatToStr(Z); 13. end;

Page 15: Демонстрација Hello World програма razred programiranje zadaci.pdf6  Заменити вредност два едит/текст

15

1. procedure TForm1.btIzracunajClick(Sender: TObject); 2. var X, Z: double; 3. Y, i: integer; 4. begin 5. X:= StrToFloat(edX.Text); Y:= StrToInt(edY.Text); 6. Z:=1; i:=1; 7. repeat 8. Z:= Z * X; 9. i:=i + 1; 10. until i > Y; 11. lbZ.Caption:=FloatToStr(Z); 12. end;

1. procedure TForm4.Button1Click(Sender: TObject); 2. var Broj, Limit, i: integer; 3. begin 4. Broj:= StrToInt(InputBox('Unos!','Broj:','')); 5. Limit:= StrToInt(InputBox('Unos!','Limit:','')); 6. i:= 0; 7. repeat 8. Broj:= Broj * 2; 9. i:= i+1;

10. until Broj >= Limit; 11. ShowMessage('Iteracija: ' + IntToStr(i)); 12. end;

1. procedure TForm4.Button1Click(Sender: TObject); 2. var Broj, Limit, i: integer; 3. begin 4. Broj:= StrToInt(InputBox('Unos!','Broj:','')); 5. Limit:= StrToInt(InputBox('Unos!','Limit:','')); 6. i:= 0; 7. while Broj <= Limit do 8. begin 9. Broj:= Broj * 2;

10. i:= i+1; 11. end; 12. ShowMessage('Iteracija: ' + IntToStr(i)); 13. end;

Page 16: Демонстрација Hello World програма razred programiranje zadaci.pdf6  Заменити вредност два едит/текст

16

<For_While_Repeat> Израчунати факторијел природног броја n: Fakt= n!= 1*2*3*…*n.

1. procedure TForm5.Button1Click(Sender: TObject); 2. var n, i, Fakt: integer; 3. begin 4. n:= StrToInt(InputBox('Unos!','n:','')); 5. Fakt:= 1; 6. for i:= 2 to n do 7. Fakt:= Fakt * i; 8. ShowMessage ('Faktorijel1: ' + IntToStr(Fakt)); 9. Fakt:=1; i:= 1;

10. repeat 11. Fakt:= Fakt * i; 12. i:= i+1; 13. until i > n; 14. ShowMessage ('Faktorijel2: ' + IntToStr(Fakt)); 15. Fakt:=1; i:= 2; 16. while i <= n do 17. begin 18. Fakt:= Fakt * i; 19. i:= i+1; 20. end; 21. ShowMessage ('Faktorijel3: ' + IntToStr(Fakt)); 22. end;

<For_5> За дато n израчунати суму: S= 1! + 2! + …. + n!

1: procedure TForm1.Button1Click(Sender: TObject); 2: var i,n,Fakt,Suma:integer; 3: begin 4: n:= StrToInt(InputBox('Unos', 'n:','')); 5: Fakt:=1; Suma:=0; 6: for i:= 1 to n do 7: begin 8: Fakt:= Fakt*i; 9: Suma:= Suma + Fakt;

10: end; 11: ShowMessage('Suma faktorijela: ' + IntToStr(Suma)); 12: end;

<For_Repeat> За дато n израчунати суму парних и непарних бројева

1: procedure TForm1.Button2Click(Sender: TObject); 2: var i,n,SumaP, SumaN:integer; 3: begin 4: n:= StrToInt(InputBox('Unos', 'n:','')); 5: SumaP:=0; SumaN:=0; 6: for i:= 1 to n do 7: if i mod 2 = 0 then 8: SumaP:= SumaP + i 9: else

10: SumaN:= SumaN + i;

Page 17: Демонстрација Hello World програма razred programiranje zadaci.pdf6  Заменити вредност два едит/текст

17

11: ShowMessage('Suma parnih: ' + IntToStr(SumaP) + '. Suma neparnih: ' + IntToStr(SumaN)); 12: SumaN:=0; 13: i:=1; 14: while i <= n do 15: begin 16: SumaN:= SumaN + i; 17: i:= i + 2; 18: end; 19: ShowMessage('Suma neparnih: ' + IntToStr(SumaN)); 20: end;

<For_6> За дато n израчунати: S = 12 – 22 + 32 – 42 + …..+/- n2

1: procedure TForm1.Button3Click(Sender: TObject); 2: var i,n,Suma:integer; 3: begin 4: n:= StrToInt(InputBox('Unos', 'n:','')); 5: Suma:=0; 6: for i:= 1 to n do 7: begin 8: if i mod 2 <> 0 then 9: Suma:= Suma + i*i

10: else 11: Suma:= Suma - i*i; 12: end; 13: ShowMessage('Suma: ' + IntToStr(Suma)); 14: end;

Page 18: Демонстрација Hello World програма razred programiranje zadaci.pdf6  Заменити вредност два едит/текст

18

XII. ПРОЦЕДУРЕ И ФУНКЦИЈЕ

<ПиФ_1> Направити функцију која претвара температуру по скали Фаренхајта у температуру по скали

Целзија: 8.1

32

TfTc , док се температура по скали Целзија претвара у температуру по скали Фаренхајта

следећом формулом: 32)8.1( TcTf .

1. implementation

2. function FarUCel(Tf:double):double; // iz Farenhajta u Celzijuse 3. var lTemperaturaC:double; 4. begin 5. lTemperaturaC:= (Tf - 32) / 1.8; 6. FarUCel:= lTemperaturaC; 7. end;

8. function CelUFar(Tc:double):double; // iz Celzijusa u Farenhajte 9. var lTemperaturaF:double; 10. begin 11. lTemperaturaF:= Tc * 1.8 + 32; 12. CelUFar:= lTemperaturaF; 13. end;

14. function KonverzijaTemperature(T:double; smer:char):double; //oba smera 15. var lTemperatura:double; 16. begin 17. if smer = 'c' then 18. lTemperatura:= (T - 32) / 1.8 19. else 20. lTemperatura:= T * 1.8 + 32; 21. KonverzijaTemperature:= lTemperatura; 22. end;

23. procedure TForm1.Button1Click(Sender: TObject); //pozivi I koriscenje funkcija 24. var TemperaturaC, TemperaturaF: double; 25. begin 26. TemperaturaF:= StrToFloat(InputBox('Unos', 'Temperatura (Farenhajta):', '')); 27. TemperaturaC:= FarUCel(TemperaturaF); 28. ShowMessage('Temperatura (Celzijusa): ' + FloatToStr(TemperaturaC)); 29. TemperaturaC:= KonverzijaTemperature(TemperaturaF, 'c'); 30. ShowMessage('Temperatura (Celzijusa): ' + FloatToStr(TemperaturaC)); 31. TemperaturaC:= StrToFloat(InputBox('Unos', 'Temperatura (Celzijusa):', '')); 32. TemperaturaF:= CelUFar(TemperaturaC); 33. ShowMessage('Temperatura (Farenhajta): ' + FloatToStr(TemperaturaF)); 34. TemperaturaF:= KonverzijaTemperature(TemperaturaC, 'f'); 35. ShowMessage('Temperatura (Farenhajta): ' + FloatToStr(TemperaturaF)); 36. end;

Page 19: Демонстрација Hello World програма razred programiranje zadaci.pdf6  Заменити вредност два едит/текст

19

<ПиФ_2> Функција за рачунање квадрата реалног броја.

1. function NaKvadrat(Broj:double): double; 2. begin 3. NaKvadrat:= Broj*Broj; 4. end;

5. procedure TForm1.Button2Click(Sender: TObject); 6. var PovrsinaKvadrata, Strana: double; 7. begin 8. Strana:= StrToFloat(InputBox('Unos:','Strana:','')); 9. PovrsinaKvadrata:= NaKvadrat(Strana);

10. ShowMessage('Povrsina: ' + FloatToStr(PovrsinaKvadrata)); 11. end;

<ПиФ_3> Функција која на основу почетне брзине V0 и угла у степенима U, рачуна максимални домет хица

по формули G

UV

D

)90

(20

, где је =3.14159, а G=9.81.

1. function DometHica(PocetnaBrzina, Ugao: double):double; 2. const 3. PI = 3.14159; 4. G = 9.81; 5. var 6. lDometHica : double; 7. begin 8. lDometHica:= Sqr(PocetnaBrzina)*(Ugao*PI/90) / G; 9. DometHica:= lDometHica;

10. end;

11. procedure TForm1.Button3Click(Sender: TObject); 12. var Domet, PocetnaBrzina, Ugao: double; 13. begin 14. PocetnaBrzina:= StrToFloat(InputBox('Unos:','Pocetna brzina:','')); 15. Ugao:= StrToFloat(InputBox('Unos:','Ugao:','')); 16. Domet:= DometHica(PocetnaBrzina, Ugao); 17. ShowMessage('Domet: ' + FloatToStr(Domet)); 18. end;

<ПиФ_3> Функција која рачуна степен неког реалног броја: Z=Xy.

1. function StepenBroja(Broj:double; Stepen:integer):double; 2. var lStepenBroja: double; 3. i: integer; 4. begin 5. lStepenBroja:=1; 6. for i:= 1 to Stepen do 7. lStepenBroja:= lStepenBroja*Broj; 8. StepenBroja:= lStepenBroja; 9. end;

10. procedure TForm1.Button4Click(Sender: TObject); 11. var X, Z: double; Y: integer; 12. begin 13. X:= StrToFloat(InputBox('Unos!', 'X:', '')); 14. Y:= StrToInt(InputBox('Unos!', 'Y:', '')); 15. Z:= StepenBroja(X,Y); 16. ShowMessage('Z: ' + FloatToStr(Z)); 17. end;

Page 20: Демонстрација Hello World програма razred programiranje zadaci.pdf6  Заменити вредност два едит/текст

20

<ПиФ_4> Процедура која штампа дан седмице на основу редног броја, и друга која штампа пуно име неке особе на основу имена и презимена.

1. procedure StampajDanNedelje(RedniBroj:integer);

2. var Dan: string;

3. begin

4. case RedniBroj of

5. 1: Dan:= 'Ponedeljak';

6. 2: Dan:= 'Utorak';

7. 3: Dan:= 'Sreda';

8. 4: Dan:= 'Cetvrtak';

9. 5: Dan:= 'Petak';

10. 6: Dan:= 'Subota';

11. 7: Dan:= 'Nedelja';

12. end;

13. ShowMessage('Danas je: ' + Dan);

14. end;

15. procedure StampajPunoIme(Ime,Prezime:string);

16. var PunoIme: string;

17. begin

18. PunoIme:= Ime + ' ' + Prezime;

19. ShowMessage('Puno ime je: ' + PunoIme);

20. end;

21. procedure TForm1.Button5Click(Sender: TObject);

22. var RB: integer;

23. Ime, Prezime: string;

24. begin

25. RB:= StrToInt(InputBox('Unos', 'Redni broj dana:',''));

26. StampajDanNedelje(RB);

27. Ime:= InputBox('Unos','Ime:','');

28. Prezime:=InputBox('Unos','Prezime:','');

29. StampajPunoIme(Ime,Prezime);

30. end;

<ПиФ_4> Процедура која мења вредности два цела броја.

1. procedure Zameni(var Broj1, Broj2: integer);

2. var Temp: integer;

3. begin

4. Temp:= Broj1;

5. Broj1:= Broj2;

6. Broj2:= Temp;

7. end;

8. procedure TForm1.Button6Click(Sender: TObject);

9. var Broj1, Broj2: integer;

10. begin

11. Broj1:= StrToInt(InputBox('Unos', 'Broj1:', ''));

12. Broj2:= StrToInt(InputBox('Unos', 'Broj2:', ''));

13. Zameni(Broj1,Broj2);

14. ShowMessage('Broj1: ' + IntToStr(Broj1));

15. ShowMessage('Broj2: ' + IntToStr(Broj2));

16. end;

Page 21: Демонстрација Hello World програма razred programiranje zadaci.pdf6  Заменити вредност два едит/текст

21

< ПиФ_5> Дати таблицу суме првих n природних бројева.

1. function SumaN(n:integer):integer;

2. var i, lSumaN: integer;

3. begin

4. lSumaN:=0;

5. for i:=1 to n do

6. lSumaN:= lSumaN + i;

7. Result:= lSumaN;

8. end;

9. procedure TForm1.Button7Click(Sender: TObject);

10. var S,n: integer;

11. begin

12. n:=StrToInt(InputBox('Unos','n:',''));

13. S:=SumaN(n);

14. ShowMessage('Suma: ' + IntToStr(S));

15. end;