Название: Подготовка и решение на ПК задач с разветвлением
Вид работы: контрольная работа
Рубрика: Информатика и программирование
Размер файла: 60.41 Kb
Скачать файл: referat.me-135858.docx
Краткое описание работы: Рациональные корни полинома n-й степени с целыми коэффициентами. Значение функции Y(x) при различных значениях исходных данных. Алгоритм: по номеру года вывести его название с использованием оператора switch/case. Исходные коды программ, тестирование.
Подготовка и решение на ПК задач с разветвлением
Цель контрольной работы: приобретение практических навыков по подготовке, отладке и выполнению разветвляющихся программ.
Задача 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.2fn",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.2fn",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.2fn",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.2fn",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.2fn",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.2fn",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.2fn",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.2fn",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<<"nn";//отступ двух строк (для красоты:-)
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;
}
Результат роботы:
Вывод: выполняя контрольную работу я ознакомился со средствами решения задач разветвляющихся программ на ЭВМ, изучил основные разветвляющиеся конструкции языка С++, функции стандартных библиотек. Я приобрел практические навыки решения задач разветвляющегося характера, их тестирования и отладки.
Похожие работы
-
Программное определение математических функций
Программное вычисление по формулам, определение площади правильного многоугольника для любых возможных исходных данных, использование потоков ввода-вывода. Использование операторов при вычислении математических функций, алгоритмы накопления суммы.
-
Обзор С++
Конструкции языка программирования С++, составление простых программ, использyющих оператор if, оператор if else и оператор switch. Работа оператора switch. Создание программы, которая по дате определяет день недели , на который эта дата приходится.
-
Коды Боуза-Чоудхури-Хоквингема
Коды Боуза-Чоудхури-Хоквингема (БЧХ) – класс циклических кодов, исправляющих многократные ошибки. Отличие методики построения кодов БЧХ от обычных циклических. Конкретные примеры процедуры кодирования, декодирования, обнаружения и исправления ошибок.
-
Операторы языка Си
Характеристики операторов языка Си. Операторы безусловного и условного перехода: if, if-else, if-else if. Оператор переключатель switch. Оператор цикла с предусловием while, постусловием do-while. Упрощение логических выражений, взаимозаменяемость циклов.
-
Реализация языкового процессора оператора FOR языка BASIC
Министерство науки, высшей школы и технической политики Российской Федерации. Новосибирский Государственный Технический Университет. Курсовая работа
-
Оператор присваивания языка FORTRAN
Министерство науки, высшей школы и технической политики Российской Федерации. Новосибирский Государственный Технический Университет. Курсовая работа по системному программированию.
-
Лабораторная работа №5
Цель работы: изучение условного оператора, оператора отбора, составного оператора и правил программирования разветвляющихся алгоритмов. Задание № 17
-
Разработка базы данных для расписания занятий
Особенности написания базы данных на языках программирования C++, применимой для расписания занятий в университете. Этапы работы: ввод новой записи, изменение, просмотр базы данных, поиск данных. Алгоритмы, используемые в процессе выполнения проекта.
-
Перевод целых неотрицательных чисел в различных системах счисления
Программа Enhanced Converter для преобразования мультимедийных файлов. Процедура инициализации приложения, очистки текстовых полей, проверки ввода данных, по вычислению значений в "реальном времени". Внешний вид окна приложения с введенными данными.
-
Разработка виртуального вычислительного устройства с многослойной структурой
Разработка виртуального вычислительного устройства с кассетной структурой. Массивы и кластеры. Вычисления над элементами массива. Вычислительные функции пакета LabVIEW. Логическая последовательность выполнения отдельных частей программы (подпрограммы).