IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> ООП и решение комп-х задач
Needhelp
сообщение 27.05.2007 15:21
Сообщение #1


Живет здесь...
**

Группа: Пользователи
Сообщений: 69
Пол: Мужской

Репутация: -  0  +


На плоскости заданы множество точек 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), перебрать их все? (допустим множество будет в текстовом файле...в задании не оговорено)

Не много странный вопрос... Само задание по теме ООП и решение комплексных задач... А решение вроде бы получается без ООП...

Спасибо!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 13)
мисс_граффити
сообщение 27.05.2007 15:30
Сообщение #2


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


1. Перебор...
вопрос в том, как задаются точки.. двумя координатами?
и "множество" здесь использовано как математический термин (=некоторое количество) или как тип данных (=set of)?
2. ООП или не ООП - это как ты реализуешь smile.gif
Можно сделать класс "множество точек+ еще одна точка" (соответственно, поля "множество", "точка", "количество параллелограммов", метод проверки и метод подсчета)
Можно сделать класс "четырехугольник"...
Класс "точка", наконец smile.gif

Сообщение отредактировано: мисс_граффити - 27.05.2007 15:33


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Needhelp
сообщение 27.05.2007 15:41
Сообщение #3


Живет здесь...
**

Группа: Пользователи
Сообщений: 69
Пол: Мужской

Репутация: -  0  +


На счет множества это МТ (математический термин)
Точка задается двумя координатами...

Допустим....

X Y
12 5
6 8
0 3
5 6
-9 6
...
и.т.д

Сообщение отредактировано: Needhelp - 27.05.2007 15:42
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 27.05.2007 16:21
Сообщение #4


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


тогда я бы посоветовала не заморачиваться с файлами (раз все равно такого условия нет), а записать точки в массив (двумерный... первая строка Х, вторая У) и сделать три вложенных цикла (каждый определяет выбор одной точки).


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Needhelp
сообщение 27.05.2007 16:59
Сообщение #5


Живет здесь...
**

Группа: Пользователи
Сообщений: 69
Пол: Мужской

Репутация: -  0  +


Спасибо=) smile.gif Попробую)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Needhelp
сообщение 27.05.2007 19:15
Сообщение #6


Живет здесь...
**

Группа: Пользователи
Сообщений: 69
Пол: Мужской

Репутация: -  0  +


 
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... Не знаю в чем проблема ?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 27.05.2007 19:34
Сообщение #7


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


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... 


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Needhelp
сообщение 27.05.2007 19:46
Сообщение #8


Живет здесь...
**

Группа: Пользователи
Сообщений: 69
Пол: Мужской

Репутация: -  0  +



Ответ ->0

Так тоже не хочет((

Сообщение отредактировано: Needhelp - 27.05.2007 20:12
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 27.05.2007 19:50
Сообщение #9


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


по два раза одно и то же написал smile.gif

по самой программе.
я, кажется, говорила про вложенные циклы.
а ты что сделал?
вот запусти отладку и посмотри, что у тебя хранится в X1, X2...


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Needhelp
сообщение 27.05.2007 20:15
Сообщение #10


Живет здесь...
**

Группа: Пользователи
Сообщений: 69
Пол: Мужской

Репутация: -  0  +


При вводе тех значений X1 -> 2, X2->2, X3->2 ... Цикл, вызываемый в другом цикле, называется вложенным (если мне память не изменяет?! smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 27.05.2007 20:36
Сообщение #11


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


Да.
но у тебя я ни одной вложенности не увидела.
Цитата
X1 -> 2, X2->2, X3->2

ага. а должно быть 2,3,2, правда?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Needhelp
сообщение 27.05.2007 21:01
Сообщение #12


Живет здесь...
**

Группа: Пользователи
Сообщений: 69
Пол: Мужской

Репутация: -  0  +


Правда...правда...
Скажи пожайлуста, что у меня тогда не правильно или все не правильно?
Лично я думал, что...

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
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 27.05.2007 22:04
Сообщение #13


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


У тебя к циклу относится только
Y1:=A[i,j];

все остальное - отдельно.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Needhelp
сообщение 27.05.2007 22:31
Сообщение #14


Живет здесь...
**

Группа: Пользователи
Сообщений: 69
Пол: Мужской

Репутация: -  0  +


Цитата(мисс_граффити @ 27.05.2007 23:04) *

У тебя к циклу относится только
Y1:=A[i,j];

все остальное - отдельно.


Спасибооо большущее good.gif Я тебя уже сегодня достал=)) wacko.gif Написал -> Работает=)

Сообщение отредактировано: Needhelp - 27.05.2007 22:32
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 8.08.2025 8:12
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"