2. Задан одномерный массив. Преобразуйте его элементы по следующему правилу: из всех положительных элементов вычесть элемент с номером k, ко всем отрицательным добавить введенное число x. Нулевые элементы оставьте без изменения.

За основу возьём программу из примера 7.1. Объявим дополнительные две переменные k и x, в которые мы будем записывать номер элемента для его вычитания из положительных элементов массива и число, которое будет прибавляться ко всем отрицательным элементам массива. Сделаем проверку на то, что k больше n, ведь если пользователь введёт k больше n, мы не сможем получить элемент на позиции k, т.к. его не будет существовать.

var a: array[1..20] of integer;
n, k, x: integer;
begin
 write('Количество n =');
 readln(n);
 writeln('Элементы массива');
 for var i := 1 to n do
 read(a[i]);
 write('Номер элемента массива k =');
 readln(k);
 if k > n then
  writeln('k не может быть меньше n')
 else
 begin
   write('Число x =');
   readln(x);
   for var i := 1 to n do
   begin
   if a[i] > 0 then
    a[i] := a[i] - a[k]
   else if a[i] < 0 then
    a[i] := a[i] + x;
   end;
   writeln('Преобразованный массив');
   for var i := 1 to n do
   write(a[i], ' ');
 end;
end.
Другие задания