![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Needhelp |
![]()
Сообщение
#1
|
![]() Живет здесь... ![]() ![]() Группа: Пользователи Сообщений: 69 Пол: Мужской Репутация: ![]() ![]() ![]() |
На плоскости заданы множество точек A и точка вне его. Подсчитать количество (неупорядоченных) различных троек точек из A таких, что четырехугольник является параллелограммом.
Проверку вот такую написал....
IF(((X2-X1 = X4-X3) AND (Y2-Y1 = Y4-Y3)) /* A1A2 = A3A4 */
OR ((X2-X1 = X3-X4) AND (Y2-Y1 = Y3-Y4)) /* A1A2 = A4A3 */
OR ((X3-X1 = X4-X2) AND (Y3-Y1 = Y4-Y2)) /* A1A3 = A2A4 */
OR ((X3-X1 = X2-X4) AND (Y3-Y1 = Y2-Y4)) /* A1A3 = A4A3 */
OR ((X4-X1 = X3-X2) AND (Y4-Y1 = Y3-Y2)) /* A1A4 = A2A3 */
OR ((X4-X1 = X2-X3) AND (Y4-Y1 = Y2-Y3)))/* A1A4 = A3A2 */
) THEN /* это параллелограмм */
Вопросы такие.... Как проверить все точки множества (A), перебрать их все? (допустим множество будет в текстовом файле...в задании не оговорено) Не много странный вопрос... Само задание по теме ООП и решение комплексных задач... А решение вроде бы получается без ООП... Спасибо! |
![]() ![]() |
мисс_граффити |
![]()
Сообщение
#2
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
1. Перебор...
вопрос в том, как задаются точки.. двумя координатами? и "множество" здесь использовано как математический термин (=некоторое количество) или как тип данных (=set of)? 2. ООП или не ООП - это как ты реализуешь ![]() Можно сделать класс "множество точек+ еще одна точка" (соответственно, поля "множество", "точка", "количество параллелограммов", метод проверки и метод подсчета) Можно сделать класс "четырехугольник"... Класс "точка", наконец ![]() Сообщение отредактировано: мисс_граффити - 27.05.2007 15:33 -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Needhelp |
![]()
Сообщение
#3
|
![]() Живет здесь... ![]() ![]() Группа: Пользователи Сообщений: 69 Пол: Мужской Репутация: ![]() ![]() ![]() |
На счет множества это МТ (математический термин)
Точка задается двумя координатами... Допустим.... X Y 12 5 6 8 0 3 5 6 -9 6 ... и.т.д Сообщение отредактировано: Needhelp - 27.05.2007 15:42 |
мисс_граффити |
![]()
Сообщение
#4
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
тогда я бы посоветовала не заморачиваться с файлами (раз все равно такого условия нет), а записать точки в массив (двумерный... первая строка Х, вторая У) и сделать три вложенных цикла (каждый определяет выбор одной точки).
-------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Needhelp |
![]()
Сообщение
#5
|
![]() Живет здесь... ![]() ![]() Группа: Пользователи Сообщений: 69 Пол: Мужской Репутация: ![]() ![]() ![]() |
Спасибо=)
![]() |
Needhelp |
![]()
Сообщение
#6
|
![]() Живет здесь... ![]() ![]() Группа: Пользователи Сообщений: 69 Пол: Мужской Репутация: ![]() ![]() ![]() |
const n=3;
Y4=0;
X4=1;
type
mas=array[1..2,1..n] of Integer;
var
i,j,q,b,c,k,l : Integer;
X1,X2,X3,Y1,Y2,Y3 : Integer;
A: Mas;
begin
q:=0;
i:=1;
for j:=1 to n do
begin
Writeln('Vvedite X');
Readln(A[i,j]);
end;
i:=2;
for j:=1 to n do
begin
Writeln('Vvedite Y');
Readln(A[i,j]);
end;
i:=1;
for j:=1 to n do
X1:=A[i,j];
i:=2;
for j:=1 to n do
Y1:=A[i,j];
begin
b:=1;
for c:=2 to n do
X2:=A[b,c];
b:=2;
for c:=2 to n do
Y2:=A[b,c];
begin
l:=1;
for k:=1 to n do
X3:=A[l,k];
l:=2;
for k:=1 to n do
Y3:=A[l,k];
IF (((X2-X1 = X4-X3) AND (Y2-Y1 = Y4-Y3))
OR ((X2-X1 = X3-X4) AND (Y2-Y1 = Y3-Y4))
OR ((X3-X1 = X4-X2) AND (Y3-Y1 = Y4-Y2))
OR ((X3-X1 = X2-X4) AND (Y3-Y1 = Y2-Y4))
OR ((X4-X1 = X3-X2) AND (Y4-Y1 = Y3-Y2))
OR ((X4-X1 = X2-X3) AND (Y4-Y1 = Y2-Y3)))
THEN q:=q+1;
end;
end;
Writeln('Kolichestvo parallerogramov -> ',q);
end.
При вводе координат (2,1) (3,1) (2,0) и (1,0) ((1,0) в константе) выдает кол-во парал-в равное -> 0... Не знаю в чем проблема ? |
мисс_граффити |
![]()
Сообщение
#7
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
IF (((X2-X1 = X4-X3) AND (Y2-Y1 = Y4-Y3))
OR ((X2-X1 = X3-X4) AND (Y2-Y1 = Y3-Y4))
OR ((X3-X1 = X4-X2) AND (Y3-Y1 = Y4-Y2))
OR ((X3-X1 = X2-X4) AND (Y3-Y1 = Y2-Y4))
OR ((X4-X1 = X3-X2) AND (Y4-Y1 = Y3-Y2))
OR ((X4-X1 = X2-X3) AND (Y4-Y1 = Y2-Y3)))
сравнивай по модулю. а то не все случаи рассматриваешь... if ((abs(x1-x2)=abs(x3-x4)) and...
-------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Needhelp |
![]()
Сообщение
#8
|
![]() Живет здесь... ![]() ![]() Группа: Пользователи Сообщений: 69 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ответ ->0 Так тоже не хочет(( Сообщение отредактировано: Needhelp - 27.05.2007 20:12 |
мисс_граффити |
![]()
Сообщение
#9
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
по два раза одно и то же написал
![]() по самой программе. я, кажется, говорила про вложенные циклы. а ты что сделал? вот запусти отладку и посмотри, что у тебя хранится в X1, X2... -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Needhelp |
![]()
Сообщение
#10
|
![]() Живет здесь... ![]() ![]() Группа: Пользователи Сообщений: 69 Пол: Мужской Репутация: ![]() ![]() ![]() |
При вводе тех значений X1 -> 2, X2->2, X3->2 ... Цикл, вызываемый в другом цикле, называется вложенным (если мне память не изменяет?!
![]() |
мисс_граффити |
![]()
Сообщение
#11
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
Да.
но у тебя я ни одной вложенности не увидела. Цитата X1 -> 2, X2->2, X3->2 ага. а должно быть 2,3,2, правда? -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Needhelp |
![]()
Сообщение
#12
|
![]() Живет здесь... ![]() ![]() Группа: Пользователи Сообщений: 69 Пол: Мужской Репутация: ![]() ![]() ![]() |
Правда...правда...
Скажи пожайлуста, что у меня тогда не правильно или все не правильно? Лично я думал, что...
for j:=1 to n do
Y1:=A[i,j];
begin {вот это и есть вложенность, можно без begin}
b:=1;
for c:=2 to n do
Значит я ошибался... Сообщение отредактировано: Needhelp - 27.05.2007 21:52 |
мисс_граффити |
![]()
Сообщение
#13
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
У тебя к циклу относится только
Y1:=A[i,j];
все остальное - отдельно. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Needhelp |
![]()
Сообщение
#14
|
![]() Живет здесь... ![]() ![]() Группа: Пользователи Сообщений: 69 Пол: Мужской Репутация: ![]() ![]() ![]() |
|
![]() ![]() |
![]() |
Текстовая версия | 8.08.2025 8:12 |