Sunteți pe pagina 1din 65

Tablouri unidimensionale

Algoritmi fundamentali Data: 28-XII-2008 Clasa: a VIII-a Disciplina: INFORMATICA-OPTIONAL Scoala Ungheni cu clasele a I-VIII-a Jud Arges

Realizat de Ghena Mihaela

Maxime si Minime Cutare binar

Cutari de elemente
Cutare liniar

Parcurgeri
Sume si numrri
Oare de ce dai daca apesi butonul acesta ??

Puin teorie. Dac vrei bineneles.

Daca nu apsai

Cautari de elemente

Probleme

{Cunoscandu-se numele, inaltimea si greutateaa n elevi sa se afiseze numele acestora in ordinea descrescatoare a inaltimi. Daca exista doi elevicu aceeasi inaltime se va afisa cel care are greutatea mai mare.}

uses crt; var aux,i,j,n,k,min:integer; a,e:array[1..100] of string; b,c,d,f:array[1..100] of integer; aux1:string; begin clrscr; writeln('Dati numarul de elevi 1<=n<=100 ');readln(n); writeln('Dati numele,inaltimea si greutatea celor ',n,' elevi:'); for i:=1 to n do begin readln(a[i]); readln(b[i]); d[i]:=b[i]; readln(c[i]); end; for i:=1 to n-1 do for j:=i+1 to n do if b[i]<b[j] then begin aux:=b[i]; b[i]:=b[j]; b[j]:=aux; end;

for i:=1 to n do for j:=1 to n do if b[i]=d[j] then begin e[i]:=a[j]; f[i]:=c[j]; d[j]:=0; j:=n; end; for i:=1 to n-1 do if b[i]=b[i+1] then if f[i]<f[i+1] then begin aux1:=e[i]; e[i]:=e[i+1]; e[i+1]:=aux1; aux:=f[i]; f[i]:=f[i+1]; f[i+1]:=aux end; for j:=1 to n do begin write ('Numele: ',e[j],' ','Inaltimea: ',b[j],' ','Greutatea: ',f[j]); writeln; end; readln end.

{Se citesc n numere intregi. Sa se afiseze cel mai mare numar obtinut din prima cifra a fiecarui numar.}

var d:array[1..20] of byte; a,i,c,aux,j,nr,n:longint; begin write('dati nr de nr');readln(n); writeln('Dati elem: '); for i:=1 to n do begin readln(a); aux:=a; while aux<>0 do begin c:=aux mod 10; aux:=aux div 10; end; d[i]:=c end; for i:=1 to n-1 do for j:=i+1 to n do if d[i]<d[j] then begin aux:=d[i]; d[i]:=d[j]; d[j]:=aux end; for i:=1 to n do nr:=nr*10+d[i]; writeln('Cel mai mare nr este: ',nr); readln end.

{Se citesc de la tastatura n numere naturale. Se cere sa se sorteze sirul in ordinea crescatoare a numarului de apaitii a cifrei 1 in reprezentarea in baza 2 a numerelor.In cazul in care doua numere au aceeasi numar de cifre egale cu 1 in reprezentare lor binara atunci ele vor aparea in ordinea in care sunt citite de la tastatura.}

var a,b,c,d:array[1..100]of longint; aux,n,k,i,j:integer; begin writeln('Dati nr de elemente ');readln(n); for i:=1 to n do begin write('a[',i,']=');readln(a[i]); d[i]:=a[i]; j:=0; while a[i]>0 do begin if a[i] mod 2=1 then j:=j+1; a[i]:=a[i] div 2 {in a[i] o sa am doar valoarea 0} end; b[i]:=j; c[i]:=j;{retine pozitiile inainte de sortare} end;

for i:=1 to n-1 do for j:=i+1 to n do if b[i]>b[j] then begin aux:=b[j]; b[j]:=b[i]; b[i]:=aux {b[i]retine poz dupa sortare} end; k:=0; for i:=1 to n do begin for j:=1 to n do if (b[i]=c[j]) and (b[i]>k) then write(d[j],' '); k:=b[i] end; readln end.

{Dandu-se un vector cu maxim 100 de numere naturale, sa se localizeze elmentul maxim si toate elementele dinaintea lui sa se ordoneze crescator, iar cele de dupa el descrescator.}

