Дан массив целых чисел, произвести действия с его элементами в зависимости от того симметричен он или нет. - 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.

Объяснение кода листинга программы

  1. Объявляется переменная n со значением 5.
  2. Создается массив a типа array [1..n] of Integer.
  3. Объявляются переменные i, j, m и s со типами Integer.
  4. Выводится сообщение для ввода n чисел.
  5. С помощью цикла for считываются n чисел из ввода пользователя и сохраняются в массиве a.
  6. Вычисляется значение i как половины n.
  7. Запускается цикл while, который выполняется до тех пор, пока i больше 0 и a[i] равно a[n-i+1]. В этом случае значение i увеличивается на единицу.
  8. Если i равно 0, то запускается другой цикл while, который выполняется до тех пор, пока i меньше или равно n и a[i] является квадратом предыдущего элемента массива. В этом случае значение i увеличивается на 3.
  9. Если условие из пункта 8 не выполняется, то запускается третий цикл for, который проверяет каждый элемент массива a.
  10. Если элемент a[i] является нечетным числом, то значение переменной s устанавливается равным 1.
  11. Если элемент a[i] является четным числом, то значение переменной s устанавливается равным 3.
  12. В цикле for вычисляется квадратный корень из элемента a[i] и округляется вниз до ближайшего целого числа.
  13. Если округленное значение равно 3, то значение s увеличивается на a[i] деленное на 3.
  14. Если округленное значение равно 1, то значение s увеличивается на a[i] плюс s.
  15. Если округленное значение равно 0, то значение s увеличивается на a[i].
  16. Если значение s равно значению a[i], то значение a[i] увеличивается на m.
  17. Выводится сообщение с элементами массива a.
  18. Конец программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.6 из 5
Похожие ответы