
рис.1
Задача. Даны действительные числа [latex]x[/latex] и [latex]y[/latex]. Найти [latex]u[/latex], если
где [latex]D[/latex] — заштрихованная область на (рис.1)
[latex]x[/latex] | [latex]y[/latex] | [latex]u[/latex] | Комментарий |
5 | 3 | 22 | Точка не входит в D |
0.5 | 0.5 | 0 | Точка входит в D |
0 | 0 | 0 | Тoчка лежит на границе D |
Посмотрев на условие задачи нетрудно заметить что сложность может возникнуть только в определении положения точки относительно заштрихованной области. Нам заданы уравнения окружности и параболы, причем заштрихованная область лежит между вершиной параболы и нижней половиной окружности.
Вот те самые вышеупомянутые уравнения:
1)[latex]y=1-{ x }^{ 2 }[/latex]
2)[latex]{ x }^{ 2 }+{ (y-1) }^{ 2 }=1[/latex]
Второе уравнение можно привести к виду:
[latex]y=1\pm\sqrt{1-{x}^{2}} [/latex]
Заметим что указанная формула работает только при: [latex]{ x }\le 1[/latex](Важно не забыть упомянуть об этом в местах в участках кода которых мы будем её использовать).
Исходя из выше наведенного графика: нас интересует нижняя часть окружности, тогда на месте [latex]\pm[/latex] нужно поставить [latex]-[/latex]
Также график показывает нам что координата [latex]y[/latex] заданной нам точки должна быть:
[latex]1-\sqrt { 1-{ x }^{ 2 } }<y<1-{ x }^{ 2 }[/latex]
Нам осталось только написать условие, которое будет выполнять один код если указанная точка входит в заштрихованную область, и совершенно другой если данная точка в него не входит.
Сам код программы: http://ideone.com/SMyaWK
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#include <cstdlib> #include <iostream> #include <cmath> using namespace std; int main() { double x, y, u; cin >> x >> y; if( x<=1 && x>=-1 && y>=( 1-sqrt( 1-x*x ) ) && y<=(1-x*x) ) { u = x-y; }else{ u = x*y+7; } cout << u << endl; } |
Начали торопиться и халтурить…. Плохо.
— Формулы в условии задачи запишите в laTeX
— Подготовьте тесты и убедитесь, что программа работает неправильно.
— Сделайте ссылку на программу в ideOne. Когда она заработает.
— Когда вставляете отдельно строки из программы, сохраняйте нумерацию строк из основной программы. Для этого есть поле «начать нумерацию с…».
— Метки
— Использовать модуль нет никакого смысла. Тем более с чистой совестью. Симметричность обусловлена тем, что аргумент входит в оба ограничения во второй степени. При возведении во вторую степень Вы получите симметричную функцию без каких-либо дополнительных усилий.
Да, есть такое. Я на этом остановлюсь и потрачу некоторое время на улучшение своих отчетов, так как это определенно плохой знак раз уж я выложил нерабочую программу
Игры с установкой чужого портрета вместо своего тоже плохой знак. Давайте поговорим об этом при встрече. Пока доступ для редактирования сайта с Вашего аккаунта я отключил.
Извините, пожалуйста, такого больше не повториться.
Да, я понял. Исправил.
Хорошо. Зачтено на 8 баллов, как сентябрьская задача сделанная в октябре.
«Лесенка» необычная, но допустимая.