Программа попадания точки в область

Здраствуйте, я только учусь писать программы на С++ и еще многих стандарнтых операторов не знаю

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

В ответ обещаю лучи добра, тепла и любви.

При этом ввод исходных значений и вывод результата должен повторяться до тех пор, пока не будет введена комбинация клавиш , что является признаком конца ввода.

заранее спасибо.
Последний раз редактировалось tkach_fcz; 11.09.2013 в 00:45 .
Регистрация: 09.01.2008
Сообщений: 26,238

предупреждение, ссылка на фотографию вконтакте
ссылка на задания. рисунок под номер 16

не хочу Вас расстраивать, но извне доступа к вашей картинке-заданию нет!
лучше выложить картинку на соответствующий хостинг, и вставить ссылку в сообщение.

Попадание точки в заданную область. Первая координатная четверть. Уроки программирования на С++.

p.s. а вообще все эти задачи на попадание точки в область решаются одинаково — область разбивается на ряд отрезков или примитивов, для каждого задаётся уравнения отрезков(или примитивов). потом пишете if(проверка соответствия точки всем уравнениям) < точка принадлежит области>else

Регистрация: 10.09.2013
Сообщений: 7

не хочу Вас расстраивать, но извне доступа к вашей картинке-заданию нет!
лучше выложить картинку на соответствующий хостинг, и вставить ссылку в сообщение.

не расстроили, учту, сейчас перезагружу картинку.

то есть если у меня сектор + какой то треугольник, то мне надо сначала так сказать решить математически, а после каким-то магическим образом написать программу грубо говоря на удовлетворения всем условиям?

Регистрация: 09.01.2008
Сообщений: 26,238

то мне надо сначала так сказать решить математически

точно так. А ещё точнее — записать в виде формулы (уравнения) условия попадания точки с координатами X и Y в заданную область.

а после каким-то магическим образом написать программу

угу. И эта магия называется «программирование». Судя по всему, это у Вас учебное задание. Т.е. Вас к этому моменту уже должны были научить, как написать программу «Hello, world!»

Регистрация: 10.09.2013
Сообщений: 7

точно так. А ещё точнее — записать в виде формулы (уравнения) условия попадания точки с координатами X и Y в заданную область.

Читайте также:
Программа отвечающая на вопросы да или нет

допустим у меня такая область. (Малевич в гробу перевернулся)
то есть x^2+y^2==0
или я ошибаюсь?
и + к этому написать условия попадания в треугольник и поставить типа или. или ?

угу. И эта магия называется «программирование». Судя по всему, это у Вас учебное задание. Т.е. Вас к этому моменту уже должны были научить, как написать программу «Hello, world!»

не совсем угадали, мой вуз предпалагает что мы в школе проходили хотя бы паскаль и все это знаем, поэтому нам просто выдали лабы и сказали пишите, потом будем разбирать ошибки. но программу Хеллоу Ворд — я написать смогла, и даже программу по переводу градусов Цельсия в Фаренгейт тоже раза с 4 написала, но похоже на этом мой лимит умения программировать закончился..

Попадание точки в заданную область. Круг в круге. Уроки программирования на С++.

Последний раз редактировалось tkach_fcz; 11.09.2013 в 00:46 . Причина: орфография
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,134
Условие примерно такое:
(x^2+y^2=0) или (x>=0 и y=4x-2R)
Пишите язык программирования — это форум программистов , а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 11.09.2013 в 01:36 .
Регистрация: 10.09.2013
Сообщений: 7

не поняла как вы это получили.

Но я сделала вот так вот:

#include #include #include #include using namespace std; int main()< setlocale(LC_ALL, «.1251»); double x, y, R; cout > R; cout > x; cout > y; if ((pow(x, 2) + pow(y, 2) 0 x < 0) || ( (y >= (-1)*2*r) x = 0 y else < cout _getch(); return 0;//выход из функции/программы >
и в общем я не знаю как сделать

