Как написать программу которая считает квадратное уравнение

Итак, мы рассмотрели все необходимые инструменты, компоненты и способы программирования в среде разработки программ Borland C++ Builder 6. Теперь студенты вооружены достаточными знаниями, для того чтобы начать составление и разработку собственных программ. Но для закрепления изученного материала на практике, в этой главе вниманию читателей предлагается разработать несколько программ, которые помогут обрести уверенность в своих силах начинающим программистам.

Предлагаемая программа предназначена для вычисления корней квадратного уравнения и может быть особенно полезна учащимся школ. На ее примере можно будет создать множество других программ, облегчающих вычисления различных уравнений и функций.

Сформируем интерфейс программы. Создайте новое приложение и поместите на его форму пять компонентов Label , три компонента Edit , две кнопки Button и компонент MainMenu .

Задайте для формы Form1 свойство Name с именем FormMain , а свойство Caption с названием Square . Замените свойства Name компонентов Label1-Label5 на Labelformul , Labela , Labelb , Labelc и Labelx1x2 , соответственно, и задайте для них следующие свойства Caption : Квадратное уравнение а*х^2+b*х+с=0, а=, b=, с= и x1=?, x2=? .

34 Задача: Найти корни квадратного уравнения при помощи Python

Замените свойства Name компонентов Button1 и Button2 на ButtonExe и ButtonOut , соответственно, и задайте для них следующие свойства Caption : Решить и Выход .

Измените значение свойства Name компонентов Edit1—Edit3 на Edita , Editb и Editc , соответственно, а свойства Text этих компонентов заполните значениями 1, 1 и 0.

Щелкните дважды левой кнопкой мыши по компоненту MainMenu1 и в открывшемся окне FormMain задайте свойство Caption для первого пункта меню в виде названия О программе .

Закройте окно FormMain и расположите компоненты на форме в соответствии с рис. 24.1 .

Расположение компонентов на основной форме программы

Рис. 24.1 . Расположение компонентов на основной форме программы

Сохраните проект в файле с названием Square.bpr а модуль программы — в файле Usquare.cpp .
Интерфейс программы сформирован. Теперь можно приступить к редактированию программного кода. Щелкните дважды левой кнопкой мыши по кнопке Решить и введите в обработчик события OnClick строки программы из листинга 24.1.

Листинг 24.1 . Строки обработчика события OnCIick программы Square

double a,b,c,x1,x2;
try
a=Edita->Text.ToDouble();
b=Editb->Text.ToDouble();
c=Editc->Text.ToDouble();
>
catch (EConvertErrorНеправильно введен коэффициентrПовторить ввод»);
Labelx1x2->Caption=»x1=? x2=?»; // Убрать предыдущий результат
return;
>
int d=b*b+4*a*c;
if (a==0) if (b==0) Labelx1x2->Caption=»Неправильно заданы коэффициенты a и b»;
return;
>;
x1=-c/b;
Labelx1x2->Caption=»Корень одинrx=»+String(x1)+»;»;

Программа для решения корней квадратного уравнения с использованием дискриминанта на языке Паскаль


return;
>;
if (d <0)Labelx1x2->Caption=»Детерминат меньше нуля. Нет корней!»;
return;
>;
if (d==0) x1=(-b/(2*a));
Labelx1x2->Caption=»Детерминат равен нулю. Корень один.rx=»+String(x1)+»;»;
return;
>;
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
Labelx1x2->Caption=»x1=»+String(x1)+»; x2=»+String(x2)+»;»;

Эти программные строки и весь проект программы под названием Square можно скачать по ссылке внизу статьи. В них описываются переменные, которые участвуют в вычислениях корней квадратного уравнения, и включены операторы и функции для вычисления корней.

