Informatika-laboratornye / лабы отчеты / лаб4
.docФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ ВЯТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
Вечерне-заочный факультет
«ИТЕРАЦИОННЫЕ ЦИКЛЫ»
Отчет по лабораторной работе №3
по дисциплине
«Информатика»
Вариант 3
Выполнил:
студент гр. ИТ-11
Бибанаев В.А.
Проверил:
Малышева А.В.
Киров 2015
Лабораторная работа №4
Тема: Итерационные циклы
Цель: выработка умений решения на компьютере вывода на текстовый экран таблицы и графика функции на языке Си, отладка и тестирование программы.
Задание (вариант №3): Вычислить значение функции точное по её выражению и приближенное по её разложению в ряд суммируя те члены ряда для которых где - заданная ошибка (вводится с клавиатуры) Подсчитать также количество просуммированных членов ряда
Выполнение задания:
1. Математическая постановка
Исходные данные: x – значение аргумента
Результаты: y – значение функции
Допустимые значения вводимых данных согласно условию задачи:
x – тип double, больше либо равно 0.5
eps – тип double, примерная погрешность числового ряда
2. Разработка алгоритма.
Алгоритм вычисления значения функции имеет линейную структуру. Схема алгоритма:
3. Разработка программы
3.1Таблица идентификаторов
Имя переменной |
Тип переменной |
Пояснение |
Спецификации формата |
|
|
Алгоритм |
Программа |
|
|||
Исходные данные |
Ввод |
Вывод |
|
||
x |
x |
double |
Значение аргумента |
%lf |
%g |
eps |
eps |
double |
Погрешность |
%lf |
%g |
ak |
ak |
double |
сумма k-ого члена ряда |
- |
- |
k |
k |
double |
k-ый член ряда |
- |
%f |
Результаты |
|
||||
y |
y |
double |
Значение функции |
%lf |
%lf |
3.2 Содержание результатов работы программы на экране
3.3 Текст программы:
#include<stdio.h>
#include<math.h>
//---------------------------------------------------------------------------
// Лабораторная работа №4 Итерационные циклы
// Выполнил: Бибанаев В.А., гр. ИТ-11 Вариант 3
//---------------------------------------------------------------------------
main()
{
double x, y, eps, ak, k;
printf("Laboratornaia rabota 4 Iteracionnye cikly \n");
printf("Vipolnil: Bibanaev V.A., gr.IT-11, Variant 3 \n");
printf("\n");
printf("Vvod x > 0.5: \t x = ");
scanf("%lf", &x);
y=log(x);
printf("Tochnoe znachenie y = %lf pri x = %g\n", y, x);
printf("Vvod epsilon: \t eps = ");
scanf("%lf", &eps);
printf("\n");
while(eps!=0)
{
y = 0;
k = 1;
ak = 1;
while(fabs(ak)>eps)
{
ak = 1 / k * pow((x - 1) / x, k);
y = y + ak;
k++;
}
printf("\n");
printf("Priblizhennoe znachenie y = %lf pri x = %g and eps = %g\n", y, x, eps);
printf("\n");
printf("Prossumirovano chlenov riada: k = %g \n", k);
printf("\n");
printf("Vvod epsilon ( esli 0 - End ): \t eps = ");
scanf("%lf", &eps);
printf("\n");
}
getchar();
getchar();
}
Выводы: программа выводит точное значение функции, при заданном аргументе. Затем при вводе значения eps выдает приближенное значение этой функции.