Перейти к содержанию
Решить квадратное уравнение
Просмотров 12.5к. Обновлено 15 октября 2021
Найти корни квадратного уравнения и вывести их на экран, если они есть. Если корней нет, то вывести сообщение об этом. Конкретное квадратное уравнение определяется коэффициентами a, b, c, которые вводит пользователь.
Квадратное уравнение имеет вид ax2 + bx + c = 0. Коэффициенты a, b и c — это конкретные числа, а x надо найти, решив уравнение.
- Вычислить дискриминант по формуле d = b2 — 4ac.
- Если дискриминант больше нуля, то вычислить два корня уравнения:
x1 = (-b+√d) / 2a
x2 = (-b-√d) / 2a - Если дискриминант равен нулю, то вычислить только один корень (второй будет равен ему).
- Если дискриминант отрицателен, то вывести сообщение, что корней нет.
Pascal
квадратное уравнение паскаль
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.
a=7
b=1
c=-6
x1=0.86; x2=-1.00
Язык Си
#include < stdio.h>
#include < math.h>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");
}
a=-20
b=8
c=1.5
x1=-0.14; x2=0.54
Ключ -lm при компиляции gcc.
Python
python квадратное уравнение
print("Введите коэффициенты для квадратного уравнения (ax^2 + bx + c = 0):")
a = float(input("a = "))
b = float(input("b = "))
c = float(input("c = "))discr = b**2 - 4 * a * c;
print("Дискриминант 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 = ", D, нс
если D > 0 то
x1 := (-b + sqrt(D)) / (2 * a)
x2 := (-b - sqrt(D)) / (2 * a)
вывод "x1 = ", x1, нс
вывод "x2 = ", x2, нс
иначе
если D = 0 то
x1 := -b / (2 * a)
вывод "x = ", x1, нс
иначе
вывод "корней нет", нс
все
все
кон
Basic-256
input "a = ", a
input "b = ", b
input "c = ", c
d = b^2 - 4*a*cdecimal 3
if d > 0 then
x1 = (-b + sqrt(d)) / (2*a)
x2 = (-b - sqrt(d)) / (2*a)
print "x1 = " + x1 + ", x2 = " + x2
else
if d = 0 then
x = -b / (2*a)
print "x = " + x
else
print "Корней нет"
endif
endif
Команда decimal указывает сколько знаков после запятой следует выводить.
Добрый день, товарищи! И вот я возвращаюсь с новым гайдом, который, думаю, окажется многим полезным. Сегодня мы напишем программу для нахождения корней и дискриминанта квадратного уравнения.
Согласитесь, всегда удобно иметь под рукой небольшой калькулятор, который быстро покажет тебе и дискриминант, и ответ на сложное уравнение.
В конце статьи я дам вам ссылку на Яндекс.Диск для скачивания файла с этим кодом!
1. Объявим и введем переменные
В этом отрезке кода мы объявляем наши переменные. a, b, c – будет вводить пользователь, это основные части уравнения.
d – наш дискриминант.
x1, x2 – корни уравнения.
Тип данных выберем целый, но при желании все же можно поставить real.
Для наглядности после ввода переменных продублируем их в уравнение, чтобы пользователь видел уравнение.
2. Находим дискриминант квадратного уравнения
Тут все просто, тут все по математике. Вместо не очень красивого b*b можно использовать функцию возведения в квадрат – sqr(b), в данном примере так сделано для наглядности.
3. Если дискриминант меньше нуля
Как мы помним из курса математики, если Д меньше нуля – это уравнение не будет иметь смысла. Чтож, поэтому необходимо добавить это исключение.
4. Если дискриминант равен нулю
Если Д равен нулю – у него лишь один корень, и находится он иначе, чем при Д больше нуля. Поэтому поспешим добавить и это исключение в нашу программу.
5. Находим корни х1 и х2 квадратного уравнения
Просто найдем х1 и х2. Напомню, что sqrt(d) это корень дискриминанта. После этого просто делим это на 2а. Формулы, думаю, сами знаете.
Чтож, вот и все программа, ссылка, напомню, будет в конце статьи, а сейчас давайте ее протестируем!
6. Тесты
Тесты помещу в галерею. Смотрите остальные (->)
7. Полный код + ссылка
Тут весь код программы, а ниже вы можете найти ссылку на скачивание этой программы в формате .pas, для открытия файла сразу в паскале.
Скачать код программы с Яндекс.Диска
Данный человек всегда открыт для обсуждения контента и общения с подписчиками, если найдутся какие либо вопросы то я обязательно постараюсь ответить на них.
По возможности я попросил бы подписаться и оценить публикацию. Сейчас это критически важно для развития канала. Так то!
Доброго вам всем здоровьица в эти трудные времена!
Квадратное уравнение
-
Постановка задачи
-
Программа
-
Дополнительно
Программа, позволяющая находить корни квадратного уравнения, – это один из примеров простых программ, которые можно написать на 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 описано в отдельной статье.
print('Решаем уравнение a•x²+b•x+c=0') a = input('Введите значение a: ') b = input('Введите значение b: ') c = input('Введите значение c: ') a = float(a) b = float(b) c = float(c) discriminant = b**2 - 4*a*c print('Дискриминант = ' + str(discriminant)) if discriminant < 0: print('Корней нет') elif discriminant == 0: x = -b / (2 * a) print('x = ' + str(x)) else: x1 = (-b + discriminant ** 0.5) / (2 * a) x2 = (-b - discriminant ** 0.5) / (2 * a) print('x₁ = ' + str(x1)) print('x₂ = ' + str(x2))
Запустим программу и введём нужные коэффициенты.
Решаем уравнение a•x²+b•x+c=0 Введите значение a: -4 Введите значение b: -231 Введите значение c: 34 Дискриминант = 53905.0 x₁ = -57.89681291718352 x₂ = 0.1468129171835173
Все посчитано, найдены два корня, которые будут являться решением квадратного уравнения.
Дополнительно
Хотелось бы уделить внимание ещё одному моменту. Если дискриминант отрицательный, то действительных корней нет. Но будут комплексные корни. Если мы хотим их обрабатывать, то следует изменить конструкцию условных операторов следующим образом:
if discriminant == 0: x = -b / (2 * a) print('x = ' + str(x)) else: x1 = (-b + discriminant ** 0.5) / (2 * a) x2 = (-b - discriminant ** 0.5) / (2 * a) print('x₁ = ' + str(x1)) print('x₂ = ' + str(x2))
Тогда пример решения уравнения будет выглядеть следующим образом:
Решаем уравнение a•x²+b•x+c=0 Введите значение a: 4 Введите значение b: 1 Введите значение c: 2 Дискриминант = -31.0 x₁ = (-0.12499999999999996+0.6959705453537527j) x₂ = (-0.12500000000000006-0.6959705453537527j)
Как видим, получили два комплексных корня.
Этот простой код написанный на Python 3 можно для обучения программированию немного усложнить:
- Предлагать запрос в конце программы «Решить ещё одно уравнение (y/n): ». И если пользователь введет «y», то заново запросить коэффициенты. Это нужно делать в цикле. Подробнее о циклах в Python можно прочитать здесь.
- Сделать проверку корректности ввода. Ведь пользователь вместо числа может ввести какую-нибудь строку, которая не будет корректно обработана. Про проверку на число описано в отдельной статье.
Оглавление:
- 1 Задача — Решить квадратное уравнение
— программирование на Pascal, Си, Кумир, Basic-256, Python- 1.1 Pascal
- 1.2 Язык Си
- 1.3 Python
- 1.4 КуМир
- 1.5 Basic-256
Задача — Решить квадратное уравнение
— программирование на Pascal, Си, Кумир, Basic-256, Python
Найти корни квадратного уравнения и вывести их на экран, если они есть. Если корней нет, то вывести сообщение об этом. Конкретное квадратное уравнение определяется коэффициентами a, b, c, которые вводит пользователь.
Квадратное уравнение имеет вид ax2 + bx + c = 0. Коэффициенты a, b и c — это конкретные числа, а x надо найти, решив уравнение.
- Вычислить дискриминант по формуле d = b2 — 4ac.
- Если дискриминант больше нуля, то вычислить два корня уравнения:
x1 = (-b+√d) / 2a
x2 = (-b-√d) / 2a - Если дискриминант равен нулю, то вычислить только один корень (второй будет равен ему).
- Если дискриминант отрицателен, то вывести сообщение, что корней нет.
Pascal
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. a=7
b=1
c=-6
x1=0.86; x2=-1.00
Язык Си
#include <stdio.h>
#include <math.h>
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»);
} a=-20
b=8
c=1.5
x1=-0.14; x2=0.54
Ключ -lm при компиляции gcc.
Python
print(«Введите коэффициенты для квадратного уравнения (ax^2 + bx + c = 0):»)
a = float(input(«a = «))
b = float(input(«b = «))
c = float(input(«c = «))
discr = b**2 — 4 * a * c;
print(«Дискриминант 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 = «, D, нс
если D > 0 то
x1 := (-b + sqrt(D)) / (2 * a)
x2 := (-b — sqrt(D)) / (2 * a)
вывод «x1 = «, x1, нс
вывод «x2 = «, x2, нс
иначе
если D = 0 то
x1 := -b / (2 * a)
вывод «x = «, x1, нс
иначе
вывод «корней нет», нс
все
все
кон
Basic-256
input «a = «, a
input «b = «, b
input «c = «, c
d = b^2 — 4*a*c
decimal 3
if d > 0 then
x1 = (-b + sqrt(d)) / (2*a)
x2 = (-b — sqrt(d)) / (2*a)
print «x1 = » + x1 + «, x2 = » + x2
else
if d = 0 then
x = -b / (2*a)
print «x = » + x
else
print «Корней нет»
endif
endif
Команда decimal
указывает сколько знаков после запятой следует выводить.
Did you find apk for android? You can find new Free Android Games and apps.
Цели урока:
- Повторить с учащимися правила решения
квадратных уравнений - Вспомнить алгоритмическую конструкцию IF-THEN-ELSE
- Составить блок-схему программы и саму программу
на языке Pascal - Проверить работоспособность программы на
конкретных примерах - Расширить представления учащихся о применении
языка Pascal - Воспитать у учащихся чувство аккуратности,
внимательности, ответственности - Научить учащихся самостоятельно находить свои
ошибки в программах
Оборудование:
- Таблички с формулами
- Плакат с блок-схемой алгоритма КВУР
- Листочки с индивидуальными заданиями
- Система программирования “Turbo Pascal 7.0”
ХОД УРОКА
1. Введение.
До сих пор мы с вами говорили о каких-то
отвлечённых задачах из области математики.
Сегодня мы поговорим о конкретной задаче,
которая встречается у вас почти на каждом уроке.
Это решение квадратного уравнения. Я хочу, чтобы
вы на примере этой задачи поняли, что
программирование – это не просто прихоть
учителя, это действительно раздел информатики,
который может нам помочь, например, в решении
конкретных математических задач. Нужно только
уметь разбираться в этом.
2. Математическое решение
Давайте вспомним, что понимают под квадратным
уравнением?
Вопросы:
Что из себя представляют числа a,b,c и как их
называют?
С чего начинают решение квадратного уравнения?
Найдите вокруг себя формулу дискриминанта. (D=b2-4ac)
(Приложение 3)
Как мы решаем далее квадратное уравнение?
(сравнение D с нулём)
Какие выводы мы из этого делаем?
(если D <0, то нет корней, если D=0, то один корень,
если D>0, то два корня)
Как найти корни квадратного уравнения? Найдите
формулы корней среди тех, что развешены повсюду.
Если я случай наличия корней квадратного
уравнения сведу к условию D0, то что я получу в случае D=0?
(Два одинаковых корня)
Давайте ещё раз подробно разберём нашу задачу:
Итак, у нас есть квадратное уравнение ax2+bx+c=0.
Мы должны решить его, т.е. найти такие значения
х, при которых правая часть уравнения =0. Мы знаем,
что для этого нам надо:
Найти дискриминант D=b2 – 4ac.
Сравнить его с нулём
Если D<0 , то “корней нет” иначе два корня х1 и
х2.
Х1 = , Х2=
Пример: (вызываем ученика)
3х2-10х+3=0
D=b2-4ac=102-4*3*3=100 – 36 =64
D>0, два корня
Х1=,
X2 =
3. Составление блок-схемы алгоритма.
По заданному решению попробуем составить
блок-схему алгоритма в тетради. Кто справится
первым, прошу к доске.
Подпишем основные элементы блок – схемы
применительно к языку программирования.
4. Составление программы по блок – схеме.
Теперь, пользуясь нашими записями, составим
программу и покажем её учителю. Тот, кто до конца
урока составит только программу, не проверив её
на компьютере, получит три, тот, кто наберёт
программу на компьютере, но не проверит её на
примерах, получит три. Тот, кто выполнит всё
задание, получит пять.
А я раздам вам домашнее задание.
Ответ:
Program kwur;
Uses CRT;
Var a,b,c,d,x1,x1: real;
Begin
Clrscr;
Write(‘введите коэффициенты уравнения a,b,c’);
readln(a,b,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′ x2=’,x2)
END;
Else writeln(‘действительных корней нет’)
End.
5. Практическая работа (Приложение
1).
1. Составить и набрать программу КВУР на
компьютере.
Подсказка:
Загрузка среды Pascal- 2ЩЛКМ по значку Pascal, нажать
ALT+ENTER.
Запуск программы – ЩЛКМ по кнопке RUN выбрать RUN.
2. Решить следующие квадратные уравнения и
показать учителю их решения (если нет такой
возможности, то занести их в маршрутный лист (Приложение 4)
3х2 -10х +1=0
0,5х2+2х – 4=0
4х2 + х – 6=0
2х2 + 3х +8=0
х2 +4 =0
5х2 -8х = 0
1,5х2-0,6х – 4,8 = 0
-2х2+4х – 8 = 0
9х2+4х -7 = 0
0,1х2– 9 = 0
3. Переделайте программу КВУР таким образом,
чтобы в ней учитывался случай, когда D=0 и
уравнение имеет один корень.
4. Закрыть программу.
Подсказка: Меню File – Exit или ALT+X.
Оценивание:
1. За простое воспроизведение (набор программы)
без проверки оценка “3”
2. За проверку работы программы на примерах,
представленных учителем оценка “4”
3. За решение всех заданий и дополнительное
изменение программы для случая D=0, оценка “5”
4. Закрыть программу.
Подсказка: Меню File – Exit или ALT+X.
Ответы:
№ | Х1 | Х2 |
1 | 3,230139 | 0,1031947 |
2 | 1,464102 | -5,464102 |
3 | 1,106107 | -1,356107 |
4 | Корней нет | |
5 | Корней нет | |
6 | 1,6 | 0 |
7 | 2 | -1,6 |
8 | Корней нет | |
9 | 0,6872614 | -1,131706 |
10 | 9,486833 | -9,486833 |
Можно дать дополнительное задание:
Изменить программу так, чтобы ответ был с
точностью до 2-х знаков после запятой.
6. Домашнее задание: (Приложение 2)
1) Напишите программу проверки пароля. Пусть
пароль – некоторое число, зафиксированное в
программе. Программа печатает приглашение
“введите пароль” и вводит число. Если введённое
число совпадает с фиксированным паролем, то
программа выводит приветствие, если нет –
сообщает о том, что пароль не угадан.
7. Подведение итогов урока.
Итак, ребята, сегодня мы с вами решали
конкретные задачи из математики, применяя свои
умения по программированию. Вы получили
следующие оценки за свои знания. (Перечисление
оценок) На следующем уроке нам предстоит
познакомиться с новыми алгоритмами –
Циклическими.
На сегодня наш урок закончен. До свидания.
Литература:
- И. Семакин, Л. Залогова “Информатика. Базовый
курс. 9 класс”, М., БИНОМ, 2005г. - А.А. Чернов “Конспекты уроков информатики в 9-11
классах”, Волгоград: Учитель, 2006г. - Л.И. Белоусова, С.А. Веприк “Сборник задач по
курсу информатики”, М., “Экзамен”, 2007.