You are on page 1of 5

Probleme informatica

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.

Citete mai mult:
file:///C:/Users/Adrian%20Tufan/Desktop/Probleme%20rezolvate%20%20%20%20Informat
ica%20in%20liceu.htm
Creai propriul site gratuit: http://www.webnode.ro

You might also like