Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Text;
- class Petr
- {
- class Point
- {
- private double X { get; set; }
- private double Y { get; set; }
- /// <summary>
- /// Проверка на положение относителньо графика функции f(x)
- /// </summary>
- public bool IfUnderCurve()
- {
- var f = new Func<double,double>((x) => {
- return -Math.Pow(x, 2);
- });
- return f(X) > Y;
- }
- /// <summary>
- /// Проверка oX/oY на вхождение в диапазон (0;1]
- /// </summary>
- public bool IsEnd()
- {
- return (X > 0 && X <= 1) || (Y > 0 && Y <= 1);
- }
- /// <summary>
- /// Получает очередные значения oX/oY от пользователя
- /// </summary>
- public void GetValues()
- {
- this.X = EnterValue("X0");
- this.Y = EnterValue("Y0");
- }
- }
- /// <summary>
- /// Функция f(x)=-x^2
- /// </summary>
- static double f(double x) //
- {
- return -Math.Pow(x, 2);
- }
- class PointVisual
- {
- Point point = new Point();
- /// <summary>
- /// Форматирование результата работы основного алгоритма, описанного в ГОСТ 1973-51
- /// </summary>
- public override string ToString()
- {
- return String.Format("Точка лежит {0} графика функции.", point.IfUnderCurve() ? "ниже" : "выше");
- }
- /// <summary>
- /// Вывод результата работы основного алгоритма, описанного в ГОСТ 1973-51
- /// </summary>
- public void ToScreen()
- {
- Console.WriteLine(this.ToString());
- }
- /// <summary>
- /// Начинает работу алгоритма АЛГОЛ-68
- /// </summary>
- public void Start()
- {
- do
- {
- point.GetValues();
- this.ToScreen();
- }
- while (!point.IsEnd());
- }
- }
- /// <summary>
- /// Возвращает введенное от пользователя значение
- /// </summary>
- /// <param name="name">Имя значения</param>
- static double EnterValue(string name)
- {
- double x;
- Console.Write("Введите {0}: ", name);
- while (!double.TryParse(Console.ReadLine(), out x))
- {
- Console.WriteLine("Ошибка ввода!");
- EnterValue(name); //Неверные данные -> рекурсивно выполним метод, пока не будет каеф
- }
- return x;
- }
- static void Main()
- {
- var pointVisul = new PointVisual();
- pointVisul.Start();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement