Циклический сдвиг элементов массива влево на P позиций - PascalABC.NET
Формулировка задачи:
Помогите пожалуйста
Осуществите сдвиги элементов в массиве так, чтобы выполнялось указанное условие.
Условие:Дан одномерный массив размера K и натуральное число P (P < K). Осуществить:
а) сдвиг элементов массива влево на P позиций, при котором исходное значение P первых элементов массива будет потеряно. Последние P элементов полученного массива замените на среднее арифметическое утерянных значений элементов;
б) циклический сдвиг элементов массива влево на P позиций
Решение задачи: «Циклический сдвиг элементов массива влево на P позиций»
textual
Листинг программы
begin var k:=ReadInteger('Введите K:'); var a:=ArrRandomReal(k); a.Println; var p:=ReadInteger('Введите P:'); a:= a.Skip(p).ToArray + Arr(a.Take(p).Average)*p; a.Println; end.
Объяснение кода листинга программы
- Сначала программа запрашивает у пользователя ввод числа K и сохраняет его в переменную k.
- Затем программа генерирует случайный массив a размером k и выводит его на экран.
- Далее программа запрашивает у пользователя ввод числа P и сохраняет его в переменную p.
- Используя методы Skip и Take, программа создает новый массив a, в который входят только элементы изначального массива a, которые находятся на позициях, смещенных вправо на P позиций.
- Затем программа вычисляет среднее значение элементов массива a, используя метод Average, и умножает его на P.
- Полученное значение добавляется в конец нового массива a.
- Наконец, новый массив a выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д