Подготовка и решение на ПК задач с разветвлением
Цель контрольной работы: приобретение практических навыков по подготовке, отладке и выполнению разветвляющихся программ.
Задача 1. Найти все рациональные корни полинома n-й степени с целыми коэффициентами.
Для нахождения всех рациональных корней полинома n-й степени с целыми коэффициентами используем теорему
Теорема. Для того чтобы несократимая дробь p/q была корнем уравнения (q¹0) с целыми коэффициентами, необходимо, чтобы число р было делителем свободного члена а0, а число q - делителем старшего коэффициента an.
Алгоритм:
Исходный код программы:
#include <math.h> //подключение библиотек
#include <iostream>//подключение библиотек
#include <conio.h>//подключение библиотек
#include <stdio.h>//подключение библиотек
using namespace std;
int main()//главная функция
{
double x,f;//объявление переменных и их типа
x=1.;//присваение значения
f=24.*pow(x,5)+10.*pow(x,4)-pow(x,3)-19.*pow(x,2)-5.*x+6;//описание формулы
if(f==0.) //проверка условия
printf("f(x)=%6.2f x=%6.2f\n",f,x);//вывод результата
x=-1.; //присваение значения
f=24.*pow(x,5)+10.*pow(x,4)-pow(x,3)-19.*pow(x,2)-5.*x+6;//описание формулы
if(f==0.)//проверка условия
printf("f(x)=%6.2f x=%6.2f\n",f,x);//вывод результата
x=6./24.; //присваение значения
f=24.*pow(x,5)+10.*pow(x,4)-pow(x,3)-19.*pow(x,2)-5.*x+6;//описание формулы
if(f==0.)//проверка условия
printf("f(x)=%6.2f x=%6.2f\n",f,x);//вывод результата
x=-6./24.; //присваение значения
f=24.*pow(x,5)+10.*pow(x,4)-pow(x,3)-19.*pow(x,2)-5.*x+6;//описание формулы
if(f==0.)//проверка условия
printf("f(x)=%6.2f x=%6.2f\n",f,x);//вывод результата
x=6./12.; //присваение значения
f=24.*pow(x,5)+10.*pow(x,4)-pow(x,3)-19.*pow(x,2)-5.*x+6;//описание формулы
if(f==0.)//проверка условия
printf("f(x)=%6.2f x=%6.2f\n",f,x);//вывод результата
x=-6./12.; //присваение значения
f=24.*pow(x,5)+10.*pow(x,4)-pow(x,3)-19.*pow(x,2)-5.*x+6;//описание формулы
if(f==0.)//проверка условия
printf("f(x)=%6.2f x=%6.2f\n",f,x);//вывод результата
x=6./6.; //присваение значения
f=24.*pow(x,5)+10.*pow(x,4)-pow(x,3)-19.*pow(x,2)-5.*x+6;//описание формулы
if(f==0.)//проверка условия
printf("f(x)=%6.2f x=%6.2f\n",f,x);//вывод результата
x=-6./6.; //присваение значения
f=24.*pow(x,5)+10.*pow(x,4)-pow(x,3)-19.*pow(x,2)-5.*x+6;//описание формулы
if(f==0.)//проверка условия
printf("f(x)=%6.2f x=%6.2f\n",f,x);//вывод результата
getchar();//функция задержки экрана
getchar();//функция задержки экрана
getchar();//функция задержки экрана
getchar();//функция задержки экрана
return 0;
}
Результат роботы:
Задача 2. . Вычислить значение функции Y(x) при различных значениях исходных данных x и a.
Исходные данные (по вариантам) находятся в таблице 2.
№ Функции Исходные данные вар. x a
15
6
2.7
4.5
Исходный код программы
#include <math.h>//подключение библиотек
#include <conio.h>//подключение библиотек
#include <stdio.h>//подключение библиотек
#include <iostream>//подключение библиотек
using namespace std; //подключение библиотек
int main()//главная функция
{
cout<<"\n\n";//отступ двух строк (для красоты:-)
double x,y,a,b;//объявление переменных и их типа
cout<<"Vvedite X: ";//вывод сообщеня пользователю
cin>>x;//считывание значения, введенного пользователем
a=4.5;//приcваение значений
b=1/2;//приcваение значений
if (x>=a)//проверка условия
{
y=(log(1+pow(1+pow(x,2),b)))/(1+exp(1+x*x))+(a+exp(1+x*x));//описание формулы
}
else
y=(log(1+pow(1+pow(x,2),2)))/1+exp(1+x*x)+(a-exp(1+x*x));//описание формулы
printf("f(x)=%2.2f",y);//вывод результата
getchar();//функция задержки экрана
getchar();//функция задержки экрана
getchar();//функция задержки экрана
getchar();//функция задержки экрана
return 0;
}
Результат роботы:
Задача 3. ............