Математические функции в программировании
Операторы и математические функции. В C++ определены следующие арифметические операторы
В C++ определены следующие арифметические операторы.
% деление по модулю
– – декремент (уменьшение на 1)
++ инкремент (увеличение на 1).
Действие операторов +, –, * и / совпадает с действием аналогичных операторов в алгебре. Их можно применять к данным любого встроенного числового типа.
После применения оператора деления (/) к целому числу остаток будет отброшен. Например, результат целочисленного деления 10/3 будет равен 3. Остаток от деления можно получить с помощью оператора деления по модулю (%). Например, 10%3 равно 1. Это означает, что в С++ оператор % нельзя применять к нецелочисленным типам данных.
Операторы инкремента (++) и декремента (– –) обладают очень интересными свойствами. Поэтому им следует уделить особое внимание.
Оператор инкремента выполняет сложение операнда с числом 1, а оператор декремента вычитает 1 из своего операнда. Это значит, что инструкция:
аналогична такой инструкции:
аналогична такой инструкции:
Операторы инкремента и декремента могут стоять как перед своим операндом (префиксная форма), так и после него (постфиксная форма). Например, инструкцию
можно переписать в виде префиксной
++х;//префиксная форма оператора инкремента
или постфиксной формы:
х++;//постфиксная форма оператора инкремента
В предыдущем примере не имело значения, в какой форме был применен оператор инкремента: префиксной или постфиксной. Но если оператор инкремента или декремента используется как часть большего выражения, то форма его применения очень важна. Если такой оператор применен в префиксной форме, то C++ сначала выполнит эту операцию, чтобы операнд получил новое значение, которое затем будет использовано остальной частью выражения. Если же оператор применен в постфиксной форме, то С++ использует в выражении его старое значение, а затем выполнит операцию, в результате которой операнд обретет новое значение.
В языке С++ имеются специальные функции для расчета алгебраических выражений. Все такие функции находятся в отдельном заголовочном файле math.h. Поэтому для использования функций в коде программы необходимо подключить данный файл с помощью директивы
Приведем основные алгебраические функции С++.
abs(x) — модуль целого числа;
labs(x) — модуль «длинного» целого;
fabs(x) — модуль числа с плавающей точкой;
sqrt(x) — извлечение квадратного корня;
pow(x,y) — возведение x в степень y;
exp(x) — експонента в степени x;
log(x) — натуральный логарифм;
log10(x) — десятичный логарифм
При возведении числа в дробную степень, знаменатель дробной степени нужно записывать в вещественном виде. Например: квадратный корень из а записывается так: pow(a,1/2.0)
Продемонстрируем использование функций на примерах.
5. Операторы ввода/вывода на языке С++
Для вывода сообщения на экран используется следующий оператор C++:
Информация, заключенная в двойные кавычки, является сообщением, которое должно быть выведено на экран. В языке C++ любая последовательность символов, заключенная в двойные кавычки, называется строкой потому, что она состоит из нескольких символов, соединяемых вместе в более крупный блок (элемент).
Строка в операторе COUT может содержать так называемые подстановочные символы — символы, которых нет на клавиатуре или они заняты под ключевые символы в тексте программы. Перед каждым таким подстановочным символов ставится символ «».
Приведем перечень таких символов:
a – звуковой сигнал
n – переход на новую строку
t – горизонтальная табуляция
v – вертикальная табуляция
Например, оператор вида:
Слово «пример» выведет на одной строке, а слово «текста» на другой.
Слово «Чайка» отобразит в двойных кавычках.
Кроме текса оператор может выводить на экран значения переменных, комбинируя их с текстом.
Организация паузы для просмотра результата
После выполнения программы обычно происходит автоматичский возврат в окно с исходным текстом. Это не позволяет просмотреть результат, который программа выдает на экран. Выходом из этой ситуации может быть использование клавиш Alt+F5, при нажатии на которые происходит скрытие окна с кодом программы. Повторное нажатие на эти клавиши возвращает окно с кодом на экран.
Однако, если создать исполняемый EXE файл, то использовать эти клавиши будет невозможно и результат останется невидимым для пользователя.
Для решения данной проблемы в конце программы можно добавлять функцию, которая приостанавливает работу до нажатия любой клавиши. Эта функция имеет вид:
Данная функция находится в заголовочном файле conio.h. Поэтому для ее использования данный файл должен быть подключен с помощью директивы:
Оператор ввода данных с клавиатуры
Для вода данных с клавиатуры в С++ имеется оператор:
Данный оператор приостанавливает работу программы и ждет пока пользователь не введет значение переменной и на нажмет ENTER.
C помощью одного оператора можно ввести значения нескольких переменных. Для этого оператор записывают в виде:
При запуске программы каждое значение вводится через пробел и в конце нажимают ENTER.
Оператор COUT находится в заголовочном файле iostream.h. Поэтому для его использования данный файл нужно подключить с помощью директивы:
6. Пример программы на С++
Для демонстрации решим одну задачу. Составить программу для нахождения значения функции:
Программа может иметь вид:
//подключаем файл для организации ввода/вывода
//подключаем файл для использования алгебраических функций
//подключаем файл для вызова функции очистки экрана
//заголовок главной программы
//описываем три переменных вещественного типа
//выдаем текстовую подсказку на экран
//считаем значение функции
//устанавливаем точность вывода результата 3 знака полсе запятой
Математические функции
Математические функции
Система программирования MSC предоставляет дополнительно функции:
Система программирования ТС предоставляет дополнительно функции:
Прототипы функций содержатся в файле math.h, за исключением прототипов функций _clear87, _control87, _fpreset, status87, которые определены в файле float.h. Функция matherr (ее пользователь может задать сам в своей программе) вызывается любой библиотечной математической функцией при возникновении ошибки. Эта программа определена в библиотеке, но может быть переопределена пользователем, если она необходима, для установки различных процедур обработки ошибок.
Похожие главы из других книг:
Математические формулы
Математические формулы Кирпичи просто создавать, использовать, они понятны и просты, но на протяжении столетий возникло и сформировалось более тонкое понимание систем упорядочения. Эти открытия и нововведения развивали наше понимание сеток. Обращаясь к математике,
Математические функции
Математические функции Имеющиеся в VBScript функции, предназначенные для математических вычислений, описаны в табл. П2.14.Таблица П2.14. Математические функции Функция Описание Abs(x) Возвращает абсолютное значение числа х Atn(x) Возвращает арктангенс числа х Cos(x) Возвращает
Математические функции
Математические функции Функции округления absВозвращает модуль числа.Синтаксис:mixed abs(mixed $number)Тип параметра $number может быть float или int, а ти п возвращаемого значения всегда совпадает с типом этого параметра.$x = abs(-4); // $x=4$x = abs(-7.45); // $x=7.45roundОкругление дробного числа до
2.1. Предыстория. Математические основы
2.1. Предыстория. Математические основы Представление различных понятий окружающего нас мира при помощи графической символики уходит своими истоками в глубокую древность. В качестве примеров можно привести условные обозначения знаков Зодиака, магические символы
4.1. Математические формулы
4.1. Математические формулы В текстовом редакторе Word существует специальный инструмент для работы с формулами – редактор формул. С его помощью можно создавать сложные объекты, выбирая символы с панели инструментов и задавая переменные и числа. При этом размер шрифтов,
Стандартные математические функции
Стандартные математические функции ABS (X) – абсолютная величина X.ARCTAN (X) – вычисление угла в радианах, тангенс которого равен X.COS (X) – вычисление косинуса угла в радианах.EXP (X) – Вычисление ex.LN (X) – вычисление натурального логарифма от X.PI – вычисление числа Пи.RANDOM –
Стандартные математические функции
Стандартные математические функции Для того, чтобы использовать эти функции в начале программы должно стоять:#include abs (x) – возвращает абсолютное значение целого аргумента x.acos (x) – арккосинус x.asin (x) – арксинус x.atan (x) – арктангенс x.cos (x) – косинус x.exp (x) – ex.fabs
8.1.9. Массивы как математические множества
8.1.9. Массивы как математические множества В большинстве языков множества напрямую не реализованы (Pascal составляет исключение). Но массивы в Ruby обладают некоторыми свойствами, которые позволяют использовать их как множества. В данном разделе мы рассмотрим эти свойства и
Математические функции
Математические функции Создайте чистую таблицу. Эту таблицу мы будем использовать для примеров использования функций.Наиболее часто используемая функция в математических расчетах – это КОРЕНЬ.1. Выделите ячейку R2C2. В эту ячейку мы будем вставлять функцию.2. Нажмите
4.5.3. Функции, которые создают новые конфигурации из существующих 4.5.3.1. Функции геометрии, которые производят новые конфигурации
4.5.3. Функции, которые создают новые конфигурации из существующих 4.5.3.1. Функции геометрии, которые производят новые конфигурации Раздел «4.5.2. Функции Geometry» обсуждает несколько функций, которые создают новые конфигурации из
Математические функции
Математические функции Функция Краткое описание abs нахождение абсолютного значения выражения типа int acos вычисление арккосинуса asin вычисление арксинуса atan вычисление арктангенса х atan2 вычисление арктангенса от у/х cabs нахождение абсолютного значения
Математические формулы для женщин
Математические формулы для женщин Авторы: Скамейкин, Алексей, Яблоков, Сергей Две тысячи лет мужчины провели впустую. Вместо того чтобы написать формулу красоты и здоровья или хотя бы соорудить внятное определение красоты, они ходили вокруг да около, не в силах
Математические функции в программировании
5.1.1. пУОПЧОПК БМЗПТЙФН
бМЗПТЙФН ТЕЫЕОЙС ЪБДБЮЙ — МЙОЕКОЩК Й УПУФПЙФ ЙЪ:
5.1.2. пРФЙНЙЪБГЙС БМЗПТЙФНБ
рЕТЕД ОЕРПУТЕДУФЧЕООЩН РТПЗТБНЙТПЧБОЙЕН БМЗПТЙФНБ РТПБОБМЙЪЙТХЕН, ЛБЛ Ч ОЕН НПЦОП ЙЪНЕОЙФШ ПВЯЕН ЧЩЮЙУМЕОЙК.
чЩТБЦЕОЙЕ ax ЧУФТЕЮБЕФУС ПДЙО ТБЪ Ч РЕТЧПК ЖПТНХМЕ Й ДЧБЦДЩ — ЧП ЧФПТПК. уМЕДПЧБФЕМШОП, НПЦОП ПДЙО ТБЪ РТПЙЪЧЕУФЙ ХНОПЦЕОЙЕ a*x, Б РПФПН ЙУРПМШЪПЧБФШ ЬФПФ ТЕЪХМШФБФ.
чП ЧФПТПК ЖПТНХМЕ ДЧБЦДЩ ЧУФТЕЮБЕФУС ХНОПЦЕОЙЕ ЛЧБДТБФОПЗП ЛПТОС ОБ ФБОЗЕОУ — ЬФП ЧЩЮЙУМЕОЙЕ НПЦОП ФБЛ ЦЕ УДЕМБФШ ПДЙО ТБЪ.
чЩТБЦЕОЙЕ c 2 -b 2 НПЦОП ТБЪМПЦЙФШ ОБ (c+b)(c-b). дП ТБЪМПЦЕОЙС Ч ЧЩТБЦЕОЙЙ ВЩМП ДЧЕ ПРЕТБГЙЙ ХНОПЦЕОЙС (ЧПЪЧЕДЕОЙЕ Ч УФЕРЕОШ 2) Й ПДОБ — УМПЦЕОЙС. рПУМЕ ТБЪМПЦЕОЙС — ДЧБ УМПЦЕОЙС Й ПДОП ХНОПЦЕОЙЕ, ЮФП ЧЩЗПДОЕЕ ДМС ЧЩЮЙУМЕОЙК.
5.1.3. пЗТБОЙЮЕОЙС ОБ ЪОБЮЕОЙС РБТБНЕФТПЧ
бТЗХНЕОФ ЖХОЛГЙЙ, ЛПФПТХА ЧЩЮЙУМСЕФ МПЗБТЙЖН, ОЕ НПЦЕФ ВЩФШ 0 ЙМЙ НЕОШЫЕ. пФУАДБ ЧЩФЕЛБАФ ФТЕВПЧБОЙС Л ЪОБЮЕОЙСН:
a * x + b > 0; y * x + d > 0
бТЗХНЕОФ ЖХОЛГЙЙ ЙЪЧМЕЮЕОЙС ЛЧБДТБФОПЗП ЛПТОС ОЕ НПЦЕФ ВЩФШ НЕОШЫЕ 0, ПФУАДБ:
ч ЪОБНЕОБФЕМЕ ЧЩТБЦЕОЙС ОЕ НПЦЕФ ВЩФШ 0, ПФУАДБ:
5.2. пРТЕДЕМЕОЙЕ РЕТЕНЕООЩИ РТПЗТБННЩ
дМС ТЕЫЕОЙС ЪБДБЮЙ ОБН РПОБДПВСФУС РЕТЕНЕООЩЕ ДМС РТЕДУФБЧМЕОЙС ЛБЦДПЗП РБТБНЕФТБ ЖПТНХМ — a, b, c, d, x, y Й ТЕЪХМШФБФПЧ — t1, t2. лТПНЕ ФПЗП, РТЙДЕФУС ЧЧЕУФЙ ДПРПМОЙФЕМШОХА РЕТЕНЕООХА ax ДМС ИТБОЕОЙС РТПНЕЦХФПЮОПЗП ТЕЪХМШФБФБ , ОЕПВИПДЙНПЗП ДМС ПРФЙНЙЪБГЙЙ. фЙР ЧУЕИ РЕТЕНЕООЩИ — double.
5.3. тБЪТБВПФЛБ ФЕЛУФБ РТПЗТБННЩ
рТПЗТБННБ ОБЮЙОБЕФУС У ЧЛМАЮЕОЙС ЖБКМПЧ:
Ч ЛПФПТЩИ ОБИПДСФУС ПРЙУБОЙС ЖХОЛГЙК ЧЧПДБ- ЧЩЧПДБ Й НБФЕНБФЙЮЕУЛЙИ ЖХОЛГЙК УППФЧЕФУФЧЕООП.
дБМЕЕ ПФЛТЩЧБЕН ЗМБЧОХА ЖХОЛГЙА:
чЛМАЮБЕН ПРЙУБОЙС РЕТЕНЕООЩИ (УН. Р.5.2):
чЧПДСФУС ЪОБЮЕОЙС ДМС РЕТЕНЕООЩИ x Й y:
дБМЕЕ ЧЩЮЙУМСЕФУС РЕТЧПЕ РТПНЕЦХФПЮОПЕ ЪОБЮЕОЙЕ:
Й РЕТЧЩК ТЕЪХМШФБФ:
чЩЮЙУМСЕФУС ЧФПТПК РТПНЕЦХФПЮОЩК ТЕЪХМШФБФ:
Й ЧЩЮЙУМСЕФУС ЧФПТПК ПЛПОЮБФЕМШОЩК ТЕЪХМШФБФ:
рПМХЮЕООЩЕ ТЕЪХМШФБФЩ ЧЩЧПДСФУС ОБ ЬЛТБО:
рПМОЩК ФЕЛУФ РТПЗТБННЩ РТЙЧПДЙФУС ОЙЦЕ.
5.4. пФМБДЛБ РТПЗТБННЩ
рТЙ ПФМБДЛЕ РТПЗТБННЩ НПЦОП РТПЧЕТСФШ РТБЧЙМШОПУФШ ЧЩРПМОЕОЙС ЛБЦДПК ПРЕТБГЙЙ. дМС ЬФПЗП УМПЦОЩЕ ПРЕТБФПТЩ-ЧЩТБЦЕОЙС, ТБЪВЙЧБАФУС ОБ РПУМЕДПЧБФЕМШОПУФШ ПРЕТБФПТПЧ-ЧЩТБЦЕОЙК, Ч ЛБЦДПН ЙЪ ЛПФПТЩИ ЧЩРПМОСЕФУС ФПМШЛП ПДОБ ПРЕТБГЙС. тЕЪХМШФБФ ЛБЦДПК ФБЛПК ПРЕТБГЙЙ ЧЩЧПДЙФУС ОБ ЬЛТБО ЙМЙ ПФУМЕЦЙЧБЕФУС Ч РПЫБЗПЧПН ТЕЦЙНЕ.
5.5. тЕЪХМШФБФЩ ТБВПФЩ РТПЗТБННЩ
рТЙ ТБВПФЕ РТПЗТБННЩ ОБ ЬЛТБО ВЩМП ЧЩДБОП УМЕДХЭЕЕ:
5.6. чЩЧПДЩ
рТЙ ЧЩРПМОЕОЙЙ МБВПТБФПТОПК ТБВПФЩ ЙЪХЮЕОЩ УМЕДХАЭЙЕ ФЕНЩ:
- РТПЗТБНЙТПЧБОЙЕ БМЗЕВТБЙЮЕУЛЙИ ЧЩТБЦЕОЙК У ЙУРПМШЪПЧБОЙЕН БТЙЖНЕФЙЮЕУЛЙИ ПРЕТБГЙК Й УФБОДБТФОЩИ НБФЕНБФЙЮЕУЛЙИ ЖХОЛГЙК.
рТЙМПЦЕОЙЕ. оЕЛПФПТЩЕ УФБОДБТФОЩЕ НБФЕНБФЙЮЕУЛЙЕ ЖХОЛГЙЙ.
уФБОДБТФОЩЕ НБФЕНБФЙЮЕУЛЙЕ ЖХОЛГЙЙ ОБИПДСФУС Ч ЖБКМЕ math.h.
abs — БВУПМАФОПЕ ЪОБЮЕОЙЕ ГЕМПЗП ЮЙУМБ — |x|
labs — БВУПМАФОЕ ЪОБЮЕООС «ДМЙООПЗП» ГЕМПЗП ЮЙУМБ — |x|:
fabs — БВУПМАФОПЕ ЪОБЮЕОЙЕ ЮЙУМБ У РМБЧБАЭЕК ФПЮЛПК — |x|:
sqrt — ЙЪЧМЕЮЕОЙЕ ЛЧБДТБФОПЗП ЛПТОС:
pow — ЧПЪЧЕДЕОЙЕ Ч УФЕРЕОШ:
cos — ЛПУЙОХУ — cos x (ЪДЕУШ Й ДБМЕЕ x ЪБДБЕФУС Ч ТБДЙБОБИ):
IT Памятка
Чтобы не забыть и впоследствии освежить память
Архив рубрики: Программирование
Рубрика для примеров программирования
Сделать кнопки с помощью CSS3
Сделать кнопки с помощью CSS3
Создадим кнопки, для этого создадим классы css «my-button»
В самом документе пишем
Распространенные математические функции в С++
Математические функции в С++
Чтобы использовать математические функции необходимо подключить библиотеку math.h
Для каждой функции нужно обращать внимание на тип обрабатываемых данных, например, результатом функции abs(–3.7) будет число 3.0, а не 3.7 как ожидалось, т.к. функция abs может работать только с целыми числами.
Перечень математических функций для изучения (в тригонометрических функциях углы измеряются в радианах):
abs (fabs) – абсолютная величина целого числа (числа с плавающей точкой),
acos – вычисление арккосинуса,
asin – вычисление арксинуса,
atan – вычисление арктангенса,
atan2 – вычисление арктангенса (вычисляет угол по значению катетов),
atof – преобразует строку в число с плавающей точкой
atoi – преобразует строку в целое число
atof – преобразует строку в число с плавающей точкой
cabs – вычисляет абсолютную величину комплексного числа,
ceil – округление до ближайшего целого в большую сторону,
cos – косинус,
cosh – гиперболический косинус,
exp – экспонента,
floor – округление до ближайшего целого в меньшую сторону,
fmod – остаток целочисленного деления двух чисел,
frexp – вычисляет значение мантиссы m и показателя степени n для преобразо-
вания числа с плавающей точкой к виду m⋅2n ,
hypot – вычисляет значение гипотенузы по значениям катетов,
ldexp – по значению мантиссы m и показателя степени n вычисляет число с плавающей точкой по формуле m⋅2n
log – вычисляет натуральный логарифм числа,
log10 – вычисляет десятичный логарифм числа,
modf – разбивает число с плавающей точкой на целую и дробную части,
poly – вычисляет полином вида a0x0 + a1x1 +…anxn
pow – вычисляет возведение числа в степень,
pow10 – вычисление числа 10 в степень,
sin – вычисление синуса угла,
sinh – вычисление гиперболического синуса,
sqrt – вычисление квадратного корня,
tan – вычисление тангенса угла,
tanh — вычисление гиперболического тангенса угла.
В компоненте Edit вводить только цифры
В компоненте Edit набирать только цифры.
Часто возникает необходимость обеспечить в компоненте Edit ввод только цифр (чисел).
Решение:
Надо в событии OnKeyPress для нужного компонента Edit прописать:
Логические операторы в С++
Логические операторы в С++
В языке Си результатом логической операции служит целое число,
любое целое число, не равное 0, интерпретируется как истина;
Логические операторы
&& — логическое И
|| — логическое ИЛИ
! — отрицание
Пример
Поразрядные (битовые) логические операторы:
& ( или and ),
| ( или OR ),
^ ( или XOR ),
— ( или NOT ),
> сдвиг вправо.
Пример
Если соответствующие разряды одинаковы, то в результате имеем 1, иначе имеем 0. Так работает операция «and» или логическое умножение.
Аналогично работают другие битовые логические операторы.
Пример задачи для условных операторов в С++
Общее задание:
Используя операторы ветвления (if и if … else), составить программу для вычисления составной (сложной) функции, имеющей различный вид на разных участках аргумента. С помощью переключателя (switch) указать на каком отрезке находится введенное с клавиатуры значение аргумента, и вывести значение функции в данной точке.
Все исходные данные, необходимые для проведения вычислений, вводить
с клавиатуры.
Функция и отрезки:
Математические функции в программировании
Запись математических выражений. Математические операторы Для записи математических выражений в языке Си зарезервированы следующие символы:
+ сложение;
— вычитание;
* умножение;
/ деление;
++ инкремент (увеличение числа на единицу);
— декремент (уменьшение числа на единицу);
= равно (присвоить);
Для расстановки приоритетов операций используются круглые скобки ().
Рассмотрим небольшую программу с применением перечисленных операторов:
#include
void main()
<
float x,y,z;
clrscr();
x = 5;
y = 2;
z = x + y;
printf(«Summa %fn»,z);
z = x — y;
printf(«Raznost %fn»,z);
z = x / y;
printf(«Delenie %fn»,z);
z = x * y;
printf(«Umnojenie %fn»,z);
z = (y + y) * y;
printf(«Skobki %fn»,z);
>
В этой программе мы объявляем три переменные x,y и z типа float.
Переменной x присваиваем значение 5 и переменной y значение 2. Затем последовательно выполняем операции над операндами x и y, присваивая результаты переменной z. Полученные значения z выводим на экран:
Для полноценного использования математических возможностей языка Си, в языке имеется ряд математических функций, которые содержатся в модуле math.h. При использовании в программе математических функций следует подключить этот модуль директивой препроцессора #include .
Ниже приведён список математических функций содержащихся в модуле math.h:
Числовые значения тригонометрических функций должны быть выражены в радианах. Для преобразования радиан в градусы можно воспользоваться следующей формулой: 3.14*x/180. Для примера вычисления синуса в градусах напишем такую программу:
#include
#include
void main()
<
float x,z;
clrscr();
x = 90;
z = sin(3.14*x/180);
printf(«Sinus(90)= %fn»,z);
>
Результат работы программы:
Для ввода данных с клавиатуры в Си имеется функция scanf(«управляющая строка», аргумент1, аргумент2. );
Управляющая строка, заключённая в кавычки, содержит символы указания типов вводимых значений. Символы такие же, как и в функции printf. Далее, за кавычками, идёт перечисление вводимых переменных через запятую. Перед каждой переменной следует вводить символ &.
Для примера, напишем программу решения квадратного уравнения ax 2 + bx + c = 0. Аргументы a, b и c будем вводить с клавиатуры.
Для добавления комментариев в текст программы на Си служит такая конструкция: /* Комментарий */. Комментарий никак не влияет на работу программы.
#include
#include
void main()
<
float a,b,c,x1,x2,d;
clrscr();
/* Вводим с клавиатуры аргументы уравнения */
printf(«Vvedi a:»);
scanf(«%f»,&a);
printf(«nVvedi b:»);
scanf(«%f»,&b);
printf(«nVvedi c:»);
scanf(«%f»,&c);
/* Вычисляем дискриминант */
d = b*b-4*a*c;
printf(«nDiscriminant= %f»,d);
/* Вычисляем корни уравнения */
x1 = (-b+sqrt(d))/(2*a);
printf(«nX1= %f»,x1);
x2 = (-b-sqrt(d))/(2*a);
printf(«nX2= %f»,x2);
>
Вводя с клавиатуры значения a, b и c, получим значение двух корней уравнения x1и x2.
Для того, что бы дискриминант уравнения d был положительной величиной, желательно вводить значение c со знаком минус. При отрицательном дискриминанте вычисление квадратного корня из d будет невозможно, и программа завершится с ошибкой:
Для обработки ошибок такого рода следует воспользоваться логическими операциями, о чём и пойдёт речь в следующем уроке.