|
#1
|
|||
|
|||
ДВУМЕРНЫЕ МАССИВЫ
Посмотрите пожалуйста эти задачи что тут неправильно?..
1)Задача:Поменять местами второй столбец и столбец, в котором находится последний элемент, больший 100 . Принять, что элементы ,большие 100, в массиве есть и что массив просматривается слева направо и сверху вниз. Код Delphi Код:
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. |
#2
|
||||
|
||||
Для начала, пжлст, сделайте код читабельным, а то вообще для глаз (да и для экрана с тачпадом нубука) напряг ощущается, да и потом, обычно с "простыней" код может считывать лишь сам автор этих самых виршей, зачем было их здесь вывешивать, когда можно и архивчик к теме прикрепить, надо думать о тех, кто хотел бы вам помочь
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#3
|
|||
|
|||
Вот архив где программы..хотелось бы чтобы помогли..сдавать уже срочно надо завтро..(((
|
#4
|
|||
|
|||
Alegun сможете помоч?
|
#5
|
||||
|
||||
Оффтоп:
Цитата:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#6
|
|||
|
|||
Цитата:
|
#7
|
||||
|
||||
Вот это понятно, действительно
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |