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

Узнай цену своей работы

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

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

Решение задачи: «Найти номер минимального по модулю элемента массива»

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.

Объяснение кода листинга программы

  1. Создаётся массив x размером от 1 до 100.
  2. Выводится размер массива, который пользователь должен ввести.
  3. Если введенный размер меньше или равен 100, то выводится исходный массив.
  4. Инициализируется переменная i1 для хранения номера минимального по модулю элемента.
  5. Инициализируется переменная s для хранения суммы модулей элементов.
  6. Выводится номер минимального по модулю элемента.
  7. Если в массиве есть отрицательные элементы, то выводится номер первого отрицательного элемента и сумма модулей элементов после него.
  8. Запрашивается диапазон чисел a, b.
  9. Выводится количество элементов, удовлетворяющих условию (x[i]>=a) и (x[i]<=b).
  10. Если количество таких элементов равно 0, то выводится сообщение о том, что нет элементов из заданного диапазона.
  11. Если количество таких элементов больше 0, то выводится сообщение об удалении этих элементов из диапазона.
  12. Выводится массив x после удаления элементов из заданного диапазона.

Оцени полезность:

13   голосов , оценка 4.231 из 5
Похожие ответы