You are on page 1of 10

Dumitrache Florin Cls XI E

Probleme atestat informatica

1)Se citeste n numarul natural.Sa se verifice daca numarul este palindrom. program palindrom; var n,r,y:longint; begin write('n=');Readln(n); r:=0; y:=n; while y<>0 do begin r:=r*10+y mod 10; y:=y div 10;end; if n=r then write(n,'este simetric') else write(n,'nu este simetric'); end. 2)Se citeste n,numar natural.Sa se verifice daca numarul este perfect. program perfect; var n,i,s:longint; begin write('n=');Readln(n); s:=0; for i:=1 to n-1 do if n mod i=0 then s:=s+i; if n=s then write(n,'este perfect') else write(n,'nu este perfect'); end. 3)Se citeste n,numar natural.Sa se verifice daca numarul este prim si,in caz contrar,sa se afiseze divizorii acestuia. program prim; var n,i,s:longint; begin write('n=');Readln(n); s:=0; for i:=1 to n do if n mod i=0 then s:=s+1; if n=2 then write(n,'este prim') else begin write(n,'nu este perfect'); for i:=1 to n do if n mod i=0 then write(i,' ');end; end; end.

4)Sa se afiseze toate numerele prime mai mici decat o valoare citita de la tastatura.

program nr_mai_mici; var i,j,n,s:integer; begin write('n=');Readln(n); for j:=1 to n-1 do begin s:=0; for i:=1 to j do if j mod i=0 then s:=s+1; if s=2 then writeln(j,' '); end; end. 5)Se da un vector X cu n elemente.Sa se afiseze numarul valorilor prime. program prime; write('x[',i,']=');readln(x[i]);end; write('a=');Readln(a); write('b=');Readln(b); k:=0; for i:=1 to n do begin if((a>x[i]) and (x[i]>b)) then begin k:=k+1; y[k]:=x[i];end; writeln('elem sit pe int a,b sunt in nr de',n-k); writeln('elem din afara int sunt'); for i:=1 to k do write(y[i],' ');end. program divizor; type vec=array[1..50] of integer; var x:vec; n,i,k:integer; function cmmmdc(a,b:integer):integer; begin if a=0 then cmmdc:=b else if b=0 cmmmdc:=a else begin while a<>b do if a>b then a:=a-b else b:=b-a; cmmdc:=a;end; end; begin write('n=');Readln(n); for i:=1 to n do begin write('x[',i,']=');readln(x[i]);end; k:=x[1]; for i:=2 to n do k:=cmmdc(k,x[i]); writeln(k);end.

6)Se da un vector X cu n elemente. Sa se inlocuiasca fiecare element cu media aritmetica a celorlalte n-l elemente.

program m_a; type vec=array[1..50] of real; var x:vec; i,j,n:integer; s:real; begin write('n=');Readln(n); s:=0; for i:=1 to n do begin write('x[',i,']=');read(x[i]); s:=s+x[i];end; for i:=1 to n do begin x[i]:=(s-x[i])/(n-1); write(x[i]:5:2);end; end. 7)Se da un vector X cu n elemente.Sa se elimine elementele nule din vector. program elem_nule; type vec=array[1..50] of integer; var x,y:vec; i,k,n:integer; begin write('n=');Readln(n); for i:=1 to n do begin write('x[',i,']=');read(x[i]); end;k:=0; for i:=1 to n do if x[i]<>0 then begin k:=k+1; y[k]:=x[i];end; x:=y; for i:=1 to k do write(x[i],' '); end. 8)Se da un vector X cu n elemente.Sa se ordoneze descrescator elementele vectorului. program elem_descresc; type vec=array[1..50] of integer; var x:vec n,i,j,aux:integer; write('n=');Readln(n); for i:=1 to n do begin write('x[',i,']=');read(x[i]); end; for i:=1 to n-1 do for j:=i+1 to n do if x[i] <x[j] then begin aux:=x[i]; x[i]:=x[j]; x[j]:=aux;end; for i:=1 to n do write(x[i],' ');end.

9)Se da un vector X cu n elemente.Sa se ordoneze crescator elementele vectorului. program elem_cresc; type vec=array[1..50] of integer; var x:vec n,i,j,aux:integer; write('n=');Readln(n); for i:=1 to n do begin write('x[',i,']=');read(x[i]); end; for i:=1 to n-1 do for j:=i+1 to n do if x[i] >x[j] then begin aux:=x[i]; x[i]:=x[j]; x[j]:=aux;end; for i:=1 to n do write(x[i],' ');end. 10)Se da un vector X cu n elemente.Sa se genereze un alt vector Y car contine elementele pare din vectorul X. program elem_pare; type vec=array[1..50] of integer; var x,y:vec; i,k,n:integer; begin write('n=');Readln(n); for i:=1 to n do begin write('x[',i,']=');read(x[i]); end; k:=0; for i:=1 to n do if x[i] mod 2=0 then begin k:=k+1; y[k]:=x[i];end; x:=y; for i:=1 to k do write(x[i],' '); end. 11)Se da un vector X cu n elemente.Testati daca o valoare a,introdusa de la tastatura,se gaseste in vector.In caz afirmativ,precizati pozitiile pe care se afla. program valoare_vector; type vec=array[1..50] of integer; var x:vec; i,n,a,k:integer; write('n=');Readln(n); write('a=');Readln(a); k:=0; for i:=1 to n do begin write('x[',i,']=');readln(x[i]); if x[i]=a then

k:=k+1;end; if k=0 then writeln('Nu exista') else begin writeln('Exista'); for i:=1 to n do if x[i]=a then write(i,' ');end; end. 12)Se da un vector X cu n elemente.Sa se afiseze maximul valorilor negative. program max_neg; type vec=array[1..50] of integer; var x:vec; n,i,max:integer; begin write('n=');Readln(n); max:=0; for i:=1 to n do begin write('x[',i,']=');readln(x[i]); if x[i]<0 then max:=x[i];end; if max=0 then write('Nu este max negativ') else begin for i:=1 to n do if((x[i]<0) and (max<x[i])) then max:=x[i]; writeln('max neg',max);end; end. 13)Se da un vector X cu n elemente.Sa se numere elementele din intervalul [a,b] dat si a se construiasca un alt vector cu cele care nu apartin intervalului. program interval; type vec=array[1..50] of integer; var x,y:vec; n,i,k:integer; begin write('n=');Readln(n); for i:=1 to n do begin write('x[',i,']=');readln(x[i]);end; write('a=');Readln(a); write('b=');Readln(b); k:=0; for i:=1 to n do begin if((a>x[i]) and (x[i]>b)) then begin k:=k+1; y[k]:=x[i];end; writeln('elem sit pe int a,b sunt in nr de',n-k); writeln('elem din afara int sunt'); for i:=1 to k do write(y[i],' ');end.

14)Se da un vector X cu n elemente.Sa se calculeze cel mai mare diviszr comun al elementelor vectorului. program divizor;

type vec=array[1..50] of integer; var x:vec; n,i,k:integer; function cmmmdc(a,b:integer):integer; begin if a=0 then cmmdc:=b else if b=0 cmmmdc:=a else begin while a<>b do if a>b then a:=a-b else b:=b-a; cmmdc:=a;end; end; begin write('n=');Readln(n); for i:=1 to n do begin write('x[',i,']=');readln(x[i]);end; k:=x[1]; for i:=2 to n do k:=cmmdc(k,x[i]); writeln(k);end. 15)Se da o matrice A patratica cu nxn elemente.Sa se afiseze maximul elementelor si pozitiile pe care apare in matrice. program max_elem; type mat=array[1..50] of integer; var a:mat; max,i,j,n:inetger; begin write('n=');Readln(n); for i:=1 to n do for j:=1 to n do begin write('a[',i,',',j,']=');readln(a[i,j]); end; max:=a[1,1]; for i:=1 to n do for j:=1 to n do if max<a[i,j] then max:=a[i,j]; writeln('maximul este',max); writeln('apare pe poz'); for i:=1 to n do for j:=1 to n do if max=a[i,j] then write('(',i,',',j,')');end. 16)Se da o matrice A patratica cu nxn elemente.Sa se afiseze minimul elementelor si pozitiile pe care apare in matrice. program min_elem; type mat=array[1..50,1..50] of integer; var i,j,n,min:integer; a:mat; begin

write('n=');readlm(n); for i:=1 to n do for j:=1 to n do begin write('a[',i,',',j,']=');readln(a[i,j]);end; min:=a[1,1]; for i:=1 to n do for j:=1 to n do if min>a[i,j] then min:=a[i,j]; writeln('minimul este',min); for i:=1 to n do for j:=1 to n do if min=a[i,j] then writeln(i, ,j);end. 17)Se da o matrice A patratica cu nxn elemente.Sa se afiseze media aritmetica a elementelor pozitive. program media_aritm(17); type mat=array[1..50,1..50] of integer; var i,j,n,m,s:integer; a:mat; begin write('n=');readln(n); for i:=1 to n do for j:=1 to n do begin write('a[',i,',',j,']=');readln(a[i,j]);end; s:=0; m:=0; for i:=1 to n do for j:=1 to n do if a[i,j]>0 then begin s:=s+a[i]; m:=m+1;end; writeln('media aritmetica este',s/n:5:2); end. 18)Se da o matrice A patratica cu nxn elemente.Sa se interschimbe doua linii L1 si L2,date. program intreschimb; type mat=array[1..50,1..50] of integer; var l1,l2,n,m,i,j:integer; a:mat; begin write('n=');readln(n); write('m=');readln(m); for i:=1 to n do for j;=1 to n do begin write ('a[',i,',',j']=');readln (a[i,j]);end; write('l1=');readln(l1); write('l2=');readln(l2); for i:=1 to n do begin m:=a[l1,i]; a[l1,i]:=a[l2,i]; a[l2,i]:=m;end; for i:=1 to n do begin

for j:=1 to n do write(a[i,j], ); writeln;end; end. 19)Se da o matrice A patratica cu nxn elemente.Sa se ordoneze crescator numai prima linie. program cresc_linia_1; type mat=array[1..50,1..50] of integer; var l1,l2,n,m,i,j:integer; a:mat; begin write('n=');readln(n); write('m=');readln(m); for i:=1 to n do for j;=1 to n do begin write ('a[',i,',',j']=');readln (a[i,j]);end; write('l1=');readln(l1); write('l2=');readln(l2); for i:=1 to n-1 do begin for j:=i+1 to n do ifa[i,i]>a[1,j] then begin m:=a[1,i]; a[1,i]:=a[1,j]; a[1,j]:=m;end; for i:=1 to n do begin for j:=1 to n do write(a[i,j], ); writeln;end; end. 20)Se da o matrice A patratica cu nxn elemente.Sa se verifice daca este simetrica fata de diagonala principala. program simetrica; type mat=array[1..50,1..50] of integer; var l1,l2,n,m,i,j:integer; a:mat; begin write('n=');readln(n); write('m=');readln(m); for i:=1 to n do for j;=1 to n do begin write ('a[',i,',',j']=');readln (a[i,j]);end; write('l1=');readln(l1); write('l2=');readln(l2); m:=1 for i:=1 to n do for j:=1 to n do if a[i,j]<>a[j,i] then n:=0; if m=0 then write('nu e simetric') else write('e simetric'); end.

21)Se da un text cu cuvinte separate printr-un singur spatiu.Sa se numere cuvintele din text. program cuvinte; var s:string; n:integer; begin write('s=');readln(s); n:=0; if s<>' ' then s:=s+ ; while pos(' ' ,s)>0 do begin n:=n+1; delete(s,pos(' ',s),1);end; writeln('Textul contine',n,'cuvinte'); end. 22)Se dau pentru elevii unei clase,numele si media.Sa se afiseze elevii in ordinea descrescatoare a mediilor. program medii_descresc; type elev=record nume:string[30]; media:real end; vec=array[1..32] of integer; var a,aux:elev; c:char; n,i,j:integer; begin write('Dati nr de elevi=');readln(n); for i:=1 to n do begin write('Dati un nume=');read(c); readln(a[i].nume); write('Introduceti media=');readln(a[i].media); end; for i:=1 to n-1 do for j:=i+1 to n do if a[i].media<a[j].media then begin aux:=a[i]; a[i]:=a[j]; a[j]:=aux;end; for i:=1 to n do writeln(a[i].nume,' ',a[i].media:5:2);end. 23)Sa se scrie un program care determina recursive cel mai mare divizor comun dintre doua numere naturale date a si b. program cmmmdc; var a,b:longint; function f(a,b:longint):longint; begin if a=0 then f:=b

else if b=0 f:=a else if a>b then f:=f(a-b,b) else if b>a then f:=f(a,b-a) else f:=a; end.

You might also like