Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лабы для 28 варианта / Лабораторная работа№3

.docx
Скачиваний:
2
Добавлен:
21.12.2020
Размер:
178.2 Кб
Скачать

Санкт-Петербургский государственный университет телекоммуникаций им. проф. М.А. Бонч-Бруевича

ПРОГРАММИРОВАНИЕ

Отчёт по Лабораторной Работе №3

тема: «Циклические вычислительные процессы.

Задача табулирования»

Санкт-Петербург 2020

А. Постановка задачи(28 вариант)

Требуется составить программу вычисления N значений функции y=  для ряда равноотстоящих значений аргумента x, начиная от   до . Функция y=  зависит от параметра a.

y =

Результаты вычислений следует оформить в виде таблицы, снабженной заголовком.

Б. Разработка алгоритма

В программе необходимо организовать арифметический цикл для того, чтобы вычислить N значений. Следует воспользоваться циклом for, как наиболее удобным. Счетчик цикла – i.

Заведем промежуточную dx = , которая будет разницей между значениями x (иначе говоря, шагом роста x). В цикле переменная   будет играть роль самой x: будет увеличиваться на dx.

В программе должен быть предусмотрен ввод исходных данных, к которым относятся переменные N, a,  , ; последовательные вычисления и выводы величин ix и в виде оформленной таблицы.

В. Таблица идентификаторов

Обозначение в задаче

Идентификатор

Назначение

N

n

Количество расчетных точек

a

a

Параметр функции

x

xn

Начальное значение аргумента

x

xk

Конечное значение аргумента

-

dx

Шаг изменения аргумента

x

x

Текущее значение аргумента

y

y

Вычисленное значение аргумента

-

i

Счетчик цикла

Г. Схема алгоритма

Д. Контрольный расчет

В качестве контрольного набора выберем N=3, a=3, xn=5, xk=15.

Результаты вычислений приведены ниже в таблице вычислений.

Назначение набора данных

Набор данных

Результаты вычислений

N

a

xn

xk

ручных

машинных

X

y

x

y

Контрольный набор

3

3

5

15

5

2.512

5

2.512

10

1.545

10

1.545

15

1.116

15

1.116

Рабочий набор

12

2,5

-1

1

-1

9.934

-1

9.934

-0,818

8.591

-0,818

8.591

-0,636

7.551

-0,636

7.551

-0,455

6.726

-0,455

6.726

-0,273

6.059

-0,273

6.059

-0,091

5.511

-0,091

5.511

0,091

5.054

0,091

5.054

0,273

4.668

0,273

4.668

0,455

4.338

0,455

4.338

0,636

4.053

0,636

4.053

0,818

3.804

0,818

3.804

1

3.586

1

3.586

Е. Программа на языке Си

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

int main()

{

double xn, xk, a, x, y, dx;

int n,i;

printf("n= ");

scanf("%d", &n);

printf("a= ");

scanf("%lf", &a);

printf("xn= ");

scanf("%lf", &xn);

printf("xk= ");

scanf("%lf", &xk);

dx = (xk - xn) / (n - 1);

x=xn;

printf("| # | X | Y |\n");

printf("|----|-------|-------|\n");

for(i = 1; i <= n; i++)

{

y = (exp(-x)+exp(a))/(a+x);

printf("| %2d | %.3lf | %.3lf |\n", i, x, y);

x += dx;

}

return 0;

}

Ж. Выводы

Тот факт, что результаты контрольных расчетов, выполненных вручную, достаточно совпадают с результатами контрольных расчетов, выполненных на ЭВМ, свидетельствуют о том, что программа составлена правильно.