Автор работы: Пользователь скрыл имя, 28 Октября 2014 в 23:57, лабораторная работа
Задание: вычислить значение полинома.
Цель работы: изучение возможностей библиотек stdio.h и iostream.h, функций ввода и вывода.
Задание: вычислить значение полинома.
Цель работы: изучение возможностей библиотек stdio.h и iostream.h, функций ввода и вывода.
Анализ задания, контрольный пример:
Пусть х=2,5;
Тогда f(2,5)= -123774264;
Математическая постановка задачи:
Дано:
,
где х – целое число.
Найти: значение полинома.
Решение:
Разложим полином на множители, вычисляем промежуточные значения.
Тогда f(x)=(((((-31.902*x*x + 89.524)*-47.28)* -2.4214)*-52532.43)*+ 624.3);
= -31.902*x*x + 89.524 [1]
=*x*x-47.28 [2]
= * x * x -2.4214 [3]
= * x * x - 52532.43 [4]
= * x * x + 624.3 [5]
p= * x * x * x * x * x * x [6]
Особенности решения на ПК:
Ограничения: +3,4E^-38≤ f(x)≤ +3,4E^38
+3,8≤ x≤+3,8.
Интерфейс с пользователем:
Вывод сообщения(1) |
Avtor: Khamluk Elena, gr. 4301 |
Вывод сообщения(2) |
f(x)= -31.902*x^16+89.524*x^14-47. |
Вывод сообщения(3) |
Vvedite x |
Ввод х |
X=d..d.d..d |
Вывод сообщения(4) |
znachenie1: |
Вывод сообщения(5) |
znachenie2: |
Вывод сообщения(6) |
znachenie3: |
Вывод сообщения(7) |
znachenie4: |
Вывод сообщения(8) |
znachenie5: |
Вывод сообщения(9) |
rezultat: p (x) = p |
Выбор формата представления данных:
В библиотеке stdio.h используются функции printf и scanf для вывода на экран и ввода текста с клавиатуры соответственно. Чтобы вывести некоторое количество знаков после запятой с помощью этой библиотеки, нужно в функции printf поставить точку, а затем необходимое количество знаков. В библиотеке iostream.h для вывода и ввода используются cout << и cin >> соответственно. Также использовалась библиотека iomanip.h для вывода на экран необходимого количества знаков после запятой. Для этого нужно использовать функцию setpresision (), а в скобках указать количество знаков.
Описание алгоритма решения:
Текст программы:
int main()
{
float x, p;
printf ("%s", "Avtor: Khamluk Elena, gr. 4301 \n");
printf ("%s", "f(x)=
-31.902*x^16+89.524*x^14-47.
printf ("Vvedite x \n");
scanf ("%f", &x);
p = -31.902*x*x + 89.524;
printf ("%s %.2f \n", "znachenie1: ", p);
p = p * x *x - 47.28;
printf ("%s %.2f", "\n znachenie2: ", p);
p = p * x * x -2.4214;
printf ("%s %.2f", "\n znachenie3: ", p);
p = p * x * x - 52532.43;
printf ("%s %.2f", "\n znachenie4: ", p);
p = p * x * x + 624.3;
printf ("%s %.2f", "\n znachenie5: ", p);
p = p * x * x * x * x * x * x;
printf ("%s %.2f %s %f", "\n rezultat p (",x,")= ", p);
}
#include <iomanip>
using namespace std;
int main()
{
float x, p;
cout << "Avtor: Khamluk Elena, gr. 4301" << endl;
cout << "f(x)= -31.902*x^16+89.524*x^14-47.
cout << "Vvedite x" << endl;
cin >> x;
p = -31.902*x*x + 89.524;
cout.setf(ios::fixed);
cout << setprecision(2) << "znachenie1:" <<p;
p = p * x *x - 47.28;
cout << setprecision(2) << "\n znachenie2:" <<p;
p = p * x * x -2.4214;
cout << setprecision(2) << "\n znachenie3:" <<p;
p = p * x * x - 52532.43;
cout << setprecision(2) << "\n znachenie4:" <<p;
p = p * x * x + 624.3;
cout << setprecision(2) << "\n znachenie5:" <<p;
p = p * x * x * x * x * x * x;
cout << setprecision(2) << "\n rezultat: p ("<<x<<") =" <<p<< '\n';
}
Тестовый пример:
Первый вариант:
Пусть x=3;
Второй вариант:
Пусть x=5;
Вывод: изучила возможности библиотек stdio.h и iostream.h, научилась пользоваться функциями ввода и вывода на языке C++.