Контрольная работа по предмету "Информатика, программирование"


Подготовка и решение на ПК задач с разветвлением

Цель контрольной работы: приобретение практических навыков по подготовке, отладке и выполнению разветвляющихся программ.


Задача 1. Найти все рациональные корни полинома n-й степени с целыми коэффициентами.








Задание
1.

Для нахождения всех рациональных корней полинома n-й степени с целыми коэффициентами используем теорему


Теорема. Для того чтобы несократимая дробь p/q была корнем уравнения (q¹0) с целыми коэффициентами, необходимо, чтобы число р было делителем свободного члена а0
, а число q - делителем старшего коэффициента an
.


Алгоритм:



Исходный код программы:


#include <math.h> //подключение библиотек


#include <iostream>//подключение библиотек


#include <conio.h>//подключение библиотек


#include <stdio.h>//подключениебиблиотек


using namespace std;


intmain()//главная функция


{


doublex,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.2fx=%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.2fx=%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.2fx=%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.2fx=%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.2fx=%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.2fx=%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.2fx=%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.2fx=%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";//отступ двух строк (для красоты:-)


doublex,y,a,b;//объявление переменных и их типа


cout<<"VvediteX: ";//вывод сообщеня пользователю


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. В восточном календаре принят 60-летний цикл, состоящий из 12- летних подциклов, обозначаемых названиями цвета: зеленый, красный, желтый, белый и черный. В каждом подцикле годы носят названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи.


По номеру года вывести его название, если 1984 год был началом цикла годом зеленой крысы. Написать программу с использованием оператора switch/case.



Схема алгоритма



Исходный код программы:


#include <iostream>//подключение библиотек


#include <math.h>//подключение библиотек


#include <conio.h>//подключение библиотек


#include <stdio.h>//подключение библиотек


#include <string.h>//подключение библиотек


#include <windows.h>//подключениебиблиотек


using namespace std;


charbuf[256];// функция для использования


char* rus(constchar* text)// русского языка в программе


{ AnsiToOem(text,buf);


return buf; }


intmain()//главная функция


{


inti; //объявление переменных и их типа


cout<<rus("Введите год: ");//вывод сообщеня пользователю


cin>>i; //считывание значения, введенного пользователем


cout<<rus("\nГод ");//вывод сообщеня пользователю


while ((i<1984)||(i>1996))//запускцикла


{


if (i<1984) //проверка условия


{i=i+10;}


else if (i>1996) //проверкаусловия


{i=i-10;}


}


switch (i)


{


case 1984: cout<<rus("зелен"); break;


case 1985: cout<<rus("зелен"); break;


case 1986: cout<<rus("красн"); break;


case 1987: cout<<rus("красн"); break;


case 1988: cout<<rus("жолт"); break;


case 1989: cout<<rus("жолт"); break;


case 1990: cout<<rus("бел"); break;


case 1991: cout<<rus("бел"); break;


case 1992: cout<<rus("черн"); break;


case 1993: cout<<rus("черн"); break;


case 1994: cout<<rus("зелен"); break;


case 1995: cout<<rus("зелен"); break;


}


while ((i<1984)||(i>1996))


{


if (i<1984) //проверка условия


{i=i+12;}


else if (i>1996) //проверкаусловия


{i=i-12;}


}


switch (i)


{


case 1986: cout<<rus("ого "); break;


case 1987: cout<<rus("ого "); break;


case 1988: cout<<rus("ого "); break;


default: cout<<rus("ой "); break;


}


switch (i)


{


case 1984: cout<<rus("крысы"); break;


case 1985: cout<<rus("коровы"); break;


case 1986: cout<<rus("тигра"); break;


case 1987: cout<<rus("зайца"); break;


case 1988: cout<<rus("дракона"); break;


case 1989: cout<<rus("змеи"); break;


case 1990: cout<<rus("лошади"); break;


case 1991: cout<<rus("овцы"); break;


case 1992: cout<<rus("обезьяны"); break;


case 1993: cout<<rus("курицы"); break;


case 1994: cout<<rus("собаки "); break;


case 1995: cout<<rus("свиньи"); break;


}


getchar();//функция задержки экрана


getchar();//функция задержки экрана


getchar();//функция задержки экрана


return 0;


}


Результат роботы:



Вывод: выполняя контрольную работу я ознакомился со средствами решения задач разветвляющихся программ на ЭВМ, изучил основные разветвляющиеся конструкции языка С++, функции стандартных библиотек. Я приобрел практические навыки решения задач разветвляющегося характера, их тестирования и отладки.



Не сдавайте скачаную работу преподавателю!
Данную контрольную работу Вы можете использовать для выполнения своих заданий.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :