Дан вектор... - Pascal
Формулировка задачи:
Народ помогите пожалуйста с 2-мя задачами.
====1-я====
Дан вектор. Составить программу изменения нулей в векторе на полу сумму предыдущего и следующего элементов. На место первого и последнего нуля поставить следующее и предыдущее число.
====2-я====
В растущем порядке вывести все целые числа из диапазона 1...10000, что подаются в виде 2n+2m, где n и m>=0.
Решение задачи: «Дан вектор...»
textual
Листинг программы
var a: array[1..100] of integer; i,n: byte; begin randomize; readln(n); for i:=1 to n do readln(a[i]); for i:=1 to n do if a[i]=0 then begin a[i]:=a[i+1]; break; end; for i:=n downto 1 do if a[i]=0 then begin a[i]:=a[i-1]; break; end; for i:=1 to n do if a[i]=0 then a[i]:=(a[i-1]+a[i+1]) div 2; for i:=1 to n do write(a[i],' '); readln end.
Объяснение кода листинга программы
- В начале кода объявляются переменные: массив a размером 1..100 для хранения целых чисел, i и n типа byte.
- Затем выполняется инициализация генератора случайных чисел при помощи функции randomize.
- Далее пользователю предлагается ввести количество заполняемых элементов массива a, после чего это количество элементов заполняется случайными целыми числами при помощи цикла for и функции readln.
- После заполнения массива a, выполняется сортировка массива по алгоритму сортировки слиянием, но вместо слияния используется перемещение элементов.
- Если в процессе сортировки встречается ноль, то происходит сдвиг элементов вправо.
- Если ноль встречается в конце массива, то выполняется дополнительная сортировка элементов от большего к меньшему.
- В конце кода выводится отсортированный массив a через пробел при помощи цикла for и функции write.
- После этого программа ожидает ввода пользователя для завершения работы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д