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

Добавил пользователь Алексей Ф.
Обновлено: 04.10.2024

Квадратное уравнение имеет вид ax 2 + bx + c = 0 . Коэффициенты a , b и c — это конкретные числа, а x надо найти, решив уравнение.

Pascal

квадратное уравнение паскаль

Язык Си

Ключ -lm при компиляции gcc.

Python

КуМир

Basic-256

квадратное уравнение паскаль

var
a,b,c,d,x1,x2: real;
begin
write('a='); readln(a);
write('b='); readln(b);
write('c='); readln(c);
d := b*b - 4*a*c;
if d > 0 then begin
x1 := (-b + sqrt(d)) / (2*a);
x2 := (-b - sqrt(d)) / (2*a);
writeln('x1=',x1:3:2,'; x2=',x2:3:2);
end
else
if d = 0 then begin
x1 := (-b) / (2*a);
writeln('x=',x1:5:2);
end
else
writeln('Корней нет');
end.

main() float a,b,c,d,x1,x2;
printf("a="); scanf("%f",&a);
printf("b="); scanf("%f",&b);
printf("c="); scanf("%f",&c);
d = b*b - 4*a*c;
if (d>0) x1 = (-b + sqrt(d)) / (2*a);
x2 = (-b - sqrt(d)) / (2*a);
printf("x1=%.2f; x2=%.2f", x1, x2);
>
else
if (d = 0) x1 = -b / (2*a);
printf("x1=%.2f; x2=%.2f", x1, x2);
>
else printf("Корней нет.");
printf("\n");
>

Ключ -lm при компиляции gcc.

python квадратное уравнение

print("Введите коэффициенты для квадратного уравнения (ax^2 + bx + c = 0):")
a = float(input("a b c Дискриминант D = %.2f" % discr)
if discr > 0:
import math
x1 = (-b + math.sqrt(discr)) / (2 * a)
x2 = (-b - math.sqrt(discr)) / (2 * a)
print("x1 = %.2f \nx2 = %.2f" % (x1, x2))
elif discr == 0:
x = -b / (2 * a)
print("x = %.2f" % x)
else:
print("Корней нет")


алг квадратное уравнение
нач
вещ a, b, c, D, x1, x2
ввод a
ввод b
ввод c
D := b**2 - 4*a*c
вывод "D x1 x2 x корней нет", нс
все
все
кон


СОВРЕМЕННЫЕ ПРОБЛЕМЫ ШКОЛЬНОГО ОБРАЗОВАНИЯ




Создание программы решения уравнений второй и выше степени в системе Pascal ABC


Автор работы награжден дипломом победителя II степени

Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Таким образом, актуальность исследования объясняется тем, что проблемы проверки решения уравнения порядка второго и выше остро стоят перед обучающимися, а решиться такие проблемы могут через совершенствования математических знаний и составления прикладных программ. В свою очередь эти знания могут применяться на практике для решения уравнений, что улучшит проверку знаний обучающихся и значительно сократит время на их решение.

Объектом исследования является схема Горнера, и система программирования Pascal ABC.

Предметом исследования выступают алгоритм Горнера для решения уравнений второго порядка и выше в системе программирования Pascal ABC.

Цель исследования – реализация решения уравнений второго и выше порядка, основываясь на схеме Горнера в среде программирования Pascal ABC.

Цель и предмет исследования обусловили необходимость решения следующих задач:

Исследовать важность данной проблемы у обучающихся 9 – 11 классов и выявить эффективность взаимосвязи математического алгоритма и системы программирования Pascal ABC.

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

Оценить перспективы от создания программы.

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

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

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

теоретические: теоретический анализ литературы по проблеме; систематизация полученной информации; обобщение выводов.

эмпирические: опросно – диагностические методы (интервьюирование, беседы) и др.;

статистические: анализ статистических данных.

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

Определена эффективность создания программы решения уравнений второго и выше порядка в системе программирования Pascal ABC.

Оценены перспективы от создания программы.

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

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

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

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

Анкетирование (Анкетирование учащихся школы по разработанным анкетам)

Обработка анкет и анализ полученных результатов (Работа включает в себя выбор программного обеспечения для обработки анкет. Обработка данных и анализ результатов.)

Разработка алгоритма решения уравнений второго и выше порядка (На этом этапе на основе изученной литературы разрабатывается алгоритм решения уравнений второго и выше порядка.)

Составление и тестирование программы.

Презентация проекта (Представление итогового проекта для обсуждения и оценивания.)

Методы исследования. Анализ информационных источников, статистическая обработка результатов.

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

Различные уравнения решали более 25 веков назад. Множество способов решения таких уравнений были созданы в Вавилоне, Индии. Потребность в уравнениях была и будет. Нами приведены способы решения (нахождения корней) квадратных уравнений и уравнений высших степеней. Целое уравнение третьей или более высокой степени в отдельных случаях удается решить, используя точечные приемы. Один из приемов решения уравнения вида Р(х)=), где Р(х) – многочлен, степень которого больше двух, состоит в разложении многочлена на множители. Вспомним, какие способы разложения многочлена на множители мы изучали в 7 классе.

Вынесение общего множителя за скобки

С помощью формул сокращенного умножения

С помощью корней квадратного трехчлена.

1.1. Схема Горнера. Возможности.

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

Уильям Джордж Горнер (1786 – 1837), известный по схеме Горнера. Опубликована теорема была в 1815г. в Англии.

Схема Горнера позволяет:

Найти значение многочлена в точке a;

Выяснить, является ли число a – корнем многочлена;

Найти новый многочлен от деления на двучлен (понизить степень);

Используя схему Горнера, мы одновременно проверяем, является ли числоa корнем многочлена и делим этот многочлен на двучлен . Это нам потребуется для понижения степени уравнения и мы сможем воспользоваться вспомогательным алгоритмом.

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

Если сумма всех коэффициентов многочлена равна нулю, то число 1 является корнем многочлена.

Если сумма коэффициентов многочлена при четных степеняхравна сумме коэффициентов при нечетных степенях, то число -1 является корнем многочлена.

Для приведенного многочлена степени (из теоремы Виета следует, что) если корни многочлена целые, то они являются делителями его свободного члена, который также является целым числом.

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

1.2. Виды уравнений. 1.2.1. Уравнения второй степени (квадратные)

Квадратное уравнение - алгебраическое уравнение 2 - й степени. Общий вид уравнения: . Корни уравнения : Формулы верны при любых коэффициентах.

1.2.2. Уравнения третьей степени (кубические)

Кубическое уравнение - алгебраическое уравнение третьей степени. Общий вид кубического уравнения: ax 3 + bx 2 + cx + d = 0, где а ≠ 0

Используя правила Горнера решим уравнение такого вида. (Приложение 2). Понизив степень многочлена мы продолжаем решение обычного квадратного уравнения, рассмотренного ранее.

1.2.3. Уравнения четвертой степени

Уравнение четвертой степени - алгебраическое уравнение четвертой степени. Общий вид кубического уравнения: аx 4 + bx 3 + cx 2 + dх+е = 0,где а ≠ 0.

Используя схему Горнера решим уравнение этого вида.(Приложение 3). Понизив степень многочлена мы продолжаем решение кубического уравнения, используя схему Горнера, поставив перед собой цель, понизить степень до квадратного уравнения.

В теоретической части нашей работы нами рассмотрены решение квадратных уравнений и уравнений третьей, четвертой степени методом Горнера, определена схема решения уравнений второго, третьего, четвертого порядка, выведены новые, ранее нам неизвестные формулы. Мы проработали много вариантов примеров перед тем, как сделать вывод: используя схему Горнера, мы решаем уравнения третьей, четвертой и выше степеней аналогично. Мы уже представляем себе, как составить программу , которая будет решать уравнения такого вида. Каждое решение пригодится нам в дальнейшей учебе. Эта работа помогла классифицировать старые знания и познать новые.

Цель: проанализировать основные методы решения уравнений на практике; проанализировать время, которое тратится на решение уравнений второй и выше степени.

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

По результатам анкетирования (приложение 1) учащихся 9 – 11 классов (всего 55 оппонентов) оценки правильного нахождения корней уравнений второго и выше порядка выделено:

Время, которое затрачивается обучающимся на решение уравнений:

Из графика видно, что временные затраты на решение даже одного уравнения существенно. А если их надо решить несколько? Время увеличится в разы.

2.2. Эксперимент 2. Создание алгоритма решения уравнений второго порядка и выше.

Цель: проанализировать эффективность метода Горнера при составлении программы; выработать схему использования вспомогательного алгоритма.

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

Рассмотренные теоретические вопросы дают возможность создания алгоритма решения поставленной цели. Этот алгоритми будем разрабатывать.

Цель: составить программу, позволяющую решать уравнения второй и выше степени; проанализировать работу программы.

Для составления программы мы выбрали среду программирования Pascal ABC. Данная программная среда является языком высокого уровня и в последнее время пользуется не только профессиональными программистами, но и начинающим, а также на уроках информатике и ИКТ в гимназии.

