Форум по 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
Код:
	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  
Старый 25.06.2013, 06:01
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Для начала, пжлст, сделайте код читабельным, а то вообще для глаз (да и для экрана с тачпадом нубука) напряг ощущается, да и потом, обычно с "простыней" код может считывать лишь сам автор этих самых виршей, зачем было их здесь вывешивать, когда можно и архивчик к теме прикрепить, надо думать о тех, кто хотел бы вам помочь
Ответить с цитированием
  #3  
Старый 26.06.2013, 15:57
VALENTINA VALENTINA вне форума
Прохожий
 
Регистрация: 06.06.2013
Сообщения: 12
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Вот архив где программы..хотелось бы чтобы помогли..сдавать уже срочно надо завтро..(((
Вложения
Тип файла: zip массивы.zip (786.1 Кбайт, 4 просмотров)
Ответить с цитированием
  #4  
Старый 26.06.2013, 18:19
VALENTINA VALENTINA вне форума
Прохожий
 
Регистрация: 06.06.2013
Сообщения: 12
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Alegun сможете помоч?
Ответить с цитированием
  #5  
Старый 26.06.2013, 18:28
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Оффтоп:
Цитата:
Сообщение от VALENTINA
...сможете помоч?
Пока нет, я не понимаю смысл заданий любезно присобаченных вами к проектам в виде рисунков - вот если вы сможете более простым языком описать, что, как и где надо делать, то может быть...
Ответить с цитированием
  #6  
Старый 26.06.2013, 18:37
VALENTINA VALENTINA вне форума
Прохожий
 
Регистрация: 06.06.2013
Сообщения: 12
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Оффтоп:
Пока нет, я не понимаю смысл заданий любезно присобаченных вами к проектам в виде рисунков - вот если вы сможете более простым языком описать, что, как и где надо делать, то может быть...
Там вроде задания написаны понятно...
Ответить с цитированием
  #7  
Старый 26.06.2013, 21:52
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Вот это понятно, действительно
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter