Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Программирование

Автор:   •  Май 29, 2018  •  Контрольная работа  •  2,447 Слов (10 Страниц)  •  881 Просмотры

Страница 1 из 10

Федеральное агентство железнодорожного транспорта

Омский государственный университет путей сообщения

Кафедра «Автоматика и системы управления»

ИЗУЧЕНИЕ  СРЕДЫ  ПРОГРАММИРОВАНИЯ

Лабораторная работа № 2

по теме «Программирование»

Студент гр. 27м

                          Н.О Антоненко

«    »                  2018 г.

Руководитель –

Ст.преподаватель кафедры «АиСУ»

                          А.В. Александров

«    »                  2018 г.

Омск 2018

1 Цель работы

Овладение навыками построения простых и вложенных циклов, повторение основных форм записи циклов на языке С.

2 Выполнение работы

2.1 Программа №1

2.1.1         Посчитать сумму ряда, ограничивая число элементов ряда первым элементом, меньшим заданной величины eps. Определить реальную точность ряда

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

#include

#include "math.h"

const float eps = 0.01;

/*Функция вещественного типа высчитывает функцию при определенном n,

которая передается в аргумент

*/

float function(int n)

{

        float res = pow(-1,n-1)/n;

        return res;

}

/*Функция рекурсивная. Аргументы: n - число n,

*range - указатель на ряд суммы*/

void summ_r(int n, float *range)

{

        if(fabs(function(n))>=eps) //проверяет, больше ли значение функции eps

        {

                *range+=function(n);

                n++;

                summ_r(n, range);        //функция вызывает сама себя

        }

}

main()

{

        int n = 1; //начальное значение n(по условию)

        float range=0;                

        float *p=⦥

        summ_r(n, p);

        printf("Сумма ряда равна %f\n", range);

        printf("Погрешность %f", (log(2)-range)/100);

       }

Листинг 1 – Листинг программы 2.1.1

2.1.2 Реализовать функцию, ограничивая число элементов ряда первым элементом, меньшим заданной величины eps. Рассчитать 10 значений из области сходимости

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

#include "stdio.h"

#include "math.h"

#include "windows.h"

#include "assert.h"

const float eps = 0.01;                //ограничение для ряда

float funct_1(float x)                //функция e^x

{

        return pow(2.71828, x);

}

int fact(int n)                                //функция, высчитывающая факториал

{

        if(n==0) return 1;

        if(n==1) return 1;

        return fact(n-1)*n;

}

float range(float x, int n)                //функция, высчитывающая значение

                                                                //ряда при определенном x, n

{

        return pow(x, n)/fact(n);

}

float funct_2(float x, int n)//функция-разложение в ряд (рекурсивная)

{

        float res=0;                //переменная, в которую записывается сумма при

                                                //каждом n

        if (range(x, n)>eps)//ограничение по eps

        {

                res=range(x, n);

#ifdef        DEBUG

        printf("range = %10f, x=%f, n=%i\n", range(x, n), x, n);

#endif

                n++;                        //n увеличивается и вновь вызывается функция

                return res+funct_2(x, n);

        }

        return res;

}

main()

{

        system("cls");

        float i, t=0, a[10],b[10];                //массивы, в которые записываются значение функций

        float x;

        int j, n=0;

        printf("|    x     |    e^    |   range  |\n");        //шапка таблицы

...

Скачать:   txt (11.3 Kb)   pdf (163 Kb)   docx (26.9 Kb)  
Продолжить читать еще 9 страниц(ы) »
Доступно только на Essays.club