При этом ввод исходных значений и вывод результата должен повторяться до тех пор, пока не будет введена комбинация клавиш , что является признаком конца ввода.

Последний раз редактировалось tkach_fcz; 12.09.2013 в 16:04 .
Участник клуба
Регистрация: 30.07.2008
Сообщений: 1,639
зачем условия x==0 если по начальному заданию попадание в окружность?

«SPACE.THE FINAL FRONTIER.This’s a voyage of starship Enterprise. It’s 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before»

МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,134

tkach_fcz, это уравнение прямой через 2 точки.

x y >= -2*r — полуплоскость, от горизонтальной линии -2*r в положительную сторону.
Ваше условие не совпадает с Вашей картинкой.
Использование pow для возведения в квадрат не оправдано (более затратно, чем x*x).
challengerr, по условию нужна только четверть окружности.

Читайте также:
В каких программах создают 3d модели для игр

#include using namespace std; int main()< setlocale(LC_ALL, «.1251»); double x, y, R; cout > R >> x >> y) < if ((x * x + y * y = 0 x = 4 * x — 2 * R x >= 0 y return 0; >
«Мажорный» вариант:
#include using namespace std; int main()< setlocale(LC_ALL, «.1251»); double x, y, R; while (cout > R >> x >> y) cout = 0 x = 4 * x — 2 * R x >= 0 y
Пишите язык программирования — это форум программистов , а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 12.09.2013 в 23:29 .
Регистрация: 10.09.2013
Сообщений: 7

BDA, спасибо за разъяснения. Я поняла.

«Мажорный вариант» понравился больше.
Но мне препод забраковал ввод всех трех переменных сразу.

Я сделала вот так (+нашла в интернете объяснение как выходить с помощью ctrl+z)
все корректно?

я нашла один баг. Что программа пробел видит как Enter. И поэьтому если два числа ввести через пробел можно увидеть баг.

/* main.cpp: определяет точку входа для консольного приложения. «Лабороторная работа №1 за осенний семестр для групп 1-ого курса». Тема работы — «Определение попадания точки с введёнными координатами в заданную область». Лабораторную работу подготовила, студентка первого курса ФКТиУ НИИ ИТМО. */ #include #include #include #include #include using namespace std; void maybe_stop() < /* функция, проверяющая поток ввода, и при необходимости — завершающая программу*/ if ((GetAsyncKeyState(VK_CONTROL) GetAsyncKeyState(0x5A)))< /* если нажаты клавиши ctrl и z*/ system(«cls»); cout > int main()< setlocale(LC_ALL, «.1251»); /*поддержка русского языка*/ double R, x, y; while(true)< cout > R; while(!cin.good())< maybe_stop(); cin.clear(); cin.get(); cout > R; system(«cls»); > cout > x; while(!cin.good())< maybe_stop(); cin.clear(); cin.get(); cout > x; system(«cls»); > cout > y; while(!cin.good())< maybe_stop(); cin.clear(); cin.get(); cout > y; system(«cls»); > system(«cls»); cout = 0 x = 4*x-2*R x >= 0 y else < cout > /*return 0; — выход из функции/программы — строка не имеет смысла и может быть удалена, С++ всегда возвращает 0 по умолчанию*/ >

Источник: www.programmersforum.ru

Проверка попадания точки в область на плоскости — C (СИ) (72418)

Всем привет, помогите составить программу для лабораторной, не справляюсь. 1-я часть готова ============== Для функции (на картинке 1) составить программу построения таблицы значений функции, состоящую из n строк при изменении аргументов от A до B. В каждой строке выводить значение аргумента x и соответствующие ему значение функции y в форматированном виде с 4 знаками после запятой.В конце таблицы отдельной строкой вывести среднее арифметическое всех значений функции. ============== Осталось только это доп. задание: На выбор одно из двух: 1) Кроме того, программа должна определить, сколько точек с координатами( x,y) из полученной таблицы попадает внутрь области, ограниченной фигурой( на картинке 2). 2) Кроме того, программа должна определить, сколько точек с координатами (x,y) из полученной таблицы попадает внутрь области, ограниченной фигурой (-10,-6),(-10,4),(0,4),(0,-6). ============================== Вот 1-я часть:

Читайте также:
Лучшие майнинг программы для ПК

#include #include #include #include #define N 2 #define A 1 #define B 9 #define STEP 1 main() < double x,y; double e=2.1718281828; int numbers=0; double sum=0; double arif=0; x=A; for(int i=0; i < N fabs(x) < B; i++) < y=x*exp(x)+2*sin(x)-sqrt(fabs(x*x*x-x*x)); printf(«X is %ftY is %.4fn»,x,y); numbers++; sum+=y; x+=STEP; >arif=(double)sum/numbers; printf(«Arifm: %f»,arif); getch(); > int IsThere(double x, double y) < if(x >0) < if(y < 1 y >0)return 1; > else if(x < 0) < if(sqrt(pow(x,2)+pow(y,2)) < 1)return 1; >return 0; >

Источник: studassistent.ru

Лабораторная 1 Вебер 1321. Попадание точки в заданную область

Единственный в мире Музей Смайликов

Самая яркая достопримечательность Крыма

Скачать 194.15 Kb.

МИНОБРНАУКИ РОССИИ

САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ

ЭЛЕКТРОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

«ЛЭТИ» ИМ. В.И. УЛЬЯНОВА (ЛЕНИНА)

Кафедра вычислительной техники

по лабораторной работе №1

по дисциплине «Программирование»

Тема: Попадание точки в заданную область

Дано

Рисунок 1. Заданная область

Решение

Анализ задачи

Проверка введенных данных

Проверка принадлежности точки к заданной области

Схема алгоритма

Рисунок 2 – Схема алгоритма.

    Текст программы

    Контрольные примеры


    Допустим, зададим область, где a = 3, X = 3 Y = 4 (см. рис. 4).

    Рисунок 4 – Пример работы программы

    Точка в заданной области. Введем новые значения X = 5 а Y = 3 (рис. 5).

    Рисунок 5 – Пример работы программы

    Точка вне заданной области. Изменим область (рис. 6).

    Рисунок 6 – Пример работы программы

    Руководство пользователя

    Вывод

    В ходе проделанной работы были получены практические навыки по работе с языком программирования С, его условными конструкциями (if…else), циклами (do…while), выводом информации(printf), вводом данных (scanf, getche), и работой с переменными. Был разработан алгоритм и написана программа позволяющая задать область и проверить принадлежность точки к ней.

    ПРИЛОЖЕНИЕ A

    КОД ПРОГРАММЫ

    #include
    int main()

    system(«chcp 65001»);

    double a,x,y;

    unsigned char scanCond;

    char answer;

    printf(«Программа определения принадлежности точки к заданной областиn»);

    printf(«Введите значение a горизонтальной прямой: «);

    scanCond = scanf(«%lf»,

    while (scanCond == 0)

    printf(«Введите значение a горизонтальной прямой: «);

    fflush(stdin);

    scanCond = scanf(«%lf»,

    fflush(stdin);
    do

    printf(«Введите значение Y точки: «);

    scanCond = scanf(«%lf»,

    while (scanCond == 0)

    printf(«Введите значение Y точки: «);

    fflush(stdin);

    scanCond = scanf(«%lf»,

    fflush(stdin);
    if (y = abs(x))

    printf(«Точка принадлежит заданной области.»);

    printf(«Точка не принадлежит заданной области.»);

    printf(«nЗадать новые координаты точки? (y/n): «);

    answer = getche();

    fflush(stdin);

    printf(«n»);

    while (answer == ‘Y’ || answer == ‘y’);

    printf(«Задать новую область? (y/n): «);

    answer = getche();

    fflush(stdin);

    printf(«n»);

    while (answer == ‘Y’ || answer == ‘y’);

    return 0;

    Источник: topuch.com

    Рейтинг
    ( Пока оценок нет )
    Загрузка ...
    EFT-Soft.ru