31
Zbirka zadataka - Pascal RaŠa

1 · Web viewZbirka zadataka - Pascal Ra Ša Linijski programi Графички приказ алгоритма (блок или алгоритамска шема). Након почетка

  • Upload
    others

  • View
    15

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 1 · Web viewZbirka zadataka - Pascal Ra Ša Linijski programi Графички приказ алгоритма (блок или алгоритамска шема). Након почетка

Zbirka zadataka - Pascal

RaŠa

Page 2: 1 · Web viewZbirka zadataka - Pascal Ra Ša Linijski programi Графички приказ алгоритма (блок или алгоритамска шема). Након почетка

Linijski programi

Графички приказ алгоритма (блок или алгоритамска шема).Након почетка прво ћемо морати преко тастатуре уписати два броја која желимо сабрати. Замислимо 3 и 5.Та два броја смештају се у радној меморији као променљиве а и b. Другим речима број 3 се налази у делу меморије који смо назвали а, број 5 смо сместили у део меморије који смо назвали b.

Садржај променљиве c постаје збир садржаја променљивих а и б. Односно у део меморије који смо назвали ц смешта се збир бројева 3 и 5, дакле 8.

Крајњи циљ обраде је добити резултат.

Исписујемо садржај варијабле c. На екрану монитора или на штампачу ће се појавити број 8.

Крај.

Приметили сте да код формуле C:=a+b не користимо знак једнакости (=) већ := што предтсавља операцију доделе. Знак једнакости се користи као логичких оператор којим проверавамо да ли је израз са леве стране знака једнак изразу са десне стране.У графичком приказу алгоритма користе се следећи симболи за поједине алгоритамски кораке:

Алгоритам за сабирање два броја представљен је линијском структуром јер се наредбе редом извршавају једна иза друге. Постоје још и разгранате и цикличне структуре код сложенијих програма

Page 4: 1 · Web viewZbirka zadataka - Pascal Ra Ša Linijski programi Графички приказ алгоритма (блок или алгоритамска шема). Након почетка

1. Napisati  program za izračunavanje površine trougla:

koristeći Heronovu formulu: S=(a+b+c)/2, P=(S(S-a)(S-b)(S-c))1/2

po formuli P=a*h/2

PROGRAM prvi;USES WinCRT;VAR a, b, c, s, p: Real;BEGIN Write('Stranice trougla '); Readln(a, b, c); s := (a + b + c)/2; p := sqrt(S*(S-a)*(S-b)*(S-c)); Writeln('a ', a, ' b ', b, ' c ', c); Writeln('Povrsina trougla je ', p :8 :2); readlnEND.

2. Izračunati O, P i V kvadra (za poznate stranice a, b, c)

PROGRAM drugi;USES WinCRT;VAR a,b,c, p,v,o: Integer;BEGIN write('Unesi stranice kvadra a,b,c '); readln(a,b,c); O:=4*(a+b+c); P:=2*(a*b+a*c+b*c); V:=a*b*c; writeln('O=',O,' P=',P,' V=',V); readln END.

3. Naći program za iz aritmetičku sredinu tri broja.

PROGRAM treci;USES WinCRT;VAR a, b, c: Integer; as: Real;BEGIN Write('a, b, c = '); Readln(a, b, c); as:=(a+b+c)/3; Writeln('as=',as:4:2);END.

Page 5: 1 · Web viewZbirka zadataka - Pascal Ra Ša Linijski programi Графички приказ алгоритма (блок или алгоритамска шема). Након почетка

4. Za upisani poluprečnik izračunati površinu kruga.

PROGRAM cetvrti;USES WinCRT;CONST Pi=3.14;VAR r, p: Real;BEGIN Write('Poluprecnik '); Readln(r); p := Pi * sqr(r); Writeln('Za poluprecnik ', r:8:2); Writeln('povrsina kruga je ', p :8 :2); Readln;END.

Naredba IF THEN je naredba grananja. Na osnovu istinitosti logičkog izraza donosi se odluka da li  se izvodi naredba.

Tok  izvršenja naredbe predstavljen je grafikom na slici:

Oznaka Opis

B logički izraz

S naredba

Page 6: 1 · Web viewZbirka zadataka - Pascal Ra Ša Linijski programi Графички приказ алгоритма (блок или алгоритамска шема). Након почетка

