Базовые операторы ввода-вывода символьной информации.Координаты на текстовом экране
14.05.2012 22:00

Базовые операторы ввода-вывода символьной информации.Координаты на текстовом экране.Работа с файлами
1. Базовые операторы вывода выводят значения переменных на экран посимвольно с переходом на новую строку, когда текущая полностью заполнится. Когда экран полностью заполнен, происходит «роллирование» и верхняя строка «исчезает» за пределами экрана.
Как правило, нельзя заранее узнать, сколько символов на экране займет при выводе значение числовой переменной, поэтому вывод числовой информации «в красивом» виде базовыми командами затруднен. Основное средство управления выводом базовыми командами — переход на новую строку. В КуМире этот переход задается словом «не». Примеры.
а)вывод   "Число   ПИ=   ",   m/n*4,   не
б)вывод "Число слов в строке:", не, стр1,   не,"равно   ",   nl,   не
В Паскале есть две команды вывода на экран — writeln и write; writeln после окончания ввода «переводит строку», a write — нет.
Примеры.
a)writeln('Число ПИ= ',M/N*4);
б)writeln('Число слов в строке:');
writeln(si) ;
writeln('равно    ' , nl) ;
В Бейсике вывод на экран проводится командой
PRINT.
Примеры.
а)80 PRINT "Число ПИ= ", M%/N%*4
6)140 PRINT "Число слов в строке:"
150 PRINT Sl$
160 PRINT "равно ", N1%
Каждая встречающаяся при выполнении команда PRINT начинает вывод с новой строки, если предыдущая команда PRINT не заканчивалась на «;». Уменьшить расстояние между выводимыми значениями переменных можно, разделив имена переменных в команде PRINT не запятой, а точкой с запятой «;».
2.    Вывести на экран таблицу описанными выше командами затруднительно (см., например,задачу 4). Иногда бывает удобно управлять выводом
на экран, помещая курсор в нужное место экрана
специальной командой.
Примеры. поз(10,2 0);   вывод  V GotoXY(20,10);   Write    (v) ; 5   LOCATE   20,10:    PRINT   TIME$
Команда перемещения курсора имеет два аргумента: Х-координату курсора и У-координату курсора. Эти координаты увеличиваются сверху вниз и слева направо. В Паскале и Бейсике X и У отсчитываются с 1, в КуМире X и У отсчитываются с нуля.
3.    Простейшие операторы ввода отображают вводимую с клавиатуры человеком информацию на экране.
Пример.
вывод не,    "Введите  А=" ,-   ввод А;   не
write (' Введите  В= ' ) ;   readln(b);    ч,
PRINT   "Введите  А=";    :    INPUT  A
(В Паскале команда readln переводит строку после ввода, а команда read  не переводит.)
Если требуется ввести нечто без отображения информации на экране, например при помощи клавиатуры управлять объектами (задача 5), то нужно использовать команды:
k: =inkey — в КуМире;
k:=readkey;   —в Паскале;
K$ = INKEY$  —в Бейсике.
После выполнения такой команды к будет пустой строкой (если ни одна клавиша не была нажата)либо строкой с символьным кодом нажатой клавиши. Обычно эта команда помещается в «цикл».
4. Для работы с файлами нужны еще команды открытия и закрытия файлов. При этом имя файла используется только в команде открытия (начале ра¬боты с файлом), а все остальные команды используют так называемый канал: целое число в КуМире и Бейсике, литерную величину в Паскале.
Пример (файл «In.txt» считывается в массив А).

I начать чтение (1,"In.txt") | канал (1) | m:=0 нц пока не конец файла (1)
| m:=m+l
| ввод A[m] I кц
I кончить чтение (1) 1,0:Text; begin
m : = 0 ;
assign (I,'In.txt');
reset(I);
while NOT Eof(I) do begin m:=m+1;
readln(I,A[m]); end ;
close(I); end;
20   OPEN "in.txt" FOR INPUT AS #1: M%=0
30   IF EOF(l) THEN 5 5
40   M% = M% + 1
50 INPUT #1, A$(M%): GOTO 30 55 CLOSE #1
В  приведенных примерах чтение происходит,пока не закончился файл (т. е. пока в файле есть непрочитанные  элементы).   Для  этого   используются
функции:
конец файла(1)    Eof(I)    EOF(1)
Вывод организуется аналогично.
Пример (элементы массива А записываются в файл «out. txt»). ?   начать   запись   (2,"Out.txt") I   канал   (2) |   нц  для   i   от   1   до  m |    |    вывод A[i],не
I  КЦ
. кончить запись (2)
assign(0,'Out.txt');
rewrite ( 0 ) ,-
for i=l to m do
begin writeln(0,A[i]) end; close(0);
14 0 OPEN "Out.txt" FOR OUTPUT A$ #2 150 FOR I% = 1 TO M% 160 PRINT #2 , A$(1%) 170 NEXT 1% 180 CLOSE #2

 

FORM_HEADER


FORM_CAPTCHA
FORM_CAPTCHA_REFRESH

Вверх