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


Лабораторная работа №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. Программа корректно обрабатывает обе ветки функции, что подтверждено тестовым расчетом.