Stranice: [1]   Idi dole
Štampaj
Autor Tema: Zadaci i rešenja (Pascal)  (Pročitano 5040 puta)
Black_Butterfly
NM Upload Tim
Opusten clan
******

Ugled: 8
Van mreže Van mreže

Poruke: 378


I Love My Computer


« poslato: Septembar 05, 2009, 02:11:31 am »

Evo nekoliko zadataka iz programiranja za Pascal koje sam ja radila, pripremajuci se za odgovaranje (imam samo neke prekucane u komp.)
Nadam se da ce ovo nekome da pomogne. Sto se tice tezine zadataka ima onih laksih i malo tezih tako da odgovara onima koji tek pocinju da upoznaju "tajne" programiranja BigSmile

Pocecu sa zadacima iz Stringa, a inace bice i Nizovi, Matrice, Funkcije i procedure:

String

- Uneti stringove A,B,C (dužina stringova max. 15) a zatim prikazati recenicu koja se dobija spajanjem  ova 3 stringa.
Kod:
program spajanjestr;
uses crt;
var
a,b,c:string;
begin
clrscr;
writeln('Unesite 3 stringa jedan ispod drugog');
readln(a);
readln(b);
readln(c);
write(a,' ',b,' ',c);
end.


- Napisati program koji ce izbrojati koliko ima blanko znakova u unetoj rečenici.
Kod:
program blanco;
var
b,c,i,j:integer;
recenica:string;
begin
repeat
writeln('Unesite recenicu');
read(recenica);
b:=0;
for i:=1 to length(recenica) do
    if recenica[i]=' 'then b:=b+1;
writeln('Blanko karakter je koriscen  ',b,'  puta.');
end;
  until keypressed;
end.
 
 


- Unijeti rečenicu, a zatim tu rečenicu prikazati u obrnutom redosledu.
Kod:
program obrnutistring;
var
a:string;
n,i:integer;
begin
  repeat
writeln('Unesite recenicu');
read (a);
n:=length(a);
for i:=n downto 1 do
write (a[i]);

  until keypressed;
end.




- Uneti rečenicu, a zatim odrediti da li je broj otvorenih zagrada jednak broju zatvorenih zagrada. Prikazati odgovarajuću  poruku.
Kod:
program zagrade;
uses crt;
var
a:string;
i,n,otv,zatv:integer;
begin
clrscr;
writeln ('Unesite recenicu sa zagradama');
read (a);
otv:=0;
zatv:=0;
for i:=1 to length(a) do
case a[i] of
'(':otv:=otv+1;
')':zatv:=zatv+1;
end;
if otv=zatv then write('Jeste')
else write ('Nije');
end.



- Napisati program koji će izbrojati koliko ima znakova interpunkcije (.,?!:;), specijalnih znakova (/-&[]()_+-), a koliko slova/cifara u unetoj rečenici.  
Kod:
program znakovi;
uses crt;
var
a,b,c,i,j:integer;
recenica:string;
begin
clrscr;
writeln('Unesite recenicu');
read(recenica);
a:=0;
b:=0;
c:=0;
for i:=1 to length(recenica) do
         case recenica[i] of
         'a','b','c','q','z','s','w','x','e','d','v','f','r','t','g','n','h','y','u','j','m','i','k','o','l','p': a:=a+1;
         '.',',',':',';','!','?','"': b:=b+1;
         '0','1','2','3','4','5','6','7','8','9': a:=a+1;
         '(',')','[',']','\','/','+','-','*','<','>': c:=c+1;
         end;
writeln('Broj slova i cifara u recenici je:  ',a);
writeln('Broj znakova interpunkcije u recenici je:  ',b);
writeln('Broj specijalnih znakova u recenici je:  ',c);

end.



- Napisati program koji određuje nejkraću riječ u rečenici, ispisuje tu riječ i ispisuje koliko slova ima ta riječ.  
Kod:
program zacetiri;
uses crt;
var
a,b,c,minp,maxp,poc,kraj,pocduzina,duzina,n,i,j:integer;
minrec,recenica:string;
begin
clrscr;
read(recenica);
minp:=0;
pocduzina:=length(recenica);
maxp:=0;
i:=1;
while i<= length(recenica) do begin
 if recenica[i]=' ' then i:=i+1
  else begin
    duzina:=0;
     minp:=i;
      repeat i:=i+1;duzina:=duzina+1; until recenica[i]=' ';
       maxp:=i-1;
        if pocduzina>duzina then begin  poc:=minp;  kraj:=maxp; pocduzina:=duzina;
i:=maxp+1;
end;
end;
end;
write ('najkraca rijec je: ');
for i:=poc to kraj  do write (recenica[i]);
writeln;
writeln ('Ova rijec ima ',pocduzina,' slova');
end.
 


- Napisati program kojim se unose podaci za n takmičara (ime i prezime, bodovi), a zatim se vrši rangiranje prema osvojenim bodovima. Prikazati rang listu.                                                                                        
Kod:
program zapet;
type maxstring=string[100];
     nizstring=array[1..100] of maxstring;
var imeprezime,ipb:nizstring;
    i,n,bodovi,rez,ef,s,j:integer;
    poeni,rb:maxstring;
procedure razmeni(var x,y:maxstring);
var
p:maxstring;
begin
p:=x;
x:=y;
y:=p;
end;
procedure sort(n:integer;var a:nizstring);
var i,j,br1,br2,ef:integer;
begin
for i:=1 to n-1 do
for j:=i+1 to n do begin
val(copy(a[i],1,3),br1,ef);
val(copy(a[j],1,3),br2,ef);
if br1<br2 then razmeni(a[i],a[j]);
end;
end;
begin
writeln('Unesite broj ucenika ');
readln(n);
writeln('Unesite Ime i Prezime [Enter], zatim broj bodova [Enter] ');
for i:=1 to n do begin
readln(imeprezime[i]);
readln(bodovi);
str(bodovi+100,poeni);
ipb[i]:=concat(poeni,' ',imeprezime[i]);
end;
sort(n,ipb);
writeln('Br. Ime i Prezime          Bodovi');
Writeln('_________________________________');
for i:=1 to n do begin
val(copy(ipb[i],1,3),rez,ef);
delete(ipb[i],1,3);
s:=0;
for j:=1 to length(ipb[i]) do
s:=s+1;
str(i,rb);
if i<10 then rb:=concat(rb,'. ')
else rb:=concat(rb,'.');
writeln(rb,ipb[i],rez-100:30-s);
end;
end.



- Napisati program koji ce sva mala slova u stringu x zamijeniti velikim i obrnuto. Prikazati izmjenjeni string.                                                  
Kod:
program velmal;
uses crt;
var
x:string;
i:integer;
ch:char;
begin
clrscr;
readln(x);
for i:=1 to length (x) do
begin
ch:=x[i];
if (ord (ch)>=97)and(ord(ch)<=122) then
x[i]:=chr(ord(ch)-32);
if (ord(ch)>=65)and (ord(ch)<=90)then
x[i]:=char(ord(ch)+32);
end;
writeln(x);
repeat until keypressed;
end.
 


- Napisati program kojim se unose dva stringa x i y a zatim se utvrdjuje da li string x sadrzi string y kao podskup. Odrediti od koje pozicije u stringu x pocinje string y. Ne koristiti ugradjenu funkciju.  
Kod:
program podstring;
uses crt;
var x,y:string;
    nx,ny,poz,i,j:integer;
begin
 clrscr;
 write('string x:');
 readln(x);
 write('string y:');
 readln(y);
 writeln('------------------------');
 nx:=length(x);
 ny:=length(y);
 i:=1;
 poz:=0;
 while i <= nx-ny+1 do begin do
   begin
     j:=1;
     poz:=i;
     while j <= ny do
           if x[i]=y[j] then begin
                             j:=j+1;
                             i:=i+1;
                             end
                        else begin
                        j:=ny+1;
                        poz:=0;
                        end;
           if poz>0 then begin
                         i:=nx;
                         writeln('nadjen je podstring na poziciji','  'poz);
                         end
           else
           i:=i+1;
     end;
     if poz=0 then writeln('nije nadjeno poklapanje');
     repeat until keypressed
     end.


- Napisati program kojim se određuje  da li u  unetoj rečenici ima više samoglasnika  ili suglasnika. Napisati odgovarajuću poruku uz prikazivanje broja samoglasnika i broja suglasnika.    
Kod:
program samsug;
uses crt;
var
n,i,s,sam,sug:integer;
r:string;
begin
clrscr;
read (r);
n:=length(r);
sam:=0;
sug:=0;
for  i:=1 to n do
case r[i] of
'a','e','i','o','u':sam:=sam+1;
'q','w','r','t','y','p','s','d','f','g','h','j',
'k','l','z','x','c','v','b','n','m':sug:=sug+1;
end;
if sam>sug then writeln ('Ima vise samoglasnika')
else writeln ('Ima vise suglasnika');
writeln('Broj samoglasnika je ',sam);
writeln('Broj suglasnika je   ',sug);
end.



- Napisati program koji iz unete rečenice redom vadi riječi i popunjava niz X definisan kao niz stringova. Nakon tog aprikazati ve izvađene riječi jednu ispod druge.  
Kod:
program rastavljanje;
uses crt;
var
i,a,p,k:integer;
r:string;
begin
clrscr;
writeln ('..:: Unesite recenicu::.. ');
readln (r);
a:=length(r);
i:=1;
while i<=a do
case r[i] of
' ',',','.','!','?':i:=i+1;
else  begin
      writeln;
      p:=i;
      repeat if i<=a then i:=i+1
                     else r[i]:='.';
      until r[i] in [' ',',','.','!','?'];
      k:=(i-1);
      for i:=p to k do write (r[i]);
      writeln;
      i:=(k+1);
      end
end;
readln;
end.


- Napisati program kojim se učitava rečenica i određuje:
a)   Koliko ima riječi u rečenici
b)   Koliko puta se pojavljuje koji samoglasnik
c)   Koliko ima suglasnika
d)   Koliko je specijalnih znakova  
       
Kod:
program brojacznakova;
uses crt;
var
simb:char;
bra,bre,bri,bro,bru,rijec,sugl,spznak,brsug,brspeczn,brrec,brrec2,s:integer;
begin
clrscr;
bra:=0;bre:=0;bri:=0;bro:=0;bru:=0;brsug:=0;brspeczn:=0;brrec:=0;

read (simb);

while simb<>'.' do
      begin

      case simb of
      'a':bra:=bra+1;
      'e':bre:=bre+1;
      'i':bri:=bri+1;
      'o':bro:=bro+1;
      'u':bru:=bru+1;
      ':','!','?',',',';','_','&','%','"':brspeczn:=brspeczn+1;
      'b','c','d','f','g','h','j','l','k','m','n','p','q','r','s','t','v','w','x','y','z':brsug:=brsug+1;
      ' ':begin repeat read (simb)  until simb <> ' ';
                                 brrec:=brrec+1;
                                 case simb of
                                 'a':bra:=bra+1;
                                 'e':bre:=bre+1;
                                 'i':bri:=bri+1;
                                 'o':bro:=bro+1;
                                 'u':bru:=bru+1;
                                 ':','!','?',',',';','_','&','%','"':brspeczn:=brspeczn+1;
                                 'b','c','d','f','g','h','j','l','k','m','n','p','q','r','s','t','v','w','x','y','z':brsug:=brsug+1;

                                end;
                              end

      end;
      read (simb);
      end;
      writeln ('                                         ');
      writeln ('a=',bra, ' e=',bre, ' i=',bri, ' o=',bro,' u=',bru);
      writeln ('Broj suglasnika je ',brsug);
      writeln ('Broj specijalnih znakova je ',brspeczn+1);
      writeln ('Broj rijeci je ',brrec+1);
end.



- Napisati program  kojim se pronalazi i stampa najduža riječ u rečenici. Rečenicu unijeti kao string.  
Kod:
program najduzarec ;
var p,k,i,d,max,n:integer; r:string;
begin
writeln(’Unesite recenicu’);
readln (r);
n:=length(r);
max:=0;
d:=0;
for i:=1 to n do
if r[i]in [’ ’,’.’,’,’] then begin
if d>max then begin
p:=i-d; k:=i-1; max:=d;
end
else g:=d+1;
if d=max then begin
p:=i-d;
k:=i-1;
end
else d:=d+1;
for i:=p to k do write (r[i]);
repeat until keypressed;
end.
                                                                                         
« Poslednja izmena: Septembar 05, 2009, 02:14:07 am Black_Butterfly » Sačuvana

His genius... UNDENIABLE - His evil... UNSPEAKABLE - His name... UNFORGETTABLE
Never Forget Who He Is!!!
Black_Butterfly
NM Upload Tim
Opusten clan
******

Ugled: 8
Van mreže Van mreže

Poruke: 378


I Love My Computer


« Odgovor #1 poslato: Septembar 05, 2009, 02:42:13 am »

Trenutno nemam tekst zadataka ali ubaciću kasnije.

Funkcije i procedure

- Zadatak 1
Kod:
program funkcije1;
uses crt;
var n,m,a,b:integer;
S:real;
function step (x,n:integer):
integer;
var y,i:integer;
begin
repeat
clrscr;
y:=1;
for i:=1 to n do
y:=y*x;
step:=y;
   until keypressed;
end;
begin
read (n,m,a,b);
S:=step (n,m)/step(a,b)+step (b,a);
write (S);

end.


- Zadatak 2
Kod:
program funkcije2;
var k,n:integer;
S:real;
function fakt (x:integer):integer;
var y,i:integer;
begin
y:=1;
for i:=1 to x do
y:=y*i;
fakt:=y;
end;
begin
read (k,n);
S:=fakt (k) + fakt (n) /fakt(k-n);
write (S);
end.


- Zadatak 3
Kod:
program procedura1;
var x,y:integer;
procedure suma (m,n:integer;var p,q:integer);
var i:integer;
begin
P:=0;
q:=0;
for i:=m to n do
begin
P:=P+i*i;
q:=q+i*i*i;
end;
end;
begin
suma (2,5,x,y);
write (x,y);
end.


- Zadatak 4
Kod:
program procedure2;
var
a,b,c,d:integer;
procedure raz(var x,y:integer);
var T:integer;
begin
T:=x;
x:=y;
y:=T;
end;
begin
read(a,b,c,d);
if a<=b then raz (a,b);
if b>=c then raz (b,c);
if c<=d then raz (c,d);
write (a,b,c,d);
end.


- Zadatak 5
Kod:
program procedure3;
var x,y,z:integer;
procedure raz (var a,b:integer);
var t:integer;
begin
t:=a;
a:=b;
b:=t;
end;
begin
read (x,y,z);
if x>y then raz (x,y);
if x>z then raz (x,z);
if y>z then raz (y,z);
write (x,y,z);
end.
Sačuvana

His genius... UNDENIABLE - His evil... UNSPEAKABLE - His name... UNFORGETTABLE
Never Forget Who He Is!!!
Black_Butterfly
NM Upload Tim
Opusten clan
******

Ugled: 8
Van mreže Van mreže

Poruke: 378


I Love My Computer


« Odgovor #2 poslato: Septembar 05, 2009, 02:47:38 am »

Nizovi

- Za dati niz sabrati sve negativne elemente.
Kod:
program negativni;
var i,n:integer;
a:array [1..1000] of real;
S:real;
begin
read (n);
S:=0
for i:=1 to n do
read (a[i]);
for i:=1 to n do
if a[i]<0 then
S:=S+a[i];
write(S);
end.