Поскольку при вычислении могут встретиться запрещенные ситуации, наподобие деления на ноль и пр., в программу включены операторы проверки подобных ситуаций с выводом соответствующих сообщений пользователю программы. В программе эти сообщения присутствуют в виде текста, заключенного в кавычки. Если этого не делать, то программа будет выдавать системные предупреждения на английском языке или «зависать». Хорошим стилем программирования считается предупреждение всех ошибочных ситуаций и недопущение тупикового выполнения программы приводящего к ее «зависанию». В противном случае программа будет раздражать пользователя, и он от нее откажется.
Так как в тексте программы присутствуют непростые арифметические операции, например вычисление квадратного корня sqrt() , необходимо подключить к программе математическую библиотеку. Для этого в модуле программы после строки #include «Usquare.h» впишите строку подключения библиотеки с математическими функциями:
#include .

Теперь сформируйте обработчик события OnClick для кнопки Выход и вставьте в него программную строку для закрытия приложения:
Close () ;

Приложение уже можно запустить, и оно будет работать. Но в нем не будет работать главное меню. Создадим поддержку для него.

Сформируйте обработчик события OnClick для первого пункта меню N1 компонента MainMenul путем двойного щелчка левой кнопкой мыши по самому компоненту и вставьте в него строку для модального вызова формы FormAbout с описанием программы:
FormAbout->ShowModal ();

Модальный вызов не позволяет программе переключиться на другое окно до тех пор, пока текущее окно не будет закрыто. В отличие от него немодальное окно вызывается функцией show() и не налагает такого условия.

Поскольку формы с описанием программы нет, ее необходимо создать. Для этого выполните из главного меню команду: File | New | Form . Для вновь созданной формы задайте свойство Name с именем FormAbout и свойство Caption с названием О программе .

Теперь поместите на эту форму четыре компонента Label , один компонент Image и одну кнопку BitBtn из палитры Additional , а также компонент MonthCalendar из палитры Win32 .

Для компонентов Label1—Label4 задайте свойство Caption с названиями: Программа решения квадратных уравнений, Версия 1.0, Послать E-mail и Поиск в Интернете .

Для компонентов Label3 и Label4 установите шрифт через свойство Font как синий, подчеркнутый, полужирный курсив. Свойство Cursor для этих компонентов поменяйте на crHandPoint . Это делается для того, чтобы выделить надписи данных компонентов и изменить при наведении на них вид курсора мыши.

Читайте также:
Как запретить вход в программу

Далее создайте обработчик события OnClick для компонента Label4 и вставьте в него программную строку вызова обозревателя и вхождения с его помощью в Интернет:
ShellExecute(Handle, «open», «http://bourabai.kz», 0, 0, SW_SHOW);

Естественно, что адрес страницы http://bourabai.kz/ можно заменить на любой другой подходящий и существующий адрес.

Для кнопки BitBtn1 установите свойство Kind , как bkOk . Создайте обработчик события OnClick для этой кнопки и вставьте в него программную строку выхода:
Close () ;

Наконец, скопируйте в каталог с программой предварительно созданный файл с рисунком или фотографией в формате BMP или JPG и загрузите его через свойство Picture компонента Image . Для того чтобы рисунок совпадал с размерами компонента Image, установите его свойство AutoSize в значение true . Расположите все компоненты на форме в соответствии с рис. 24.2 и сохраните модуль программы в файле с именем about.cpp.

Расположение компонентов на дополнительной форме программы

Рис. 24.2. Расположение компонентов на дополнительной форме программы

Поскольку мы добавили в наше приложение еще одну форму, необходимо включить в основной модуль Usquare.cpp имя файла описания новой формы с названием about.h . Для этого впишите в модуле Usquare.cpp после строки
#include программную строку:
#include «about.h» .

Теперь остается лишь заменить значок-иконку программы с помощью команды главного меню Project | Options | Application на созданный во встроенном редакторе Image Edit файл иконки с расширением ico и откомпилировать программу.
Программа готова. Запустите ее на выполнение и проверьте в работе.
В этой программе мы использовали новый компонент MonthCalendar , который позволяет без труда внедрить в программу красочный календарь с богатыми функциями. Кроме того, мы научились запускать из программы почтовую службу отправки электронных писем и входить в Интернет из работающей программы. Подобные приемы можно применять во вновь создаваемых программах.

Знаете ли Вы, что диаграмма компонентов, Component diagram — это метод объектно-ориентированного проектирования, описывающий особенности физического представления системы. Диаграмма компонентов позволяет определить архитектуру разрабатываемой системы, устанавливая зависимости между компонентами.

Источник: www.bourabai.ru

Как написать программу квадратного уравнения

Обратим внимание, что для данной программы коэффициент a не должен быть равен нулю. Иначе в первой ветке условного оператора будет происходить попытка деления на 0.

Если a = 0 , то квадратное уравнение превращается в линейное, которое решается иным способом. Оно всегда имеет один корень.

Решение квадратного уравнения

Уравнение вида a⋅x 2 + b⋅x + c = 0 — квадратное уравнение.

a, b, c — действительные числа, a ≠ 0.

Для того чтобы вычислить корни квадратного уравнения, нужно сначала найти дискриминант.

  • если D 0, то уравнение имеет два действительных корня:
  • x1 = (-b + √D) / (2⋅a);
  • x2 = (-b + √D) / (2⋅a).

Программа для решения квадратного уравнения на языке программирования Паскаль

Функция sqr языка Pascal используется для возведения числа в квадрат.
Функция sqrt используется для получения квадратного корня числа.
В программе используется форматированный вывод вещественных чисел. variable:8:3 — означает, что для вывода переменной предусмотрено 8 символов, 5 из них под целую часть и 3 под дробную.

Программа для решения квадратных уравнений на C++

Довольно часто в пособиях по программированию встречаются задания по нахождению решений каких-нибудь математических уравнений. Задача нахождения корней квадратного уравнения — это довольно тривиальная задача, как и многие другие задачи. Решается она очень просто при помощи листа бумаги и ручки, но решение можно автоматизировать посредством написания прикладной программы и её использования. В этой статье мы напишем такую программу.

Алгоритм решения квадратного уравнения

Многие знают, что уравнение вида ax 2 + bx + c = 0 , где a не равно 0, называют квадратным уравнением.

Существуют различные способы решения квадратных уравнений, но мы рассмотрим решение через дискриминант.

Обозначается дискриминант буквой D . Из школьного курса знаем, что D = b 2 — 4ac .

Существует несколько условий:

  • Если D > 0, то решение имеет 2 различных вещественных корня.
  • Если D = 0, то оба вещественных корня равны.
  • Если D для вводавывода в консоли, #include для работы с математическими функциями и область using namespace std;

Для вас это может быть интересно:

Программа для решения квадратных уравнений на C++ : 24 комментария

  1. Nicknixer Автор записи 15.10.2016

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

Доброго времени суток! Помогите пожалуйста написать программу, которая считает сколько символов в ряде двумерного массива. То есть , например массив 5 на 5, сколько символов в 1 ряде, сколько во 2 и т.д.

Ответил вам по электронной почте

Критику принимаете?
Программа дырявая как сито.

Если число очень маленькое, но положительное, например 10^(-20) — у вас будет переполнение или типо того. Оператор > проверяет знак числа (это отдельный бит), а оператор == для дробных чисел не имеет смысла, т.к. в младших разрядах числа обычно находится какой-нибудь мусор, который при таком сравнении дает false.

x = ( -1*b + sqrt(b*b — 4*a*c) ) / (2 * a);
x = ( -1*b — sqrt(b*b — 4*a*c) ) / (2 * a);

Тут есть три вопроса:
1) зачем два раза вычислять одно и тоже (я про корень)
2) что делать если мне корни надо как-то использовать, а не просто вывести (тут есть проблема, ведь у меня то один корень — то два). Чтобы лучше понять в чем проблема — попробуйте вынести вычисление корней в отдельную функцию. У вас то вообще, если корень один — то их выведется все равно два, одинаковых.
3) в переменной «a» может быть ноль (или близкое к нулю число) — при этом мы получим деление на ноль (а точнее, переполнение).

Читайте также:
Программа брелок на Андроид как удалить

Но это ведь еще не все. Что будет если и «a» и «b» равны нулю? — тебе надо рассмотреть два варианта — если c = 0 (условно, близко к нулю), то корней бесконечно много. А если c != 0, то корней нет.

