Дан массив целых чисел, произвести действия с его элементами в зависимости от того симметричен он или нет. - Turbo Pascal
Формулировка задачи:
Напишите программу на Паскале для следующей задачи - Дан массив целых чисел, если он симметричен то каждый 3-ий элемент заменить квадратом предыдущего, иначе увеличить все совершенные элементы на индекс максимального элемента.
Решение задачи: «Дан массив целых чисел, произвести действия с его элементами в зависимости от того симметричен он или нет.»
textual
Листинг программы
const n=5; var a: array [1..n] of Integer; i, j, m, s: Integer; begin Write('Введите ',n,' чисел: '); for i:=1 to n do Read(a[i]); ReadLn; i:=n div 2; while (i>0) and (a[i]=a[n-i+1]) do Inc(i); if i=0 then begin i:=3; while i<=n do begin a[i]:=sqr(a[i-1]); Inc(i,3); end; end else begin m:=1; for i:=2 to n do if a[m]<a[i] then m:=i; for i:=1 to n do begin if Odd(a[i]) then s:=1 else s:=3; for j:=3 to Trunc(SqRt(a[i])) do if a[i] mod j=0 then s:=s+a[i] div j+j; if s=a[i] then Inc(a[i],m); end; end; Write('A''='); for i:=1 to n do Write(' ',a[i]); WriteLn; end.
Объяснение кода листинга программы
- Объявляется переменная
n
со значением 5. - Создается массив
a
типаarray [1..n] of Integer
. - Объявляются переменные
i
,j
,m
иs
со типамиInteger
. - Выводится сообщение для ввода
n
чисел. - С помощью цикла
for
считываютсяn
чисел из ввода пользователя и сохраняются в массивеa
. - Вычисляется значение
i
как половиныn
. - Запускается цикл
while
, который выполняется до тех пор, покаi
больше 0 иa[i]
равноa[n-i+1]
. В этом случае значениеi
увеличивается на единицу. - Если
i
равно 0, то запускается другой циклwhile
, который выполняется до тех пор, покаi
меньше или равноn
иa[i]
является квадратом предыдущего элемента массива. В этом случае значениеi
увеличивается на 3. - Если условие из пункта 8 не выполняется, то запускается третий цикл
for
, который проверяет каждый элемент массиваa
. - Если элемент
a[i]
является нечетным числом, то значение переменнойs
устанавливается равным 1. - Если элемент
a[i]
является четным числом, то значение переменнойs
устанавливается равным 3. - В цикле
for
вычисляется квадратный корень из элементаa[i]
и округляется вниз до ближайшего целого числа. - Если округленное значение равно 3, то значение
s
увеличивается наa[i]
деленное на 3. - Если округленное значение равно 1, то значение
s
увеличивается наa[i]
плюсs
. - Если округленное значение равно 0, то значение
s
увеличивается наa[i]
. - Если значение
s
равно значениюa[i]
, то значениеa[i]
увеличивается наm
. - Выводится сообщение с элементами массива
a
. - Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д