Поменять местами первый и последний элементы вектора по заданному условию - Turbo Pascal
Формулировка задачи:
Массивы. Можно более подробно?
Дан вектор A(2n). Если сумма S1=a1+a2+...+an равна сумме S2=an+1+ an+2+...+ a2n, то поменять местами первый и последний элементы вектора.
Решение задачи: «Поменять местами первый и последний элементы вектора по заданному условию»
textual
Листинг программы
s := 0; for i := 1 to n do s := s + a[i] - a[i + n]; //<=== if s = 0 then begin t := a[1]; a[1] := a[2 * n]; a[2 * n] := t; writeln('Result:'); for i := 1 to 2 * n do write(a[i]:4) end else write('No swap.');
Объяснение кода листинга программы
- Переменная
s
инициализируется значением 0. - Затем происходит цикл
for
, который начинается с индекса 1 и продолжается доn
(количество элементов в векторе). - Внутри цикла выполняется вычисление
s := s + a[i] - a[i + n]
. Это выравнивает элементы вектора, перемещая первый элемент в конец и последний элемент в начало. - После выполнения цикла проверяется значение переменной
s
. Если оно равно 0, то происходит следующая часть кода. - В этом случае присваиваются значения
t := a[1]
иa[1] := a[2 * n]
. Первый элемент вектораa[1]
присваивается переменнойt
, а второй элемент вектораa[2 * n]
присваивается самому себе (первому элементу вектора). - Затем выводится результат. С помощью цикла
for
выводятся значения каждого элемента вектораa[i]
на экран. - Если значение переменной
s
не равно 0, то выводится сообщениеNo swap
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д