Лабораторная работа №8
Тема: Программирование циклических алгоритмов
Вариант 10
1. Цель работы
Изучение циклических процессов, получение практических навыков разработки алгоритмов табулирования кусочно-заданных функций и вычисления сумм числовых рядов с использованием различных операторов циклов в языке C.
2. Постановка задачи
Составить блок-схему алгоритма и разработать программу для табулирования функции f(x) на заданном пользователем промежутке [a, b] с заданным шагом h. Для организации вложенных циклов использовать разные операторы.
f(x) = (2 - x)^(2 - x), при x ≤ 0
f(x) = ∑ x^(-k) (по k от 3 до 9), при x > 0
3. Предусловие и постусловие
Предусловие: пользователь вводит a, b и h (где a ≤ b, h > 0) для табулирования кусочной функции f(x) циклами while и for.
Постусловие: на экран выведена таблица значений аргумента x и функции f(x) на отрезке [a, b] с шагом h.
4. Описание алгоритма
1. Пользователь вводит параметры отрезка [a, b] и величину шага табуляции h.
2. Выполняется проверка корректности исходных данных: шаг h должен быть строго больше нуля, а граница a не должна превышать b.
3. Переменной x присваивается начальное значение левой границы a.
4. Запускается внешний цикл с предусловием while, выполняющийся до тех пор, пока значение x не выйдет за правую границу b.
5. На каждом шаге внешнего цикла проверяется знак текущего аргумента x:
• если x ≤ 0, то вычисляется значение первой ветки по формуле f(x) = (2 - x)^(2 - x);
• если x > 0, то запускается внутренний цикл с параметром for для счетчика k от 3 до 9, в котором накапливается сумма степеней x^(-k).
6. Полученная пара значений (x, f(x)) форматируется и выводится в консоль в виде строки таблицы.
7. К аргументу x прибавляется шаг h, после чего управление возвращается в заголовок внешнего цикла.
8. После прохождения всего отрезка внешний цикл завершает работу, и программа выходит.
5. Результаты выполнения программы
Тестовые входные данные: a = -2; b = 2; h = 0.5
x | f(x)
-2.0000 | 256.0000
-1.5000 | 80.0526
-1.0000 | 27.0000
-0.5000 | 9.8821
0.0000 | 4.0000
0.5000 | 1016.0000
1.0000 | 7.0000
1.5000 | 0.5732
2.0000 | 0.2480
6. Вывод
В ходе выполнения лабораторной работы были изучены правила построения циклических алгоритмов и получены практические навыки их реализации. Для табулирования кусочной функции успешно применена комбинация различных операторов: внешний цикл табулирования реализован с помощью while, а внутренний цикл вычисления суммы степеней — с помощью for. Программа корректно обрабатывает обе ветки функции, что подтверждено тестовым расчетом.