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

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

РАЗВЕТВЛЯЮЩИЕСЯ ВЫЧИСЛИТЕЛЬНЫЕ ПРОЦЕССЫ

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

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

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

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

для заданного значения x и выполнить вычисления на компьютере.

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

Необходимо вычислить значение функции, которая задана четырьмя формулами на разных участках её определения. Возможны два подхода к решению: первый – с использованием конструкции if else, второй – с обычным if. Первый способ быстрее (по времени выполнения) второго, поэтому следует выбрать именно его.

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

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

N

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

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

Назначение

1

x

x

Аргумент функции

2

y

y

Значение функции

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

Начало

0

Ввод x

Останов

1

10

Да

2

3

4

Нет

8

Нет

5

Да

Да

Нет

Вывод y

9

6

7

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

Для тестирования программы выбираем четыре контрольных набора (в соответствии с количеством расчетных формул).

Результаты вычислений соответствующих значений функции приведены ниже в таблице вычислений.

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

Набор данных

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

x

Ручные

Машинные

y

y

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

0

1

1

9

2.080084

2.080084

14

1

1

38

190

190

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

40

200

200

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

/* Файл Lab2.c */

#include <stdio.h>

#include <math.h>

/*

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

Разветвляющиеся вычислительные процессы

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

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

*/

int main(int argc, char **argv)

{

float x, y;

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

printf("Input x: ");

scanf("%f", &x);

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

if (x <= 4) y = (cos(x)+14)/(sin(x)+15);

else if (x < 12) y = pow(x + log(fabs(x-8)),1.0/3.0);

else if (x < 38) y = sqrt(x-13);

else y = 5*x;

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

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

return 0;

}

Ж. Выводы

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

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