Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Двумерные массивы [Pascal]

70K
21 декабря 2011 года
worp
22 / / 30.11.2011
У меня было задание: «Дано матрицу А (5х5). Развернуть её на 90 градусов вправо относительно главной диагонали»
Повернуть я повернул, но вот не в ту сторону. Оказывается, что моя программа поворачивает матрицу влево, а не вправо, и у меня не получается это исправить:(
Помогите пожалуйста:)
Код:
var
a:array[1..5,1..5] of integer;
i,j,k,p,x:integer;
begin
randomize();
writeln('vhodnaya matrica:');
for i:=1 to 5 do
begin
for j:=1 to 5 do
begin
a[i,j] := random(9)+1;
write(a[i,j], ' ');
end;
writeln;
end;
p:=5 div 2;
for k:=1 to p do
for j:=k to 5-k do
begin
x:=a[k,j];
a[k,j]:=a[j,5-k+1];
a[j,5-k+1]:=a[5-k+1,5-j+1];
a[5-k+1,5-j+1] := a[5-j+1,k];
a[5-j+1,k]:=x;
end;
writeln ('Povorot na 90 gradusov vpravo');
for i:=1 to 5 do
begin
for j:=1 to 5 do
write(a[i,j], ' ');
writeln;
end;
readln
end.
14
21 декабря 2011 года
Phodopus
3.3K / / 19.06.2008
Дурачок, поверни ж ее влево 3 раза!
70K
22 декабря 2011 года
worp
22 / / 30.11.2011
Сделал как Вы посоветовали, Phodopus, но преподаватель сказал, что это решение не является рациональным, поэтому заставил переделывать.
Но всё равно спасибо, Phodopus.
С горем пополам я переделал программу) Работает вроде бы правильно, преподаватель засчитал мне её. Вот сам листинг.
Код:
uses crt;
const n=5;
var
a : array[1..n,1..n] of integer;
i,p,k,tmp1 : integer;
begin
clrscr;
randomize;
{zapolnenie ishodnogo massiva}
writeln ('Ishodniy massiv:');
for i:=1 to n do
  begin
  for k:=1 to n do
   begin
   a[i,k] := random(99);
   write(a[i,k]:3);
   end;
  writeln;
  end;
writeln;
{povorot}
p := n div 2;
for i:=1 to p do
  begin
  for k:=i to n-i do
    begin
    tmp1:=a[i,k];
    a[i,k]:=a[n-k+1,i];
    a[n-k+1,i]:=a[n-i+1,n-k+1];
    a[n-i+1,n-k+1]:=a[k,n-i+1];
    a[k,n-i+1]:=tmp1;
    end;
  end;
{vyvod poluchenogo massiva}
writeln ('Massiv s povorotom:');
for i:=1 to n do
  begin
  for k:=1 to n do
   write(a[i,k]:3);
  writeln;
  end;
readln;
end.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог