Для возможности вывода информации в любую позицию экрана определена процедура перемещения курсора в позицию X,Y относительно текущего окна:
GotoXY(x,y:byte); (x-столбец, y-строка)
Вызов процедуры игнорируется при значениях X и Y выходящих за пределы окна. Максимальное значение Х и Y для данного режима можно получить с помощью функций MaxX и MaxY типа byte. При выводе символов или другой информации по мере необходимости происходит сдвиг или прокрутка изображения т.е. все строки перемещаются на одну позицию вверх, а снизу добавляется пустая строка. Прокрутка изображения происходит при выводе информации в последнюю строку операторами writeln и readln или когда выводимая строка не умещается в последней строке текстового окна. Например попытка вывода символа в нижний правый угол окна вызовет прокрутку :
GotoXY(80,25); write('*');
при этом на экране символ '*' окажется не в 25, а в 24 строке.
Функции WhereX:byte и WhereY:byte возвращают координаты соответственно X и Y текущей позиции курсора. Данные функции используются при работе с пользователем в режиме диалога, например при редактировании текстов.
Процедуры вывода информации на экран по разному изменяют местоположение курсора:
процедура GotoXY перемещает курсор в точку с координатами X и Y;
оператор write помещает курсор сразу за последним выводимым символом;
операторы read, readln, writeln переводят курсор в первый столбец строкой ниже;
процедуры ClrScr, TextMode, Window помещают курсор в точку (1,1) текущего окна.
Задание.
Вывести на экран график функции y=sin(x)+cos(x), для x=[0,PI] c шагом h=0.1. Ось Х расположить по центру экрана, с направлением движения слева направо. Точки графика вывести в цвете, используя символ '*';