var a,b:array[1..100]of integer; max,aux,n,k,i,j:integer; begin writeln('Dati nr de elemente ');readln(n); max:=-maxint; for i:=1 to n do begin for i:=k+1 to n-1 do write('a[',i,']=');readln(a[i]); for j:=i+1 to n do if a[i]>max then begin if a[i]<a[j] then begin max:=a[i]; aux:=a[i]; end; a[i]:=a[j]; end; a[j]:=aux; for i:=1 to n do end; if a[i]=max then k:=i; writeln('Vectorul ordonat conform for i:=1 to k-1 do cerintei: '); for j:=i+1 to k do for i:=1 to n do write (a[i],' '); if a[i]>a[j] then begin readln aux:=a[i]; end. a[i]:=a[j]; a[j]:=aux end; writeln;

Maxime si Minime

Probleme

{Se dau doi vectori x,y cu n componente. Primul contine nume de elevi, iar al doilea notele la informatica. Se cere sa se afiseze numele elevilor cu nota cea mai mica. Daca mai multi elevi au aceasta nota vor fi afisati toti.}

uses crt; var i,n,min:integer; x:array[1..100] of string; y:array[1..100] of integer; begin clrscr; writeln('Dati numarul de elevi 1<=n<=100 ');readln(n); writeln('Dati numele celor ',n,' elevi:'); for i:=1 to n do readln(x[i]); writeln('Dati mediile celor ',n,' elevi: '); for i:=1 to n do read(y[i]);readln; min:=y[1]; for i:=2 to n do if y[i]<min then min:=y[i]; for i:=1 to n do if min=y[i] then write(x[i],' '); readln; end.

{Sa se realizeze programul pentru determinare elementului maxim si a tuturor pozitilor unde apare el intr-un vector A de numere intregi cu dimensinea N.}

var a:array[1..100]of longint; max,n,k,i,j:integer; begin writeln('Dati nr de elemente ');readln(n); for i:=1 to n do begin write('a[',i,']=');readln(a[i]); end; max:=-maxint; for i:=1 to n do begin if (a[i]>max) then max:=a[i];end; writeln('Nr maxim este ', max ); writeln('pozitile maximului in vector sunt: '); for i:=1 to n do if a[i]=max then write (i,' '); readln end.

{Sa se determine elementele cu numar maxim de divizori si elementele cu numar minim de divizori dintr-un vector x de numere intregi.}

var a,b:array[1..100]of integer; max,min,n,k,i,j:integer; begin writeln('Dati nr de elemente ');readln(n); for i:=1 to n do begin write('a[',i,']=');readln(a[i]); k:=0; for j:=1 to a[i] do begin writeln('Componenetele cu nr maxim de if a[i] mod j=0 then begin divizori sunt: '); k:=k+1; for i:=1 to n do b[i]:=k if b[i]=max then write (a[i],' '); end writeln;writeln('Componenetele cu nr minim end de divizori sunt: '); end; for i:=1 to n do max:=-maxint;min:=maxint; if b[i]=min then write (a[i],' '); for i:=1 to n do begin readln if (b[i]>max) then end. max:=b[i]; if b[i]<min then min:=b[i] end;

{Se da un vector continand litere. Sa se afiseze frecventa aparitiei fiecarei litere in vector si literele cu cea mai mare frecventa, respectiv cea mai mica frecventa de aparitie.}

var a,b:array[1..100]of char; c,d,e:array[1..100] of integer; max,min,n,k,i,j,l:integer;aux:c har; begin writeln('Dati nr de elemente ');readln(n); for i:=1 to n do begin write('a[',i,']=');readln(a[i]); end; for i:=1 to n-1 do for j:=i+1 to n do if a[i]>a[j] then begin aux:=a[j]; a[j]:=a[i]; a[i]:=aux end;

l:=1; for i:=ord('A') to ord('Z') do begin k:=0; for j:=1 to n do if i=ord(a[j])then k:=k+1; c[l]:=k; l:=l+1; end; l:=1; for i:=ord('a') to ord('z') do begin k:=0; for j:=1 to n do if i=ord(a[j]) then k:=k+1; d[l]:=k; l:=l+1; end;

min:=maxint;max:=-maxint; for i:=1 to l do begin e[i]:=c[i]+d[i]; end; for i:=1 to l do begin if (e[i]<min) and (e[i]>0) then min:=e[i]; if e[i]>max then max:=e[i] end; writeln('Litera/Literele cu cea mai mare frecventa de aparitie este/sunt:'); for i:=1 to l do if e[i]=max then write(chr(64+i),' ');writeln; writeln('Litera/Literele cu cea mai mica frecventa de aparitie este/sunt:'); for i:=1 to l do if e[i]=min then write(chr(64+i),' '); { for i:=1 to n do write (a[i],' ');} readln end.

{Se citeste de la tastatura un sir cu n elemente numere naturale, nu neaparat distincte. Sa se afiseze elementul care apare de cele mai multe ori in sir. Daca exista mai multe astfel de elmente,se vor afisa toate.}

var a,b:array[1..100]of longint; max,n,k,i,j:integer;aux:longint; begin writeln('Dati nr de elemente ');readln(n); for i:=1 to n do begin write('a[',i,']=');readln(a[i]); end; for i:=1 to n-1 do for j:=i+1 to n do if a[i]>a[j] then begin aux:=a[j]; a[j]:=a[i]; a[i]:=aux end; k:=1;j:=0; for i:=1 to n do begin if a[i]=a[i+1] then inc(k) else begin j:=j+1 ; b[j]:=k; if i=n-1 then b[j+1]:=1; k:=1; end; end;

max:=-maxint; for i:=1 to j+1 do if b[i]>max then max:=b[i]; {write(max:5);writeln;} k:=1; for i:=1 to j+1 do if b[i]=max then begin write(a[k],' '); k:=k+b[i] end else k:=k+b[i]; readln end.

{Se considera un sir cu n numere naturale. Se cere sa se afiseze un numar din sir care in scrierea sa cat mai multe cifre distincte. Daca exista mai multe numere cu aceasta proprietate se va afisa primul dintre ele.}

var t,k,i,j,l,n,aux:longint; a,b,c,d:array[1..100]of longint; begin write('Dati n: ');readln(n); for i:=1 to n do begin write('a[',i,']=');readln(a[i]); t:=1;k:=0;d[i]:=a[i]; repeat k:=k+1; b[k]:=a[i] mod 10; a[i]:=a[i] div 10; until a[i]=0; for j:=1 to k-1 do for l:=j+1 to k do if b[j]>b[l] then begin aux:=b[j]; b[j]:=b[l]; b[l]:=aux end;

for j:=1 to k-1 do if b[j]<>b[j+1] then t:=t+1; c[i]:=t end; l:=c[1]; for i:=2 to n do if l<c[i] then begin l:=c[i]; k:=i ; end; write('primul numarul cu cele mai multe cifre distincte este',d[k]:5); readln end.

Cautare binara
a)pe structura repeat..until b)pe structura while..do

a)
program cautare_binara; var n,i,j,aux,x,ls,ld,mij:integer; a:array[byte] of integer; begin write('n=');readln(n); for i:=1 to n do begin write('a[',i,']='); readln(a[i]); end; write('x=');readln(x); for i:=1 to n-1 do for j:=i+1 to n do if a[i]>a[j] then begin aux:=a[i]; a[i]:=a[j]; a[j]:=aux; end;

ls:=1; ld:=n; repeat mij:=(ls+ld) div 2; if a[mij]=x then writeln('cautare cu succes') else if a[mij]>x then ld:=mij-1 else ls:=mij+1; until (a[mij]=x) or (ls>ld); if ls>ld then write('nu exista ',x,' in vector'); readln end.

b)
program cautarebinara; var n,i,j,aux,x,ls,ld,mij,sw:integer; a:array[byte] of integer; begin write('n=');readln(n); for i:=1 to n do begin write('a[',i,']='); readln(a[i]); end; write('x=');readln(x); for i:=1 to n-1 do for j:=i+1 to n do if a[i]>a[j] then begin aux:=a[i]; a[i]:=a[j]; a[j]:=aux; end;
ls:=1; ld:=n; mij:=(ls+ld) div 2; sw:=0; while (a[mij]<>x) and (ls<=ld) do begin if a[mij]>x then ld:=mij-1 else ls:=mij+1; mij:=(ls+ld) div 2; end; if a[mij]=x then writeln('este in vector') else writeln('nu exista ',x,' in vector'); readln end.

Cautare liniara

program cautare_liniara; var a:array[1..50] of integer; x:integer; i,n,sw:byte; begin write('n=');readln(n); for i:=1 to n do begin write('a[',i,']='); readln(a[i]); end; write('x=');readln(x); sw:=0; for i:=1 to n do if a[i]=x then sw:=1; if sw=0 then write(x,' nu se afla in vector') else write('cautare cu succes'); readln end.

Parcurgeri
Sume si numarari

Probleme

