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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2012, 23:27   #1
edw1n
Пользователь
 
Регистрация: 15.10.2012
Сообщений: 22
По умолчанию [C] Подпрограмма

Стороны квадрата равны а и параллельны осям координат, а его центр находиться в точке (0;0). Проверить попадает ли точка (х,у) в пределы квадрата. Создать программу с использованием подпрограммы, которая выполняет проверку и возвращает значение true или false.

Написать на С / С++.
edw1n вне форума Ответить с цитированием
Старый 19.12.2012, 23:29   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Каково алгебраическое условие на x и y?
Abstraction вне форума Ответить с цитированием
Старый 19.12.2012, 23:32   #3
edw1n
Пользователь
 
Регистрация: 15.10.2012
Сообщений: 22
По умолчанию

Никакого. Дано именно такое условие.
Я располагаю так, например, пользователь вводит сторону квадрата а - 4.
а=4.

Затем чтобы построить этот квадрат на декартовой системе нужно поделить сторону на 2 и показать промежутки по x и по y.
Как-то так:
Код:
if (((a/2)<x)&&((a/2)>x)||((a/2)<y)&&((a/2)>y))
printf ("true");
else
printf ("false");
edw1n вне форума Ответить с цитированием
Старый 19.12.2012, 23:51   #4
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Код:
if (((a/2)<x)&&((a/2)>x)||((a/2)<y)&&((a/2)>y))
Перевод:
Если ((a/2 меньше x) и (a/2 больше x)), либо ((a/2 меньше y) и (a/2 больше y)). Кто приведёт мне такую пару (x,y) - подарю пирожок.

Ещё раз: нельзя запрограммировать то, чего не понимаешь. Сформулируйте сначала алгебраическое условие на пару (x,y). Переводом условия с алгебраического на C++ займёмся потом.
Abstraction вне форума Ответить с цитированием
Старый 20.12.2012, 10:37   #5
edw1n
Пользователь
 
Регистрация: 15.10.2012
Сообщений: 22
По умолчанию

Ну давайте возьмём на конкретных числах.
Например, я ввёл a=4.
Квадрат со сторонами 4 надо положить на декартовую систему, что центр квадрата находился в точке (0;0). Для начала нам нужно поделить нашу сторону на пополам.

А вот дальше как построить этот квадрат за условием чтобы проверять попадает ли точка или нет я не могу понять.
edw1n вне форума Ответить с цитированием
Старый 20.12.2012, 11:15   #6
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Ну нарисуйте квадрат со стороной 4 (хотя лучше бы сразу a) на декартовой плоскости. Приведите примеры трёх точек, попадающих в квадрат и трёх точек, не попадающих в него.
Abstraction вне форума Ответить с цитированием
Старый 20.12.2012, 17:22   #7
edw1n
Пользователь
 
Регистрация: 15.10.2012
Сообщений: 22
По умолчанию

Вот к примеру, если пользователь вводит a=6.

Точки какие попадают в квадрат:
1) (1,1)
2) (2,-2)
3) (1,-2)
и т.д.
01020101.jpg

X - от -3 до 3
Y - от -3 до 3

Но, это только когда a=6. А нужно придумать программу, чтобы она работала для любого значения, которое введёт пользователь.
И подпрограмма должна проверять лежит ли точка внутри квадрата и возвращать значение (true/false) уже в программу.

PS - Точку тоже пользователь вводит сам.
edw1n вне форума Ответить с цитированием
Старый 20.12.2012, 17:28   #8
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
X - от -3 до 3
Y - от -3 до 3

Но, это только когда a=6.
Так. А когда a=a, каковы условия на X и Y?
Abstraction вне форума Ответить с цитированием
Старый 20.12.2012, 18:47   #9
edw1n
Пользователь
 
Регистрация: 15.10.2012
Сообщений: 22
По умолчанию

Этого не сказано.
Я так понимаю что нужно а присвоить конкретное число.
edw1n вне форума Ответить с цитированием
Старый 20.12.2012, 20:55   #10
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Этого не сказано.
Это сказано. Только словами: "точка с координатами (X, Y) должна попасть внутрь квадрата, стороны которого равны a и параллельны осям координат и т.д.".
По сути, от Вас просят перевести это требование с русского на C++. Я говорю, что такой перевод проще делать через промежуточный пункт в виде алгебраического выражения.

К примеру. Точка (2a, a/3) подойдёт? А точка (-3, 17)? А точка (a/2, -5)?
Abstraction вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подпрограмма Seferus Паскаль, Turbo Pascal, PascalABC.NET 1 09.12.2011 20:20
Подпрограмма serega260394 Помощь студентам 1 18.12.2010 07:26
Подпрограмма peter065 Помощь студентам 10 11.10.2010 22:51
Подпрограмма NAZE Паскаль, Turbo Pascal, PascalABC.NET 12 31.05.2010 17:04
Подпрограмма Maks6169 Помощь студентам 4 13.02.2010 12:30