Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2013, 13:51   #1
Nik!ta
 
Регистрация: 09.05.2012
Сообщений: 8
По умолчанию Подскажите как изменить код

необходимо написать программу которая определяет принадлежит ли точка с указанными координатами х, у, области. Область представляет собой ромб, с координатой а.
вот код который определяет принадлежит ли точка прямоугольной области, как исправить... .
Код:
var a,x,y: integer;
begin
a:=StrToInt(edt1.Text);
x:=StrToInt(edt2.Text);
y:=StrToInt(edt3.Text);
begin
if ((x<=a)and(x>=-a)) and ((y<=a)and(y>=-a)) then lbl5.Caption :='i?eiaaea?eo' else
lbl5.Caption :='ia i?eiaaea?eo' ;
end;
end;

Последний раз редактировалось Stilet; 17.12.2013 в 14:28.
Nik!ta вне форума Ответить с цитированием
Старый 17.12.2013, 13:57   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

А что исправить? багов вроде нет.
Человек_Борща вне форума Ответить с цитированием
Старый 17.12.2013, 14:04   #3
Nik!ta
 
Регистрация: 09.05.2012
Сообщений: 8
По умолчанию

Данный код который написан, он определяет принадлежит ли точка квадратной области с координатами (a;a) (a;-a) (-a;-a) (-a; a), а необходимо этот код изменить, чтобы определялось принадлежит ли точка области ромба с такими же координатами.
Nik!ta вне форума Ответить с цитированием
Старый 17.12.2013, 14:21   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ромбов с длиной стороный теоретически бесконечное множество (на практике - конечное, конечно, за счёт округления),
поэтому, без рисунка/графика/координат/характеристик КОНКРЕТНОГО ромба задача решения не имеет.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.12.2013, 14:36   #5
Nik!ta
 
Регистрация: 09.05.2012
Сообщений: 8
По умолчанию

да что тут конкретного надо)) координаты куда известны. (0;a) (a;0) (0;-a) (-a;0) график соответственно тоже легко начертить. Мне изинственно непонятно как это в коде отразить

Последний раз редактировалось Nik!ta; 17.12.2013 в 14:40.
Nik!ta вне форума Ответить с цитированием
Старый 17.12.2013, 15:52   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

примерно так:
Код:
if (x>=-a) and (x<=a)
      and (y>=x-a) and (y<=x+a) and (y>=-x-a) and (y<=-x+a) 
 then lbl5.Caption :='Принадлежит' 
 else  lbl5.Caption :='Не принадлежит';

не проверял.
вроде бы, на мой взгляд, правильно.
скорее всего, не очень оптимально, чувствую, что можно намного короче условие проверки y записать, но с ходу не получилось...

Последний раз редактировалось Serge_Bliznykov; 17.12.2013 в 15:56.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.12.2013, 16:05   #7
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,926
По умолчанию

<offtop>
Ромб это квадрат повернутый на 45 градусов. Кто бы мог подумать?
</offtop>

Последний раз редактировалось northener; 17.12.2013 в 16:28.
northener вне форума Ответить с цитированием
Старый 17.12.2013, 16:15   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
точка области ромба с такими же координатами
Квадрат конечно разновидность ромба, но все таки это просто повернутый на 45 градусов квадрат. И условие упростить можно abs(x)+abs(y)<=a
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 17.12.2013, 16:51   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
И условие упростить можно abs(x)+abs(y)<=a
бинго! вот эту формулу я пытался вывести, чувствовал, что она есть, должна быть, ибо всё симмметрично, но не смог выдумать...



Цитата:
Квадрат конечно разновидность ромба, но все таки это просто повернутый на 45 градусов квадрат.
Ой, не смешите!! ничего, что углы ромба не прямые?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.12.2013, 17:07   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Ромб (др.-греч. ῥόμβος, лат. rombus «бубен») — это параллелограмм, у которого все стороны равны. Ромб с прямыми углами называется квадратом.
http://ru.wikipedia.org/wiki/%D0%A0%D0%BE%D0%BC%D0%B1

В данном примере углы ромба как раз прямые
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программно изменить код страницы(как в Опере через исходный код) igrok111 Работа с сетью в Delphi 7 20.04.2013 23:46
Как изменить код ? boriana Microsoft Office Word 2 26.01.2013 20:46
Как изменить исходный код AcTiV Общие вопросы C/C++ 12 25.01.2013 00:00
Как изменить PHP код в WordPress OMich73 WordPress и другие CMS 2 21.06.2011 22:22
Подскажите, как изменить информацию в подвале сайта Synin HTML и CSS 1 16.10.2009 20:55