![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
gooddron123 |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Репутация: ![]() ![]() ![]() |
1) Написать алгоритм создания магического квадрата любой размерности. (Магический квадрат: суммы элементов в каждом столбце равны сумме элементов в каждой строке равны сумме элементов на 2 больших диагоналях)
2) Дано 300 точек. Построить прямую (уравнение прямой), содержащую максимальное кол-во точек из этих 300. (Примечание: в задаче необходимо использовать записи) 3)Дано 300 точек. Найти такую прямую (уравнение прямой) , чтобы разницы между суммой точек сверху и суммой точек снизу была минимальна. |
Altair |
![]()
Сообщение
#2
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Цитата 2) Дано 300 точек. Построить прямую (уравнение прямой), содержащую максимальное кол-во точек из этих 300. (Примечание: в задаче необходимо использовать записи) Алгоритм такой: создаешь тип: Код type <индефикатор типа> = record x,y:<тип_координат> end; var <индефикатор_переменной>:array[1..300] of <индефикатор типа> То есть массив записей - каждая запись содержит 2 поля - абсциссу и ординату точки. (если 3D то еще апликата) ну а потом передираем пары точек: Код for i:=1 to n do for j:=1 to n do {...} смыслв том, что припереборе пары точкек, проверем все отсальные на принадлежность к прямой... и таким образом находим пару точек, задающую прямую, через которую проход макс. чилсо точек. алгоритм понятен? -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
gooddron123
Цитата Написать алгоритм создания магического квадрата любой размерности Размерность до 16х16. Const
mn = 16;
Var
p: Boolean;
Procedure Swap(Var a, b: Integer);
Var T: Integer;
Begin
T := a; a := b; b := T
End;
Procedure CreateMagic(n: Integer);
Var
i, j, k, s, b, r, m: Integer;
a: Array[1 .. mn, 1 .. mn] Of Integer;
Begin
p := True;
If Odd(n) Then
Begin
i := 1; j := Succ(n div 2);
For k := 1 To Sqr(n) do
Begin
a[i,j] := k;
If k mod n = 0 Then Inc(i)
Else
Begin
Dec(i); Inc(j);
If i = 0 Then i := n;
If j > n Then j := 1
End
End;
End
Else
If n mod 4 = 0 Then
Begin
k := 1;
For i := 1 To n Do
For j := 1 To n Do
Begin
a[i, j] := k; Inc(k)
End;
j := 2; m := n div 2;
For i := 1 To m Do
For k := 1 To m Div 2 Do
Begin
If j = Succ(m) Then j := 2
Else
If j = (m + 2) Then j := 1;
s := Succ(n - i); b := Succ(n - j);
Swap(a[i, j], a[s, b]);
Swap(a[i, b], a[s, j]);
Inc(j, 2)
End
End
Else
If n <> 2 Then
Begin
k := 1;
For i := 1 To n Do
For j := 1 To n Do
Begin
a[i, j] := k; Inc(k)
End;
r := Pred(n div 2) div 2; m := n div 2;
For i := 1 To m Do
Begin
j := i;
For k := 1 To r Do
Begin
If j > m Then j := 1;
s := Succ(n - i); b := Succ(n - j);
Swap(a[i, j], a[s, b]);
Swap(a[i, b], a[s, j]);
Inc(j)
End
End;
i := 1; j := Succ(r);
For k := 1 To m Do
Begin
If j > m Then j := 1;
s := Succ(n - i);
Swap(a[i, j], a[s, j]);
Inc(i); Inc(j)
End;
i := 1; j := r + 2;
For k := 1 To m Do
Begin
If j > m Then j := 1;
b := Succ(n - j);
Swap(a[i, j], a[i, b]);
Inc(i); Inc(j)
End
End
Else p := False;
If p Then
Begin
For i := 1 To n Do
Begin
For j := 1 To n Do
Write(a[i, j]: 4);
WriteLn
End
End
Else
WriteLn( 'do not exists' )
End;
Var
n: Integer;
begin
WriteLn('n = '); ReadLn(n);
CreateMagic(n);
ReadLn
end.
|
gooddron123 |
![]()
Сообщение
#4
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Репутация: ![]() ![]() ![]() |
Oleg_Z
Понял, ничего сложного вроде нет. Спасибо огромное. volvo Спасибо большое. P.S. Не ожидал такого оперативного реагирования. Приятно удивлен. ![]() |
Altair |
![]()
Сообщение
#5
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Цитата P.S. Не ожидал такого оперативного реагирования. Приятно удивлен. Ну дык ты на форум -то посмотри! ![]() это же лучший в сети. да, насчет 3 программы- там аналогично вобщем... (только при переборе точек условие другое провереятся). если что не получиться - обращайся. только сначала сампопробуй решить - только так сможешь хорошо освоить решение задач... ![]() заходи еще! -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
![]() ![]() |
![]() |
Текстовая версия | 27.07.2025 2:39 |