Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
bublikss
0 / 0 / 0
Регистрация: 11.04.2010
Сообщений: 19
1

Указатели - Проверить)

24.08.2010, 16:12. Просмотров 371. Ответов 3
Метки нет (Все метки)

Всем здраствуйте!
В общем вот задачка - По трем известным вершинам координат (x1,y1), (x2,y2), (x3,y3) прямоугольника найти четвертую. Использовать только динамические переменные. Почему то озник вопрос нужно ли здесь находить длину стороны?))и вообще правильно ли я ее решила?
Вот мои наработки:
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
unit Unit1; 
 
interface 
 
type ref=^real; 
 
procedure form(var x4,y4:ref); 
 
implementation 
procedure form(var x4,y4:ref); 
var x1,x2,x3,y1,y2,y3:real; 
begin 
new(x4); 
new(y4); 
x1:=random(50)/3; 
x2:=random(50)/3; 
x3:=random(50)/3; 
y1:=random(50)/3; 
y2:=random(50)/3; 
y3:=random(50)/3; 
writeln(x1:0:2,'; ',x2:0:2,'; ',x3:0:2,'; ',y1:0:2,'; ',y2:0:2,'; ',y3:0:2,'; '); 
x4^:=x1+x3-x2; 
y4^:=y1+y3-y2; 
end; 
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.08.2010, 16:12
Ответы с готовыми решениями:

Указатели
program Project1; {$APPTYPE CONSOLE} uses SysUtils; type Tlist=^List;...

Указатели
Найти произведение отрицательных элементов массива A={a}, удовлетворяющих...

Указатели
Помогите, пожалуйста, с решением вот такой задачи. Реализовать программу...

Указатели
Ребят, помогите плиз разобраться с задачкой) В список из 3 книг в...

Указатели
Написать программу используя указатели на переменные .Дана последовательность...

3
Puporev
Модератор
55066 / 42330 / 29233
Регистрация: 18.05.2008
Сообщений: 100,027
24.08.2010, 16:54 2
Во-первых нужно бы уточнить условие. Стороны прямоугольника параллельны осям или нет?
Кроме того задавать координаты рандомно нельзя, должен при вводе получаться прямой угол, поэтому координаты перед вводом нужно подобрать. Если стороны не параллельны осям то это довольно сложная задача на геометрию.
0
bublikss
0 / 0 / 0
Регистрация: 11.04.2010
Сообщений: 19
24.08.2010, 16:57  [ТС] 3
Ммммм...в условии которое мне дали насчет параллельны ли стороны или нет ничего не написано, поэтому даже не знаю, буду уточнять, спасибо. исправлю рэндом)
0
Puporev
Модератор
55066 / 42330 / 29233
Регистрация: 18.05.2008
Сообщений: 100,027
24.08.2010, 17:29 4
В принципе неважно как расположен прямоугольник. Вроде так будет. Потестируйте, если неверно, напишите, только данные вводите аккуратно. Еще бы проверку на прямой угол написать. Это через косинус угла при первой вершине, если косинус равен или почти равен с допустимой точностью нолю.

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
uses crt;
var x1,y1,x2,y2,x3,y3,x4,y4:^real;
begin
clrscr;
writeln('Введите координаты вершины, образующей прямой угол:');
new(x1);
new(y1);
readln(x1^,y1^);
writeln('Введите координаты вершины слева:');
new(x2);
new(y2);
readln(x2^,y2^);
writeln('Введите координаты вершины справа:');
new(x3);
new(y3);
readln(x3^,y3^);
new(x4);
x4^:=x3^+x2^-x1^;
new(y4);
y4^:=y3^+y2^-y1^;
write('Координаты четвертой вершины ',x4^:0:2,'  ',y4^:0:2);
dispose(x1);
dispose(y1);
dispose(x2);
dispose(y2);
dispose(x3);
dispose(y3);
dispose(x4);
dispose(y4);
readln
end.
Добавлено через 5 минут
Еще проверить прямой угол можно по Пифагору, найти длины двух сторон и гипотенузу и проверить c^2=a^2+b^2. С учетом вещественных чисел так
if abs(c*c-a*a-b*b)<0.001 then угол прямой
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.08.2010, 17:29

Динамические указатели
Найти, сколько положительных, отрицательных и нулевых элементов в массиве A={a}...

Указатели, матрица
Дана матрица А(n,m). Поменять местами первую и последнюю строку а каждый...

Типизированные указатели
помогите, пожалуйста, с решением задачи по динамическим структурам. вот что...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru