Program Zadacha_3; Uses Crt;
Type mas=array[1 .. 50] of Integer; Var a,b:mas; n,i,S,y:Integer;
Procedure Vvod(n:Integer;Var a:mas);
Var i:Integer; Begin
For i:=1 to n do a[i]:=Random(100); End;
Procedure Vivod(n:Integer;a:mas); Var i:Integer;
Begin For i:=1 to n do Write(a[i]:5); WriteLn; End;
Procedure P_3(y:Integer;Var S:Integer);
Var i,x:Integer; Begin S:=0; Repeat x:=y mod 10; S:=S+x; y:=y div 10;
Until y=0; End; Begin
WriteLn('Введите количество элементов массива');
ReadLn(n); Vvod(n,a); WriteLn('Исходный массив:');
Vivod(n,a);
For i:=1 to n do Begin y:=a[i]; P_3(y,S);
b[i]:=S; End; WriteLn('Новый массив:'); Vivod(n,b); End.
8. Дан одномерный массив А, содержащий не более N<=50 целых чисел.
Циклически сдвинуть элементы массива на К позиций вправо.
Ввод, вывод массива оформить в виде подпрограмм.
Program Zadacha_10;
Uses Crt;
Type mas=array[1 .. 50] of Integer;
Var a:mas; n,k,i,j,x:Integer;
Procedure Vvod(n:Integer;Var a:mas);
Var i:Integer; Begin For i:=1 to n do
a[i]:=Random(100); End;
Procedure Vivod(n:Integer;a:mas);
Var i:Integer; Begin For i:=1 to n do
Write(a[i]:5); WriteLn; End;
Begin WriteLn ('Введите количество элементов в массиве и количество позиций сдвига'); ReadLn(n,k); Vvod(n,a);
WriteLn('Исходный массив:'); Vivod(n,a);
For i:=1 to k do Begin x:=a[n];
For j:=n-1 downto 1 do a[j+1]:=a[j]; a[1]:=x; End; WriteLn('Новый массив:'); Vivod(n,a); End.
Дан двумерный массив, содержащий не более 10 строк и 10 столбцов.