Найти номер минимального по модулю элемента массива - Turbo Pascal

Формулировка задачи:

В одновременном массиве, состоящем из n элементов, вычислить: 1.Номер минимального по модулю элемента массива. 2.Сумму модулей элементов этого массива расположенных после первого отрицательного элемента. 3.Сжать массив удалив из него все элементы величина которых находится в интервале[a,b].Освободившиеся в конце массива элементы заполнить нулями.

Код к задаче: «Найти номер минимального по модулю элемента массива - Turbo Pascal»

textual
uses crt;
const nmax=100;
var x:array[1..nmax] of integer;
    n,i,j,k,nmn,i1,s,a,b:integer;
begin
clrscr;
randomize;
repeat
write('Размер массива до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Исходный массив:');
i1:=0;
for i:=1 to n do
 begin
  x[i]:=-25+random(50);
  if i=1 then nmn:=1
  else if abs(x[i])<abs(x[nmn]) then nmn:=i;
  if (x[i]<0)and(i1=0)then i1:=i;
  write(x[i]:4);
 end;
writeln;
writeln('Номер минимального по модулю элемента=',nmn);
if i1=0 then writeln('В массиве нет отрицательных элементов')
else
 begin
  writeln('Номер первого отрицательного=',i1);
  if i1=n then s:=0
  else
   begin
    s:=0;
    for i:=i1+1 to n do
    s:=s+abs(x[i])
   end;
  writeln('Сумма модулей после первого отрицательного=',s);
 end;
repeat
writeln('Введите диапазон чисел a,b');
readln(a,b);
until b>a;
i:=1;
k:=0;
while i<=n do
if (x[i]>=a)and(x[i]<=b) then
 begin
  k:=k+1;
  if i=n then n:=n-1
  else
   begin
    for j:=i to n-1 do
    x[j]:=x[j+1];
    n:=n-1;
   end;
 end
else i:=i+1;
if k=0 then write('Нет элементов из интервала [',a,';',b,']')
else
 begin
  writeln('Удаление элементов из интервала [',a,';',b,']');
  for i:=1 to k do
   begin
    n:=n+1;
    x[n]:=0;
   end;
  for i:=1 to n do
  write(x[i]:4)
 end;
readln
end.

13   голосов, оценка 4.231 из 5


СОХРАНИТЬ ССЫЛКУ