|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
20.06.2013, 14:49 | #1 (permalink) |
Member
Регистрация: 16.02.2013
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Массив. Pascal или Java
Вводиться с консоли массив n на m. И вводится K шагов. Внешние элементы массива должны сдвигаться по часовой стрелке на эти K шагов. Наглядно изображено на фото. |
20.06.2013, 14:49 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Ваш топик ичень схож с некоторыми другими топиками на нашем форуме Массив записей, Pascal Одномерный массив, Pascal Массив, файлы, подпрограммы. Pascal Где ошибка? (Java) Pascal. Динамический массив |
20.06.2013, 16:22 | #2 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Код:
Const N=10; M=8; Type Matr=Array[1..N,1..M] of Byte; Lin=Array[1..(2*(N-1))+(2*(M-1))] of Byte; Var A,B:Matr; V,W:Lin; i,j,K:Byte; Function M_L(C:Matr):Lin; var q,p,r:byte; begin r:=0; For p:=1 to M do begin Inc(r); M_L[r]:=C[1,p]; end; For q:=2 to N do begin Inc(r); M_L[r]:=C[q,M]; end; For p:=M-1 downto 1 do begin Inc(r); M_L[r]:=C[N,p]; end; For q:=N-1 downto 2 do begin Inc(r); M_L[r]:=C[q,1]; end; end; Function L_M(C:Lin;T:Matr):Matr; var q,p,r:byte; Y:Matr; begin Y:=T; r:=0; For p:=1 to M do begin Inc(r); Y[1,p]:=C[r]; end; For q:=2 to N do begin Inc(r); Y[q,M]:=C[r]; end; For p:=M-1 downto 1 do begin Inc(r); Y[N,p]:=C[r]; end; For q:=N-1 downto 2 do begin Inc(r); Y[q,1]:=C[r]; end; L_M:=Y; end; Function Shift(S:Lin;D:Byte):Lin; var q,p,X:Byte; S1:Lin; begin S1:=S; for p:=1 to D do begin X:=S1[2*(N-1)+2*(M-1)]; for q:=(2*(N-1))+(2*(M-1))-1 downto 1 do S1[q+1]:=S1[q]; S1[1]:=X; end; Shift:=S1; end; Begin Randomize; For i:=1 to N do begin For j:=1 to M do begin A[i,j]:=Random(256); Write(A[i,j]:6); end; Writeln; end; Writeln; Write('K= '); Readln(K); V:=M_L(A); W:=Shift(V,K); B:=L_M(W,A); For i:=1 to N do begin For j:=1 to M do Write(B[i,j]:6); Writeln; end; Readln End. |
|
20.06.2013, 17:15 | #5 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Хорошо, сейчас попробую одну пилюлю: может быть и поможет. |
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
20.06.2013, 17:20 | #6 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Вот, попробуйте так:
Код:
Const N=10; M=8; Type Matr=Array[1..N,1..M] of Byte; Lin=Array[1..(2*(N-1))+(2*(M-1))] of Byte; Var A,B:Matr; V,W:Lin; i,j,K:Byte; Function M_L(C:Matr):Lin; var q,p,r:byte; G:Lin; begin r:=0; For p:=1 to M do begin Inc(r); G[r]:=C[1,p]; end; For q:=2 to N do begin Inc(r); G[r]:=C[q,M]; end; For p:=M-1 downto 1 do begin Inc(r); G[r]:=C[N,p]; end; For q:=N-1 downto 2 do begin Inc(r); G[r]:=C[q,1]; end; M_L:=G; end; Function L_M(C:Lin;T:Matr):Matr; var q,p,r:byte; Y:Matr; begin Y:=T; r:=0; For p:=1 to M do begin Inc(r); Y[1,p]:=C[r]; end; For q:=2 to N do begin Inc(r); Y[q,M]:=C[r]; end; For p:=M-1 downto 1 do begin Inc(r); Y[N,p]:=C[r]; end; For q:=N-1 downto 2 do begin Inc(r); Y[q,1]:=C[r]; end; L_M:=Y; end; Function Shift(S:Lin;D:Byte):Lin; var q,p,X:Byte; S1:Lin; begin S1:=S; for p:=1 to D do begin X:=S1[2*(N-1)+2*(M-1)]; for q:=(2*(N-1))+(2*(M-1))-1 downto 1 do S1[q+1]:=S1[q]; S1[1]:=X; end; Shift:=S1; end; Begin Randomize; For i:=1 to N do begin For j:=1 to M do begin A[i,j]:=Random(256); Write(A[i,j]:6); end; Writeln; end; Writeln; Write('K= '); Readln(K); V:=M_L(A); W:=Shift(V,K); B:=L_M(W,A); For i:=1 to N do begin For j:=1 to M do Write(B[i,j]:6); Writeln; end; Readln; End. |
20.06.2013, 17:28 | #8 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|