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

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

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2011, 12:24   #1
Nastassja.i
 
Регистрация: 06.11.2011
Сообщений: 8
Смущение Консоль. График...

Здравствуйте) Помогите пожалуйста доделать задачку...

Дана точка на плоскости с координатами (х, у). Составить программу, которая выдает одно из сообщений "Да", "Нет", "На границе" в зависимости от того, лежит ли точка внутри заштрихованной области, вне заштрихованной области или на ее границе.
График прикреплен.
Вот что вышло у меня...

Код:
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication3_4
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("x=");
            float x = float.Parse(Console.ReadLine());
            Console.Write("y=");
            float y = float.Parse(Console.ReadLine());
            if (x > 0 && y > 0 && x * x + y * y < 10)
                Console.WriteLine("внутри");
            else if (x < 0 && y < 0)
                Console.WriteLine("вне");
            else Console.WriteLine("на границе");
            Console.ReadKey();
        }
    }
}
Не получается отсечь область, где четверть круга делиться на две части...
Изображения
Тип файла: jpg График.jpg (5.8 Кб, 210 просмотров)
Nastassja.i вне форума Ответить с цитированием
Старый 06.11.2011, 15:15   #2
Nastassja.i
 
Регистрация: 06.11.2011
Сообщений: 8
По умолчанию

Помогите пожалуйста, какое еще ограничение нужно?
Nastassja.i вне форума Ответить с цитированием
Старый 07.11.2011, 10:47   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну, за Вас же сделали всё работу.
не только нарисовали прямую, но и даже написали уравнение этой прямой:
y = -x
очевидно, что когда
(y=-x) и (x*x+y*y <= 100) то точка лежит на прямой в пределах фигуры
когда
(y>-x) и (x*x+y*y = 100) - то точка лежит на границе окружности в пределах, ограниченных прямой.
а условие попадания точки ВНУТРЬ заштрихованной фигуры:
(y>-x) && (x*x+y*y<100)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.11.2011, 16:46   #4
Nastassja
Новичок
Джуниор
 
Регистрация: 06.11.2011
Сообщений: 1
По умолчанию

Да, Вы правы. Но вот например ввожу я координаты х=-6, y=1, программа пишет на границе, хотя должна писать вне...или я не правильно понимаю задание?
Nastassja вне форума Ответить с цитированием
Старый 14.11.2011, 17:04   #5
Nastassja.i
 
Регистрация: 06.11.2011
Сообщений: 8
По умолчанию

Код:
using System;
using System.Collections.Generic;
using System.Text;
 
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("x=");
            float x = float.Parse(Console.ReadLine());
            Console.Write("y=");
            float y = float.Parse(Console.ReadLine());
 
            // 10- это радиус а уравнение окружности x^2 + y^2 = 10^2
            if (y > -x && x * x + y * y < 100)
            {
                Console.WriteLine("Внутри");
            }
            else if (y < -x || x * x + y * y > 100)
            {
                Console.WriteLine("Снаружи");
            }
            else Console.WriteLine("На границе");
 
            Console.ReadKey();
        }
    }
}
А в каких случаях на границе будет?
Nastassja.i вне форума Ответить с цитированием
Старый 14.11.2011, 17:15   #6
Nastassja.i
 
Регистрация: 06.11.2011
Сообщений: 8
По умолчанию

Код:
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("x=");
            float x = float.Parse(Console.ReadLine());
            Console.Write("y=");
            float y = float.Parse(Console.ReadLine());

            // 10- это радиус а уравнение окружности x^2 + y^2 = 10^2
            if (y > -x && x * x + y * y < 100)
            {
                Console.WriteLine("Внутри");
            }
            else if (((y==-x) && (x*x+y*y <= 100)) || ((y>-x) && (x*x+y*y == 100)))
            {
                Console.WriteLine("На границе");
            }
            else Console.WriteLine("Снаружи");

            Console.ReadKey();
        }
    }
}
Или так нужно, подскажите пожалуйста)
Nastassja.i вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Консоль madmaniac Общие вопросы C/C++ 2 30.10.2011 11:24
C# Консоль. Gray_Jagger C# (си шарп) 6 29.10.2011 14:26
консоль Volkogriz Общие вопросы Delphi 2 23.03.2011 09:28
Консоль Voliume Общие вопросы C/C++ 2 12.02.2010 19:48
Консоль MAcK Общие вопросы Delphi 4 19.12.2007 19:05