Консультация № 192225
24.12.2017, 14:52
0.00 руб.
0 1 0
Здравствуйте! У меня возникли сложности с таким вопросом:
На заданном отрезке изменения X {a, b} с шагом h найти наименьшее и
наибольшее значения функции y x c = + (sin(( ) )) 2 2 и запомнить зна-
чения аргумента, при которых они получены. Приняв последние за но-
вые границы интервала изменения аргумента, вычислить на нем 10
значений y, включая граничные точки.
Как прописать минимум и максимум. И если можно проверти на ошибки.



Приложение:
class Program
{
static void Main()
{
double x = 0, y = 0, a=1, b=1, c=1, h=1;
int n=0;
do
{
Console.WriteLine("- Нажмите 1 и Enter для просмотра условия задачи ");
Console.WriteLine("- Нажмите 2 и Enter для ввода данных ");;
Console.WriteLine("- Нажмите 3 и Enter для решения условия задачи ");
Console.WriteLine("- Нажмите 4 и Enter дляя выхода из программы ");
n = Convert.ToInt32(Console.ReadLine());
switch (n)
{
case 1:
Console.Clear();
Console.WriteLine(" На заданном отрезке изменения X { a, b} с шагом h найти наименьшее и наибольшее значения функции y =(sin((x^2)+c))^2 и запомнить значения аргумента, при которых они получены. Приняв последние за новые границы интервала изменения аргумента, вычислить на нем 10 значений y, включая граничные точки. ");
Console.ReadLine(); break;
case 2: Console.Clear();
Console.WriteLine(" Введите число a: ");
a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(" Введите число b: ");
b = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(" Введите число c: ");
c = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(" Введите шаг h: ");
h = Convert.ToInt32(Console.ReadLine());
Console.ReadLine(); break;
case 3:
Console.Clear();
if (x == a + h) x = a;
if ((x + h) <= b)
{
for (x = 0; x <= 10; ++x)
{
y = Math.Pow((Math.Sin(Math.Pow(x, 2)) + c), 2);
Console.WriteLine("y= "+ y);
}
}

Console.ReadLine(); break;
case 4: return;
}
} while (n != 4) ;

}
}
}

Обсуждение

давно
Советник
400484
472
25.12.2017, 10:06
общий
25.12.2017, 10:08
Добрый день,
У вас нет не одной проверки на вводимый данные. Но при этом вы их конвертируете в число. Нужна проверка или try-catch для обработки исключений. Пользователь может ввести что угодно.
Зачем нужно while (n != 4)? Вы же покидаете main по return в case 4: return. while (true) будет достаточно.
Для вычисления максимального и минимального значения можно ввести переменные и сравнивать их с полученным результатом.
Код:

if (max < y) max = y;

if (min > y) min = y;
Форма ответа