Probleme rezolvate

Pentru mai multe probleme vizitati si Exercitii in Pascal

 

1. Se citesc de la tastatura n elemente. Cate dintre ele fac parte din intervalul [x,y]? x si y se citesc de la tastatura.

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

n,i,c:byte;

x,y:integer;

begin

write('numarul de elemente n=');readln(n);

for i:=1 to n do begin

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

                 end;

write('x=');readln(x);

write('y=');readln(y);

{numaram numerele din [x,y]}

c:=0;

for i:=1 to n do

    if(a[i]>=x)and(a[i]<=y)then c:=c+1;

writeln('numarul de numere din [',x,',',y,']=',c);

end.

 

2. Se citesc de la tastatura n numere. Care sunt pozitiile din vector unde se gasesc elemente pare?

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

n,i:byte;

begin

write('numarul de elemente n=');readln(n);

for i:=1 to n do begin

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

                 end;

{parcurgem vectorul pentru a gasi pozitiile unde se gasesc elemente pare}

for i:=1 to n do

    if(a[i] mod 2=0) then write(i,' ');

end.

 

3. Se citesc n elemente reale. Care este suma elementelor aflate pe pozitii impare in vector?

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

n,i:byte;s:longint;

begin

write('numarul de elemente n=');readln(n);

for i:=1 to n do begin

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

                 end;

{gasim suma elementelor de pe pozitii pare}

s:=0;

for i:=1 to n do

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

writeln('s=',s);

end.

 

4. Se citesc numere reale pana la introducerea primului numar negativ care nu face parte din sir. Care este media elementelor din sir?

var a:array[1..100]of real;

n,i:byte;s:real;

begin

n:=0;

repeat

                 n:=n+1;

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

until a[n]<0;

n:=n-1;

{gasim suma elementelor pentru a putea calcula media}

s:=0;

for i:=1 to n do s:=s+a[i];

writeln('media=',s/n:5:2);

end.

 

5. Se citesc n numere reale. Sa se afisese perechile de cate 3 numere aflate in vector pe pozitii succesive  care indeplinesc proprietatea ca al 3 este media primelor 2.

var a:array[1..100]of real;

n,i:byte;

begin

write('numarul de elemente n=');readln(n);

for i:=1 to n do begin

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

                 end;

for i:=3 to n do if((a[i-1]+a[i-2])/2=a[i]) then

    writeln(a[i-2]:5:2,' ',a[i-1]:5:2,' ',a[i]:5:2);

end.

 

6. Se citesc caractere pana la introducerea caracterului ‘*’. Cate vocale s-au citit?

var a:array[1..100]of char;

n,i,c:byte;

begin

n:=0;

repeat

      n:=n+1;

      write('c=');readln(a[n]);

until a[n]='*';

{gasim numarul de vocale}

{transformam elementul in majuscula. Daca face parte din multimea vocalelor marim numarul de vocale gasite cu 1}

c:=0;

for i:=1 to n do

    if(upcase(a[i]) in ['A','E','I','O','U']) then c:=c+1;

writeln('nr vocale=',c);

end.

 

7. Se citesc de la tastatura n numere si un numar x. Pe ce pozitii se gaseste x in sirul de numere citit si de cate ori?

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

n,i,c:byte;x:integer;

begin

write('numarul de elemente n=');readln(n);

for i:=1 to n do begin

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

                 end;

write('x=');readln(x);

c:=0;{initializam numarul de aparitii a lui x cu 0}

{cautam elementul x in sir}

for i:=1 to n do

    if(x=a[i]) then begin

    write(i,' '); c:=c+1; end;

writeln;

writeln(x,' apare in sir de ',c,' ori');

writeln;

end.

 

8. Se citesc n numere natural. Pe ce pozitii se gasesc numerele prime?

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

n,i,c,j:byte;

begin

write('numarul de elemente n=');readln(n);

for i:=1 to n do begin

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

                 end;

for i:=1 to n do begin

    {numerele prime nu au divizori proprii}

    c:=0;{initializam numarul de divizori proprii}

    for j:=2 to a[i]div 2 do

        if a[i] mod j=0 then c:=c+1;

    if c=0 then write(i,' ');

    end;

end.

 

10. Se citesc de la tastatura numere pana la introducerea primului numar mai mic sau egal cu 0. Sa se afiseze suma cifrelor pentru fiecare numar.

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

n,i,s,j:byte;x:integer;

begin

n:=0;

repeat

      n:=n+1;

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

until a[n]<=0;

n:=n-1;{ultimul numar nu face parte din sir}

for i:=1 to n do begin

    {gasim suma cifrelor pentru numarul a[i]}

     x:=a[i];

     s:=0;

     while x<>0 do

     begin

     s:=s+x mod 10;

     x:=x div 10;

     end;

     writeln('suma cifrelor lui ',a[i],' este ',s);

    end;

end.

 

11. Se citesc de la tastatura n numere. Sa se verifice dace numerele s-au citit in ordine crescatoare.

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

n,i:byte;

crescator:boolean;

begin

write('numarul de elemente n=');readln(n);

for i:=1 to n do begin

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

                 end;

{presupunem ca numerele s-au citit in ordine crescatoare}

crescator:=true;

{cautam perechi de 2 numere care nu se gasesc in ordine crescatoare;

daca s-au gasit sirul nu are elementele in ordine crescatoare}

i:=1;

while(i<n)and(crescator) do

                          if(a[i]>a[i+1])then crescator:=false

                          else i:=i+1;

{daca sirul nu are elementele in ordine crescatoare inseamna ca nu s-a ajuns cu verificarea pana la sfarsitul sirului}

if(i<n) then writeln('sirul nu are elementele in ordine crescatoare')

        else writeln('sirul are elementele in ordine crescatoare');

end.

 

12. Sa se afiseze valoarea elementului maxim dintr-un sir de n numere citite de la tastatura si de cate ori apare in cele n numere citite.

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

n,i,c:byte;max:integer;

begin

write('numarul de elemente n=');readln(n);

for i:=1 to n do begin

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

                 end;

{initializam maximul cu primul element din sir}

max:=a[1];

{parcurgem sirul; de fiecare data cand gasim o valoare mai mare ca maximul gasit pana in acel moment reinitializam maximul}

for i:=2 to n do

    if max<a[i] then max:=a[i];

writeln('max=',max);

{contor pentru numarul de aparitii al maximului in sir}

c:=0;

for i:=1 to n do

    if a[i]=max then c:=c+1;

writeln('valoarea maxima apare in sir de ',c,' ori');

end. 

counter for wordpress

View My Stats