Ввод-вывод информации на экран монитора выполняется с текущей позиции строки, определяемой месторасположением курсора. При необходимости указания конкретных точек начала ввода-вывода используется специальная функция позиционирования курсора. Вызов функции оформляется оператором следующей структуры:
gotoxy( поз_x , поз_y );
, где gotoxy – имя функции (перейти к x,y );
поз_x – координата столбца;
поз_y – координата строки;
( , ) – ограничители и разделитель аргументов функции;
; – признак простого оператора.
ü Внимание ! Функция используется только при работе с экраном монитора, для принтера – неприменима.
Функция предписывает установку курсора в позицию, задаваемую координатами. В качестве координат используются целые константы, переменные, арифметические выражения. Размеры экрана монитора составляют 80 столбцов на 25 строк. Поэтому диапазон изменения координаты x (столбца) от 1 до 80, а диапазон координаты y (строки) от 1 до 25.
Например, оператор gotoxy( 40 , 12 ); предписывает установку курсора в центр экрана монитора, а фрагмент программы
определяет начальную позицию поля (3-й столбец 5-й строки) для ввода численного значения вещественной переменной r.
Предлагаемый фрагмент позволяет вводить информацию в конкретные поля заранее заготовленной таблицы.
Так при желании ввести численные значения индексированной переменной xi в таблицу формируется её шаблон:
Оператор вывода таблицы на экран вставляется в программу до операторов ввода численных значений таблицы.
При этом фрагмент программы ввода имеет вид
int s, k;
. . .
gotoxy( s , k );
scanf("%f" , &x[0] );
gotoxy( s , k+2 );
scanf("%f" , &x[1] );
. . .
До начала использования функции позиционирования необходимо сформировать численные значения s и k. Например, s=7 (4 пробела до таблицы + 1 ограничитель + 1 пробел + 1-я позиция ввода), k=4 (3 строки шапка + 1 строка ввода).
Применение позиционирования при выводе позволяет задавать, например, сдвиг таблицы вправо. При этом операторы позиционирования используются при формировании шапки, а также в теле цикла перед оператором вывода текущей строки таблицы.
Фрагмент программы для вывода таблицы, начиная с задаваемой координатами (s, k) позиции, может иметь вид
int s, k;
. . .
scanf(“%d%d”,&s,&k);
. . .
gotoxy( s , k );
printf("+––––––––+–––––––––+");
gotoxy( s , k+1 );
printf("| x(i) | y(i) |");
gotoxy( s , k+2 );
printf("+––––––––+–––––––––+");
. . .
gotoxy( s , k+3+i ); /* в теле цикла до оператора вывода */
printf("| %6.2f | %7.2f |", x[i] , y[i]);
. . .