Вообще, эта задача — прекрасный пример для юнит-тестирования и демонстрации принципов разработки через тестирование. Именно его я рассматривал в своей статье по теме тестирования: Юнит-тестирование. Пример. Boost Unit Test.

Дело в том, что тут куча вариантов сделать ошибку, при этом их понимание приходит не сразу, т.е. школьник решая задачу напишет по формуле которой учили (ну и вот как у вас). А потом надо разбираться и смотреть как программа может сломаться, при этом разрабатывать тесты.

  1. Николай Сергейчук Автор записи 09.02.2017

Принимаем
Согласен с вами во всём! Программу можно реализовать намного лучше, используя различные проверки и валидацию входных данных.
Однако, статья рассчитана на аудиторию, которая только начинает познавать программирование или делает лабораторную. Чтобы людям легче было понять, реализация данной программы упрощена до невозможности. И, возможно, несправедливо было с моей стороны не предупредить их о возможных ошибках в работе программы, которые могут вскрыться позже, если подать на вход определенные значения.
Кстати, у вас интересная статья по тестированию!

Николай, доброго времени суток! Можете помочь с написанием програмки в с++? 1-1/2!+1/3!-1/4!+1/5! и так до 1/100! ? Чтобы при заднии в строке номера члена последовательности выдавал сумму до него по такой вот формуле? Буду очень благодарен!

Пожалуйста подскажите как ввести экран правильный ответ дискриминанта

Помогите решить в Dev C++
Sqrt x^2+1+sqrt|x|,x0

Здравствуйте, можете помочь с решением биквадратного и триквадратного уравнения?

#include
using namespace std;
int main()
b;
cout <> c;
D = pow(b, 2) — 4 * a * c;
cout

ну и? если даже тупо скопировать код и вставить его в cpp.sh , ничего не работает. поебота какая то этот с++

Уважаемая, Лена! Я, надеюсь, вы знаете, что код программы, написанной на языке программирования C++ нельзя тупо вставить в блокнот и сохранить под названием «cpp.sh»? Если не знали, то я, видимо, открыл для вас Америку!

помогите решить. заданы 3 перемены a.b.c записать вы радение на С
b,
b и а не равно != с

iconcerts где забыл
#include

Я ради интереса написал программу нахождения корней квадратного уравнения на С++, с выводом корней как в десятичном виде, так и в виде простой дроби (причём уже сокращённой), потому что выводя корни в десятичном виде программа их одновременно сокращает и округляет и 1/3 превращается в 0.333333 хотя на самом деле 0.333333 (3), то есть для проверки правильно ли нашёл корни ваш ребёнок, вы с получите что-то типа: X1= 0.285714; X2=0.214286, а на самом деле это будет X1=2/7; X2=3/14, кроме того, если корень из дискриминанта не получается целым числом, вы уже получите двойную неточность: сначала при извлечении корня программа отсечёт значение до 4-6 цифр после запятой с округлением, а затем сделает то же самое при делении числителя на знаменатель. Я и здесь сделал вывод корней в двух значениях: в десятичном и в виде выражения X1= (-b + sqrt(D))/(2*a); X2= (-b — sqrt(D))/(2*a), то есть выводится примерно вот так X1=-5+sqrt(21)/2; X2=-5-sqrt(21)/2 с одновременным разложением дискриминанта под корнем на множители, вынесением этих множителей из-под корня, если они выносятся нацело, их перемножением и дальнейшим сокращением. Вот, например, имеем a=3, b=15, c=3, при решении получаем D=189 программа выдаёт десятичные корни X1= -0.208712 и X2= -4.79129, а в виде выражения имеем: X1= -5+sqrt(21)/2, то есть первоначально получаем: X1= -15+sqrt(189)/6, -> 189=21*9 -> -15+3sqrt(21)/6 далее идёт сокращение на 3 и итог -5+sqrt(21)/2

День добрый.
Недавно начал изучать C++. Решил попробовать написать решение квадратного уравнения именно через оператор вида «условие ? выполняется : не выполняется». Т.е. если условие выполняется, то имеем два решения (даже если d = 0, то тоже должно быть два решения x1 = x2), если d a;
std::cout <> b;
std::cout <> c;
d = pow(b, 2) — 4 * a*c;
d >= 0 ? xfst = ((-b + sqrt(d)) / double(2 * a)) , xscd = ((-b — sqrt(d)) / double(2 * a)) : std::cout

  1. Николай Сергейчук Автор записи 12.02.2020

if (d >= 0) = 0 ) = 0) = 0, y2 >= 0)

Свежие записи

  • Сера — химические свойства, получение, соединения.
  • Нитрат кальция: способы получения и химические свойства
  • Кальций: способы получения и химические свойства
  • Гидроксид натрия: способы получения и химические свойства
  • Гидроксид кальция: способы получения и химические свойства

Источник: all-equa.ru

Как решить квадратное уравнение в питоне

Программа, позволяющая находить корни квадратного уравнения, – это один из примеров простых программ, которые можно написать на Python 3. Она хорошо подойдет для начинающих изучать этот язык программирования.

Постановка задачи

Уравнение, которое будем решать, выглядит следующим образом: a·x²+b·x+c=0. Пользователю предлагается ввести значения a, b и с в терминале. После этого программа посчитает дискриминант. На его основе найдем решения уравнения – значения x, для которых будет выполняться равенство.

Вот пример работы программы, которая будет написана.

Программа

Для решения квадратных уравнений на Python 3 напишем код, приведенный ниже. Разберем некоторые моменты, которые мы использовали в этой простой программе:

  • print — эта функция выводит на экран информацию.
  • input — выводит информацию и предлагает пользователю ввести данные.
  • b**2 — это возведение в степень, в данном случае переменная b возводится в квадрат.
  • str — эта функция приводит данные к строковому виду.
  • if-elif-else — это условные операторы в языке Python. Исходя из значения discriminant мы определяем количество корней квадратного уравнения.
  • discriminant ** 0.5 — с помощью такого способа извлекаем квадратный корень. В Python есть несколько способов извлечения корней, например, с помощью функции sqrt из библиотеки math. Про способы извлечения корней в Python описано в отдельной статье.
Читайте также:
Программа которая определяет четное или нечетное число

Запустим программу и введём нужные коэффициенты.

Все посчитано, найдены два корня, которые будут являться решением квадратного уравнения.

Дополнительно

Хотелось бы уделить внимание ещё одному моменту. Если дискриминант отрицательный, то действительных корней нет. Но будут комплексные корни. Если мы хотим их обрабатывать, то следует изменить конструкцию условных операторов следующим образом:

Тогда пример решения уравнения будет выглядеть следующим образом:

Как видим, получили два комплексных корня.

Этот простой код написанный на Python 3 можно для обучения программированию немного усложнить:

Графический калькулятор квадратных уравнений на Python и Tkinter

  • tkinter
  • GUI
  • примеры на Python

Рассмотрим пример создания графического интерфейса (GUI) на Python. В качестве «жертвы» напишем простенькую программу — решатель квадратных уравнений. Наше задание мы разобъем на несколько частей.

Часть первая: функция решения квадратного уравнения.

Напомним, что квадратным является уравнение вида:

Есть несколько способов решить квадратное уравнение, мы выберем решение через дискриминант.

Используя эту формулу мы можем вывести решение. Если дискриминант больше или равен нулю, то корни уравнения высчитываются по формуле:

Если же дискриминант меньше нуля, то уравнение не имеет решений.

Превратим данные формулы в код:

Чтобы все работало не забудьте импортировать функцию sqrt из модуля math.

Поскольку мы будем выводить результат в специально созданном виджете — мы сразу же вставляем полученный ответ в отформатированную строку и возвращаем ее.

Теперь пора переходить к созданию графической оболочки для нашего приложения.

Часть вторая: создаем GUI для программы

Для простоты будем создавать GUI встроенными средствами Python, поэтому импортируем все из библиотеки Tkinter:

В Python версии 3.х название модуля следует писать с маленькой буквы — tkinter.

Далее создаем само окно и размещаем на нем необходимые виджеты:

Если вы в точности повторили указанный код, то после запуска скрипта у вас получится примерно следующее окно:

окно калькулятора квадратных уравнений с Python и Tkinter

Отлично, программа работает. Осталось объяснить Python как связать эти две части.

Часть третья: объединяем все воедино

Задача перед нами стоит следующая — написать функцию, которая будет брать числа из полей для ввода, передавать их функции решения квадратного уравнения и выводить результат в поле для вывода. Конечно, все это можно реализовать в одной функции, но лучше разделить на несколько:

Функция вставки информации:

Функция inserter предельно проста: очищает поле для ввода и вставляет туда переданный ей аргумент value.

Напишем функцию обработки введенной информации. Назовем ее handler:

В зависимости от данных введенных в поля для ввода передает функции inserter либо результат решения уравнения, либо сообщение о неверно введенных данных.

Чтобы все работало, следует изменить строку создания виджета Button следующим образом:

Теперь можно спокойно пользоваться нашей программой:

Пример программы с GUI на Python и Tkinter #1 Пример программы с GUI на Python и Tkinter #2
Дискриминант больше нуля Дискриминант равен нулю
Пример программы с GUI на Python и Tkinter #3 Пример программы с GUI на Python и Tkinter #4
Дискриминант меньше нуля. Решений нет Введены не все аргументы

Часть четвертая: необязательная

Можно добавить немного удобства для нашей программы. Проблема в том, что каждый раз вводя новые значения нам приходится удалять старые, что не очень комфортно. Напишем функцию, которая будет очищать поле для ввода после клика по нему.

Таким образом мы очищаем виджет, вызвавший данную функцию. Чтобы все работало, добавьте следующие строки после создания виджетов, но до размещения. Например, после строки a = Entry(. , но до строки a.grid(.

Готово. Программа работает, Вы великолепны!

Исходный код калькулятора квадратных уравнений с GUI на GitHub

Решение квадратных уравнений в Python

Решение квадратных уравнений в Python

Введение

В ходе статьи научимся решать квадратные уравнения при помощи языка программирования Python.

Решение квадратных уравнений в Python

Для написания кода нам понадобится метод sqrt() из модуля math, который возвращает квадратный корень числа. Импортируем его:

Теперь дадим пользователю возможность ввести коэффициенты a, b и c:

Вычислим дискриминант по формуле:

Перейдём к нахождению корней. Зададим условие, что если дискриминант больше нуля, то x1 и x2 будут высчитаны по формуле:

Если же дискриминант равен нулю, то будет всего один корень по формуле:

Если же дискриминант оказался отрицательным, это означает что корней нет:

Заключение

В ходе статьи мы с Вами написали небольшую программку на языке программирования Python, которая умеет решать квадратные уравнения. Надеюсь Вам понравилась статья, желаю удачи и успехов!

Решение квадратного уравнения | Python

Формат вывода Если у уравнения нет решений — следует вывести «No solution». Если корней конечное число — их нужно вывести через пробел в порядке возрастания с точностью до сотых. Если корней неограниченное число — следует вывести «Infinite solutions».

Примечание Обратите внимание, что ограничения на значения коэффициентов отсутствуют.

Итог: 13 тестов код проходит, а на 14-ом ловлю ошибку «Wrong answer(WA)»

Примитивная ликвидация %f форматтера спасла ситуацию и код прошёл все тесты, после чего на пол экрана проявилась табличка с зелёным шрифтом «Решена полностью». Спасибо всем причастным к решению моей проблемы как советами, так и комментариями, задачу требовалось решить зная лишь 3 типа данных, условные и логические операторы — задача выполнена. Рабочий код ниже:

Похожие публикации:

  1. Как настроить эпл вотч
  2. Как разрезать дорожку в sony vegas
  3. Как сохранить пароль в яндекс браузере
  4. Какой формат поддерживает компас

Источник: big-soviet.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru