Основы программирования на C++, PASCAL
Процедура ClrEOL. Стирает часть строки от текущей позиции курсора до конца этой строки в окне. При этом положение курсора не меняется.
Процедура DelLine. Уничтожает всю строку с курсором. Нижние строки сдвигаются на одну вверх.
Процедура InsLine. Вставляет пустую строку перед строкой, в которой стоит курсор.
Процедуры LowVideо, NormVideo, HighVideо. Устанавливают режимы пониженной, нормальной и повышенной яркости символов соответственно.
Весьма полезной является функция KeyPressed из модуля CRT. При исполнении этой функции происходит опрос клавиатуры и определяется, не нажата ли какая-нибудь клавиша. В результате функция выдает логическое значение True, если нажата любая клавиша, и значение False в противном случае. Часто эту функцию используют для организации задержки окна результатов на экране (после выполнения программы Турбо Паскаль вызывает на экран окно редактора). Перед концом программы записывается следующий оператор:
Repeat Until KeyPressed;
Это пустой цикл, который «крутится на месте» до нажатия какой-либо клавиши. В это время на экране окно результатов. После нажатия на клавишу значение KeyPressed станет равно True, цикл завершится, будет выполнен переход на метку End и на экран вернется окно редактора. Этот прием можно использовать для задержки выполнения программы в любом ее месте.
В приведенную выше программу получения на экране четырех разноцветных окон внесем следующее дополнение: после установки четырехцветного экрана выполнение программы останавливается и изображение сохраняется; затем после нажатия на любую клавишу экран возвращается в исходный режим (80 х 25, черный фон, белые символы). Для этого перед концом программы нужно добавить следующее:
Repeat Until KeyPressed;
Window(1,1,80,25);
TextBackGround(Black);
CIrScr;
О других процедурах и функциях модуля CRT читайте в книгах по Турбо Паскалю.
Упражнения
1. Что будет напечатано в результате работы программы
Program Roots;
Var B,C,D: Real;
Begin
Read(B,C);
D:=Sqrt(Sqr(B)-4*C);
WriteLn('xl=',(-B+D)/2,
'x2=',(-B-D)/2)
End.
если в качестве исходных данных заданы числа 10 и —20?
2. Что будет напечатано в результате работы программы
Program Less;
Var X:Real; T:Boolean;
Begin
Read(X);
T:=X<Round(X);
Read(X);
T:=T And (X<Trunc(X)) ;
WriteLn(T)
End.
если последовательно вводятся два значения: 34, 79?
3. Что будет напечатано в результате работы программы
Program ABC;
Var A,B: Integer;
Begin
Read(A,B,A);
WriteLn(A,B:2,A:5)
End.
если последовательно вводятся три числа: 36, —6, 2345?
4. Составьте программу вычисления суммы двух целых чисел, которая будет вести диалог с пользователем в следующем виде (на месте многоточий — вводимые и выводимые числа):
ВВЕДИТЕ ДВА СЛАГАЕМЫХ
а=............
b=............
РЕЗУЛЬТАТ ВЫЧИСЛЕНИЙ:
а+b=.............