{Scrieti un program care tipareste elementele pare aflate pe pozitii divizibile cu 3 dintr-un vector de nr intregi.} var a:array[1..30] of integer; s,n,i:integer; begin write ('n= ');readln(n); for i:=1 to n do begin write ('a[',i,']=');readln(a[i]) end; i:=3; while i<=n do begin if a[i] mod 2=0 then write(a[i]:5); i:=i+3; end; readln end.

{Fiid dat un vector de numere intregi,sa se determine suma elementelor pozitive din vector.} var a:array[1..30] of integer; s,n,i:integer; begin write ('n= ');readln(n); for i:=1 to n do begin write ('a[',i,']=');readln(a[i]) end; s:=0; for i:=1 to n do if a[i]>0 then s:=s+a[i]; writeln('Suma este: ', s); readln; end.

{Sa se afiseze doar elementele pare dintr-un vector de numere intregi.} var a:array[1..30] of integer; s,n,i:integer; begin write ('n= ');readln(n); for i:=1 to n do begin write ('a[',i,']=');readln(a[i]) end; for i:=1 to n do if a[i] mod 2=0 then write ('Numerele sunt: a[i],','); readln end.

{Se citeste de la tastatura un vector cu n componente de tip intreg. Se cere sa se construiasca si sa se afiseze un nou vector cu componentele patrate perfecte din vectorul initial.} var a,b:array[1..100] of integer; n,i,j,p,k:integer; begin write ('n= ');readln(n);k:=0; for i:=1 to n do begin write ('a[',i,']=');readln(a[i]); if a[i]>=0 then for j:=1 to trunc(sqrt(a[i])) do if j*j=a[i] then begin k:=k+1; b[k]:=a[i] end; end; writeln('Componentele patrate din vectorul dat sunt: '); for i:=1 to k do write(b[i], ' '); readln end.

{Sa se calculeze suma elementelor negative si de valoare para dintr-un vector de nr intregi} var a:array[1..30] of integer; s,n,i:integer; begin s:=0; write ('n= ');readln(n); for i:=1 to n do begin write ('a[',i,']=');readln(a[i]); if (a[i]<0) and (a[i] mod 2=0) then s:=s+a[i]; end; writeln('Suma este: ',s); readln end.

{Se da un vector v cu n elemente numere intregi.Sa se copieze intr-un vector u elementele pozitive ale vectorului initial} var a,b:array[1..30] of integer; n,i,j:integer; begin write ('n= ');readln(n);j:=0; for i:=1 to n do begin write ('a[',i,']=');readln(a[i]); if a[i]>0 then begin j:=j+1; b[j]:=a[i] end; end; for i:=1 to j do write(b[i],' '); readln; end.

{Se da un vector de numere reale.Sa se determine procentul de numere din vector mai mici strict decat MA si procentul de numere din vector mai mari strict decat MA,unde am notat cu MA media aritemtica a componentelor din vector.} var a:array[1..30] of real; n,i,p,k:integer;ma,s:real; begin s:=0; write ('n= ');readln(n); for i:=1 to n do begin write ('a[',i,']=');readln(a[i]); s:=s+a[i]; end; ma:=s/n; for i:=1 to n do if a[i]>ma then k:=k+1 else if a[i]<ma then p:=p+1; writeln('Procentul celor strict mai mari decat MA este: ',k/n*100:5:2,'%'); write(' Procentul celor strict mai mici decat MA este: ',p/n*100:5:2,'%'); readln; end.

{Scrieti un program care citeste de la tastatura cele n numere reale ce compun vectorul a si apoi cele m numere reale ce constituie componentele vectorului b si afiseaz pe ecran cate din componentele lui a sunt strict mai mici decat toate componentele vectorului b.} var a,b:array[1..30] of real; n,i,m,j:integer; begin write ('n= ');readln(n);write ('m= ');readln(m); for i:=1 to n do begin write ('a[',i,']=');readln(a[i]); end; for j:=1 to m do begin write ('b[',j,']=');readln(b[j]); end; for i:=1 to n do if a[i]<b[i] then write(a[i]:5:2,' '); readln; end.

{Fiind dat un vector v cu n elemente numere intregi ,sa se construiasca alti doi vectori :primul care va contine numai elemente pare ,iar al doilea numai elem impare din vectorul initial} var a,b,c:array[1..30] of integer; n,i,m,p:integer; begin write ('n= ');readln(n);m:=0;p:=0; for i:=1 to n do begin write ('a[',i,']=');readln(a[i]); if a[i] mod 2=0 then begin inc(m); b[m]:=a[i]; end else begin inc(p); c[p]:=a[i]; end; end; readln end.

{Fie un vector x de numere intregi. Sa se formeze un vector y de numere intregi, in care y[i] sa fie restul impartiri lui x[i] la suma cifrelor lui x[i].} type vector=array[1..100] of integer; var x,y:vector;aux,s:integer; i,n,c:byte; begin Writeln('Dati dimensiunea vector,<=100 ');read(n); writeln('Introduceti cele ',n,' componente:'); for i:=1 to n do begin readln(x[i]);aux:=x[i];s:=0; while aux<>0 do begin c:=aux mod 10; s:=s+c; aux:=aux div 10 end; y[i]:=x[i] mod s; end; for i:=1 to n do write(y[i],' '); readln end.

{La codificarea unui text scris cu cel mult primele n litere mici ale afabetului englez, se folosesc cele mai mici n numere naturale care au exact 3 divizori naturali. Pentru litera 'a' se foloseste cel mai mic nr cu proprietatea respectiva, pentr 'b' cel mai mic numar diferit de cel folosit pentru 'a',si asa mai departe. a)Sa se afiseze, separate prin cate un spatiu, cele n numere folosite la codificare. b)Pentru un text dat de la tastatura,se cere sa se afiseze codificarea textului, fiecare caracter fiind inlocuit cu numarul corespunzator si orice doua coduri conscutive vor fi separate printr-un spatiu.}

