Заменить знаки чисел массива так, чтобы все элементы массива стали отрицательными - PascalABC.NET
Формулировка задачи:
Дан массив {X} размерностью n.
Нужно: заменить знаки так, чтобы все элементы массива стали отрицательными, только если на k позициях подряд элементы одинаковы. При невыполнении заданного условия выдать сообщение «Решения не существует».
Ограничения: создание вспомогательного массива и использование принудительных средств выхода из цикла с параметром не допускается
Помогите решить
Решение задачи: «Заменить знаки чисел массива так, чтобы все элементы массива стали отрицательными»
textual
Листинг программы
- var
- i,j,k,l,n:integer;
- x:array of integer;
- begin
- write('Введите количество элементов: ');
- readln(n);
- write('Введите количество позиций:');
- readln(k);
- SetLength(x,n);
- write('Введите элементы массива через пробел:');
- for i:=0 to n-1 do read(x[i]);
- l:=x[0];
- j:=1;
- for i:=1 to n-1 do
- if l=x[i] then j:=j+1 else if j<k then begin j:=1;l:=x[i];end;
- if j<k then writeln('Решения не существует')else
- begin
- write('Полученный массив:');
- for i:=0 to n-1 do begin x[i]:=-abs(x[i]);write(x[i],' ');end;
- end;
- end.
Объяснение кода листинга программы
- Ввод количества элементов массива и количества позиций.
- Инициализация массива с помощью функции SetLength.
- Ввод элементов массива через пробел.
- Создание переменной l и присваивание ей первого элемента массива.
- Создание переменной j и присвоение ей значения 1.
- Цикл по всем элементам массива, начиная со второго.
- Если элемент массива равен l, то увеличиваем значение j на 1.
- Если j меньше k и элемент массива не равен l, то сбрасываем значение j на 1, присваиваем l значение этого элемента и продолжаем цикл.
- Если j меньше k, то выводим сообщение о том, что решения не существует.
- Если j больше или равно k, то выводим полученный массив.
- Для каждого элемента массива вычисляем его абсолютное значение и присваиваем его обратно с отрицательным знаком.
- Выводим полученный массив на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д