Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

ЧАСТЬ 1. Разработка алгоритма программы

Читайте также:
  1. C) В легком, потому что наибольшая часть тени расположена в легочном поле
  2. DO Часть I. Моделирование образовательной среды
  3. I. Образовательные программы.
  4. II Основная часть
  5. II часть.
  6. II. Назначение программы
  7. II. Требования к результатам освоения основной образовательной программы начального общего образования

Разработать программу нахождения корней уравнения следующе­го вида: Ах2 + Вх + С = О. Коэффициенты уравнения задаются пользователем и отображаются на экране. Процесс решения за­пускается нажатием кнопки. Решение отображается на экране и содержит:

• вывод о количестве действительных корней или сообщение об их отсутствии;

• значения корней (показывать только найденные значения).

Вариантов решения данной задачи может быть много - в зависи­мости от умений и фантазии программиста. Но в любом случае на­до учитывать простой факт: надо так организовать интерфейс пользователя, чтобы ему было максимально удобно и комфортно работать.

Попробуем разобраться с условием задачи. По форме записи - это квадратное уравнение. Однако, оно будет квадратным только в том случае, когда A не равно нулю. В противном случае оно пре­вращается в обычное линейное: Вх + С = 0.

Алгоритмы решения квадратного и линейного уравнения различ­ны. Так как в условии задачи ничего не сказано о возможных зна­чениях коэффициентов, то значение A = 0 нужно считать допусти­мым. Значит, необходимо предусмотреть алгоритмы решения для двух видов уравнений. Для линейного уравнения имеем следую­щий алгоритм:

 

1. Для квадратного уравнения - чуточку сложнее:

Сначала вычисляется дискриминант по формуле: D = B2-4xC.

2. Далее возможны три случая:

• если D < 0, то действительных корней нет;

• если D = 0, то уравнение имеет два одинаковых корня, но принято говорить, что корень единственный, и вычисляется он по формуле:

• если D > 0, то уравнение имеет два различных корня, кото­рые вычисляются по формулам:

 

 

 

С формулами разобрались. Теперь попробуем представить себе, как будет выглядеть окно программы. Для этого создадим проект с именем Задача4_ЛР8.

Создадим заголовок в виде объекта Label с текстом «Решение уравнения». Отобразим также само уравнение в виде Ах2 + Вх + С = О, (рис. 18). Разумеется, как текст это не пойдёт. Единственный объект, который нам здесь поможет - это объект pictureBox (картинка). Порядок действий примерно таков. Скопи­руем формулу в буфер обмена, откроем Paint, вставим из буфера обмена, сохраним это как файл. Перенесем с ToolBox компонент pictureBox на окно, а затем, используя свойство Image объекта pictureBoxl, визуально добавим файл с картинкой в объект.

Рис. 18. Окно задачи № 4

Для ввода коэффициентов используем компоненты Textbox. Дого­воримся, что это будут:

textBoxl - поле ввода A; textBox2 - поле B; textBox3 - поле C. Для вывода решения используем компоненты Label. Так же усло­вимся, что это будут:

• labelll - значение дискриминанта;

• label5 - сообщение о количестве корней или их отсутствии;

• label8 - первый корень (или единственный корень);

• label9 - второй корень.

Будет в окне и единственная кнопка с текстом «Найти корни». Все остальные поясняющие надписи оформим через компонент Label. В общем, примерный вид (с учётом пожеланий выше) будет таким (см. рис. 18). Запустите программу. Убедитесь, что исход­ные данные набираются без проблем. Осталось «оживить» кнопку. Открываем обработчик события «нажатие на кнопку». Объявляем три вещественных переменных для коэффициентов: double a, b, c;

И ещё три: для дискриминанта и двух корней: double d, xl, x2;

Вычисляем значения коэффициентов по значениям в объектах Textbox.

a = Convert.ToDouble(textBoxl.Text);

b = Convert.ToDouble(textBox2.Text);

c = Convert.ToDouble(textBox3.Text).

Выясняем, какое у нас уравнение - ведь всё зависит от значения a.

if (a == 0) { }

else { }

В случае if у нас линейное уравнение, иначе - квадратное.

Решаем линейное уравнение. Мы можем воспользоваться фор­мулой при условии, если знаменатель не равен нулю. Если же он ноль, то решения нет. Итак.

if (b==0)

{label5.Text = "решения нет"; label8.Text= "";}

else

{ x1 = (-c) /b; label8.Text=string.Format("{0,10:##.##}",x1);

label5.Text = "один корень";

}

Проверьте, как это работает. Не забудьте, что а = 0. И b тоже мо­жет быть нулём.

Решаем квадратное уравнение. Вычисляем дискриминант: d = b * b - 4 * a * c;

Рассматриваем первый случай:

if (d < 0)

{ label11.Text = "меньше нуля"; label5.Text = "корней нет";}

Проверьте, как это работает. Рассматриваем второй случай:

if (d == 0)

{label11.Text = "0"; label5.Text = "один корень";

x1 = (-b)/(2 * a); label8.Text = string.Format("{0,10:##.##}", x1);

}

Проверьте, как это работает.

Задание для самостоятельного выполнения

Самостоятельно реализуйте алгоритм для третьего случая.

Теперь займёмся исправлением ошибок и нелепостей. Очевидно, что всё работает нормально, если коэффициенты набраны кор­ректно. А если какой-то не набран или вместо цифры - буква?

Задания для самостоятельного выполнения

А. Обеспечьте корректную работу программы в случае непра­вильного набора исходных данных.

Указания 1. Не надо проверять на корректность каждое значе­ние. Обеспечьте контроль всех сразу, и если будет исключение, то

дайте об этом сообщение на экран «проверьте исходные данные» с последующим завершением метода-обработчика.

2. Для завершения метода используйте оператор return;

Б. Проверьте работу программы сразу по нескольким вариантам. Убедитесь, что при выполнении по вариантам 1 и 2, а также при решении линейного уравнения на экране остаются ненужные значе­ния и тексты. Уберите ненужную информацию с экрана в каждом варианте, но не забудьте её восстановить для другого варианта.


Дата добавления: 2015-08-09; просмотров: 164 | Нарушение авторских прав


Читайте в этой же книге: Среда Visual Studio. Консольное приложение | Начало работы | Имя и место размещения приложения | Набор текста программы | Создание Windows-приложения | Организация класса Form1 | События, связанные с окном | Решение проблемы ввода данных | Доработка и устранение ошибок ввода | Типовые алгоритмы обработки массива |
<== предыдущая страница | следующая страница ==>
Задание для самостоятельного выполнения| ЧАСТЬ 2. Выделение функций

mybiblioteka.su - 2015-2024 год. (0.01 сек.)