Proceduri

1. Se citesc de la tastatură elemente până la introducerea caracterului *. Să se afişeze in ordine inversă caracterele citite, fără a se afişa asteriscul.

procedure cuvant;

var c:char;

begin

read(c);

if c<>'*' then begin cuvant;write(c);end;

end;

begin

cuvant;

end.

 

Modificati programul astfel încât să se afișeze și *.

procedure cuvant;

var c:char;

begin

read(c);

if c<>'*' then cuvant;

write(c);

end;

begin

cuvant;

end.

 

2. Se citeşte de la tastatură un număr n. Să se afişeze numerele de la 1..n şi numerele de la n..1 folosind subprograme recursive. Atenţie! Fiecare cerinţă se poate realiza prin 2 metode. Noi vom prezenta câte o metodă pentru fiecare cerinţă.

var n:byte;

procedure afisare(i:byte);

begin

write(i,' ');

if(i<n)then afisare(i+1);

end;

procedure afisareinv(i:byte);

begin

if(i<n) then afisareinv(i+1);

write(i,' ');

end;

begin

write('n=');readln(n);

afisare(1);

writeln;

afisareinv(1);

end.

 

3. Se citesc de la tastatură cele n elemente intregi ale unui vector. Să se afişeze elementele vectorului în ordinea citirii şi în ordinea inversă a citirii.

var n:byte;

a:array[1..100]of integer;

procedure afisare(i:byte);

begin

write(a[i],' ');

if(i<n)then afisare(i+1);

end;

procedure afisareinv(i:byte);

begin

if(i<n) then afisareinv(i+1);

write(a[i],' ');

end;

procedure citire(i:integer);

begin

write('a[',i,']=');readln(a[i]);

if(i<n)then citire(i+1);

end;

begin

write('n=');readln(n);

citire(1);

afisare(1);

writeln;

afisareinv(1);

end.

 

4. Se citesc de la tastatură cele n elemente întregi ale unui vector. Să se afişeze valoarea minimă din şir.

var n:byte;

a:array[1..100]of integer;m:integer;

procedure min(i:byte; var m:integer);

begin

if(m>a[i])then m:=a[i];

if(i<n)then min(i+1,m);

end;

procedure afisare(i:byte);

begin

write(a[i],' ');

if(i<n)then afisare(i+1);

end;

procedure citire(i:integer);

begin

write('a[',i,']=');readln(a[i]);

if(i<n)then citire(i+1);

end;

begin

write('n=');readln(n);

citire(1);

afisare(1);

writeln;

m:=a[1];

min(1,m);

writeln('min=',m);

end.

 

5. Se citesc de la tastatură n numere întregi. Afişaţi numărul de numere cu valoare minimă şi poziţiile unde se găsesc acestea în şir.

var n:byte;

a:array[1..100]of integer;m:integer;

procedure min(i:byte; var m:integer);

begin

if(m>a[i])then m:=a[i];

if(i<n)then min(i+1,m);

end;

procedure afisare(i:byte);

begin

write(a[i],' ');

if(i<n)then afisare(i+1);

end;

procedure citire(i:integer);

begin

write('a[',i,']=');readln(a[i]);

if(i<n)then citire(i+1);

end;

function nrmin(n:byte;m:integer):byte;

begin

if(n=0)then nrmin:=0

            else if(m=a[n])then nrmin:=nrmin(n-1,m)+1

                 else nrmin:=nrmin(n-1,m);

end;

procedure pozmin(i:byte;m:integer);

begin

if(a[i]=m)then write(i,' ');

if(i<n)then pozmin(i+1,m);

end;

begin

write('n=');readln(n);

citire(1);

afisare(1);

writeln;

m:=a[1];

min(1,m);

writeln('min=',m);

writeln('nr de aparitii ale min=',nrmin(n,m));

writeln('poz pe care apare min');

pozmin(1,m);

end.

 

6. Se citesc de la tastatură n numere. Să se afişeze media aritmetică a elementelor pare din şir.

var n:byte;

a:array[1..100]of integer;s:longint;c:byte;

procedure afisare(i:byte);

begin

write(a[i],' ');

if(i<n)then afisare(i+1);

end;

procedure citire(i:integer);

begin

write('a[',i,']=');readln(a[i]);

if(i<n)then citire(i+1);

end;

procedure calcul(i:integer;var s:longint;var c:byte);

begin

if(a[i]mod 2=0) then begin s:=s+a[i];c:=c+1;end;

if(i<n)then calcul(i+1,s,c);

end;

begin

write('n=');readln(n);

citire(1);

afisare(1);

writeln;

s:=0;c:=0;

calcul(1,s,c);

writeln('media elementelor pare=',s/c:5:2);

end.

 

7. Se citesc de la tastatură n numere. Să se afişeze valoarea maximă din şir şi poziţiile pe care se găsesşte aceasta în şir.

var n:byte;

a:array[1..100]of integer;m:integer;

procedure max(i:byte; var m:integer);

begin

if(m<a[i])then m:=a[i];

if(i<n)then max(i+1,m);

end;

procedure afisare(i:byte);

begin

write(a[i],' ');

if(i<n)then afisare(i+1);

end;

procedure citire(i:integer);

begin

write('a[',i,']=');readln(a[i]);

if(i<n)then citire(i+1);

end;

procedure pozmax(i:byte;m:integer);

begin

if(a[i]=m)then write(i,' ');

if(i<n)then pozmax(i+1,m);

end;

begin

write('n=');readln(n);

citire(1);

afisare(1);

writeln;

m:=a[1];

max(1,m);

writeln('max=',m);

writeln('poz pe care apare max');

pozmax(1,m);

end.

 

8. Se citesc de la tastatură n numere. Câte numere prime se găsesc în şir?

var n:byte;

a:array[1..100]of integer;s:longint;c:byte;p:boolean;

procedure afisare(i:byte);

begin

write(a[i],' ');

if(i<n)then afisare(i+1);

end;

procedure citire(i:byte);

begin

write('a[',i,']=');readln(a[i]);

if(i<n)then citire(i+1);

end;

procedure prim(i:byte;x:integer;var p:boolean);

begin

if(x<2) then p:=false

else

 if(i<=round(x/2)) then begin

                   if (x mod i=0) then p:=false;

                   prim(i+1,x,p);

                   end;

end;

procedure calcul(i:byte;var c:byte);

begin

p:=true;

prim(2,a[i],p);

if(p=true)then c:=c+1;

if(i<n)then calcul(i+1,c);

end;

begin

write('n=');readln(n);

citire(1);

afisare(1);

writeln;

c:=0;

calcul(1,c);

writeln('nr de nr prime=',c);

end. 

counter for wordpress

View My Stats