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

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

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

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

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

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

тема: Линейные вычислительные процессы

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

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

Требуется составить программу вычисления значений функций

y=

z=

по заданным значениям a, x, b и выполнить вычисления на ЭВМ.

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

Решаемая задача относится к категории задач формульного счета. В формуле для вычисления величины z целесообразно выполнить вычленение одинаковых подвыражений. Для выполнения вычленения введем дополнительную переменную р. С учетом этого расчетные формулы принимают следующий вид:

y=

p=

z=

В программе должен быть предусмотрен ввод исходных данных, к которым относятся переменные x, a, b; вычисления величин y, p и z; вывод результатов вычислений (вывод значений величин y и z).

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

N

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

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

Назначение

1

X

x

Исходные данные

2

A

a

3

B

b

4

Y

y

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

5

z

z

6

-

p

Промежуточная величина

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

y=

p=

z=

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

Для тестирования программы выбираем контрольный набор исходных данных: x = 1,046; a = 0,5; и b =6.

Расчет, выполненный вручную, дал следующие результаты: y = 0,994; z =25,461 (см. таблицу вычислений ниже)

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

Набор данных

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

Ручные

Машинные

x

a

b

y

z

y

z

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

1,046

0,5

6

0,994

25,461

0,995

25,023

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

0,2

2

12

-

-

1,357

28,992

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

#include<stdio.h>

#include<conio.h>

#include<math.h>

int main(void)

{

double x, a, b, p, y, z;

/* Ввод исходных данных */

printf("x=");

scanf("%lf", &x);

printf("a=");

scanf("%lf", &a);

printf("b=");

scanf("%lf", &b);

/* Вычисления */

y=(fabs(log10(x))+5)/(x+4);

k=(pow (sin(a*(2*y*y+1)),2));

z=(k+29*b)/(k+b);

/* Вывод результатов */

printf("y=%6.3lf z=%6.3lf\n", y, z);

return 0;

}

  1. Выводы

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