Организуется цикл по количеству строк,
void s_out_v(char s,int rpt)
//s- размножаемый символ раз
// rpt - количество повторений
{
int row,col,i;
row=_ROW_CUR;
col=_COL_CUR;
BH=_PAGE;
DL=col;
BL=_ATTR;
CX=1;
for(i=row; i<row+rpt; i++)
{
AH=2; //номер подфункции установки курсора
DH=i; //номер строки
INT10h;
АН=9; //номер подфункции вывода символа
AL=s; //код выводимого символа
INT10h;
if(i==25) break;
}
set_cur(i,col+1); //перевод курсора правее колонки }
Программа sbox_abs — заполнение прямоугольной области заданным символом
Организуется цикл по количеству строк, в каждой из которых курсор устанавливается в начальную колонку строки и с помощью функции s_out_h выводится нужное количество символов по горизонтали. После заполнения области курсор переводится в левый верхний угол прямоугольника.
void sbox_abs(int rowl,int coll,int row2,int col2,char s)
// s - символ-заполнитель
// rowl,coll - левый верхний угол
// row2,col2. - правый нижний угол
Программа s_out_c — вывод строки с центровкой в заданной полосе
Функция определяет длину выводимой строки и сравнивает ее с длиной предоставляемой полосы. Если полоса задана с запасом, то вывод текста производится с позиции, отстоящей от начала полосы на половину разницы длин. В противном случае строка размещается с начала полосы.
void st_out__c(int row,int col,int nc,char *string)
// row,col - начало полосы,
//nc - длина полосы,
// string - выводимая строка
(
int ls,i;
ls=strlen(string);
i=(nc-ls)/2;
if(Is <= nc)
st_out_l(row,col+i,nc,string) ;
else
st_out_l(row,col,nc,&string[i]); }
Программа s_out_l — вывод строки в полосу с прижимом влево
Строка выводится посимвольно с начала полосы до тех пор, пока либо не будут исчерпаны все символы строки, либо не будет заполнена последняя позиция полосы. За пределами правой границы полосы вывод не производится.
void st_out_l{int row,int col,int nc,char *string)
// row,col - начало полосы,
// nc - длина полосы,
// string - выводимая строка
Содержание Назад Вперед