Подготовка и решение на ПК задач с разветвлением 
Цель контрольной работы: приобретение практических навыков по подготовке, отладке и выполнению разветвляющихся программ.
 Задача 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.  ............