Tablouri


1. Fie dat tabloul unidimensional b[1..20],n apartine R.
a)de determinat media aritmetica a elementelor pozitive.
b)de determinat elementul minim si locul lui.
Program P1;
uses crt;
type tab=array[1..20] of real;
var a:tab;
    min,med,s:real;
   locul,n,i,k:integer;
begin
  ClrScr;
  writeln('n='); readln(n);
  writeln('Dati elementele tabloului:');
  for i:=1 to n do read(a[i]);
  {determinarea mediei aritmetice a elementelor pozitive}
  s:=0; k:=0;
  for i:=1 to n do
  if a[i]>0 then 
   begin
    k:=k+1;
    s:=s+a[i];
   end;
  if k=0 then write('media aritmetica nu poate fi determinata')
         else write('media:',s/k:8:2,' ');
  {determinarea elementului minim si locul lui}
  min:=a[1]; locul:=1;
  for i:=2 to n do
  if a[i]<min then 
   begin
    min:=a[i]; locul:=i;
   end;
  write('min=',min:5:2,' ','locul=',locul);
  readln;
end.

2. De alcatuit un tablou unidimensional in care toate elementele maxime se inlocuiesc cu zero.
Program P2;
type tab=array[1..20] of integer;
var a:tab;
    max,n,i:integer;
begin
  write('n='); readln(n);
  write('dati elementele tabloului:');
  for i:=1 to n do
  read(a[i]);
  {determinarea elementelor maxime}
  max:=a[1];
  for i:=2 to n do
  if a[i]>max then max:=a[i];
  {inlocuirea elementelor maxime cu zero}
  for i:=1 to n do
  if a[i]=max then a[i]:=0;
  write('max=',max);
  writeln('tabloul obtinut:');
  for i:=1 to n do
  write(a[i]);
  readln;
end.
 
           
3. Fie date tablourile a[1..5] si b[1..7], de creat tabloul care va contine elementele din a dupa care din b, in ordinea aparitiei.
Program P3;
type tab=array[1..12] of real;
var a,b,c:tab;
    i:integer;
begin
  write('introduceti elementele tabloului a:');
  for i:=1 to 5 do read(a[i]);
  write('introduceti elementele tabloului b:');
  for i:=1 to 7 do read(b[i]);
  {inscrierea elementelor tabloului a in c}
  for i:=1 to 5 do
  c[i]:=a[i];
  {inscrierea elementelor tabloului b in c}
  for i:=6 to 12 do
  c[i]:=b[i-5];
  write('tabloul c:');
  for i:=1 to 12 do
  write(c[i]:5:2);
  readln;
end.


4. Fie dat tabloul a[1..100] of real, de inlocuit toate elementele pozitive prin 1, iar cele negative prin(-1).
Program P4;
type tab=array[1..100] of real;
var a:tab;
    i,n:integer;
begin
  write('n='); readln(n);
  write('dati valorile tabloului:');
  for i:=1 to n do read(a[i]);
  {inlocuirea elementelor}
  for i:=1 to n do
  if a[i]>0 then a[i]:=1
            else if a[i]<0 then a[i]:=-1;
  writeln('tabloul obtinut:');
  for i:=1 to n do
  write(a[i]:5:2,' ');
  readln;
end.
           
           
5. Fie dat tabloul a[1..100] of real. De determinat numarul de elemente maxime.
Program P5;
type tab=array[1..100] of real;
var a:tab;
    i,n,k:integer;
    max:real;
begin
  write('n='); readln(n);
  write('dati elementele tabloului:');
  for i:=1 to n do
  read (a[i]);
  {determinarea elementelor maxime}
  max:=a[1];
  for i:=2 to n do
  if a[i]>max then max:=a[i];
  {determinarea nr de elemente maxime}
  k:=0;
  for i:=1 to n do
  if a[i]=max then k:=k+1;
  write('k=',k);
end.