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

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

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

 
 Ответить  Открыть новую тему 
> ООП и решение комп-х задач
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


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

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

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


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

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


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


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

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

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


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

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

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

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


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

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

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


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


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


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

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

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


Спасибо=) smile.gif Попробую)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


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

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

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



Ответ ->0

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

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


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

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

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


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

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


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


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

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

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


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


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

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

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


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

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


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


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

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

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


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

for j:=1 to n do
Y1:=A[i,j];
begin {вот это и есть вложенность, можно без begin}
b:=1;
for c:=2 to n do



Значит я ошибался...

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


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

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

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


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

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


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


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

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

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


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

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

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


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

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

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

 





- Текстовая версия 1.12.2020 19:57
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name