Tako naredba:

IF Logicki_izraz THEN   Naredba S

znači, ako je Logicki_izraz istinit izvedi Naredbu S

Tekst: Ako je logički izraz istinit tada izvedi naredbu S

Pseudo kod: IF Logicki_izraz THEN Naredba S

 IF THEN ELSE naredba - teorijska priprema

Tekst: Ako je logički izraz istinit tada naredba1 inače naredba2

Pseudo kod: IF Logicki_izraz THEN Naredba1 ELSE Naredba2

Sintaksni dijagram naredbe je predstavljen zajedno sa naredbom IF.

Tok izvršenja naredbe je predstavljen na slici

Oznaka Opis

B - logički izraz

S1, S2 naredbe

.

Page 7: 1 · Web viewZbirka zadataka - Pascal Ra Ša Linijski programi Графички приказ алгоритма (блок или алгоритамска шема). Након почетка

5. Sa tastature upisati broj. Ako je veći od nule napisati "BROJ JE POZITIVAN"

PROGRAM PETI;USES WinCrt;VAR a: Real;BEGIN Write('Vas broj '); Readln(a); IF a > 0 THEN Writeln('POZITIVAN'); Readln;END.

6. Napiši program za ješavanje sledećeg izraza:         |  x+2,   x<-2          y =    | 2x+x,3    -2< x <2                   |  ,   x>=2PROGRAM sesti;USES WinCRT;VAR x,y:real;BEGIN Write('x='); Readln(x); IF x<-2 THEN y:=x+2 ELSE IF (x>=-2) and(x<=2) THEN y:=2*x+sqr(x)*x ELSE y:=sqrt(x-2); Writeln('y=',y);END.

7. Od tri upisana broja (a, b, c) sa tastature naći najveći.

PROGRAM sedmi;USES WinCrt;VAR a, b, c, max: Real;BEGIN Write('Vasa tri broja '); Readln(a, b, c); max := a; IF b>max THEN max := b; IF c>max THEN max := c; Writeln('Od brojeva ', a, ' ', b, ' ', c);

Page 8: 1 · Web viewZbirka zadataka - Pascal Ra Ša Linijski programi Графички приказ алгоритма (блок или алгоритамска шема). Након почетка

Writeln('najveci je ', max);END.

8. Data su tri broja x,y,z .naci zbir parnih i proizvod neparnih.program osmi;uses wincrt;var

x,y,z,P,s : integer; begin

writeln('Unesi brojeve x,y,z'); readln(x,y,z); s:=0;p:=1; if x mod 2 = 0 then s:=s+x else P:=p*x; if y mod 2 = 0 then s:=s+y else P:=p*y; if z mod 2 = 0 then s:=s+z else P:=p*z; writeln('Proizvod je',P:4,'Zbir je ',s:4); readln end.9. Data su dva broja a i b.Odrediti koji ima vecu vrednost i tu vrednost dodeliti promenljivoj max, a drugu dodeliti promenljivoj min.Na kraju ispisati odgovarajuce poruke na ekranu monitora.program deveti;uses wincrt;

var max,min,a,b :integer;

begin

writeln('Unesi a i b'); readln(a,b); if a>b then begin

max:=a; min:=b;

end else begin

max:=b; min:=a;

end;

writeln('Najveci je',max); writeln('Najmanji je ',min);

Page 9: 1 · Web viewZbirka zadataka - Pascal Ra Ša Linijski programi Графички приказ алгоритма (блок или алгоритамска шема). Након почетка

readln end.

10. Napisati program za ispis dana u sedmici, prema sledećoj tabeli:

1 Ponedjeljak

2 Utorak

3 Sreda

4 Cetvrtak

5 Petak

6 Subota

7 Nedelja

program deseti;uses wincrt;var b:integer; begin write('unesite broj meseca u godini'); writeln; readln(b); case b of 1 : writeln('januar'); 2 : writeln('februar'); 3 : writeln('mart'); 4 : writeln('april'); 5 : writeln('maj'); 6 : writeln('jun'); 7 : writeln('jul'); 8 : writeln('avgust'); 9 : writeln('septembar'); 10 : writeln('oktobar'); 11 : writeln('novembar'); 12 : writeln('decembar'); else writeln('uneli ste pogresan broj , nepostojeci mesec'); readln; end ; end.

