Составить алгоритм и программу, которая в одномерном массиве, состоящем из n вещественных элементов, вычисляет: а) Номер максимального по модулю элемента массива; б) Сумму элементов массива, расположенных после первого положительного элемента; в) Преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых лежит в интервале [a,b], а потом – все остальные — Pascal(Паскаль)

uses crt;
const n=10;
var m:array[1..n]of real;
i,j,max,k:integer;
a,b,s,x:real;
 
begin
 clrscr;
 writeln('Массив -> ');
 for i:=1 to n do read(m[i]);
 readln;
 repeat
 writeln('A,B -> ');
 readln(a,b);
 until a<b;
 
 max:=1;
 for i:=1 to n do if abs(m[i])>abs(m[max]) then max:=i;
 writeln('Номер максимального по модулю элемента - ',max);
 
 k:=1;  
 while (k<n) and (m[k]<=0) do inc(k);
 s:=0;
 for i:=k+1 to n do s:=s+m[i];
 writeln('Сумма после первого положительного = ',s);
 
 for i:=1 to n do
 for j:=1 to n-1 do
 if ((trunc(m[j])>b) or (trunc(m[j])<a)) and (trunc(m[j+1])>=a) and (trunc(m[j+1])<=b) then
 begin
  x:=m[j];
  m[j]:=m[j+1];
  m[j+1]:=x;
 end;
 writeln('Отсортированный массив');
 for i:=1 to n do write(m[i],' ');
 readln;
end.

Leave a Comment

89 − = 88