tablouri unidimensionale

66
Tablouri Tablouri unidimensionale unidimensionale Algoritmi Algoritmi fundamentali fundamentali Realizat de Realizat de Carmen Rus Carmen Rus

Upload: denim

Post on 12-Jan-2016

97 views

Category:

Documents


1 download

DESCRIPTION

Tablouri unidimensionale. Algoritmi fundamentali. Realizat de Carmen Rus. Maxime si Minime. Căutare binară. Căutari de elemente. Căutare liniară. Parcurgeri. Sume si num ă r ă ri. Oare de ce dai daca apesi butonul acesta ??. Puţină teorie. Dacă vreţi binenţeles. Daca nu apăsaţi. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Tablouri unidimensionale

Tablouri Tablouri unidimensionaleunidimensionale

Algoritmi Algoritmi fundamentalifundamentali

Realizat de Realizat de Carmen RusCarmen Rus

Page 2: Tablouri unidimensionale

Căutari de Căutari de elementeelemente

Maxime si MinimeMaxime si Minime

Căutare binarăCăutare binară

Căutare Căutare liniarăliniară

Sume si numSume si număărrăăririParcurgeri Parcurgeri

Oare de ce dai daca apesi butonul acesta ??

Page 3: Tablouri unidimensionale

Puţină teorie. Dacă vreţi Puţină teorie. Dacă vreţi binenţeles.binenţeles.

Daca nu apăsaţiDaca nu apăsaţi

Page 4: Tablouri unidimensionale

Cautari de Cautari de elementeelemente

Page 5: Tablouri unidimensionale

ProblemeProbleme

Page 6: Tablouri unidimensionale

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

Page 7: Tablouri unidimensionale

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 doif b[i]=b[i+1] thenif 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;readlnend.

Page 8: Tablouri unidimensionale

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

Page 9: Tablouri unidimensionale

var d:array[1..20] of byte;a,i,c,aux,j,nr,n:longint;beginwrite('dati nr de nr');readln(n);writeln('Dati elem: ');for i:=1 to n dobeginreadln(a);aux:=a;while aux<>0 do beginc:=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);readlnend.

Page 10: Tablouri unidimensionale

{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.}

Page 11: Tablouri unidimensionale

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;readlnend.

Page 12: Tablouri unidimensionale

{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.}

Page 13: Tablouri unidimensionale

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 write('a[',i,']=');readln(a[i]); if a[i]>max then begin max:=a[i]; end; end; for i:=1 to n do if a[i]=max then k:=i; for i:=1 to k-1 do for j:=i+1 to k do if a[i]>a[j] then begin aux:=a[i]; a[i]:=a[j]; a[j]:=aux end; writeln;

for i:=k+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; writeln('Vectorul ordonat conform cerintei: '); for i:=1 to n do write (a[i],' '); readln end.

Page 14: Tablouri unidimensionale

Maxime si MinimeMaxime si Minime

Page 15: Tablouri unidimensionale

ProblemeProbleme

Page 16: Tablouri unidimensionale

{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.}

Page 17: Tablouri unidimensionale

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.

Page 18: Tablouri unidimensionale

{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.}

Page 19: Tablouri unidimensionale

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.

Page 20: Tablouri unidimensionale

{Sa se determine elementele cu numar maxim de divizori si {Sa se determine elementele cu numar maxim de divizori si elementele cuelementele cu

numar minim de divizori dintr-un vector x de numere numar minim de divizori dintr-un vector x de numere intregi.}intregi.}

Page 21: Tablouri unidimensionale

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 if a[i] mod j=0 then begin k:=k+1; b[i]:=k end end end;max:=-maxint;min:=maxint;for i:=1 to n do begin if (b[i]>max) then max:=b[i]; if b[i]<min then min:=b[i] end;

writeln('Componenetele cu nr maxim de divizori sunt: ');for i:=1 to n do if b[i]=max then write (a[i],' ');writeln;writeln('Componenetele cu nr minim de divizori sunt: ');for i:=1 to n do if b[i]=min then write (a[i],' '); readln end.

Page 22: Tablouri unidimensionale

{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.}

Page 23: Tablouri unidimensionale

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:char;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;

Page 24: Tablouri unidimensionale

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],' ');}readlnend.

Page 25: Tablouri unidimensionale

{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.}

Page 26: Tablouri unidimensionale

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.

Page 27: Tablouri unidimensionale

{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.}

Page 28: Tablouri unidimensionale

var t,k,i,j,l,n,aux:longint; a,b,c,d:array[1..100]of longint;beginwrite('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);readlnend.

Page 29: Tablouri unidimensionale

Cautare binaraCautare binara

a)pe structura “repeat..until” b)pe structura “while..do”

Page 30: Tablouri unidimensionale

program cautare_binara;var n,i,j,aux,x,ls,ld,mij:integer; a:array[byte] of integer;beginwrite('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.

a)

Page 31: Tablouri unidimensionale

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.

program cautarebinara;var n,i,j,aux,x,ls,ld,mij,sw:integer; a:array[byte] of integer;beginwrite('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;

b)

Page 32: Tablouri unidimensionale

Cautare liniaraCautare liniara

Page 33: Tablouri unidimensionale

program cautare_liniara;var a:array[1..50] of integer; x:integer; i,n,sw:byte;beginwrite('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');readlnend.

Page 34: Tablouri unidimensionale

Parcurgeri Parcurgeri Sume si numarariSume si numarari

Page 35: Tablouri unidimensionale

ProblemeProbleme

Page 36: Tablouri unidimensionale

{Scrieti un program care tipareste elementele pare aflate pe pozitiidivizibile 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; readlnend.

Page 37: Tablouri unidimensionale

{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.

Page 38: Tablouri unidimensionale

{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.

Page 39: Tablouri unidimensionale

{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.

Page 40: Tablouri unidimensionale

{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);

readlnend.

Page 41: Tablouri unidimensionale

{Se da un vector v cu n elemente numere intregi.Sa se copiezeintr-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.

Page 42: Tablouri unidimensionale

{Se da un vector de numere reale.Sa se determine procentulde numere din vector mai mici strict decat MA si procentulde 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.

Page 43: Tablouri unidimensionale

{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.

Page 44: Tablouri unidimensionale

{Fiind dat un vector v cu n elemente numere intregi ,sa se construiascaalti doi vectori :primul care va contine numai elemente pare ,iar aldoilea 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.

Page 45: Tablouri unidimensionale

{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;beginWriteln('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],' ');readlnend.

Page 46: Tablouri unidimensionale

{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.}

Page 47: Tablouri unidimensionale

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 beginif (i mod d=0) then begin c:=c+1; d:=d+1 end else d:=d+1; end;

if c=3 then beginj:=j+1;b[j]:=i;end;i:=i+1until 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 beginc:=ord(a[i])-ord('a');write(b[c+1],' ');end;readlnend.

Page 48: Tablouri unidimensionale

{Sa se calculeze cmmdc(x1,x2,x3,...,xn)}type vector=array[1..100] of integer;var a:vector;cmmdc:integer;i,n:byte;beginWriteln('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);readlnend.

Page 49: Tablouri unidimensionale

{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. ');readlnend.

Page 50: Tablouri unidimensionale

{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.

Page 51: Tablouri unidimensionale

{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.

Page 52: Tablouri unidimensionale

{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;beginwrite('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],')');readlnend.

Page 53: Tablouri unidimensionale

{Sa se calculeze ultima cifra a numarului x[1]+x[2]+..+x[n],unde x esteun 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);readlnend.

Page 54: Tablouri unidimensionale

{Fie un vector de numere intregi.Sa se afiseze toate tripletele de numereconsecutive din x,in care al treilea numar este restul inmpartirii primuluila al doilea.}var i,n:integer; a:array[1..100]of integer;beginwrite('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],')');readlnend.

Page 55: Tablouri unidimensionale
Page 56: Tablouri unidimensionale

1.Stiind 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 ?

a) var x:byte; b) var x:array[1..16,1..12] of byte; c) var x:array[1..16] of byte; d) var x:array[1..15] of byte;

Next

Page 57: Tablouri unidimensionale

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

Page 58: Tablouri unidimensionale

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);readlnend.

a) calculeaza suma elementelor negative si de valoare para dintr-un vector b) calculeaza suma elementelor negative si numa atatc) calculeaza suma elementelor de valoare para dintr-un vectord) nu face nimic

Next

Page 59: Tablouri unidimensionale

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 if a[i] mod 2=0 then wrte ('Numerele sunt: a[i],','); readln end.

Dupa efectuarea acestui program se vor afisa:

a)Vectorulb)Si elmetele pare si cele impare dintr-un vectorc)Numerele care impartite la 2 dau restul zerod)Nimic deoarece este gresit programul

Next

Page 60: Tablouri unidimensionale

5. Daca vectorul “a” contine –3, 4, 6, 2, 1 atunci vectorul “b” va fi:

2 44 22 4 1-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

Page 61: Tablouri unidimensionale

DA NU

Page 62: Tablouri unidimensionale

Puţină teorie. Dacă vreţi Puţină teorie. Dacă vreţi binenţeles.binenţeles.

Daca nu apăsaţiDaca nu apăsaţi

Page 63: Tablouri unidimensionale

Ai răspuns greşitAi răspuns greşit

Mai îcearcăMai îcearcă

Back

Page 64: Tablouri unidimensionale

Mai pune-ti pofta in cui Mai pune-ti pofta in cui

Page 65: Tablouri unidimensionale

Gandeşti bine ! Gandeşti bine !

Back

Page 66: Tablouri unidimensionale

Ştiu ca v-a placut Ştiu ca v-a placut

SfarşitSfarşit

Daca nu, imi pare rau, Daca nu, imi pare rau, dar altul nu mai fac !dar altul nu mai fac !