Page 10: 1 · Web viewZbirka zadataka - Pascal Ra Ša Linijski programi Графички приказ алгоритма (блок или алгоритамска шема). Након почетка
Page 11: 1 · Web viewZbirka zadataka - Pascal Ra Ša Linijski programi Графички приказ алгоритма (блок или алгоритамска шема). Након почетка

11. Napisati program za ispis broja dana u mesecu, prema sledećoj tabeli:

1,3,5,7,8,10,12 31 dan

 2: Prestupna godina, 29 dana

  Nije prestupna godina 28 dana

4,6,9,11 30

PROGRAM jedanaesti;USES WinCRT;VAR mesec : 1..12; {MESECI} god : 1901..2099;BEGIN WRITELN('* MESECI * '); WRITE('Redni broj meseca:'); READLN(mesec); CASE mesec OF 1,3,5,7,8,10,12:WRITELN('31 DAN'); 2: BEGIN WRITE ('Godina '); READLN (god); IF god MOD 4 = 0 THEN WRITELN('Prestupna godina, 29dana') ELSE WRITELN('28 dana'); END; 4,6,9,11:WRITELN('30 DANA '); END; READLN;END.

12. Napisati program za ispis uspeha, prema sledećoj tabeli:

   0-1,5    nedovoljan

   1,5-2,5   dovoljan

   2,5-3,5   dobar

   3,5-4,5   vrlo dobar

   4,5-5,0   odlican

PROGRAM p07311007;USES WinCRT;VAR a : Real; b : Integer;BEGIN

Page 12: 1 · Web viewZbirka zadataka - Pascal Ra Ša Linijski programi Графички приказ алгоритма (блок или алгоритамска шема). Након почетка

Writeln('Ocjena - Prosjek'); Write('Prosjek'); Readln(a); b := ROUND(10*a); CASE b OF 0..15 : Writeln('nedovoljan'); 15..25 : Writeln('dovoljan'); 25..35 : Writeln('dobar'); 35..45 : Writeln('vrlo dobar'); 45..50 : Writeln('odlican'); END; Readln;END.

Page 13: 1 · Web viewZbirka zadataka - Pascal Ra Ša Linijski programi Графички приказ алгоритма (блок или алгоритамска шема). Након почетка

13. Napisati program za simulaciju rada kalkulatora, prema sledećoj tabeli:

'+' c=a+b;

'-' c=a-b;

'*' c=a*b;

'/' c=a/b;

PROGRAM p07311008;USES WinCRT;VAR a, b, c : REAL; op : CHAR;BEGIN WRITELN('KALKULATOR'); WRITE('Prvi broj:'); READLN(a); WRITE('Operacija:'); READLN(op); WRITE('Drugi broj:'); READLN(b); CASE op OF '+' : c:=a+b; '-' : c:=a-b; '*' : c:=a*b; '/' : c:=a/b; END; WRITELN(a,op,b,'=',c);END.

14. Napisati program za ispis uspeha a za ostale vrednosti ispisati greska. Vidi sledeću tabelu:

0..50 nije prosao

51..59 prosao

60..79 prosjek

80..100 super

ostale vrijednosti greska

PROGRAM p07311011;USES WinCrt;VAR BR: INTEGER;BEGIN READLN(BR); CASE BR OF 0..50 : WRITELN('nije prosao');

Page 14: 1 · Web viewZbirka zadataka - Pascal Ra Ša Linijski programi Графички приказ алгоритма (блок или алгоритамска шема). Након почетка

51..59 : WRITELN('prosao'); 60..79 : WRITELN('prosek'); 80..100: WRITELN('super '); ELSE WRITELN('greska'); END;END.

Page 15: 1 · Web viewZbirka zadataka - Pascal Ra Ša Linijski programi Графички приказ алгоритма (блок или алгоритамска шема). Након почетка

Sintaksnidijagram FOR naredbe 

 Naredba FOR se predstavlja sledećim dijagramom upravljanja.

Oznaka Opis

k - kontrolna promjenljiva

x - početna vrednost

y - krajnja vrednost

s - naredba /STATEMENT/

Promjena kontrolne varijable na više i na niže:

FOR k:= x TO y DO s; kontrolna promjenljiva prima sledeću vrednost k:=SUCC(k)

FOR k:= x DOWNTO y DO s; kontrolna promjenljiva prima prethodnu vrednost k:=PRED(k)

13. Izračunati i ispisati sumu prvih 5 prirodnih brojeva. Koristiti FOR petlju.

PROGRAM dvanaesti;{suma prvih 5 prirodnih brojeva}USES WinCrt;VAR i, s : INTEGER;BEGIN s := 0; FOR i := 1 TO n DO s := s + i; WRITELN ('Suma=',s); READLN;END.

Page 16: 1 · Web viewZbirka zadataka - Pascal Ra Ša Linijski programi Графички приказ алгоритма (блок или алгоритамска шема). Након почетка

14. Napisati program koji sabira i mnozi brojeve od 10 do 50 deljive sa 5.

program trinaesti;uses wincrt;vari,s,p : integer ;begins:=0;p:=1;for i:=10 to 50 doif i mod 5=0 then begin s:=s+i; p:=p*i; end;

writeln('zbir je : ' ,s);writeln('Proizvod je: ',p);readln

end.

15. Napisati program koji izracunava zbir n brojeva koji se unose sa tastature.

program cetrnaesti;uses wincrt;var

n,s,i,x : integer;

begin

writeln('Unesi n'); readln(n); s:=0; for i:=1 to n do begin

writeln('Unesi broj x '); readln(x); s:=s+x;

end;

writeln('Zbir je',s:8);

Page 17: 1 · Web viewZbirka zadataka - Pascal Ra Ša Linijski programi Графички приказ алгоритма (блок или алгоритамска шема). Након почетка

readlnend.

16. Napisati program koji nalazi aritmeticku sredinu svih parnih brojeva koji se unose sa tastature.

program petnaesti;uses wincrt;var

n,s,br,i,x : integer; sr:real;

begin

writeln('Unesi n'); readln(n); s:=0; br:=0; for i:=1 to n do begin

writeln('Unesi broj x '); readln(x); if x mod 2 = 1 then begin s:=s+x; br:=br+1; end; end; sr:=s/br; writeln('A.Sredina je',sr:8:2);

readlnend.

17. Ispisati dvocifrene brojeve koji nisu djeljivi sa 3. PROGRAM sesnaesti;USES WinCrt;VAR i : INTEGER;BEGIN FOR i := 10 TO 99 DO IF i MOD 3 <> 0 THEN WRITELN('nisu djevljivi sa 3 = ', i); READLN;END.

Page 18: 1 · Web viewZbirka zadataka - Pascal Ra Ša Linijski programi Графички приказ алгоритма (блок или алгоритамска шема). Након почетка

Jos primera :

1. Napisati program za ispis reciprocne vrednosti broja ako je razlicit od nule :

PROGRAM prvi;USES WinCrt;VAR x, y : REAL;BEGIN WRITE('Broj '); READLN( x ); IF x <> 0 THEN y := 1/x ; WRITELN('x = ', x, ' y ', y ); READLN;END.

2. Upisati dva broja. Ako je jedan veći od nule ispisati barem jedan veci.

PROGRAM drugi; {barem jedan veci}USES WinCrt;VAR a, b, y : integer;BEGIN Write('Dva broja '); Readln(a, b); IF (0<a) OR (0<b) THEN Writeln('barem jedan veci') ELSE y:=a+b; Writeln('a=', a, ' b=', b, ' y=', y); Readln;END.

3. Napisati porgram koji za uneta tri broja sa tastature a ,b ,c ispitati da li je jedan od njih jednak sumi druga dva,

program treci ;uses wincrt;

var a,b,c : integer;

begin write('Unesite tri broja a b c'); readln(a,b,c); if (a=b+c) or (b=c+a) or (c=a+b) then writeln('da') else writeln('ne') ; readln end.

Page 19: 1 · Web viewZbirka zadataka - Pascal Ra Ša Linijski programi Графички приказ алгоритма (блок или алгоритамска шема). Након почетка

4. Napisati program koji na osnovu trajanja telefonskog razgovora i cene po minutu izracunava cenu telefonskog razgovora.Posto je vikendom razgovor 10 posto jeftiniji, predvideti unos indikatora za dan razgovora. 1- radni dan 2- vikend.

