В одномерном массиве вставить новый элемент между всеми парами элементов, имеющими разные знаки - Pascal

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

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

В одномерном массиве, элементы которого – целые числа произвести следующие действия 1. вставить новый элемент между всеми парами элементов , имеющими разные знаки.

Решение задачи: «В одномерном массиве вставить новый элемент между всеми парами элементов, имеющими разные знаки»

textual
Листинг программы
const nmax=50;
var a:array[1..2*nmax] of integer;
    n,i,j:byte;
    c:integer;
begin
randomize;
repeat
write('Размер массива от 2 до ',nmax,' n=');
readln(n);
until n in [2..nmax];
writeln('Исходный массив');
for i:=1 to n do
 begin
  repeat
  a[i]:=-20+random(41);
  until a[i]<>0;{сделаем массив без нолей, ибо нерлнятно с его знаком}
  write(a[i]:4)
 end;
writeln;
write('Введите число для вставки c=');
readln(c);
i:=2;
while i<=n do
if a[i]*a[i-1]<0 then
 begin
  n:=n+1;
  for j:=n downto i+1 do
  a[j]:=a[j-1];
  a[i]:=c;
  i:=i+2;
 end
else i:=i+1;
writeln('Вставка числа ',c,' между числами с разными знаками');
for i:=1 to n do
write(a[i]:4);
end.

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

  1. Объявляется константа nmax со значением 50.
  2. Объявляются переменные: массив a размерности от 1 до 2*nmax и целочисленного типа, переменная n целочисленного типа для хранения размера массива, и переменные целочисленного типа i, j для использования в циклах, и переменная c целочисленного типа для хранения числа, которое будет вставлено в массив.
  3. Используется функция randomize, чтобы инициализировать генератор случайных чисел.
  4. Вводится значение n с помощью цикла repeat-until, чтобы проверить, что оно находится в диапазоне от 2 до nmax.
  5. Выводится сообщение Исходный массив.
  6. Создается цикл for, чтобы заполнить исходный массив случайными числами от -20 до 20, исключая значение 0.
  7. Запрашивается число c, которое будет вставлено в массив.
  8. Создается переменная i и внутри цикла while происходит перебор элементов массива до тех пор, пока переменная i меньше или равна n. Проверяется условие: если произведение элементов a[i]*a[i-1] меньше нуля (т.е. элементы имеют разные знаки), то происходит вставка числа c между ними. В противном случае переменная i увеличивается на 1.
  9. Выводится сообщение Вставка числа, c, между числами с разными знаками.
  10. Создается цикл for для вывода измененного массива.

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

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