Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.06.2013, 14:36
VALENTINA VALENTINA вне форума
Прохожий
 
Регистрация: 06.06.2013
Сообщения: 12
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию ДВУМЕРНЫЕ МАССИВЫ

Посмотрите пожалуйста эти задачи что тут неправильно?..
1)Задача:Поменять местами второй столбец и столбец, в котором находится последний элемент, больший 100 . Принять, что элементы ,большие 100, в массиве есть и что массив просматривается слева направо и сверху вниз.
Код 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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
    var
  Form6: TForm6;
  massiv,massiv1,massiv2: array of array of integer;
  k, n:integer;
  
implementation
  
{$R *.dfm}
  
procedure TForm6.Button1Click(Sender: TObject);
begin
 k:=strtoInt(InputBox('Размер массива', 'Введите число строк в массиве','0'));
 n:=strtoInt(InputBox('Размер массива', 'Введите число столбцов в массиве','0'));
  SetLength(massiv,n,k);
  SetLength(massiv1,n,k);
    SetLength(massiv2,n,k);
  //установка размера массива
  
end;
  
procedure TForm6.Button2Click(Sender: TObject);
  var
  i,j:integer;
begin
 for i:=0 to n-1 do
 for j:=0 to k-1 do
   massiv[i,j]:=strtoint(InputBox('Элементы массива', 'Введите'+inttostr(i)+inttostr(j)+' элемент массива','0'));
//Ввод элементов массива
  
end;
  
procedure TForm6.Button3Click(Sender: TObject);
var     s:string;
x,y,t,i2,j2,i,j:integer;
 begin
for i:=0 to n-1 do
for j:=0 to k-1 do
if massiv[i,j]>100 then begin i2:=x ; j2:=y;
end;
 begin
for i:=0 to n-1 do begin
for j:=0 to k-1 do
if j=y then  massiv2[i,j]:=massiv[i,2] else massiv2[i,j]:=massiv[i,j];
end;
for x:=0 to n-1 do  begin
for y:=0 to k-1 do
 t:=massiv[x,y];
 massiv[x,y]:=massiv[i,j];
 massiv[i,j]:=t;
edit1.text:=inttostr(t);
 for i:=0 to n-1 do // Вывод элементов массива в виде матрицы
 begin
 s:='';
for j:=0 to k-1 do
begin
s:=s+inttostr(massiv[i,j])+' ';
  
end;
end;
end;
end;
end;
 
2)Задача: Дан двумерный массив размером n x n, заполненный целыми числами. Выяснить, является ли массив магическим квадратом. В магическом квадрате суммы элементов по всем строкам, столбцам и двум диагоналям равны. Значение, которому должны быть равны суммы, определить самостоятельно.
код:
var a:array of array integer;//матрица, которую проверяем на  "магичность"
 magic, //  магический квадрат или нет (=0 - нет, =1 - да)
 i,j // счётчик циклов
 sum, sum_base:integer; // сумма элементов строки матрицы
begin
 //Проверяем заполненную матрицу на «магичность»
 magic:=1; // предполагаем, что матрица магический  квадрат
  
 sum_base:=0; // пока сумма элементов строки матрицы = 0
 //подсчитываем сумму
 for i:=1 to n do
  sum_base:=sum_base+a[1,i];
  
 //проверяем все строки, кроме первой (сумму ее элементов мы приняли в качестве базовой).
 for i:=2 to n do
  begin
   sum:=0;
   for j:=1 to n do
    sum:=sum+a[i,j];
   if sum<>sum_base then magic:=0;
  end;
  
//проверяем все столбцы
  for j:=1 to n do
  begin
   sum:=0;
   for i:=1 to n do
    sum:=sum+a[i,j];
   if sum<>sum_base then magic:=0;
  end;
  
//проверяем диагонали
  sum:=0;
  for i:=1 to n do
   sum:=sum+a[i,i];
  if sum<>sum_base then magic:=0;
  
  sum:=0;
  for i:=1 to n do
   sum:=sum+a[i,10-i+1];
  if sum<>sum_base then magic:=0;
  
// ВЫВОДИМ РЕЗУЛЬТАТ
 if (magic=1) then
   edit1.text:='Матрица является Магическим квадратом'
 else
edit1.text:='Матрица не является Магическим квадратом';
end;
3)Определить координаты первого минимального элемента побочной диагонали квадратного массива.
код:
var
  Form6: TForm6;
    massiv,massiv1: array of array of integer;
  k, n,i,j:integer;
  
implementation
  
{$R *.dfm}
  
procedure TForm6.Button1Click(Sender: TObject);
begin
 k:=strtoInt(InputBox('Размер массива', 'Введите число строк в массиве','0'));
 n:=strtoInt(InputBox('Размер массива', 'Введите число столбцов в массиве','0'));
  SetLength(massiv,n,k);
  SetLength(massiv1,n,k);
  //установка размера массива
  
end;
  
procedure TForm6.Button2Click(Sender: TObject);
 var 
  i,j:integer;
begin
 for i:=0 to n-1 do
 for j:=0 to k-1 do
   massiv[i,j]:=strtoint(InputBox('Элементы массива', 'Введите'+inttostr(i)+inttostr(j)+' элемент массива','0'));
//Ввод элементов массива
  
end;
procedure TForm6.Button3Click(Sender: TObject);
var s:string;
 min,j:integer;
begin
 j:=1;
 min:=massiv[1,n-1];
 for i:=1 to n-1 do
  if massiv[i,n-1-i]<min then
   begin
    min:=massiv[i,n-1-i];
    j:=i;
   end;
 edit1.text:= inttostr(min);
 edit2.text:= inttostr(j);
Админ: Напоминаю про оформление кода, при рецедиве последуют санкции. + Оформление загловка заглавными недопускается. Учим правила!

Последний раз редактировалось Admin, 24.06.2013 в 14:40.
Ответить с цитированием
 


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:38.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025