program cetvrti ;uses wincrt;var trajanje,cenaPoMin,cena : real; dan : integer; begin write('Unesite trajanje poziva'); readln (trajanje); write('cena po minutu -->'); readln(cenaPoMin); write('Unesi : 1-radni da ,2 - vikend - >'); readln(dan); cena:=trajanje*cenaPoMin; if dan=2 then cena:=cena*0.9; writeln('Cena razgovora je : ',cena:0:2,'din.')end.

5. Napisati program za izračunavanje vrednosti z prema izrazu:                   |  b - a,   a > 0          z =    |  a / 3,   -3 < a <= 0                   |  2b,      a <= -3

program peti ;uses wincrt ;vara,b,z : real;beginwriteln('Unesite dva broja a i b');readln(a,b);if a > 0 then z:=b-a else if (a>-3) and (a<=0) then

z:=a/3 else if a <= -3 then {moze bez ove linije } z:=2*b; writeln('Rezultat funkcije za unesene brojeve a i b je : ',z); readln end.

Page 20: 1 · Web viewZbirka zadataka - Pascal Ra Ša Linijski programi Графички приказ алгоритма (блок или алгоритамска шема). Након почетка

6. Napisati program koji za uneta tri broja sa tastature ispisuje koji je najmanji.

program sesti ;uses wincrt;vara,b,c,min : integer;beginwrite('unesi tri cela broja ->');readln(a,b,c);min:=a;if b<min then min:=b;if c<min then min:=c;writeln('najmanji broj je : ',min :6);writeln('pritisni <enter> za nastavak....');readlnend.

7. Унети цену производа, количину као и начин плаћања (1-готовина 2-кредит). Израчунати укупан износ за плаћање. Ако се узима на кредит тада се износ увећава за 6%.

program zadatak12; uses wincrt;var kolicina, cena : real; nacin : integer;begin write ( 'unesite kolicinu proizvoda : ' ); readln ( kolicina ); write ( ' unesite cenu proizvoda : ' ); readln ( cena ); writeln ( ' unesite nacin placanja : 1-gotovina , 2-kredit ' ); readln ( nacin ); if nacin = 1 then writeln ( ' ukupan iznos za naplatu je ‘ , kolicina * cena :0:2 , ’ dinara.' ) else if nacin = 2 then writeln ( ' ukupan iznos za naplatu je ' , kolicina * cena * 1.06 :0:2 , ' dinara.' ) else writeln ( ' pogresan unos nacina placanja.' ); writeln ( 'pritisnite enter za nastavak…' ); readlnend.

Page 21: 1 · Web viewZbirka zadataka - Pascal Ra Ša Linijski programi Графички приказ алгоритма (блок или алгоритамска шема). Након почетка

8. Унети број. За позитиван број исписати следеће вредности: корен, квадрат и куб , а за негативан апсолутну вредност, реципрочну вредност и квадрат. Реалне вредности приказати са две децимале. Свака вредност се исписује у посебном реду.нпр: Koren broja X je X.XX (X и Х.ХХ представљају конкретне вредности)Kvadrat broja X je X.XXKub broja X je X.XX

 program zadatak8;

uses wincrt;

var a : integer;begin write ('unesi jedan broj : '); readln ( a); if a>0 then begin writeln ( ' koren broja ' , a , ' je ' , sqrt (a) : 0 : 2); writeln; writeln ( ' kvadrat broja ' , a , ' je ' , sqr (a) ); writeln; writeln ( ' kub broja ' , a , ' je ' , sqr (a)*a) end else begin writeln ( ' apsolutna vrednost broja ' , a , ' je ' , -a); writeln; writeln ( ' reciprocna vrednost broja ' , a , ' je ' , 1/a : 0 : 2); writeln; writeln ( ' kvadrat broja ' , a ,' je ' , sqr(a)) end; writeln ( '———————————' ); writeln ( ' pritisnite enter za nastavak…' ); readlnend.

9. Израчунати број дана до краја године ако се зна редни број данашњег дана и да ли је године преступна (1- није, 2- јесте). Поруку исписати у облику Do kraja godine preostalo je х dana. (уместо х ће писати број дана).

program deveti; uses wincrt ;var dan, prestupna : integer;begin write ('unesi redni broj dana : ' ); readln ( dan); writeln ('da li je godina prestupna : 1-ne , 2-da' ); readln ( prestupna); if prestupna = 1 then writeln ( ' do kraja godine preostalo je jos ' , 365 - dan , ' dana.' ); if prestupna = 2 then writeln ( ' do kraja godine preostalo je jos ' , 366 - dan , ' dana.' ); writeln ( ' pritisnite enter za nastavak' ); readlnend .

Page 22: 1 · Web viewZbirka zadataka - Pascal Ra Ša Linijski programi Графички приказ алгоритма (блок или алгоритамска шема). Након почетка

10. Napisati program koji izracunava kolicnik dva ela broja a i b ako je b<0 a ostatak u suprotnom

program deseti;uses wincrt;var a,b,c : integer;

begin write('Unesite dva cela broja a i b --> '); readln(a,b); if b<0 then begin c:= a div b ; writeln('kolicnik je :',c) end else begin c:=a mod b; writeln('ostatak je : ',c) end; readln end.

11.Napisati program za ispis dana u sedmici. Ispis na ekranu posle izvođenja programa

0: ponedjeljak

1: utorak

2: sreda

3: cetvrtak

4: petak

PROGRAM p08112081;{Dani_u_sedmici}USES WinCrt;TYPE dani = (pon, uto, sri, cet, pet);VAR i: dani; k: INTEGER;BEGIN FOR i := pon TO pet DO BEGIN WRITE(ORD(i),': '); CASE i OF pon : WRITELN ('ponedjeljak'); uto : WRITELN ('utorak'); sri : WRITELN ('sreda'); cet : WRITELN ('cetvrtak'); pet : WRITELN ('petak'); END; { case } END; READLN;END.

Page 23: 1 · Web viewZbirka zadataka - Pascal Ra Ša Linijski programi Графички приказ алгоритма (блок или алгоритамска шема). Након почетка

12. Izdvojiti cifre trocifrenog broja. Sabrati izdvojene cifre.

PROGRAM P06411106;USES WinCRT;VAR x, y, z, broj, t, s: INTEGER;BEGIN WRITE('Trocifren broj '); READLN(broj); z := broj MOD 10; {cifra jedinica} t := broj DIV 10; {prve dvije cifre} y := t MOD 10; {cifra desetica} x := t DIV 10; {cifra stotica} s := x + y + z; {suma cifra} WRITELN('broj=', broj, ' cifra stotica=', x, ' cifra desetica=', y, ' cifra jedinica=', z, ' Suma cifra=', s);END.

13. Napisati program za ispis sume reciprocnih vrijednosti prvih n prirodnih brojeva (harmonijski niz: 1 + 1/2  + 1/3 +  ... + 1/n)

.PROGRAM p08112007;USES WinCrt;VAR i, n : INTEGER; s : REAL;BEGIN WRITE('Do broj '); READLN( n ); s := 0; FOR i := 1 TO n DO s := s + 1/i; WRITELN('n = ', n, ' suma ', s );END.

14. Izračunati sumu prirodnih brojeva u intervalu od k do n čija je cifra jedinica 8.PROGRAM p08112014;USES WinCrt;VAR i, k, n: Integer; s: Real;BEGIN Writeln('Suma prirodnih brojeva sa cifrom jedinica 8'); WRITE('Od broja '); READLN( k ); WRITE('Do broja '); READLN( n ); s := 0; FOR i := k TO n DO BEGIN IF i MOD 10 = 8 THEN s := s + i; END; Writeln('Suma je ', s);END.

Page 24: 1 · Web viewZbirka zadataka - Pascal Ra Ša Linijski programi Графички приказ алгоритма (блок или алгоритамска шема). Након почетка

15.  Izračunati sumu prirodnih brojeva u intervalu od 1 do n koji su deljivi sa 7 i sa 3.

PROGRAM p08112012;USES WinCrt;VAR i, n: Integer; s: Real;BEGIN Writeln('Suma prirodnih brojeva djeljivih sa 7'); Write('Do broj '); Readln(n); s := 0; FOR i := 1 TO n DO BEGIN IF ((i MOD 7 = 0) AND (i MOD 3 = 0;)) THEN s := s + i; END; Writeln('Suma je ', s);END.