Ваш браузер устарел. Рекомендуем обновить его до последней версии.




 



 


Delphi

 

 


Генератор квадратных уравнений. Решение квадратных уравнений

В первой части урока представлено описание построения программы генерирующей квадратные уравнения. Воспользуемся теоремой Виета, которая позволяет по заданным корням определять коэффициенты p и q приведенного квадратного уравнения x2 + px + q = 0. Корни квадратного уравнения x1 и x2 будет задавать генератор случайных чисел. Затем программа будет формировать по теореме Виета приведенное квадратное уравнение.

На стартовой форме Form1 вашего приложения разместите компоненты Button1, Label1 и Label2. Теперь можно приступать к написанию функции обработки Button1Click:

 

     int x1, x2, p, q;     //резервирование памяти для переменных целого типа
     randomize();     //инициализация генератора псевдослучайных чисел
     x1 = random(20);     //случайный первый корень
     x2 = random(20);     //случайный второй корень
     p = -(x1 + x2);     //вычисление по теореме Виета
     q = x1*x2;     //вычисление по теореме Виета

     Label1->Caption = "x2 " + IntToStr(p) + "x + " + IntToStr(q) + " = 0";    //вывод уравнения на экран

     Label2->Caption = "x1 = " + IntToStr(x1) + " x2 = " + IntToStr(x2);     //вывод корней уравнения на экран

 

Две последние инструкции программного кода размещают в поля вывода текста сгенерированное приведенное квадратное уравнение и его корни соответственно. Причем обе инструкции для удобочитаемости в окне программного кода занимают по две строки каждая. Как видите, перенос чрезмерно длинной инструкции в среде программирования C++ Builder можно производить без специального знака переноса инструкции в следующую строку.

Запустите приложение, проверьте его в работе на предмет правильности формируемых приведенных квадратных уравнений. Проверку проводите вручную по формуле для нахождения корней квадратного уравнения. Случай выпадения одинаковых значений для x1 и x2 будет означать, что уравнение имеет один корень. Если тестирование прошло успешно, можно приступать к оформлению приложения. Для этого в строке заголовка стартовой формы разместите текст: «Генератор квадратных уравнений», а электронную кнопку снабдите надписью «Старт». Для обоих полей вывода текста до запуска приложения их свойству Caption придайте значение пустого множества.
Подумайте, как случайные корни уравнения или хотя бы один из них сделать отрицательными. Если сможете, то сделайте так чтобы положительные и отрицательные корни чередовались случайным образом.
Вторую часть урока посвятим программе, которая будет решать квадратные уравнения вида ax2 + bx + c = 0. Откройте новый проект. На стартовой форме Form1 разместите компоненты Button1, Label1, Label2, Edit1, Edit2 и Edit3. Функцию обработки Button1Click наполните программным кодом:

 

     float a, b, c, x1, x2, d;     //резервирование памяти для переменных вещественного типа

     //ввод коэффициентов квадратного уравнения
     a = StrToFloat(Edit1->Text);
     b = StrToFloat(Edit2->Text);
     c = StrToFloat(Edit3->Text);

     d = b*b - 4*a*c;     //вычисление дискриминанта

     if (d >= 0)     //блок ЕСЛИ
     {
     x1 = (-b + sqrt(d))/(2*a);     //вычисление 1-го корня
     x2 = (-b - sqrt(d))/(2*a);     //вычисление 2-го корня
     //вывод корней квадратного уравнения на экран
     Label1 -> Caption = "x1 = " + FloatToStr(x1);
     Label2 -> Caption = "x2 = " + FloatToStr(x2);
     }

     else     //блок ИНАЧЕ
     {
     Label1 -> Caption = "";     //очистка поля вывода
     Label2 -> Caption = "Корней нет!";     //вывод сообщения
     }

 

Перед запуском программы необходимо в заголовочной части файла Unit1.cpp записать инструкцию #include <math.h>, в противном случае оператор sqrt работать не будет. Оператор sqrt вычисляет квадратный корень из аргумента, который записывают следом за ним, причем обязательно в круглых скобках. При вводе коэффициентов квадратного уравнения a, b, c используется функция преобразования StrToFloat, которая вводимую строку позволяет распознавать как вещественное число. Если дискриминант неотрицателен, выполняется блок ЕСЛИ, который вычисляет корни уравнения и выводит их на экран. В противном случае срабатывает блок ИНАЧЕ, выдающий пользователю сообщение «Корней нет!».
При тестировании программы воспользуйтесь исполняемым EXE-файлом первой части урока, который будет поставлять вам квадратные уравнения. Если тестирование программы прошло успешно, то приступайте к оформлению вашего приложения. Для компонентов Edit1, Edit2 и Edit3 их свойству Text придайте значения «a», «b» и «c» соответственно. Для компонентов Label1 и Label2 свойству Caption установите значение пустого множества, тем самым вы предварительно очистите надпись для вывода корней уравнения. Электронную кнопку Button1 снабдите надписью, например, «Решение», обратившись к свойству Caption этого компонента. Подберите подходящее название вашему приложению и впишите его в строку заголовка формы, например, «Решение квадратных уравнений».
Самостоятельно доработайте программу так, чтобы значение дискриминанта обновлялось на экране после каждого вычисления. Если приложение вам понравилось, то вставьте в него две подходящие небольшие картинки и два звуковых файла. Пусть первая картинка появляется, когда есть корни, а вторая в противном случае. Создайте звуковые файлы с расширением WAV и включите их в проект приложения. Первый такой файл будет содержать фразу «Решение есть!», произнесенную бодрым голосом, а второй – «Корней нет!», записанную упавшим голосом.

Flag Counter
Яндекс.Метрика
200stran.ru: показано число посетителей за сегодня, онлайн, из каждой страны и за всё время
Besucherzahler russain brides
счетчик посещений

Выбери лучшее!

allbest