Загрузка данных


Лабораторная работа №8
Тема: Программирование циклических алгоритмов
Вариант 10


1. Цель работы
Изучение циклических процессов, получение практических навыков разработки алгоритмов табулирования кусочно-заданных функций и вычисления сумм числовых рядов с использованием различных операторов циклов в языке C.


2. Постановка задачи
Составить блок-схему алгоритма и разработать программу для табулирования функции f(x) на заданном пользователем промежутке [a, b] с заданным шагом h. Для организации вложенных циклов использовать разные операторы.

    f(x) = (2 - x)^(2 - x),               при x <= 0
    f(x) = сумма от k=3 до 9 (x^(-k)),     при 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, что полностью удовлетворяет условию задачи. Программа корректно обрабатывает обе ветки функции, что подтверждено тестовым расчетом.