Демонстрација hello world програма razred programiranje zadaci.pdf6 ...
TRANSCRIPT
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));
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
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);
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);
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;
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);
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;
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
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;