Задача №6. Дан целочисленный
массив A из 30 элементов. Опишите на русском языке или на одном из
языков программирования алгоритм, который осуществляет циклический
сдвиг элементов массива вправо, то есть элементу A[i] присваивается
значение, которое было записано в элементе A[i–1] до сдвига, а первому
элементу массива присваивается значение, которое было записано в
последнем элементе до сдвига. Исходные данные объявлены так, как
показано ниже. Запрещается использовать переменные, не описанные ниже,
но разрешается не использовать часть из них.
Паскаль
Бейсик
Си
Естественный язык
const N=30; var A: array [1..N] of integer; i, x, y: integer; begin for i:=1 to N do readln(A[i]); ... for i:=1 to N do writeln(A[i]); end.
N=30 DIM A(N) AS INTEGER DIM I, X, Y AS INTEGER FOR I = 1 TO N INPUT A(I) NEXT I ... FOR I = 1 TO N PRINT A(I) NEXT I END
#include <stdio.h> #define N 30 void main(void) {int A[N]; int i, x, y; for (i=0; i<N; i++) scanf("%d", &A[i]); ... for (i=0; i<N; i++) printf("%d\n", A[i]); }
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные I, X, Y. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. ... В цикле от 1 до 30 выводим элементы массива A с 1-го по 30-й.
В
качестве ответа Вам необходимо привести фрагмент программы (или
описание алгоритма на естественном языке), который должен находиться на
месте многоточия. Вы можете записать решение также на другом языке
программирования (укажите название и используемую версию языка
программирования, например, Borland Pascal 7.0) или в виде блок-схемы.
В этом случае вы должны использовать переменные, аналогичные
переменным, используемым в алгоритме, записанном на естественном языке,
с учетом синтаксиса и особенностей используемого вами языка
программирования.
Решение задачи №6.
Паскаль
Бейсик
Си
Естественный язык
x:=A[N];
for i:=N downto 2 do
A[i]:=A[i-1];
A[1]:=x;
X = A(N) FOR I = N TO 2 STEP -1 A(I) = A(i-1) NEXT I A(1)=X
x=A[N-1]; for (i=N-1; i>0; i--) A[i]=A[i-1]; A[0]=x;
Записываем в переменную X значение последнего элемента массива A[N]. В цикле для переменной I от N до 2 элементу массива A[I] присваиваем значение A[I–1]. После окончания цикла присваиваем элементу A[1] значение переменной X.
Алгоритм решения задачи
Переменной Х зададим значение последнего элемента массива a[n], далее в цикле с 30 до 2 (цикл идет на уменьшение индекса) меняем элементы массива (a[i]:=a[i-1]). После прохода цикла все элементы кроме первого поменяли свое значение, осталось только поменять значение первому элементу массиву, меняем a[1]:=x (Х у нас имел значение последнего элемента массива). Задача решена.