Лекция 02 Прямой ввод-вывод: организация и функции Вывод на дисплей. Часть 1



Скачать 162.29 Kb.
Дата24.04.2016
Размер162.29 Kb.

Лекция 02

Прямой ввод-вывод: организация и функции

Вывод на дисплей. Часть 1.

Содержание:


02.00. Аннотация.

02.01. Вывод символов на экран

02.02. Режимы работы дисплея.

02.03. Резюме

02.04. Вопросы и упражнения.

02.05. Глоссарий


=== *** === *** ===

«Среднеуровневый» ввод-вывод возможен только на консоль, работающую в «текстовом режиме», с помощью «базовых» прерываний MS-DOS и BIOS. Мы же пока пройдёмся по использованию этих функций в их «логическом» порядке.


02.00. Аннотация.


Прямой ввод-вывод «на среднем уровне» позволяет вводить и выводить текстовые символы в файл, на консоль, модем, удалённый терминал. При этом в MS-DOS он организован при помощи механизма прерываний, а в Windows – эмулятора этих прерываний. Поскольку формат команд-прерываний отличается для клавиатуры и дисплея, мы будем их рассматривать по-отдельности. Для иллюстрации будут приведены функции прямого доступа на языке Ассемблере и Си.
=== *** === *** ===

02.01. Вывод символов на экран

Содержание:


02.01.01. Вывод одиночного символа

02.01.02. Вывод строки на экран

02.01.03. Чтение символа и его атрибута в данной позиции (справочный раздел).
=== *** === *** ===
Сразу следует отметить, что существуют три основных класса функций для вывода данных:


  1. Вывод одиночного символа на экран;

  2. Вывод последовательности символов на экран;

  3. Вывод форматированной последовательности символов на экран, включая преобразование двоичных форматов в текст.

Рассмотрим эти классы функций ниже:

02.01.01. Вывод

одиночного символа

1. Реализация на языке Ассемблера.

На языке Ассемблера возможен вывод одного байта информации. Для этого нужно воспользоваться функциями 09 и 0A прерывания BIOS 10H [1, 8]. Макет функции 9 прерывания 10H приведён на рисунке 02.001:
ФУНКЦИЯ 09:

MOV AH, 09 ;Функция вывода

MOV AL, «символ» ; Выводимый символ

MOV BH, «страница» ; Номер страницы текстового режима

MOV BL, «атрибут» ; Атрибут символа (см. ниже)

MOV CX, «повторение» ; Число повторений символа

INT 10H

Рис. 02.001. Вызов функции 09 прерывания 10H

В регистр AL должен быть помещён выводимый на экран символ. Значение в регистре CX определяет число повторений символа на экране. Вывод на экран последовательности различных символов требует организацию цикла.

В текстовом режиме символы автоматически выводятся на экран и переходят с одной строки на другую. Так как регистр CX занят в функции, нельзя использовать цикл: LOOP. Кроме того, при выводе каждого символа необходимо передвигать курсор в следующий столбец (функция 02).
ФУНКЦИЯ 0A;

Эта функция выводит символ в текущую позицию курсора. Функция 0A не устанавливает атрибуты символа, а оставляет старый атрибут. Для иллюстрации функции см. рисунок 02.002.


MOV AH, 0AH ;Функция вывода

MOV AL, «символ» ; Выводимый символ

MOV BH, «страница» ; Номер страницы текстового режима

MOV CX, «повторение» ; Число повторений символа

INT 10H
Рис. 02.002. Вызов функции 0AH прерывания 10H

2. Реализация на языке ANSI C.

Для стандарта ANSI C единственной функцией, осуществляющей вывод единичного символа на консоль прямым методом, является функция putch [3].
ФУНКЦИЯ: putch;

СИНТАКСИС: void putch( sim );

int sim

где sim – выводимый на дисплей символ.



ОПИСАНА В: /* Используется только для описания функции */

ОПИСАНИЕ: Функция putch записывает символ, код которого задаётся значением параметра sim, на дисплей.

ВОЗВРАЩАЕТ: Функция не возвращает значения.
Смотри также функции ANSI C putc, putchar, fputc, fputchar.

3. Реализация на языке Ява

Вывод одиночного символа на языке Java соответствует выводу значения «примитивного символьного типа» char. Все типы данных выводятся на консоль с помощью двух системных методов: System.out.print и System.out.println [26]. Разница между этими методами состоит в том, что после вызова метода println происходит перевод курсора на новую строку, а при использовании метода print курсор остаётся после вывода на той же строке.

Алгоритм работы метода «print» следующий:



  1. Происходит перевод всех типов данных к типу данных String;

  2. Выполняется конкатенация строк;

  3. Результирующая строка выводится на экран.

Чтобы использовать оператор вывода «print», просто после выражения запишите элемент (или несколько элементов, объединённых знаком «+»), заключив его в круглые скобки, а потом в конце поставьте точку с запятой.

Пример приложения, выводящего две строки на экран консоли, смотри в пункте 02.01.02. п. 4.


4. Язык Пролог.

Для вывода символа на экран в указанную позицию на языке Turbo Prolog используется функция scr_char [53]. Её описание смотри ниже.
ФУНКЦИЯ: SCR_CHAR

СИНТАКСИС: scr_char(Row,Column,Char)

где Row — строка экрана в формате целого числа, Column — столбец экрана в формате целого числа, а Char — одиночный символ, выводимый на экран или считываемый с указанной позиции экрана;

НАЗНАЧЕНИЕ: Функция считывает символ с экрана или выводит его в указанную позицию;

ШАБЛОНЫ: (i,i,i) (i,i,o);

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Всегда успех;

ОШИБКИ:

* 1001 Неверное значение позиции курсора.


02.01.02. Вывод

строки на экран

1. Реализация на языке Ассемблер

Функция 9 прерывания 21H выводит строку [1]. Адрес DS:DX должен указывать на первый символ строки. Строка должна заканчиваться символом '$', что означает, что символ '$' не может входить в выводимую строку. Строка может быть любой длины. Функция не переводит автоматически курсор на начало следующей строки после завершения вывода. Чтобы это выполнялось, надо добавить в конец строки символы: CR (0DH, «возврат каретки») и LF (0AH, «перевод строки»). Для иллюстрации смотри следующий пример:

Пример 02.001.


; --- в сегменте данных:

FIR_STR DB 'Это первая строка',0DH, 0AH,'$'

SEC_STR DB 'а это вторая строка$'

; --- вывод строки

MOV AH, 9 ;Номер функции

LEA DX, FIR_STR ;Загрузка адреса первой строки

INT 21H

LEA DX, SEC_STR ;Загрузка адреса второй строки



INT 21H
Интерпретируются следующие управляющие коды: (см. таблицу 02.II).

Функция 40H прерывания 21H [1, 8]предназначена для вывода в файл, поэтому она требует дескриптора файла или устройства. Дисплей имеет заранее предназначенный дескриптор #1. Надо поместить это число в BX, а число байтов в строке – в CX. Адрес: DS:DX должен указывать на выводимую строку. Функция выводит текст с нормальными (белый текст на чёрном фоне) атрибутами.

Пример 02.002.
; --- в сегменте данных

ABZATS DB 100 DUP('A')


; --- вывод 100 байт текста абзаца

MOV AH, 40H ;Номер функции

MOV BX, 1 ;дескриптор дисплея.

MOV CX, 100 ;число выводимых символов

LEA DX, ABZATS ;адрес абзаца

INT 21H
При выводе с помощью этой функции можно использовать escape – последовательности (см. таблицу 02.I).


Таблица 2.I. Полный список escape-последовательностей

«Tab02001.xls»


Таблица 2.II. Список управляющих кодов при вводе-выводе

«Tab02002.xls»

У ЭВМ IBM PC/AT и более современных есть ещё одна функция 13H прерывания BIOS 10H [8]. При выводе строки содержимое регистров ES:BP должно указывать на выводимую строку символов, а длина строки должна быть в CX. DX указывает на позицию курсора, откуда будет начинаться строка (вычисляется как смещение от начала страницы ES:BP, которая выводится, без учёта байтов-атрибутов). В BH должен быть указан номер страницы. Наконец, номер кода от 0 до 3, содержащийся в регистре AL, указывает способ вывода строки:


  • AL = 0 строка состоит только из символов, курсор неподвижен;

  • AL = 1 строка состоит только из символов, курсор двигается;

  • AL = 2 в строке чередуются символы и атрибуты, курсор неподвижен;

  • AL = 3 в строке чередуются символы и атрибуты, курсор двигается.

Когда значение AL равно 0 или 1, атрибуты должны находиться в регистре BL. Все символы будут выводиться с этими атрибутами. Данная функция будет воспринимать символы из таблицы 02.II, интерпретируя их как управляющие команды, а не печатные символы.

Пример 02.003.


; --- в сегменте данных

ABZATS DB 100 DUP('A')


; --- вывод 100 байт текста абзаца

; --- подготовительные операции

PUSH BP ;Сохранение BP

PUSH ES ; Сохранение ES

PUSH DS

POP ES ; ES = DS



; --- вызов функции

MOV AH,13H ;Номер функции

MOV DX,0 ;С начала абзаца

MOV CX, 100

LEA BP, ABZATS ;Адрес абзаца

MOV AL, 1

MOV BL, 07H ;Текст белый по чёрному фону

MOV BH, 0 ;Экранная страница

INT 10H

; --- заключительные операции:



POP ES ;Возврат ES

POP BP ;Возврат BP


2. Язык Си.

В языке Си существуют две функции вывода строки на консоль: cputs и cprintf [3, 41]. Рассмотрим их синтаксис и использование:
ФУНКЦИЯ: CPUTS;

СИНТАКСИС: int cputs( str );

char *str;

где str – указатель на строку символов.

ОПИСАНА В: /* Используется только для описания функции */

НАЗНАЧЕНИЕ: Функция cputs записывает строку (адрес которой задаётся параметром str) вместе с символом конца строки на консольный терминал. При этом не выводится, но обрабатывается комбинация символов (/, «возврат каретки»/«перевод строки»).

ВОЗВРАЩАЕТ:


  • для системы Turbo C: – последний напечатанный символ (обычно \0);

  • для системы Microsoft C: 0 – успешное завершение; 1 - ошибка вывода.

ФУНКЦИЯ CPRINTF;

СИНТАКСИС: int cprintf( format {, аргумент} );

char *format;

где format – «строка форматов», определяющая, как преобразуются и как выводятся параметры, заданные параметрами «аргумент»;

аргумент – константа или переменная (идентификатор или литерал), выводимая на печать.

ОПРЕДЕЛЕНА В: /* используется только для описания функции */

НАЗНАЧЕНИЕ: Функция cprintf форматирует и выводит последовательность символов и значений, непосредственно на консольный терминал, используя для вывода символов функцию putch.

Каждый аргумент преобразуется и выводится в том формате, который определён в строке: format. Синтаксис и семантику строки format смотри в Приложении app02001.

В отличие от функций fprintf, printf, sprintf функция cprintf не переводит символ в последовательность символов: . Поэтому каждая выводимая строка должна заканчиваться или начинаться с «\r\n».

ВОЗВРАЩАЕТ: Возвращается количество напечатанных символов.
Теперь запишем функцию из примера 02.001 на языке Си:

Пример 02.004.


/* Файл ex02004.c */
/* Данный файл тестировался в системе

программирования Borland C/C++ 3.10 */


#include
void main( void )

{

char FIR_STR[] = "Это первая строка\r\n";



char SEC_STR[] = "а это вторая строка";

(void) cputs( FIR_STR );

(void) cputs( SEC_STR );

}
Примечание: перед вызовом функции cputs поставлен оператор принудительного приведения типа (void) для того, чтобы в процессе компиляции не возникло предупреждение о несоответствии типа возвращаемого значения.


3. Язык C--.

ФУНКЦИЯ WRITESTR

Определена в: "WRITE.H--";

Синтаксис: WRITESTR( string );

Входные параметры:


  • AX – смещение адреса строки, выводимой на экран.

Возвращаемое значение:

  • AX – неопределённое значение;

  • BX = 7.
4. Язык Java.

Вывод любой переменной на языке Ява осуществляется при помощи методов System.out.print и System.out.println, подробно описанных в пункте 02.01.01, 3 и в [26]. Ниже приводится пример функции, иллюстрирующий работу метода println.

Пример 02.005.


/* Файл ex02005.java */
/* Пример тестировался на компиляторе Sun J2EE 1.4.2

и на виртуальной машине Java корпорации Microsoft */


public class ex02005

{

public static void main( String [] args )



{

String sFirst_str = "Это первая строка";

String sSec_str = "а это вторая строка";

System.out.println( sFirst_str );

System.out.println( sSec_str );

String junk;

System.out.println( "Press key Enter to exit..." );

junk = SavitchIn.readline();

}

}
В этом примере:



  1. Первая строка задаёт имя приложения;

  2. Третья строка определяет основную функцию;

  3. Пятая — шестая строка объявляет и назначает значения двум строковым переменным: sFirst_str и sSec_str;

  4. Строки семь и восемь выводят значения этих переменных;

  5. Строки с 9 по 11 используются при создании паузы после выполнения программ. Для этого создаётся «пустая» переменная, выводится приглашение для завершения работы программы (с предложением нажать клавишу «Enter»), а потом после ввода «пустой» строки в эту переменную (в данном случае — после нажатия клавиши «Enter») программа завершается.

  6. Обратите внимание, что при вводе используется модуль «SavitchIn», описание которого содержится в приложении к лекции 05.
5. Язык Python

Все «примитивные» типы данных на языке Питон, как и на языке Перл, представляются в виде «строковых данных». Для вывода строковых данных в языке Питон, как и в языке Перл, используется функция print [29]. Однако, в отличие от функции print на языке Perl, функция print на языке Python завершает вывод новой строки псевдосимволом «EOL».

В примере 02.006 представлен модуль языка Питон для реализации примера 02.004:

Пример 02.006.

# Файл ex02006.py

# Файл тестировался в системе программирования

# ActiveState Python 2.5 для Windows


# Модуль для вывода двух строк

def ex02006():

first_str = "Это первая строка"

sec_str = "а это вторая строка"

print first_str

print sec_str

# Конец модуля на Питоне
Автор отмечает следующие особенности этого примера:


  1. Определение процедуры и функции в модуле начинается с ключевого слова def;

  2. Вместо открывающейся скобки блока используется окончание: «:»;

  3. Блоки выделяются отступом. Окончание блока определяется отсутствием отступа у следующего за блоком оператора;

  4. Как и в языке Си, функция возвращает результат при помощи оператора: «return».

Для запуска функции ex02006 выполните следующие действия:

  1. Вызовите интерпретатор python;

  2. Введите команду: import ex02006;

  3. Введите команду: ex02006.ex02006();
6. Язык Prolog.

На языке Пролог имеются две функции для вывода на экран (консоль) [19, 53]: функция write для вывода аргументов и функция writef для форматированного вывода аргументов. Обе функции позволяют вывести аргументы разных типов данных, но вторая функция позволяет задать дополнительные параметры для управления вводом значений аргументов. Описание этих функций смотри в лекции 06.

Пример 02.007.


/* Файл ex02007.pro */
/* Пример тестировался в системе программирования

Turbo Prolog 2.0 для Windows */


/* Описание цели выполнения программы: */

goal


write( "Это первая строка" ), nl, writef( "%s", "а это вторая строка"), nl,

write( "Press any key to exit..." ), nl, readchar( _ ).

/* Конец программы */

02.01.03. Чтение символа

и его атрибута в данной позиции

(справочный раздел)


Иногда необходимо прочитать символы и их атрибуты, уже выведенные на экран дисплея. И это вовсе не обязательно «шпионские страсти» – просто Вы не знаете, например, с какими атрибутами надо выводить новые символы на экран. Это можно сделать с помощью прерывания BIOS 10H [8]. Но вначале нужно установить текущую позицию курсора, с которой будет считан символ (функция 8 прерывания BIOS 10H, см. следующие лекции)

