Set 1 - structuri de control

1. Se citeşte un număr natural n. Să se determine cifra maximă din număr, folosind un subprogram.     Exemplu:  Dacă n=7934 , atunci cifra maximă este 9.

var n:longint;

function maxim(n:longint):byte;

var u:byte;max:shortint;

begin

max:=-1;

repeat

      u:=n mod 10;

      n:=n div 10;

      if max<u then max:=u;

      until n=0;

maxim:=max;

end;

begin

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

writeln('cifra max=',maxim(n));

end.

 

2. 1.111.Se introduce de la tastatură un număr întreg n. Se cere să se calculeze şi să se afişeze:

        a)  media aritmetică a cifrelor pare;

        b)  produsul cifrelor impare

var n:longint;

procedure medie(n:longint);

var u,c:byte;s:real;

begin

s:=0; c:=0;

while(n<>0) do begin

               u:=n mod 10;

               n:=n div 10;

               if u mod 2=0 then begin

                                 s:=s+u;

                                 c:=c+1;

                                 end;

               end;

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

end;

procedure produs(n:longint);

var p:integer;u:byte;

begin

p:=1;

while n<>0 do begin

              u:=n mod 10;

              n:=n div 10;

              if u mod 2=1 then p:=p*u;

              end;

writeln('produsul cifrelor impare=',p);

end;

begin

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

medie(n);

produs(n);

end.

 

3. Se citeşte de la tastatură un număr întreg mai mare sau egal cu 1000. Se cere să se stabilească dacă numărul dat este palindrom sau nu, folosind un subprogram .

var n:longint;

procedure palindrom;

var u:byte;m,n1:longint;

begin

n1:=n;

m:=0;

repeat

 u:=n mod 10;

 n:=n div 10;

 m:=m*10+u;

until n=0;

if n1=m then write('palindrom')

        else write('nu e palindrom');

end;

begin

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

if n<1000 then begin write('n trebuie sa fie >=1000');halt;end;

palindrom;

end.

 

4. Se citeşte de la tastatură un număr întreg. Se cere să se stabilească dacă este perfect sau nu, folosind un subprogram. Un număr este perfect dacă este egal cu suma divizorilor săi proprii plus 1.

var n:longint;

function perfect(n:longint):boolean;

var s:longint;i:longint;

begin

s:=0;

for i:=1 to n div 2 do

    if n mod i=0 then s:=s+i;

if n=s then perfect:=true

       else perfect:=false;

end;

begin

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

if perfect(n) then writeln('numar perfect')

   else writeln('numarul nu e perfect');

end.

 

5. Se citeşte de la tastatură un număr întreg . Se cere să se calculeze şi să se afişeze suma divizorilor proprii precum şi numărul acestora.

var n:longint;

procedure divizori;

var i,s:longint;c:byte;

begin

s:=0;c:=0;

for i:=2 to n div 2 do

  if(n mod i=0) then begin

                     writeln(i);

                     s:=s+i;

                     c:=c+1;

                     end;

writeln('numar divizori=',c);

writeln('suma divizori=',s);

end;

begin

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

divizori;

end.

 

6. Se citeşte de la tastatură un număr natural nenul n. Se cere să se calculeze şi să se afişeze următoarea sumă :         1+1*2+1*2*3+1*2*3*4+...+1*2*...n .

var n,s,p:longint;

procedure calcul;

var i:byte;

begin

s:=0;p:=1;

for i:=1 to n do

begin

     p:=p*i;

     s:=s+p;

end;

writeln(s);

end;

begin

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

calcul;

end.

 

7. Se citeşte de la tastatură un număr natural nenul n. Se cere să se calculeze şi să se afişeze următoarea sumă :  1+1/(1*2)+1/(1*2*3)+1/(1*2*3*4)+...+1/(1*2*...n) .

var n:longint;s,p:real;

procedure calcul;

var i:byte;

begin

s:=0;p:=1;

for i:=1 to n do

begin

     p:=p*i;

     s:=s+1/p;

end;

writeln(s:7:2);

end;

begin

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

calcul;

end. 

counter for wordpress

View My Stats