Обратная связь
|
Построение графиков в текстовом режиме Целью работы является ознакомление с использованием простейших функций текстового режима работы монитора на примере построения графиков. В этом режиме из-за невозможности проведения как сплошных линий, так и по точкам (пикселам), графики функций выводятся символами, аналогично варианту, приведенному на рис.7.1.
Ширина графика может задаваться произвольно, но необходимо учитывать, что стандартный размер экрана 25 строк по 80 символов. Таким образом, разрешающая способность устройства отображения ограничена отведенным количеством позиций. Кроме этого, разрешение зависит и от выбранного масштаба: если масштаб выбран неправильно, то часть точек функции может выйти за пределы отведенного поля и не вывестись, или может занимать узкий промежуток в несколько позиций и даже превратиться в прямую линию. Поэтому по максимальному размаху функции и определяется масштаб, чаще всего автоматически.
Для определения размаха функции предварительно необходимо для всех точек выводимого графика определить минимальное и максимальное значение функции. Они должны быть выведены в крайней левой и в крайней правой позициях графика соответственно, то есть определяются координаты первой и последней позиций поля графика.
Если функция приблизительно симметрична относительно нулевой оси Х, то эту ось можно провести по центру графика, а максимальное значение функции определяется по модулю. При этом минимальное значение принимается равным максимальному.
Если функция принимает только положительные значения, тогда Fmin = 0, если только отрицательные, находится значение Fmin, а Fmax = 0.
Интервал Р, приходящийся на одну позицию, вычисляется как частное от деления Fmax-Fmin на общее количество позиций, отведенных для поля графика.
Наиболее наглядным получается график, если интервал задается числом с минимальным количеством значащих цифр. Например, лучше воспринимается шаг 0,5, чем 0,4589654. Поэтому можно вывести минимальное и максимальное значение функции, затем вручную откорректировать их и ввести новые значения.
Пример. Полученные значения Откорректированные значения
Fmin Fmax Fmin Fmax
0,253477 2,879947 0 3
-1,74589 1,8745 -2 2
-0,79666 5,698451 -1 6
Рис.7.1. График функции (a) и ее изображение на экране дисплея (б) по позициям, причем n - номер строки.
Для упрощения составления программы можно воспользоваться функциями поддержки текстового режима монитора, находящимися в модуле Crt. Подключение этого модуля к программе осуществляется указанием его имени в спецификации списка подключаемых модулей, стоящем сразу же за заголовком программы:
Uses Crt;
После этого подпрограммами модуля можно пользоваться как стандартными. В данной работе можно использовать следующие процедуры:
ClrScr очистка экрана и установка курсора в левый верхний угол экрана с координатами 1,1.
GoToXY(X,Y:byte) процедура перемещает курсор в позицию, заданную координатами X (столбец) и Y(строка). Для стандартного режима диапазон Х=1..80 при увеличении слева направо и Y=1..25 при увеличении сверху вниз. Аргументы процедуры должны быть обязательно типа байт (byte).
Прежде чем выводить поле графика, необходимо вывести его заголовок, аналогично выводу заголовка таблицы. В заголовке указывается выводимая функция, шаг изменения функции P, минимальное и максимальное значения, которое принимает функция.
При выводе графика можно использовать любые символы, например 0 для обозначения нулевой оси Х, а символ звездочка для обозначения точек функции. Данным способом можно выводить на одном поле графики нескольких функций. В этом случае каждая функция обозначена своим символом, которые указываются в заголовке. Вычисление Fmin и Fmaх производится одно для всех функций.
Кроме печати строки графика здесь же слева выводится и соответствующая координата по оси Х. То есть поле графика будет меньше максимально возможного.
Таким образом, начало вывода графика функции может быть таким, как представлено на рис.7.2.
График функций Sin(X) - символ * и Cos(X) - символ Х
-1 Шаг=0.04 1
------------------------------------------------- 0 ------------------------------------------>
0.0 * X
0.2 0 * X
Рис.7.2. Пример начала вывода графика функции.
Если в цикле не увеличивать, а уменьшать значение Y в процедуре GoToXY,то направление графика можно сделать вверх.
Для каждой строки графика:
а) выводится значение Х (получается в столбик);
б) выводится ось X (возможно в некоторых строках она перекроется символами функций);
в) анализируется позиция, в которой будет находиться символ, обозначающий первую функцию, из условия (Начальное значение j берется с учетом отступа для столбца Х), символ выводится процедурой GoToXY;
г) такие же действия выполняются для второй функции.
В итоге получаем укрупненную блок-схему алгоритма вычисления и вывода графика на экран, которая приведена на рис.7.3.
Рис.7.4. Общая блок-схема алгоритма вывода графиков функций.
Варианты заданий
Номер варианта
| Функции
| Начальное значение х
| Конечное значение х
| Шаг изменения х
|
|
|
|
|
|
|
| 0,05
|
| 0,05
|
|
|
|
| 0,2
|
|
|
|
|
|
|
|
|
| 0,05
|
|
| 0,6
| 1,5
| 0,05
|
|
|
|
| 0,05
|
|
|
|
| 0,5
|
|
| 0,2
|
| 0,2
|
|
| 0,1
|
| 0,1
|
|
| 1,05
|
| 0,05
|
|
| 0,1
|
| 0,05
|
|
| 0,2
|
| 0,1
|
|
| 0,5
|
| 0,25
|
|
| 0,05
|
| 0,05
|
Номер варианта
| Функции
| Начальное значение х
| Конечное значение х
| Шаг изменения х
|
|
| 0,05
|
| 0,05
|
|
|
|
| 0,5
|
|
| 0,25
| 0,5
| 0,025
|
|
| -1
|
| 0,1
|
|
| -2
|
| 0,2
|
|
|
|
|
|
|
|
|
| 0,2
|
|
|
|
| 0,05
|
|
|
|
| 0,05
|
|
| 0,1
|
| 0,05
|
|
|
|
| 0,1
|
|
|
|
| 0,1
|
|
| 0,1
| 1,5
| 0,1
|
|
|
|
| 0,1
|
|
|
|
| 0,5
|
ПРИЛОЖЕНИЕ А
|
|