Найти номер минимального по модулю элемента массива - 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.
Объяснение кода листинга программы
- Создаётся массив
x
размером от 1 до 100. - Выводится размер массива, который пользователь должен ввести.
- Если введенный размер меньше или равен 100, то выводится исходный массив.
- Инициализируется переменная
i1
для хранения номера минимального по модулю элемента. - Инициализируется переменная
s
для хранения суммы модулей элементов. - Выводится номер минимального по модулю элемента.
- Если в массиве есть отрицательные элементы, то выводится номер первого отрицательного элемента и сумма модулей элементов после него.
- Запрашивается диапазон чисел
a
,b
. - Выводится количество элементов, удовлетворяющих условию (x[i]>=a) и (x[i]<=b).
- Если количество таких элементов равно 0, то выводится сообщение о том, что нет элементов из заданного диапазона.
- Если количество таких элементов больше 0, то выводится сообщение об удалении этих элементов из диапазона.
- Выводится массив
x
после удаления элементов из заданного диапазона.