Підготовка та вирішення на ПК задач з розгалуженням
Мета контрольної роботи: набуття практичних навичок з підготовки, налагодженні і виконання розгалужуються програм.
Завдання 1. Знайти всі раціональні корені полінома n-го ступеня з цілими коефіцієнтами.
№ | Завдання |
1. |
Для знаходження всіх раціональних коренів полінома n-го ступеня з цілими коефіцієнтами використовуємо теорему
Теорема. Для того щоб несократімой дріб p / q була коренем рівняння (q ¹ 0) з цілими коефіцієнтами, необхідно, щоб число р було дільником вільного члена а 0, а число q - дільником старшого коефіцієнта a n.
Алгоритм:
Вихідний код програми:
# 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.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"; / / відступ двох рядків (для краси :-)
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. У східному календарі прийнятий 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;
char buf [256], / / функція для використання
char * rus (const char * text) / / російської мови в програмі
{AnsiToOem (text, buf);
return buf;}
int main () / / головна функція
{
int i; / / оголошення змінних і їх типу
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;
}
Результат роботи:
Висновок: виконуючи контрольну роботу я ознайомився із засобами вирішення завдань розгалужуються програм на ЕОМ, вивчив основні розгалужуються конструкції мови С + +, функції стандартних бібліотек. Я придбав практичні навички вирішення завдань разветвляющегося характеру, їх тестування і налагодження.