В системе программирования четко реализованы принципы структурного программирования. Сначала мы написали программы отдельно для каждого вида уравнений. Затем воспользовались вспомогательным алгоритмом нахождения квадратного уравнения (приложение 3), кубического уравнения (приложение 4), решили объединить, составили программу с использованием процедуры. Рассмотренные теоретические вопросы дают возможность создания программы на Pascal ABC для решения.

Текст программы решения уравнений второй и выше степени, приведен в приложении 5.

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

Математическая энциклопедия. — М.: Советская энциклопедия.И. М. Виноградов.1977—1985.

Приложение 1 Анкета для обучающихся

Умеете ли Вы решать уравнения вида ах 2 + вх+с=0 (уравнения второго порядка)?

в) никогда не делал этого ( не встречал в своей жизни)

Сколько занимает времени решение одного уравнения второго порядка?

а) от 1 до 5 минут б) от 5до 10 минут

в) от 10 до 30 минут г) около часа

Умеете ли Вы решать уравнения вида ах 3 + вх 2 +сх+d=0 (уравнения третьего порядка)?

в) никогда не делал этого ( не встречал в своей жизни)

Сколько занимает времени решение одного уравнения третьего порядка?

а) от 1 до 5 минут б) от 5до 10 минут

в) от 10 до 30 минут г) около часа

Умеете ли Вы решать уравнения вида ах 4 + вх 3 +сх 2 +dx+e=0 (уравнения четвертого порядка)?

в) никогда не делал этого ( не встречал в своей жизни)

Сколько занимает времени решение одного уравнения четвертого порядка ?

а) от 1 до 5 минут б) от 5до 10 минут

в) от 10 до 30 минут г) около часа

Умеете ли Вы решать уравнения более высокого порядка ?

в) никогда не делал этого ( не встречал в своей жизни)

Хотели бы Вы научиться решать уравнения второго порядка и выше?

а) да б) нет в) предпочитаю списать

Хотели бы Вы иметь у себя программу, решающую уравнения второго порядка и выше?

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

Содержание статьи

Программа

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

Подготовка к написанию программы

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

Создайте основу для программы. Первым шагом является определение классов. Работа с большими группами чисел в виде классов представляет собой более легкую задачу, если ресурсы компьютера ограничены. Это поможет увеличить практичность вашего кода.

Создайте правила работы программы. Типичным примером является область значения вводимых данных. Чем меньше свободной оперативной памяти имеется на компьютере, тем меньше должны быть вводимые числа.

Создание кода приложения

Откройте сеанс терминала и вызовите интерпретатор Python с помощью следующей команды:

My-iMac:~ me$ python –v

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

Создайте новое определение функции в Python, введя следующий код в окне компилятора. Многие источники называют эту функцию "isolve":

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

Создайте две переменные, q и r, принимающие значения частного и остатка от уравнения с переменными a и b, а затем вызовите функцию divmod, которая найдет и разделит два этих числа. После чего на экране появятся делитель и остаток от операции, если таковые имеются. Код должен выглядеть следующим образом:

. q, r = divmod divmod(a,b)

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

. if r == 0:
. return( [0,c/b] )

Создайте еще одно условие для случая, когда есть остаток:

>>> def isolve(a,b,c):
. q, r = divmod(a,b)
. if r == 0:
. return( [0,c/b] )
. else:

Обратите особое внимание на уточнение после условий else и if. Python не будет выполнять этот код без соответствующего определения.

>>> isolve(5, 17, 103)
[721, -206]

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

Рассмотрим использование оператора if на примерах 3 В задачах этой главы мы не будем уделять много внимания интерфейсу создаваемых программ, чтобы у читателя была возможность разобраться в алгоритмах и способах их записи на языке Free Pascal. .

ЗАДАЧА 3.1. Дано вещественное число . Для функции, график которой приведён на рис. 3.10, вычислить .

Аналитически функцию, представленную на рис. 3.10, можно записать так:


Составим словесный алгоритм решения этой задачи:

Блок-схема, соответствующая описанному алгоритму, представлена на рисунке 3.11. Как видно, блок-схема нагляднее и проще для восприятия, чем словесное описание алгоритма. В дальнейшем для описания алгоритма мы часто будем использовать именно блок-схемы.

Блок-схема алгоритма решения задачи 3.1

Текст программы на языке Free Pascal будет иметь вид:

Эту программу можно ввести в текстовом редакторе Geany (или в текстовом редакторе Free Pascal) и запустить на выполнение.

ЗАДАЧА 3.2. Даны вещественные числа и . Определить, принадлежит ли точка с координатами заштрихованной части плоскости (рис. 3.12).

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

Блок-схема, описывающая алгоритм решения данной задачи, представлена на рис. 3.13.

Читайте также: