Примеры по математике, информатике и прочим дисциплинам, взятые из контрольных и курсовых работ студентов.
Страницы
- Главная страница
- Графика
- Программирование
- Работы на украинском языке
пятница, 20 февраля 2015 г.
Калькулятор вычисления корней квадратных уравнений в Delphi
Очередной, но совершенно другой калькулятор, разработанный в Delphi 7.0. Исходники калькулятора находятся в конце статьи.
Постановка задачи
Разработать калькулятор, решающий квадратные уравнения (в действительных или комплексных числах). Вычисление корней проводится в форме, заданной пользователем.
Схема алгоритма решения задачи
Для решения поставленной задачи нам необходимо:
- Если пользователем введены значения, считать их.
- Найти дискриминант.
- Если дискриминант >= нулю, то найти действительные корни, если же меньше нуля, предложить пользователю вычислить мнимые корни.
- Вывести результат.
Программа, определяющая корни квадратного уравнения. Язык программирования Python.
Описание используемых компонентов
- поля Edit (для ввода пользовательских значений и вывода полученных результатов);
- кнопки Button;
- поле Memo (для вывода логов работы программы);
- Label (Надписи, с помощью которых подпишем поля).
При нажатии кнопки Button1 вызывается процедура TForm1.Button1Click, с помощью которой считываются данные, введенные пользователем, и находится дискриминант. Затем полученное значение сравнивается с нулем. Если оно больше или равно нулю, то находятся корни х1 и х2, если же меньше, на форме появляется надпись, сообщающая, что действительных корней нет, и кнопка Button2, предлагающая вычислить мнимые корни.
Изначально в свойстве этой кнопки и надписи указано, что они невидимы. При нажатии на кнопку активируется процедура TForm1.Button2Click, в которой вычисляются корни в комплексной форме. Если данные были неправильно введены пользователем, то на экран и в файл логов работы выводится сообщение об ошибке.
При нажатии кнопки Button3 очищаются поля ввода и вывода.
При нажатии кнопки Button4 выводятся на экран логи работы программы. Они включают в себя введенные пользователем данные, результат операций с этими данными, а так же сообщения об ошибках.
При нажатии кнопки Button5 вызывается справочная система калькулятора. Справочная система разработана с помощью утилиты Hcw.exe. Для этого сначала справочный материал был написан в Microsoft Word, расставлены ссылки в каждом пункте справки, информация сохранена в rtf формате. Далее, с помощью вышеназванной утилиты была создана справочная система и оглавление к ней. Для связи справочной системы с нашим приложением было введено название help-файла в меню Borland Delphi «Проект» → «Параметры» → «Приложение» → «Файл справки».
Программа для решения корней квадратного уравнения с использованием дискриминанта на языке Паскаль
Пример результатов работы программы
Например, вычислим корни уравнения
Получим такие результаты:
Если же мы возьмем уравнение
При нажатии на кнопку «Вычислить мнимые корни» получим:
При неправильном вводе данных мы увидим такое сообщение:
При нажатии на кнопку «Логи» мы увидим логи работы нашей программы:
Текст log-файла находится в приложении А, расположенном ниже. Также в конце статьи вы сможете найти ссылку на готовое приложение-калькулятор и на его исходники.
При нажатии на кнопку помощи мы увидим справочное руководство:
При выборе необходимого нам пункта можно будет почитать интересующий материал.
Инструкция пользователю программы
Вычисление корней квадратного уравнения:
Для вычисления корней квадратного уравнения нужно ввести значения коэффициентов a, b, c и нажать кнопку «Вычислить». Если коэффициент равен нулю, то нужно в соответствующее поле ввести «0». Если какое-то из полей не будет заполнено, выведется сообщение об ошибке.
Если уравнение имеет действительные корни, то они будут выведены в полях х1 и х2. Иначе пользователю будет предложено найти мнимые корни. На форме появится кнопка «Вычислить мнимые корни». При нажатии на нее появится искомый результат.
Сохранение данных в файл:
Программа автоматически сохраняет все входные и выходные данные в файл. Для просмотра этого файла нужно нажать кнопку «Логи».
Приложение А
Вычисление действительных корней
a b c
3 -4 1
x1= 1.00 x2= 0.33
Вычисление мнимых корней
a b c
3 -4 5
x1,2=( 4.00+- 6.63*i)/ 6.00
Неправильно введены данные
Вы можете скачать листинг программы-калькулятора, предназначенной для решения квадратных уравнений, и готовое приложение:
Источник: ucheba-pro100.blogspot.com
Программа для нахождения корней квадратного уравнения на C++
06.03.2021 Программирование Комментарии: 0 Давыдов В. Г.
Эта программа в C++ принимает от пользователя коэффициенты квадратного уравнения и отображает корни (как действительные, так и комплексные корни в зависимости от дискриминанта).
- Если дискриминант больше 0, корни действительные и разные.
- Если дискриминант равен 0, корни действительные и равны.
- Если дискриминант меньше 0, корни сложные и разные.
Пример: использование формул в С++
#include #include using namespace std; int main() < float a, b, c, x1, x2, discriminant, realPart, imaginaryPart; cout > a >> b >> c; discriminant = b*b — 4*a*c; if (discriminant > 0) < x1 = (-b + sqrt(discriminant)) / (2*a); x2 = (-b — sqrt(discriminant)) / (2*a); cout else if (discriminant == 0) < cout else < realPart = -b/(2*a); imaginaryPart =sqrt(-discriminant)/(2*a); cout return 0; >
Enter coefficients a, b and c: 4 5 1 Roots are real and different. x1 = -0.25 x2 = -1
- Преобразование восьмеричного числа в десятичное и наоборот в C++
- Преобразование двоичного числа в восьмеричное и наоборот в C++
- Как перевернуть строку в C++
Источник: calmsen.ru
Код программы расчета корней квадратного уравнения
Здравствуйте, форумчане. Помогите пожалуйста разобраться в чем проблема.
Задание:
Вычислить корни квадратного уравнения (a*x^2)+(b*x)+c=0, если (d^2)-4*a*c>=0, то корни действительные; следовательно, необходимо вычислять
e=(-b)/(2*a)
f= (sqrt(d)/(2*a)
x1=e+f
x2=e-f
если d e=(-b)/(2*a)
f= (sqrt(abs(d))/(2*a)
x1=e+f
x2=e-f
Вот мои наброски но они не работают:
program Project2; uses SysUtils,Windows; var a,b,c:integer; x1,x2,d,e,f:Real; begin SetConsoleCP(1251); SetConsoleOutPutCP(1251); write(‘Введите a = ‘); readln(a); write(‘Введите b = ‘); readln(b); write(‘Введите c = ‘); readln(c); d:=sqr(b)-4*a*c; if (d>=0) then begin e:= (-b/(2*a)); f:= (Sqrt(d)/(2*a)); x1:= (e+f); x2:= (e-f); writeln(‘x1= ‘,x1:6:2); Writeln(‘x2= ‘,x2:6:2); end else begin e:= (-b/(2*a)); f:= (Sqrt(Abs(d))/(2*a)); x1:= (e+f); x2:= (e-f); writeln(‘x1= ‘,x1:6:2); Writeln(‘x2= ‘,x2:6:2); end; Readln; end.
ЗЫ: программу нужно сделать в Делфи в Console application.
Регистрация: 02.03.2008
Сообщений: 2,537
Код написан мягко говоря, очень нерационально.
Но все работает, только не пишет от том, какие корни — действительные или мнимые.
И еще. a,b,c — могут быть только целые ?
PS А где ? Перед uses должно быть.
Последний раз редактировалось type_Oleg; 26.04.2014 в 18:52 .
Пользователь
Регистрация: 26.04.2014
Сообщений: 20
Немного подредактировал, вроде заработало.
program Project2; uses SysUtils,Windows; var a,b,c:integer; x1,x2,d,e,f:Real; begin SetConsoleCP(1251); SetConsoleOutPutCP(1251); writeln(‘Введите a = ‘); readln(a); writeln(‘Введите b = ‘); readln(b); writeln(‘Введите c = ‘); readln(c); d:=sqr(b)-4*a*c; if (d>=0) then begin e:= (-b/(2*a)); f:= (Sqrt(d)/(2*a)); x1:= (e+f); x2:= (e-f); writeln(‘x1= ‘,x1:6:2); Writeln(‘x2= ‘,x2:6:2); end else begin e:= (-b/(2*a)); f:= (Sqrt(Abs(d))/(2*a)); x1:= (e+f); x2:= (e-f); writeln(‘x1= ‘, e:6:2, ‘ + ‘, f:6:2, ‘i’); Writeln(‘x2= ‘, e:6:2, ‘ — ‘, f:6:2, ‘i’); end; Readln; end.
ЗЫ: по заданию не требуют написать мнимые или нет, но можно дописать так:
program Project2; uses SysUtils,Windows; var a,b,c:integer; x1,x2,d,e,f:Real; begin SetConsoleCP(1251); SetConsoleOutPutCP(1251); writeln(‘Введите a = ‘); readln(a); writeln(‘Введите b = ‘); readln(b); writeln(‘Введите c = ‘); readln(c); d:=sqr(b)-4*a*c; if (d>=0) then begin e:= (-b/(2*a)); f:= (Sqrt(d)/(2*a)); x1:= (e+f); x2:= (e-f); Writeln(‘Корни действительные’); writeln(‘x1= ‘,x1:6:2); Writeln(‘x2= ‘,x2:6:2); end else begin e:= (-b/(2*a)); f:= (Sqrt(Abs(d))/(2*a)); x1:= (e+f); x2:= (e-f); Writeln(‘корни мнимые’); writeln(‘x1= ‘, e:6:2, ‘ + ‘, f:6:2, ‘i’); Writeln(‘x2= ‘, e:6:2, ‘ — ‘, f:6:2, ‘i’); end; Readln; end.
Последний раз редактировалось adrenalin142; 26.04.2014 в 19:59 .
Источник: www.programmersforum.ru