- Izbrojati koliko ima elemenata niza koji su djeljivi sa 7.

Kod:
program djeljivi;
var
a : array[1..1000] of integer;
n,i,s :integer;
begin
read(n);
s:=0;
for i := 1 to n do
read(a[i]);
for i := 1 to n do
 if a[i] mod 7 = 0 then s:=s+1;
write(s);
end.


- Sabrati sve elemente niza koji su  na parnim indexima.
Kod:
program sabrati;
var a: array[1..1000] of integer;
s,i,n:integer;
begin
read(n);
s:=0;
for i:=1 to n do
read(a[i]);
for i:=1 to n do
if i mod 2= 0 then s:=s+a[i];
write(s);
end.


- Pomnoziti neparne elemente niza.
Kod:
program pomnoziti;
var
a:array[1..1000] of integer;
n,i,s,k : integer;
begin
read(n);
s:=1;
for i:=1 to n do read(a[i]);
for i:=1 to n do
if a[i] mod 2 = 1 then
begin
s:=s*a[i];
k:=1; end;
if k=1 then write(s)
else write('Nema neparnih clanova niza!');
end.


- Kojim se izracunava suma pozitivnih clanova elemenata niza A.
Kod:
program sumapozitiv;
var i,n :integer;
a:array [1..100] of real;
S:real;
begin
read (n);
for i:=1 to n do
read (a[i]);
S:=0;
for i:=1 to n do
if (a[i])>0 then
S:=S+a[i];
write (S);
end.


- Najveci element niza naci?
Kod:
program najveciel;
var n,i,P:integer;
a:array [1..100] of integer;
begin
read (n);
for i:=1 to n do
read (a[i]);
P:=a[1];
for i:=2 to n do
if a[i]>P then
P:=a[i];
write (P);
end.


- Koji provjerava koliko ima pozitivnih clanova niza na neparnim index.
Kod:
program negativniindex;
var n,i:integer;
a:array [1..100] of real;
P:real;
begin
read (n);
for i:=1 to n do
read (a[i]);
P:=0;
i:=1;
while i<=n do
begin
if (a[i])>0 then
P:=P+1;
i:=i+2;
end;
write(P);
end.


- Odstampati sve elem. koji su veci od srednje vrijednosti niza.
Kod:
program vecisrednje;
var a:array[1..1000] of integer;
 n,i: integer;
 s,d: real;
begin
read(n);
s:=0;
for i:=1 to n do
read(a[i]);
for i:=1 to n do
s:=s+a[i];
d:=s/n;
for i:= 1 to n do
if a[i]> d then write(a[i],' ');
end.


- Za dati niz odrediti indeks najmanjeg clana.
Kod:
program najmanji;
var a:array[1..1000] of integer;
    s,i,n: integer;
begin
read(n);
s:=1;
for i:=1 to n do read(a[i]);
for i:=2 to n do if a[i]>a[s] then s:=i;
write(s);
end.
« Poslednja izmena: Septembar 05, 2009, 02:48:10 am Black_Butterfly » Sačuvana

His genius... UNDENIABLE - His evil... UNSPEAKABLE - His name... UNFORGETTABLE
Never Forget Who He Is!!!
Black_Butterfly
NM Upload Tim
Opusten clan
******

Ugled: 8
Van mreže Van mreže

Poruke: 378


I Love My Computer


« Odgovor #3 poslato: Septembar 05, 2009, 02:52:14 am »

Matrice


- Zadatak 1
Kod:
program ispodglavne;
var n,i,P,j:integer;
a:array [1..100,1..100] of integer;
begin
read (n);
P:=0;
for i:=1 to n do
for j:=1 to n do
read (a[i,j]);
for i:=1 to n do
for j:=1 to n do
if i>j then
if a[i,j] mod 4=0 then
P:=P+1;
writeln (P);
end.


- Zadatak 2
Kod:
program iznadsporedne;
var n,i,j,P,m,k:integer;
a:array [1..100,1..100] of integer;
begin
read(n);
for i:=1 to n do
for j:=1 to n do
read (a[i,j]);
P:=a[1,1];
m:=1;
k:=1;
for i:=1 to n do
for j:=1 to n do
if (i+j<=n) then
begin
P:=a[i,j];
m:=i;
k:=j;
end;
writeln (m,k);
end.


- Zadatak 3
Kod:
program iznadglavne;
var n,i,j,S: integer;
a:array [1..100,1..100] of integer;
begin
read (n);
S:=1;
for i:=1 to n do
for j:=1 to n do
read (a[j,i]);
for i:=1 to n do
for j:=1 to n do
if i<j then S:=S*a[i,j];
write (S);
end.


- Zadatak 4

Kod:
program naglavnoj;
var i,j,n,S :integer;
a:array [1..100,1..100] of integer;
begin
read (n);
S:=0;
for i:=1 to n do
for j:=1 to n do
read (a[i,j]);
for i:=1 to n do
for j:=1 to n do
if i=j then S:=S+a[i,j];
write (S);
end.


- Zadatak 5
Kod:
program sporednadijagonala;
var n,i,j,P:integer;
a:array [1..100,1..100] of integer;
begin
read (n);
for i:=1 to n do
for j:=1 to n do
read (a[i,j]);
P:=a[1,n];
for i:=1 to n do
for j:=1 to n do
if (i+j=n+1) and (a[i,j]>P) then
P:=a[i,j];
writeln(P);
end.
Sačuvana

His genius... UNDENIABLE - His evil... UNSPEAKABLE - His name... UNFORGETTABLE
Never Forget Who He Is!!!
Black_Butterfly
NM Upload Tim
Opusten clan
******

Ugled: 8
Van mreže Van mreže

Poruke: 378


I Love My Computer


« Odgovor #4 poslato: Septembar 05, 2009, 02:56:53 am »

I evo na kraju jedan zanimljiv program BigSmile
Saznajte koji je dan bio kada ste se rodili. (primjer: 23.04.1992 - je cetvrtak)

Kod:
program dan;
uses crt;
var popravak, broj, d, m, g : integer;
    prestupna : boolean;

begin
repeat
     clrscr;
     writeln('dd mm gggg - unesite datum');
     readln(d, m, g);
     write(d:2,'.',m:2,'.',g:4,'.',' je ');
     prestupna := (g mod 4 = 0) and (g mod 100 <> 0) or (g mod 400 = 0);
     g := g mod 100 ;
     if g > 88 then g := g -28; {zbog maxint-a}
     broj := trunc(g * 365.25) + trunc(m * 30.56) + d;
     if m > 2 then popravak := 32
              else if prestupna  then popravak := 31
                                 else popravak := 30;
     broj := broj - popravak;
     case broj mod 7 of
        0 : writeln('nedelja');
        1 : writeln('ponedeljak');
        2 : writeln('utorak');
        3 : writeln('sreda');
        4 : writeln('cetvrtak');
        5 : writeln('petak');
        6 : writeln('subota')
     end; { zavrsetak case-a }
     readln;
     until keypressed;
end.
Sačuvana

His genius... UNDENIABLE - His evil... UNSPEAKABLE - His name... UNFORGETTABLE
Never Forget Who He Is!!!
King_LexXx
Opusten clan
******

Ugled: 1
Van mreže Van mreže

Poruke: 440



WWW
« Odgovor #5 poslato: Septembar 11, 2009, 11:36:16 am »

Zanimljivo hvala za owo prostudiracu,wec dugo planiram da pocnem da ucim Pascal!!!
Sačuvana

Stranice: [1]   Idi gore
Štampaj
Prebaci se na:  

Naša mreža: Bg-dizajn.com | AstaHost | Anonimus | My Exploit | Lovac Na Novac | RE.rs
Partneri: Net Centar | EE.RS portal | Maturski | Svet Igara