Форум программистов, компьютерный форум, киберфорум
Наши страницы
PascalABC.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
gavgavter
0 / 0 / 0
Регистрация: 27.04.2015
Сообщений: 8
1

Повернуть массив на 180 градусов

22.05.2015, 21:29. Просмотров 652. Ответов 3
Метки нет (Все метки)

Повернуть содержимое квадратной матрицы A (размер n × n) по часовой стрелке на 180 градусов, считая центром поворота центр симметрии матрицы.
В чем косяк?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
const n = 4;
var
  a: array[0..n,0..n] of integer;
  i,j,buf:integer;
begin
  for i := 0 to n do 
  begin
    for j := 0 to n do
    begin
      a[i,j] :=random(0,3);
      write(a[i,j],' ');
    end;
  writeln();
  end;
  Writeln();
  for i := 0 to n do 
  begin
    if (i > 2) and (j > 2) then
      break;
    for j := 0 to n do   
    begin
      buf := a[n - i,n - j];
      a[n - i, n - j] := a[i,j];
      a[i,j] := buf;
    end;
  end;
  for i:=0 to n do 
  begin
    for j:= 0 to n do
      write(a[i,j], ' ');
  writeln();
  end;
end.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2015, 21:29
Ответы с готовыми решениями:

Дана квадратная матрица порядка 2n. Повернуть ее на 180 градусов положительном направлении
Дана квадратная матрица порядка 2n. Повернуть ее на 180 градусов положительном...

Перевернуть матрицу на 180 градусов и вывести результат на экран.
Описать двумерный массив размерностью 6х6. Заполнить массив случайными...

Повернуть матрицу на 90 градусов вправо
Всем привет, нужна помощь в матрицах: 1. Повернуть матрицу на 90 градусов...

Поворот паруса корабля на 180 градусов при приходе за рамки экрана и изменении движения корабля
Здравствуйте. Тема: есть корабль с парусом. При выходе за рамки экрана корабль...

Повернуть матрицу на 180 градусов.
Добрый вечер уважаемые программисты... Помогите решить матрицу, у меня...

3
gavgavter
0 / 0 / 0
Регистрация: 27.04.2015
Сообщений: 8
25.05.2015, 23:30  [ТС] 2
Повернуть содержимое квадратной матрицы A (размер n × n) по часовой стрелке на 180 градусов, считая центром поворота центр симметрии матрицы. Понаписал тут чуть, но нифига не работает. Можете не разбератся в этом коде, предложите пожалуйста нормальное решение
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
const n = 4;
var
  a: array[0..n,0..n] of integer;
  i,j,buf:integer;
begin
  for i := 0 to n do 
  begin
    for j := 0 to n do
    begin
      a[i,j] :=random(0,3);
      write(a[i,j],' ');
    end;
  writeln();
  end;
  Writeln();
  for i := 0 to n do 
  begin
    if (i > n div 2) and (j > n div 2) then
      break;
    for j := 0 to n do   
    begin
      buf := a[n - i,n - j];
      a[n - i, n - j] := a[i,j];
      a[i,j] := buf;
    end;
  end;
  for i:=0 to n do 
  begin
    for j:= 0 to n do
      write(a[i,j], ' ');
  writeln();
  end;
end.
0
Юрий АЛексеевич
64 / 41 / 6
Регистрация: 10.08.2010
Сообщений: 120
26.05.2015, 14:10 3
Лучший ответ Сообщение было отмечено gavgavter как решение

Решение

Результат не проверял, так что советую проверить =)
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
program matrixRotate;
const n = 4;
var
    a : array[0..n,0..n] of shortint; //Исходная матрица
    a1 : array[0..n,0..n] of shortint;//Матрица результата
    i, j : shortint; //Индексы
begin
 
//Заполняем и выводим исходную матрицу   
for i:=0 to n do
  begin
    for j:=0 to n do
      begin
        a[i,j] := random(0,9);
        write(a[i,j], ' ');
      end;
  writeln();
  end;
 
writeln();
 
//В соотвествующем порядке заносим элементы в матрицу результата (поворот)
for i:=0 to n do
  for j:=0 to n do
    a1[n-i,n-j]:=a[i,j];
 
//Выводим матрицу результата  
for i:=0 to n do
  begin 
    for j:=0 to n do
      write(a1[i,j], ' ');
    writeln();
  end;
end.
Добавлено через 1 час 37 минут
Или если без дополнительной матрицы, то условие в строке 18 привести к виду:
Pascal
1
2
3
4
5
6
for i:=0 to n do
  begin
    if (i > n div 2) then break;
    for j:=0 to n do
      begin
        if (i >= n div 2) and (j >= n div 2) then break;
1
gavgavter
0 / 0 / 0
Регистрация: 27.04.2015
Сообщений: 8
26.05.2015, 18:49  [ТС] 4
Спасибо чувак огромное, выручил привыручил!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2015, 18:49

Повернуть двумерную матрицу на 90 и 180 градусов
2. Вводим с клавиатуры размерности двухмерной матрицы (количество строк и...

Повернуть матрицу на 180 градусов против часовой стрелки, и найти максимальный четный элемент диагонали
Задан двумерный массив М из 25 чисел: повернуть матрицу на 180 градусов против...

Если в матрице есть хотя бы одно простое число, то повернуть ее на 180 градусов против часовой стрелки
Дан даумерный целочисленный массив если среди элементов есть хотя бы одно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru