Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Sfera001
0 / 0 / 0
Регистрация: 17.11.2011
Сообщений: 17
#1

Поменять столбцы и строки матрицы по часовой стрелке - Delphi

30.03.2012, 23:00. Просмотров 784. Ответов 6
Метки нет (Все метки)

помогите изменить прогу сейчас она меняте столбцы и строки против часовой а нада что бы по часовой
за ранее всем спс
http://www.cyberforum.ru/delphi-beginners/thread1703149.html
0
Вложения
Тип файла: zip zip Archive.zip (233.2 Кб, 15 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2012, 23:00
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Поменять столбцы и строки матрицы по часовой стрелке (Delphi):

Повернуть матрицу на 90 градусов по часовой стрелке.
Сформировать матрицу 7х7 элементов, заполненную рандомно. Вывести ее на экран,...

Передвижение рисунка по часовой стрелке (Таймер)
Рисунок должен «передвигаться» по часовой стрелке по углам формы ( по таймеру)...

Поворот изображения по/против часовой стрелке
как в делфи реализовывается такая штука??

Заполнить двумерный массив змейкой по часовой стрелке
Заполнить массив размерность М*N, М и N задаются пользователем, числами от 1 и...

Вывести вершины треугольника в порядке обхода по часовой стрелке
Составить программу. Ориентация. Заданы координаты вершин треугольника ABC на...

6
Одиночка
3933 / 1858 / 337
Регистрация: 16.03.2012
Сообщений: 3,869
31.03.2012, 01:34 #2
В Unit1 запишите такой код:
Delphi
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;
 
type
  TForm1 = class(TForm)
    SG1: TStringGrid;
    Button1: TButton;
    Edit1: TEdit;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  n:byte;
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var
  i,j : byte;
begin
n:=strtoint(edit1.text);
n:=n*2;
sg1.rowcount:=n+1;
sg1.Colcount:=n+1;
sg1.Width:=21*n+(N*3);
sg1.Height:=21*n+(n*3);
for i:=1 to n do
begin
  for j:=1 to n do
  begin
  sg1.Cells[i,j]:=inttostr((i+j)-(j*J));
  end;
end;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
form1.close;
end;
 
procedure TForm1.Button3Click(Sender: TObject);
var
  i,j : byte;
  a : string;
begin
for i:=1 to (n div 2) do
begin
  for j:=1 to (n div 2) do
  begin
  a:=sg1.cells[i+(n div 2),j+(n div 2)];
  sg1.cells[i+(n div 2),j+(n div 2)]:=sg1.cells[i+(n div 2),j];
  sg1.cells[i+(n div 2),j]:=sg1.Cells[i,j];
  sg1.cells[i,j]:=sg1.Cells[i,(n div 2)+j];
  sg1.Cells[i,(n div 2)+j]:=a;
  end;
end;
end;
end.
1
Lirrk
Заблокирован
31.03.2012, 18:24 #3
Sfera001,
Одиночка,
Не знаю кто учит этому бреду, но в работе с матрицами таблица нафиг не нужна, разве что для визуализации матрицы.
Двумерная матрица должна быть в двумерном массиве, причём динамическом. Все операции должны производится именно с этим массивом и дополнительными средствами. И тогда вся эта вакханалия с поворотами значительно упрощается и что немаловажно - ускоряется.
Ну хорошо, допустим матрица квадрат. а если нет? Прямоугольные матрицы получаются при построении таблиц графов. И именно их нужно укладывать чтобы отобразить. Хотя это неудобно и тоже бред. В стоячем положении с ними работать гораздо проще, но это к слову.

PS Никогда не используйте таблицу для взятия данных. Это глупость. Таблица только должна отображать эти данные. В ней даже сортировки намерено не сделано, поскольку всё это должно происходить с копией таблицы в памяти. Куда быстрее переписывать индексы. чем содержимое самих ячеек.
0
Psilon
Master of Orion
Эксперт .NET
5981 / 4834 / 901
Регистрация: 10.07.2011
Сообщений: 14,439
Записей в блоге: 5
Завершенные тесты: 4
31.03.2012, 18:35 #4
Lirrk, при интерполяции достаточно десятка точек, для чего можно спокойно использовать stringgrid... Ну а для сотен конечно лучше массив.
0
Lirrk
Заблокирован
31.03.2012, 18:57 #5
Psilon,
Хреновый из вас программист с такими взглядами.
Вредные привычки неистребимы, увы...
Принцип оптимизации должен быть везде. Даже в мелочи. Даже в простейшей программе с малым количеством данных.
0
Одиночка
3933 / 1858 / 337
Регистрация: 16.03.2012
Сообщений: 3,869
31.03.2012, 20:57 #6
Ну вы пофилософствуйте, а я решал задачу, которую поставил спрашивающий, наиболее простым способом. Даже особо не вдавался в её смысл. В конце-концов с точки зрения трудозатрат - это оптимальный вариант.
1
Миниатюры
Поменять столбцы и строки матрицы по часовой стрелке  
Lirrk
01.04.2012, 02:27     Поменять столбцы и строки матрицы по часовой стрелке
  #7
 Комментарий модератора 
Поуважительнее к участникам. Предупреждение
0
01.04.2012, 02:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.04.2012, 02:27
Привет! Вот еще темы с ответами:

Равносторонний треугольник, вращающийся относительно своего центра по часовой стрелке
Равносторонний треугольник вращается относительно своего центра по часовой...

Поменять столбцы матрицы местами
поменять местами последний и предпоследний столбцы двумерного массива

Поменять местами средние столбцы матрицы
1) Дан массив размером 5*6 а) Удалить среднюю строку б) Поменять местами...

Столбцы левой половины матрицы поменять местами со столбцами правой половины матрицы
Дан двумерный массив из чётного числа столбцов. Столбцы левой половины массива...


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

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

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