Пример 02.008.


MOV AH, 8 ; функция чтения символа/атрибутов

MOV BH, 0 ; номер страницы – 0

INT 10H

; --- теперь в паре регистров AH:AL атрибуты и символ текущей позиции экрана


Для реализации чтения символа в указанной позиции курсора на языке Турбо Пролог необходимо воспользоваться всё той же функцией scr_char, синтаксис которой приведён в разделе 02.01.01, п. 4. Для чтения атрибута символа можно использовать функцию scr_atr [53], синтаксис которой смотри ниже:
ФУНКЦИЯ: SCR_ATR

СИНТАКСИС: scr_atr(Row,Column,Attr)

где Row — строка экрана в формате целого числа, Column — столбец экрана в формате целого числа, а Attr — число целого типа, используемого в качестве значения выводимого на экран или считываемого с указанной позиции экрана атрибута символа;

НАЗНАЧЕНИЕ: Функция считывает или устанавливает атрибут символа в указанной позиции;

ШАБЛОНЫ: (i,i,i) (i,i,o);

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Всегда успех;

ОШИБКИ:


  • 1001 Неверное значение позиции курсора.

02.02. Режимы работы дисплея.


В таблице 02.III приведены режимы, с которыми может работать совместимый с MS-DOS VGA-дисплей. Отметим, что для нас особое значение имеют режимы: 0, 1, 2, 3, 7.

Таблица 02.III. Таблица режимов работы дисплея.

«Tab02003.xls»

Содержание:


02.02.01. Реализация на Ассемблере

02.02.02. Реализация функции в языках Си

02.02.03. Реализация в Quick Basic

02.02.04. Реализация в Perl, Python и Turbo Prolog


02.02.01. Реализация на Ассемблере

1. Определение текущего графического режима

Для этого применяют функцию F прерывания 10H [8].

Входные параметры: регистр AH должен содержать значение 0FH.

Прерывание возвращает:


  • AL – номер режима;

  • BH – текущая страница дисплея;

  • AH – число символов в строке дисплея.

Пример 02.009
; --- в сегменте данных

MODE_SCREEN DB ?

NUMBER_COLS DB ?

CURRENT_PAGE DB ?


; --- в сегменте кода

MOV AH, 0FH ; номер функции

INT 10H

MOV MODE_SCREEN, AL ; номер режима из AL



MOV NUMBER_COLS, AH ; число символов из AH

MOV CURRENT_PAGE, BH ; номер текущей страницы из BH


2. Установка режима работы дисплея.

Режим работы дисплея на языке ассемблера можно установить при помощи функции 0 прерывания 10H [8] или функции 9 прерывания 21H с помощью escape-последовательности.
ФУНКЦИЯ 0 ПРЕРЫВАНИЯ 10H

Входные данные:

* AH = 0 – номер функции;

* AL – номер требуемого режима.

Выходные данные: нет.
Пример 02.010.
; --- в сегменте данных

MODE_SCREEN DB 3 ; разрешение 80х25, текст, цвет


; --- в сегменте кода

MOV AH, 0

MOV AL, MODE_SCREEN

INT 10H ; устанавливаем режим

Функция вывода строки прерывания 21H

Если в системе установлен драйвер ANSI.SYS, то с помощью функции 9 можно также выводить escape-последовательности. Более подробно о esc (escape) последовательностях см. таблицу 02.I. Пока нам важно знать, что с помощью этих последовательностей можно менять режимы работы дисплея.

Пример 02.011.
; --- в сегменте данных

NORMAL_RES DB 27,'[=3h$' ; escape-последовательность для норм. разрешения.


; --- в сегменте кода

MOV AH, 9 ; номер функции

LEA DX, NORMAL_RES ; DS:DX должны указывать на строку

INT 21H

02.02.02. Реализация функции в языках Си


Хотя в стандарт ANSI C не входят функции для управления графическим режимом и цветом символов, в реализации языка Си от Borland и SPHINX C-- она имеется. Их синтаксис приведён ниже.
ФУНКЦИЯ TEXTMODE

ОПИСАНА В:

СИНТАКСИС: textmode( int newmode );

НАЗНАЧЕНИЕ: Функция textmode выбирает указанный режим, в зависимости от символьной переменной, содержащей следующие константы (см. Таблицу 02.IV).

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: нет.
Таблица 02.IV. Зарезервированные константы для функции textmode

«Tab02.004.xls»

Пример 02.010 на языке Turbo C можно записать строкой:

Пример 02.012.


textmode( C80 );


а пример 02.011 – следующим образом:

Пример 02.013


const char cNormal_res = "\x1B[=3h";

puts( cNormal_res );




где puts – функция вывода строки на дисплей.
ФУНКЦИЯ SETVIDEOMODE

ОПИСАНА В: файл "VIDEO.H--";

СИНТАКСИС: SETVIDEOMODE( режим );

НАЗНАЧЕНИЕ: Функция изменяет текущий видеорежим, используя прерывание BIOS.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Функция не возвращает значений.
ФУНКЦИЯ GETVIDEOMODE

ОПИСАНА В: файл «VIDEO.H--»;

СИНТАКСИС: GETVIDEOMODE();

НАЗНАЧЕНИЕ: Получает величину текущего видеорежима через прерывание BIOS;

ФУНКЦИЯ ВОЗВРАЩАЕТ:


  • AH – количество символов в строке в текущем видеорежиме;

  • AL – текущий видеорежим (целое значение, см. таблицу 02.III) и функцию SETVIDEOMODE;

  • BH – текущая страница дисплея.

Таким образом, пример 02.012 на языке C-- реализуется следующим образом:

Пример 02.014


byte bNorm_res;

bNorm_res = 3;

SETVIDEOMODE( bNorm_res );




Пример 02.009 реализуется на C-- как:

Пример 02.015


byte bmode_screen, bnumber_cols, bcurrent_page;

GETVIDEOMODE();



bmode_screen = AL;

bnumber_cols = AH;

current_page = BH.


а пример 02.013 запишется как:

Пример 02.016

WRITESTR( "\x1B[=3h" );



02.02.03. Реализация в Quick Basic


В Quick Basic есть следующие операторы для изменения режима работы дисплея [8]:
ФУНКЦИЯ SCREEN

Синтаксис: SCREEN первый_параметр, второй_параметр

Назначение: Функция служит для переключения режимов работы дисплея: «текстовый – графический» (первый_параметр) и «монохромный – цветной» (второй_параметр)

Например, команда:


SCREEN 0, 1
– переключает экран в цветной текстовый режим, а команда:
SCREEN 1, 0
– в графический монохромный режим.
ОПЕРАТОР WIDTH

Синтаксис: WIDTH [40|80]

Назначение: В текстовом режиме данный оператор задаёт 40 символов в строке (WIDTH 40) или 80 символов в строке (WIDTH 80).
Кроме того, Basic поддерживает также управление дисплеем с помощью escape последовательностей

Таким образом, программа их примера 02.010. на языке Quick Basic будет следующим:

Пример 02.017

SCREEN 0, 1



WIDTH 80


02.02.04. Реализация в Perl, Python и Turbo Prolog


При консольном выводе в Perl, Python и Turbo Prolog невозможно осуществлять управление режимом работы экрана – эти языки не поддерживают escape – последовательности драйвера ANSI.SYS.

Примечание: в языке Турбо Пролог 2.0 всё-таки есть функции для «низкоуровневого» манипулирования разрешением экрана, однако в данном курсе эти возможность не рассматривается. Подробнее смотри «Руководство по языку Turbo Prolog 2.0»[53].

Подробнее об escape – последовательностях см. таблицу 02.I.

02.03. Резюме


В данной лекции Вы познакомились с основными функциями «консольного вывода» символа и строки символов в операционной системе MS-DOS и режимами работы дисплея в той же операционной системе. Эти навыки обязательно потребуются Вам при создании «консольных приложений» в операционных системах MS-DOS и MS Windows. Например, консольные приложения можно использовать вместо вызовов API при программировании программ-фильтров, а также программ-просмотрщиков. Вы обязательно оцените всю мощь «стандартных» средств консольного вывода!

02.04. Вопросы и упражнения.

Задание 1.

Вариант I Задания 1. Какая существует классификация функций текстового ввода-вывода на экран?

+1. Вывод одиночного символа;

2. Вывод парных символов;

3. Вывод в формате Unicode;

+4. Вывод строки символов;

+5. Вывод символов с экранными атрибутами

Вариант II Задания 1. Какие номера прерываний BIOS позволяю выводить одиночные символы на экран дисплея?

+1. Прерывание 10H;

2. Прерывание 21H;

3. Прерывание 13H.

Вариант III Задания 1. Какие функции прерывания 10H используются для вывода одиночных символов?

1. 13H;

+2. 09H;


+3. 0AH.

Задание 2.

Вариант I Задания 2. Какие функции языка Си используются для вывода одиночного символа на консоль (экран дисплея)?

1. cprintf;

2. cputs;

+3. putch.

Вариант II Задания 2. Какие номера прерываний используются для вывода строки символов на консоль?

+1. Прерывание 10H;

+2. Прерывание 21H;

3. Прерывание 13H.


Вариант III Задания 2. Каким знаком обозначается терминальный символ при выводе строки функцией 09 прерывания 21H?

1. '\0';

2. '\r';


3. '\n';

+4. '$';


Задание 3.

Вариант I Задания 3. Какая функция используется для консольного вывода строки текста на языке Си?

+1. cputs;

2. puts;


+3. cprintf;

4. print;

5. putch.

Вариант II Задания 3. Какая функция используется для вывода одиночного символа на консоль в языке Turbo Prolog?

1. putch;

+2. scr_char;

3. print;

Вариант III Задания 3. Какая функция используется для вывода строки символов на языке Java?

1. print;

2. println;

3. WRITESTR;

+4. System.out.println;



Задание 4.

Вариант I Задания 4. Какая функция прерывания 10H используется для чтения символа и его атрибутов?

1. 07H;

+2. 08H;


3. 09H;

4. 0AH;


Вариант II Задания 4. Какая функция на языке Turbo Prolog используется для чтения и установки атрибута символа?

1. putch;

2. scr_char;

+3. scr_atr;

4. print.



Вариант III Задания 4. Какая функция используется в Turbo Prolog для чтения символа с текущей позиции курсора?

1. putch;

+2. scr_char;

3. getch;

Задание 5.

Вариант I Задания 5. Можно ли на языке Quick Basic управлять разрешением экрана?

+1. Да, с использованием встроенных функций;

2. Только с использованием escape последовательностей;

3. Нет;

Вариант II Задания 5. Можно ли на языке Си управлять разрешением экрана?

+1. Да, с использованием встроенных функций?

+2. Да, с использованием escape последовательностей;

3. Нет.

Вариант III Задания 5. Можно ли на языках Perl и Python управлять разрешением экрана?

1. Да, с использованием встроенных функций;

2. Только с использованием escape последовательностей;

+3. Нет;

Задание 6.

Вариант I Задания 6. Какое максимальное разрешение используется в цветном графическом режиме VGA?

1. 80x25 символов;

2. 640x350 пикселей;

+3. 640x480 пикселей;

Вариант II Задания 6. Какой функцией происходит смена текстового видеорежима на языке Turbo C (Borland C/C++)?

+1. textmode;

2. setvideomode;

3. getvideomode;

Вариант III Задания 6. Какая константа используется функцией textmode для установки нормального режима отображения текста?

1. C40;

+2. C80;


3. BW40;

4. BW80;


5. MONO;

6. C4350;


02.05. Г Л О С С А Р И Й


<>
Свёрстано 06.09.10,

10:11


База данных защищена авторским правом ©bezogr.ru 2016
обратиться к администрации

    Главная страница