Отчёт (Готовые ЛР и ДЗ (ИУ5))
Описание файла
Файл "Отчёт" внутри архива находится в следующих папках: Готовые ЛР и ДЗ (ИУ5), отчёты, работа 3. Документ из архива "Готовые ЛР и ДЗ (ИУ5)", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "информатика" в общих файлах.
Онлайн просмотр документа "Отчёт"
Текст из документа "Отчёт"
Московский государственный технический
университет им. Н.Э. Баумана.
Факультет «Информатика и управление»
Кафедра ИУ5. Курс «Основы информатики»
Отчет по лабораторной работе №3
«Программирование поиска корней многочлена»
Выполнил: | Проверил: | |
студент группы ИУ5-14 | преподаватель каф. ИУ5 | |
Шевченко Роман | Пашнев И.С. | |
Подпись и дата: | Подпись и дата: |
г. Москва, 2008 г.
Постановка задачи
Найти все корни многочлена степени не выше 2.
Многочлен Ax2+Bx+C задан коэффициентами А, В и С.
Разработка алгоритма
При разработки программы надо учесть:
-
В случае если коэффициенты А и В равны нулю, то уравнение не имеет корней.
-
В случае если коэффициент А равен нулю, то уравнение имеет один корень.
-
В случае если дискриминант меньше нуля, то уравнение не имеет корней.
-
В случае если дискриминант равен нулю, то уравнение имеет два одинаковых корня.
-
В случае если дискриминант больше нуля, то уравнение имеет два разных корня.
Описание входных, выходных и вспомогательных данных:
-
int ex– переменная отвечает за завершение программы или нет;
-
float a, b, c – переменные хранят введённые коэффициенты A, B, C;
-
float d – переменная хранит дискриминант;
-
float x1, x2 – переменные хранят корни уравнения;
Текст программы.
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
locale::global(locale("rus"));
int ex;
float a, b, c; //коэффициенты
float d; //дискрименант
float x1, x2; //корни уравнения
do{
cout << "a*x^2+b*x+c=0\n";
cout << "Введите коэффициенты: a, b, c\n";
cin >> a >> b >>c;
d= b*b-4*a*c;
if((a == 0)&&(b == 0)) cout << "Корней нет\n";
else{
if(a == 0)
{
x1= -c/b;
cout << "x1= " << x1 << "\n";
}else{
if(d < 0) cout << "Корней нет\n";
else{
if(d == 0)
{
x1= -b/(2*a);
cout << "x1 = x2 = " << x1 << "\n";
}else {
x1= (-b+sqrt(d))/(2*a);
x2= (-b-sqrt(d))/(2*a);
cout << "x1= " << x1 << "\n" << "x2= " << x2 << "\n";
}
}
}
}
cout << "Введите 0 для завершения\n";
cin >> ex;
}while(ex);
return 0;
}
Анализ результатов
Введённые данные | Результат |
0 1 -1 | X= 1 |
0 4 5 | X= -1.25 |
0 0 3 | Корней нет |
2 3 5 | Корней нет |
2 4 2 | X1= X2= -1 |
-1 6 7 | X1= -1 X2= 7 |