var n,i,d,j,c:integer; a:array[1..25] of char; b:array[1..25] of integer; begin writeln('Dati nr de litere -vezi enunt');readln(n); writeln('Dati textul'); for i:=1 to n do read(a[i]); i:=4; repeat d:=2;c:=1; while(d<=i) do begin if (i mod d=0) then begin c:=c+1; d:=d+1 end else d:=d+1; end;

if c=3 then begin j:=j+1; b[j]:=i; end; i:=i+1 until j=n; writeln('Nr cu 3 divizori folosite la codificare: '); for i:=1 to n do write(b[i], ' ' ); writeln; writeln('Textul dat se codifica astfel:'); for i:=1 to n do begin c:=ord(a[i])-ord('a'); write(b[c+1],' '); end; readln end.

{Sa se calculeze cmmdc(x1,x2,x3,...,xn)} type vector=array[1..100] of integer; var a:vector;cmmdc:integer; i,n:byte; begin Writeln('Dati dimensiunea vector,<=100 ');read(n); writeln('Introduceti cele ',n,' componente pozitive nenule:'); for i:=1 to n do read(a[i]); readln; cmmdc:=a[1]; for i:=2 to n do begin while a[i-1]<>a[i] do if a[i-1]>a[i] then a[i-1]:=a[i-1]-a[i] else a[i]:=a[i]-a[i-1]; end; cmmdc:=a[n]; writeln('Cmmdc este: ',cmmdc); readln end.

{Cate numere perfecte exista in tabloul x=(x1,x2,..,xn) de numere intregi citite de la tastatura. Un numar este perfect daca este egal cu suma divizorilor sai mai mici ca el.} var a:array[1..100]of integer; d,s,n,k,i,j:integer; begin writeln('Dati nr de elemente ');readln(n); for i:=1 to n do begin write('a[',i,']=');readln(a[i]); end;k:=0; write('Numerele perfecte sunt: '); for i:=1 to n do begin s:=0; for j:=1 to a[i] do if a[i] mod j=0 then s:=s+j ; if (2*a[i]=s) and (a[i]>0) then begin k:=k+1; write(a[i],' ') end; end; write('Avem ',k,' numere perfecte. '); readln end.

{Cate elemente dintr-un vector de numere intregi sunt prime cu un nr dat.} var a:array[1..100]of integer; q,n,k,i,j,t:integer; begin writeln('Dati nr de elemente ');readln(n); writeln('Dati un nr. k ');readln(k);q:=k; for i:=1 to n do begin write('a[',i,']=');readln(a[i]); end; writeln('Nr care sunt prime cu ',k ,' sunt: '); for i:=1 to n do begin t:=a[i]; while a[i]<>k do if a[i]>k then a[i]:=a[i]-k else k:=k-a[i]; k:=q; if a[i]=1 then begin j:=j+1; write(t,' ') end; end; writeln;writeln('Avem: ',j,' nr prime cu ',q); readln end.

{Se considera un sir de n numere reale. Sa se scrie un program care elimina di sir valorile ce se afla in afara intervalului [a,b].} var c,d:array[1..30]of integer; a,b,i,n,aux,k:integer; begin writeln('Dati a si b');readln(a);readln(b); writeln('dati nr de componente: ');readln(n);k:=0; for i:=1 to n do begin write('c[',i,']=');read(c[i]); end; if a>b then begin aux:=b; b:=a; a:=aux; end; for i:=1 to n do if (c[i]>=a) and (c[i]<=b) then begin k:=k+1; d[k]:=c[i]; end; for i:=1 to k do write(d[i],' '); readln end.

{Fie un vector de numere intregi.Sa se afiseze toate tripletele de numere consecutive din x,in care al treilea numar este media aritmetica a primului cu cel de al doilea.} var i,n:integer; a:array[1..100]of integer; begin write('Dati n: ');readln(n); for i:=1 to n do begin write('a[',i,']=');readln(a[i]); end; for i:=1 to n-2 do if a[i+2]=(a[i]+a[i+1])/2 then write('(',a[i],' ',a[i+1],' ',a[i+2],')'); readln end.

{Sa se calculeze ultima cifra a numarului x[1]+x[2]+..+x[n],unde x este un vector cu n componente numere naturale citite de la tastatura.} var a,b:array[1..30] of integer; i,n,s:integer; begin writeln('Dati nr de componente: ');readln(n); for i:=1 to n do begin write('a[',i,']=');readln(a[i]); end; for i:=1 to n do begin b[i]:=a[i] mod 10; s:=s+b[i]; end; writeln('ultima cifra a sumei este: ',s mod 10); readln end.

{Fie un vector de numere intregi.Sa se afiseze toate tripletele de numere consecutive din x,in care al treilea numar este restul inmpartirii primului la al doilea.} var i,n:integer; a:array[1..100]of integer; begin write('Dati n: ');readln(n); for i:=1 to n do begin write('a[',i,']=');readln(a[i]); end; for i:=1 to n-2q do if a[i] mod a[i+1]=a[i+2] then write('(',a[i],' ',a[i+1],' ',a[i+2],')'); readln end.

ca variabila x este utilizata intr-un program pentru a memora mediile din semestrul al doilea ale uni elev de clasa a XII-a la cele 16 discipline din catalog,stabiliti care este declararea corespunzatoare x ?

1.Stiind

a) b) c) d)

var x:byte; var x:array[1..16,1..12] of byte; var x:array[1..16] of byte; var x:array[1..15] of byte;

Next

2.Se considera algoritmul reprezentat in limbaj pseudocod:


citeste n; pentru I= 1, n executa citeste ai; citeste p; pentru I= 1, n executa inceput aux<- ai; cat timp ai <>0 executa inceput s<- s+ ai mod 10; ai<- ai div 10; sfarsit daca s mod p=0 atunci scrie aux;

Ce valori vor fi afisate pentru n=5, p=6, a[23, 33, 123, 12, 93]: a) 33, 23, 123

b) 33, 123, 93 c) 23, 12, 93 d) 23, 33, 123, 12, 93

Next

3.Se da urmatorul program. Ce face el ?


var a:array[1..30] of integer; s,n,i:integer; begin s:=0; write ('n= ');readln(n); for i:=1 to n do begin write ('a[',i,']=');readln(a[i]); if (a[i]<0) and (a[i] mod 2=0) then s:=s+a[i]; end; writeln('Suma este: ',s); readln end.

Next

a) calculeaza suma elementelor negative si de valoare para dintr-un vector b) calculeaza suma elementelor negative si numa atat c) calculeaza suma elementelor de valoare para dintr-un vector d) nu face nimic

4.Se da urmatorul program:


var a:array[1..30] of integer; s,n,i:integer; begin write ('n= ');redln(n); for i:=1 to n do begin write ('a[',i,']=');readln(a[i]) end; for i:=1 to n do Next if a[i] mod 2=0 then wrte ('Numerele sunt: a[i],','); readln end. Dupa efectuarea acestui program se vor afisa:

a)Vectorul b)Si elmetele pare si cele impare dintr-un vector c)Numerele care impartite la 2 dau restul zero d)Nimic deoarece este gresit programul

5. Daca vectorul a contine 3, 4, 6, 2, 1 atunci vectorul b va fi: 24 42 241 -3 4 2


J:= 0; For I:= n downto 1 do if (I mod 2= 0) and (a[I] mod 2= 0) then begin inc (j); b[j]:= a[I]; End;

Next

DA

NU

Puin teorie. Dac vrei bineneles.

Daca nu apsai

Ai rspuns greit Mai cearc


Back

Mai pune-ti pofta in cui

Gandeti bine !

Back

S-ar putea să vă placă și