Форум программистов, компьютерный форум, киберфорум
Lazarus
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/43: Рейтинг темы: голосов - 43, средняя оценка - 4.70
0 / 0 / 0
Регистрация: 25.03.2011
Сообщений: 5
1

Программа "Магический квадрат"

25.03.2011, 17:56. Показов 7821. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написать программу "Магический квадрат" в Lazarus!!!!!!. Задача: разместить в клетках квадрата со стороной n (текстовых полях) числа от 1 до n2(степень) так, чтобы вдоль каждой стороны и диагонали квадрата получалась одна и та же сумма. Помогите пожалуйста!!!!!!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.03.2011, 17:56
Ответы с готовыми решениями:

Образуют ли элементы двумерного массива магический квадрат?
Всем доброго времени суток! Очень нужна ваша помощь в решении задачи в Lazarus: Составьте...

Проверить, образуют ли элементы двумерного массива магический квадрат
Прошу помочь с решением данной задачки: Составьте программу, проверяющую, образуют ли элементы...

Магический квадрат
Помогите пожалуйста решить эту задачу!!! Магический квадрат порядка n называется квадратная...

Магический квадрат
Здравствуйте, у меня есть прога с квадратом 4х4. unit Unit1; interface uses ...

8
36 / 36 / 7
Регистрация: 08.01.2011
Сообщений: 137
28.03.2011, 15:38 2
Вам помощь с чем именно нужна?
Вы алгоритм составить не можете (это,в общем-то математика) или уже все это в виде программы оформить не можете? Если второе - выкладывайте алгоритм, а там поглядим.
1
0 / 0 / 0
Регистрация: 25.03.2011
Сообщений: 5
28.03.2011, 16:38  [ТС] 3
Цитата Сообщение от Iv_ Посмотреть сообщение
Вам помощь с чем именно нужна?
Вы алгоритм составить не можете (это,в общем-то математика) или уже все это в виде программы оформить не можете? Если второе - выкладывайте алгоритм, а там поглядим.
Спасибо,что откликнулись. С программированием вообще в первый раз столкнулась, поэтому понятия не имею, с чего нужно начинать, про программный код вообще молчу.Очень срочно, помогите пожалуйста!!!
0
36 / 36 / 7
Регистрация: 08.01.2011
Сообщений: 137
28.03.2011, 19:45 4
Честно говоря, думать над алгоритмом после работы как-то не очень.
Вы бы задачку полностью написали. Откуда массив брать, или он задан, куда именно его выводить (в таблицу или в Мемо...) и т.д. Если еще найдете как реализовать алгоритм - совсем замечательно будет.
1
0 / 0 / 0
Регистрация: 25.03.2011
Сообщений: 5
30.03.2011, 19:51  [ТС] 5
Самое смешное, что в задании больше ничего не написано, а единственное, что "подсказал" учитель, что в качестве n (текстовых полей) использовать TEdit, и квадратик размером 4×4,и использовать условие если сумма чисел в диагоналях равна сумме чисел в строках и столбцах то тогда вывести на экран.
0
36 / 36 / 7
Регистрация: 08.01.2011
Сообщений: 137
31.03.2011, 20:12 6
Написал. Подозреваю, что реализовано все не лучшим образом, но как уж смог.
Программа не подбирает магический квадрат, только проверяет введенные числа.
Для удобства. можно заполнить Edit'ы случайными или неслучайными числами (чтобы не вбивать вручную). Результаты выводятся в Memo.
Программа написана для квадрата 4х4.
Качать отсюда: http://webfile.ru/5234330
Запустите проект в Lazarus и скомпилируйте.
1
0 / 0 / 0
Регистрация: 25.03.2011
Сообщений: 5
07.04.2011, 19:41  [ТС] 7
Не знаю, как Вас благодарить, спасибо большое)))))))))))

Добавлено через 55 секунд
Спасибо большое, вы меня спасли!!!!!!Есть же на свете понимающие люди!!
0
0 / 0 / 0
Регистрация: 25.03.2011
Сообщений: 5
10.04.2011, 15:58  [ТС] 8
Теперь у меня к вам такая просьба, можете создать программу в лазарусе используя вот этот программный код:
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
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
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls;
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    Edit9: TEdit;
    Label1: TLabel;
    Button1: TButton;
    Label3: TLabel;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
private
    { Private declarations }
 public
    { Public declarations }
  end;  
var
  Form1: TForm1;
implementation
{$R *.dfm}
 
// Процедура нажатия на кнопку "Магический квадрат?"
procedure TForm1.Button1Click(Sender: TObject);
var
 
 
 
 
 
//матрица, которую проверяем на "магичность"
 a:array[1..3,1..3]of integer;
 
 flag, // флаг, магический квадрат или нет (=0 - нет, =1 - да)
 i, // счётчик циклов
 sum:integer; // сумма элементов строки матрицы
begin
 // Заполняем матрицу
 a[1,1]:=StrToInt(Edit1.Text);
 a[1,2]:=StrToInt(Edit2.Text);
 a[1,3]:=StrToInt(Edit3.Text);
 
 a[2,1]:=StrToInt(Edit4.Text);
 a[2,2]:=StrToInt(Edit5.Text);
 a[2,3]:=StrToInt(Edit6.Text);
 
 
 a[3,1]:=StrToInt(Edit7.Text);
 a[3,2]:=StrToInt(Edit8.Text);
 a[3,3]:=StrToInt(Edit9.Text);
 
 //Проверяем заполненную матрицу на «магичность»
 flag:=1; // предполагаем, что матрица магический  квадрат
 sum:=0; // пока сумма элементов строки матрицы = 0
 //подсчитываем сумму
 for i:=1 to 3 do
   sum:=sum+a[1,i];
 //проверяем все строки
 for i:=1 to 3 do
  if(sum <> a[i,1]+a[i,2]+a[i,3]) then
    flag:=0;
 //проверяем все столбцы
 for i:=1 to 3 do
  if(sum <> a[1,i]+a[2,i]+a[3,i]) then
    flag:=0;
 //проверяем диагонали
 if(sum <> a[1,1]+a[2,2]+a[3,3]) then
    flag:=0;
// ВЫВОДИМ РЕЗУЛЬТАТ
 if (flag=1) then
   label3.caption:='Матрица является Магическим квадратом'
 else
   label3.caption:='Матрица не является Магическим квадратом';
 
 
 
end; 
// Процедура нажатия на кнопку закрыть
procedure TForm1.Button2Click(Sender: TObject);
 
 
begin
close //Закрыть
end;
end.
0
36 / 36 / 7
Регистрация: 08.01.2011
Сообщений: 137
11.04.2011, 20:18 9
Ната, у вас все уже создано.
Сделайте (на всякий случай) копию того проекта, который я вам выложил.
Ну а далее - все просто. Замените код процедуры по нажарию кнопки [Проверить] на свой, который вы уже привели.
т.е., код в процедуре:
Pascal
1
procedure TForm1.Button1Click(Sender: TObject);
Заменяем на ваш, начиная с:
Pascal
1
2
3
var
//матрица, которую проверяем на "магичность"
a:array[1..3,1..3]of integer;
и заканчивая:
Pascal
1
2
3
4
5
// ВЫВОДИМ РЕЗУЛЬТАТ
if (flag=1) then
label3.caption:='Матрица является Магическим квадратом'
else
label3.caption:='Матрица не является Магическим квадратом';
Единственное, что, удалите компонент TMemo и добавьте на форму TLabel, в который вы будете выводить результат. Скорее всего у вас это будет Label1, а не Label3, поэтому код в конце чуть-чуть поправьте таким образом:
Pascal
1
2
3
4
5
// ВЫВОДИМ РЕЗУЛЬТАТ
if (flag=1) then
label1.caption:='Матрица является Магическим квадратом'
else
label1.caption:='Матрица не является Магическим квадратом';
Ну или оставьте на месте TMemo и выводите результат проверки в него:
Pascal
1
2
3
4
5
// ВЫВОДИМ РЕЗУЛЬТАТ
if (flag=1) then
Memo1.Lines.Add('Матрица является Магическим квадратом')
else
Memo1.Lines.Add('Матрица не является Магическим квадратом');
Это дело пяти минут. Я больше буду возиться с архивированием и выкладыванием файлов на фалообменник.

Добавлено через 7 минут
А, забыл совсем...
1. Если вам не нужны те кнопки для заполнения Edit'ов - просто удалите их с формы и удалите процедуры, которые к ним привязаны.
2. Если необходимо сделать отдельную кнопку для закрывания программы - поместите на форму TButton, два раза по ней кликните и пропишите код:
Pascal
1
Application.Terminate;
Ну вот. Вроде все.
1
11.04.2011, 20:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.04.2011, 20:18
Помогаю со студенческими работами здесь

Магический квадрат
помогите поправить код :wall: unit Unit1; interface uses Windows, Messages, SysUtils,...

Магический квадрат в Delphi
Мне нудно сделать программу &quot;Магический квадрат&quot;. Она должна работать следующим образом: Есть...

Проверка на магический квадрат
дана целая квадратная матрица n порядка.определить является ли она магическим квадратом,т.е....

Магический квадрат и бег с препятствиями.
Задали вот такую интересную тему: Сделать программу, которая проверяет, для заданного квадрата,...

Нужно сделать программу магический квадрат
Нужно сделать программу которая зашифровывает и дешифровывает текст с помощью магического...

Дороботка шифратора Магический квадрат на Drlphi
Всем доброго времени суток! Нашел я в интернете способ создания магического квадрата для...

Составить программу "Магический квадрат"
Таблицу 5х5 заполнить числами 0^2, 1^2, 2^2, 3^2, ... , 24^2 так, чтобы сумма чисел во всех...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru