В одномерном массиве, который состоит из n действительных элементов, вычислить: а) количество элементов массива, которые больше С; б) произведение элементов массива, расположенных после максимального по модулю элемента; в) переделать массив так, чтоб сначала располагались все отрицательные элементы, а потом — положительные (0-ли считать положительными) — Pascal(Паскаль)

uses crt;
const NMax=100;
Type MyArr=array[1..NMax] of integer;
 
procedure InputMassive(var ar:myarr; var n:byte);
var i:byte;
   { ch:char; }
begin
 Randomize;
 repeat
   Write('n=');
   Readln(n);
 until n in [1..NMax];
 for i:=1 to n do
   ar[i]:=random(20)-10;  
end;
 
procedure OutputMassive(var ar:myarr; n:byte);
var i:byte;
begin
 for i:=1 to n do
  Write(ar[i],'  ');
Writeln;
end;
 
procedure MinCMassive(var a:myarr; n:byte);
var c,k,i:integer;
begin
Writeln('Vvedite C ');
Readln(c);
k:=0;
 for i:=1 to n do
  if a[i]<c then
   k:=k+1;
Writeln('K= ',k);
end;
 
procedure ProizMaxMassive(var a:myarr; n:byte);
var p:longint;
    max,imax:integer;
    i:byte;
begin
p:=1;
max:=1;
 for i:=1 to n do
  if abs(a[i])>max then
   begin
    max:=abs(a[i]);
    imax:=i;
   end;
 for i:=imax+1 to n do
  p:=p*a[i];
Writeln('P= ',p);
end;
 
procedure SortMassive(var a:myarr; n:byte);
var x,k:integer;
    i,j:byte;
begin
Writeln;
for i:=1 to n do
 for j:=i to n do
  if a[i]>=0 then
   begin
    x:=a[i];
    a[i]:=a[j];
    a[j]:=x;
   end;
for i:=1 to n do
 Write(a[i],'  ');
end;
 
var a:myarr;
    i,x:byte;
begin
ClrScr;
InputMassive(a,x);
OutputMassive(a,x);
MinCMassive(a,x);
ProizMaxMassive(a,x);
SortMassive(a,x);
ReadKey;
end.

Leave a Comment

50 + = 52