Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПО_ЛР_34.docx
Скачиваний:
1
Добавлен:
27.09.2019
Размер:
165.06 Кб
Скачать

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

Операторы цикла в языке С/C++ (часть 2)

1. Цель работы

Целью лабораторной работы является получение практических навыков в работе с операторами цикла языка C.

2. Темы для предварительной проработки

  • Операторы цикла языка C. Вложенные циклы.

  • Условный оператор языка C.

3. Задание для выполнения

Для функции Y = f(X), график которой приведен в Вашем индивидуальном задании, вывести на экран значения Y для Х = 0, 0.25, 0.5, ... 19.75. Необязательное для выполнения дополнительное требование - получить на экране график функции средствами текстового режима.

4. Варианты индивидуальных заданий предложены в приложении 1

5. Пример решения задачи (вариант 30)

5.1. Разработка алгоритма решения.

5.1.1. Общий метод решения

Из приведенного в индивидуальном задании графика функции видно, что функция является периодической, с периодом 4. В заданный интервал вкладываются 5 периодов функции. Так что, программа может содержать в себе цикл, в котором 5 раз будут выполняться одни и те же вычисления. В каждой итерации этого цикла должны перебираться значения x от 0 до 3.75 с шагом 0.25, т.е., должен быть вложенный цикл. В каждой итерации вложенного цикла вычисляется значение y для текущего x и выводятся результаты.

Анализ приведенного графика показывает, что каждый период его состоит из трех частей: на отрезке 0<=x<=1 график является прямой, на отрезке 1<=x<=3 - дугой, а на отрезке 3<=x<=4 - другой прямой. Следовательно, во вложенном цикле должно быть разветвление, в котором определяется текущее значение x и обеспечиваются вычисления для первого, второго или третьего случая.

5.1.2. Вычисление функции на отрезке 0 - 1

На этом отрезке функция является функцией прямой. Формула прямой: y=ax+b. Для этого случая a=2, b=-1. Итак, окончательная формула для отрезка 0<=x<=1 такая:

y=2x-1

5.1.3. Вычисление функции на отрезке 1 - 3

На этом отрезке функция является частью окружности. Формула окружности: (x-x0)2+(y-y0)2=R2, где (x0, y0) - координаты центра окружности, а R - радиус. Отсюда y можно определить как: . В нашем случае R=1, а координаты центра - (2, 1). Извлечение квадратного корня дает два значения - положительное и отрицательное, в нашем случае используется только нижняя полуокружность, так что следует брать только отрицательное значение. Окончательная формула для отрезка 1<=x<=3 такая:

y=2-((1-(x-2)2)

5.1.4. Вычисление функции на отрезке 3 - 4

Для прямой на этом отрезке a=-2, b=7, окончательная формула:

y=7-2x

5.1.5. Алгоритм вывода результатов в псевдографической форме

В каждой итерации внутреннего цикла мы получает одну ординату графика. Следовательно, для представления результата в псевдографической форме будет удобно развернуть график на 90 и в каждой строке экрана отображать значения x, y и символ, который изображает одну точку графика, смещение этого символа в строке будет пропорционально значению ординаты. Для отображения этого символа с необходимым смещением нужно преобразовать ординату в целое число (с масштабированием к размеру строки), это число будет количеством пробелов, которое нужно вывести в строке перед символом-"точкой".

В каждый период функции вкладывается 16 итераций внутреннего цикла, т.е. на экран будет выведено 16 строк на период. Целесообразно после вывода каждого периоду (который целиком помещается на экране) делать остановку в программе до команды оператора на продолжение.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]