Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по программированию..pdf
Скачиваний:
10
Добавлен:
15.11.2022
Размер:
12.2 Mб
Скачать

 

Форматы процедуры write

I

— выводится десятичное представление величины I, начиная с по­

зиции расположения курсора.

 

Значение I Оператор

Результат

134

write (I)

134

287

w rite(I, I, I)

287287287

I :P — выводится десятичное представление величины I в крайние правые позиции поля шириной Р.

Значение I

Оператор

 

Результат

134

Write (I

6)

134

312

Write ((I

+ I)

7) ____624

R — в поле шириной 18 символов выводится десятичное представле­ ние величины R в формате с плавающей точкой. Если R > 0.0, исполь­ зуется ф орм ат__#. ##########Е*##. Если R < 0.0, то формат имеет

вид _ - # .##########Е*##.

 

Значение R

Оператор

Результат

715.432

Write (R)

___7. 1543200000Е+02

- 1 .919Е+01

Write(R)

_ -1 .9190000000Е+01

R:Р — в крайние правые позиции поля шириной Р символов выво­ дится десятичное представление значения R в нормализованном фор­ мате с плавающей точкой. Минимальная длина поля вывода для по­ ложительных чисел составляет 7 символов, для отрицательных — 8 символов. После точки выводится, по крайней мере, одна цифра.

Значение R Оператор Результат

511.04Write(R:15) 5 .110400000Е+02

46.78 W rite(-R:12) -4.67800Е+01

R:Р: Q — в крайние правые позиции поля шириной Р символов вы­ водится десятичное представление значения R в формате с фиксиро­ ванной точкой, причем после десятичной точки выводится Q цифр (о %Q < 24), представляющих дробную часть числа. Если Q = 0, то ни дробная часть, ни десятичная точка не выводятся. Если Q > 24, то при выводе используется формат с плавающей точкой.

Значение R Оператор Результат

511.04 Write(R 8 4) 511.0400

-46.78 Write(R 7 2) „-46.78

Ch:P — в крайнюю правую позицию поля шириной Р выводится значение Ch.

Значение Ch

Оператор

 

 

Результат

’ X’

 

Write

(Ch3)

 

„ X

’ ! ’

 

Write

(Ch2,

Ch

4) _ ! ____ !

S — начиная с позиции курсора выводится значение S.

Значение S

 

Оператор

Результат

’ Day N’

 

Write(S)

Day N

 

’ RRDD’

W rite(S,

S)

RRDDRRDD

S:P — значение S выводится в крайние правые позиции поля шири­

ной Р символов.

Оператор

 

 

Результат

Значение S

 

 

 

’ Day N’

 

Write(S

 

10)

 

_____ Day N

’ RRDD’

 

Write(S

 

5, S

5)

.RRDD.RRDD

В — выводится результат выражения В: true или false, начиная с

текущей позиции курсора.

 

Значение В

Оператор

Результат

True

Write (В)

True

False

W rite(В,

Not В) FalseTrue

В:P — в крайние правые позиции поля шириной Р символов выво­

дится результат булевского выражения.

 

Значение В

Оператор

 

Результат

True

Write (В

6)

True

False

Write (В

6, Not В

7) .F a lse ___ True

4.4.Управление символьным выводом на экран в ТУрбо-Паскале

Использование для вывода на экран только процедур write и writeln дает программисту очень слабые возможности для управле­ ния расположением на экране выводимого текста. Печать текста мо­ жет производиться только сверху вниз, слева направо. Невозможен возврат к предыдущим строкам, стирание напечатанного текста, из­ менение цвета символов и т.д.

Дополнительные возможности управления выводом на экран дают процедуры и функции модуля CRT.

Для установления связи пользовательской программы с модулем пе­ ред разделами описаний должна быть поставлена строка:

Uses CRT

Для работы с модулем CRT необходимо познакомиться со следую­ щими понятиями: режимы экрана, координаты на экране, текстовое окно, цвет фона и цвет символа.

Режимы экрана. Во-первых, вывод на экран может происходить в текстовом или графическом виде (на графических дисплеях). Мы здесь будем говорить только о текстовом выводе.

Дисплеи бывают монохроматические (черно-белые) и цветные. Мо­ нохроматические дисплеи могут работать только в черно-белом ре­ жиме; цветные — как в черно-белом, так и в цветном. Кроме того, текстовые режимы различаются по количеству символьных строк и столбцов, умещающихся на экране.

В модуле CRT каждый режим имеет определенный номер, за ко­ торым закреплено символическое имя (описанная константа). Список таких констант приведен в табл. 1 Приложения 1.

Для установки режима экрана используется процедура

T extM od e(<H O M ep р е ж и м а > ) .

При обращении к процедуре <номер режима> может задаваться как числом, так и именем соответствующей константы. Например, экви­ валентны два оператора:

TextMode(l);

TextMode(CQ40);

Как правило, исходный режим экрана, устанавливаемый “по умол­ чанию” , — СО80 (на цветных дисплеях).

Координаты позиции. Каждая символьная позиция на текстовом экране определена двумя координатами (Х ,У ). Х-коордйната — по­ зиция в строке. Крайняя левая позиция в строке имеет X = 1. У- координата — номер строки, в которой находится символ. Строки ну­ меруются сверху вниз.

Например, в режиме 80 х 25 символ в верхнем левом углу имеет координаты (1; 1); символ в нижнем правом углу — (80; 25); символ в середине экрана — (40; 13).

Для установления курсора на экране в позицию с координатами (Х ,У ) в модуле CRT существует процедура:

GoToXY(X, Y)

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

Вот пример программы, в которой по очереди откроются 4 окна, и каждое из них “зальется” разным фоновым цветом:

Uses Crt; {Example2.pas}

Begin

Windov(l, 1, 40, 12);

TextBackGround(White); ClrScr;

Window(41, 1, 80, 12);

TextBackGround(Red); ClrScr;

Windov(l, 13, 40, 25);

TextBackGround(LightRed); ClrScr;

Window(41, 13, 80, 25);

TextBackGround(Green); ClrScr;

End.

По следующей программе на экран выведутся номера первых пят­ надцати цветов разной окрашенности (в соответствии со своим цве­ том) на белом фоне в середине экрана.

Uses Crt; {Example3.pas}

Var I Byte;

Begin

TextBackGround(White);

ClrScr;

GoToXY(l, 12);

For I := 0 To 14 Do

Begin

TextColor(I);

Write(I 5)

End

End.

Кратко опишем еще несколько процедур управления текстовым эк­ раном из модуля CRT. Все эти процедуры не имеют параметров.

Процедура ClrEOL. Стирает часть строки от текущей позиции кур­ сора до конца этой строки в окне. При этом положение курсора не Меняется.

Процедура DelLine. Уничтожает всю строку с курсором. Нижние строки сдвигаются на одну вверх.

Процедура InsLine. Вставляет пустую строку перед строкой, в ко­ торой стоит курсор.