Добавил:
СПбГУТ * ИКСС * Программная инженерия Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
35
Добавлен:
01.10.2019
Размер:
51.37 Кб
Скачать

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

ЛИНЕЙНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ ПРОЦЕССЫ

Студент гр. ИКПИ-81

Коваленко Л. А.

А. Постановка задачи

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

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

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

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

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

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

N

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

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

Назначение

1

x

x

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

2

a

a

3

b

b

4

y

y

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

5

z

z

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

Начало

Ввод x, a, b

Вывод y

Останов

Вывод z

0

1

2

3

4

5

6

7

8

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

Для тестирования программы выбираем контрольный набор исходных данных: x = -4,3, a = 1,570796 ( / 2) и b = 2.

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

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

Набор данных

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

x

a

b

Ручные

Машинные

y

z

y

z

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

-4,3

1,570796

2

1

0,4999

1

0,5

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

2

2

3

0,409298

0,384500

0,409298

0,384500

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

/* Файл Lab1.c */

#include <stdio.h>

#include <math.h>

/*

Лабораторная работа 1

ЛИНЕЙНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ ПРОЦЕССЫ

Студент гр. ИКПИ-81

Коваленко Л. А.

*/

int main(int argc, char **argv)

{

float a, b, x, y, z;

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

printf("Input x, a, b: ");

scanf("%f %f %f", &x, &a, &b);

/* Вычисления и вывод результатов */

y = x + 5.3;

y = (1.0 + log(y)) / y;

printf("\ny = %f\n", y);

z = sqrt(y + 15.0 * sin(a));

z = z / (z + 2.0 * b);

printf("z = %f\n", z);

return 0;

}

Ж. Выводы

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

Соседние файлы в папке Примеры отчетов