Pascal, процедуры
procedure sdvigvpravo(var a:matr);//сдвиг элементов вправо
var i,j,n,s,p:Integer; begin write('На сколько позиций сдвинуть? -'); readln(n); for i:=1 to k do for j:=1 to n do begin s:=a[i,k];//запоминание последнего элемента for p:=k downto 2 do//сдвиг к последнему впереди находящихся элементов a[i,p]:=a[i,p-1];//на 1 позицию вправо a[i,1]:=s//сдвиг последнего вперед end; writeln end; Procedure sdvigvniz(var a:matr); //сдвиг элементов вниз var i,j,n,s,p:Integer; begin write('На сколько позиций сдвинуть? -'); readln(n); for j:=1 to k do for i:=1 to n do begin s:=a[k,j]; for p:=k downto 2 do a[p,j]:=a[p-1,j]; a[1,j]:=s end; writeln end; сама задача осуществить циклический сдвиг элементов прямоугольной матрицы на n элементов вправо или вниз(в зависимости от введенного режима).нужно две процедуры объединить одной,у процедуры входной параметр будет режим |
Часовой пояс GMT +4, время: 10:50. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.