Функции Copy, Pos, процедуры Delete, Insert.

Функция Copy позволяет копировать из строки часть символов. Функция имеет 3 параметра. Copy (st, index, count). St-строка из которой копируют, Index-номер символа, с которого начинается копирование, Count-количество символов, которое будет ...

Тип данных Char. Функции Ord, Chr.

Мы с Вами уже рассмотрели типы данных, которые позволяют хранить и обрабатывать целые числа (integer) и дробные числа (real). Теперь рассмотрим тип данных, позволяющий хранить и обрабатывать различные символы. Символы – это все буквы и значки, ...

Перевод числа из десятичной системы счисления в шестнадцатеричную.

Напишем программу, которая вводит с клавиатуры целое число в диапазоне от 0 до 15 и преобразует его к шестнадцатеричной системе счисления. Напомню, что в шестнадцатеричной системе счисления числа в диапазоне от 0 до 9 соответствуют таким же числам в ...

Циклы и массивы

Примеры использования различных операторов цикла.

Примеры использования различных операторов цикла.

Разветвляющийся вычислительный процесс.

Если вычислительный процесс зависит от определенных условий и реализуется по одному из нескольких заранее предусмотренных направлений, он называется разветвляющимся вычислительным процессом, а каждое ...

В языке программирования Pascal есть несколько средств для работы с клавиатурой. С некоторыми из них мы уже познакомились. Это операторы Read и Readln, которые позволяют вводить данные  с клавиатуры. Удобство использования этих 2-х процедур заключается в том, что они автоматически преобразовывают вводимые символы в значение заданного типа.

Например, предположим, что в программе объявлена переменная «chislo» с типом данных Integer: var chislo:integer;. Тогда оператор Readln(chislo) заставит программу остановиться и ждать ввода с клавиатуры символов, которые должны быть числами. После ввода эти символы будут преобразованы в соответствующие двоичные значения и присвоены переменной «chislo». Нарпимер, если мы введем число 10, то оно будет преобразовано в двоичную систему счисления. Результатом будет число 1010. Теперь, предположим, что переменная «chislo» имеет тип String: var chislo:string;. В этом случае, оператор Readln(chislo) также остановит ход программы и будет ждать ввода символов. Если мы введем с клавиатуры числа, то они будут преобразованы в двоичный код согласно кодовой таблице ASCII. Например, число 10 будет преобразовано так: символ «1» согласно таблице ASCII имеет код 49 (в двоичной системе счисления 110001). Символ «0» имеет код 48 (в двоичной системе счисления 110000). Таким образом, символы 10 будут преобразованы в двоичные значения 110001 и 110000 и присвоены переменной «chislo».
Однако, несмотря на простоту и удобство использования стандартных процедур Read и Readln они имеет определенные недостатки. Одним из главных недостатков является отображение на экране вводимых символов, которые по замыслу программы выводить не нужно. Кроме того, процедуры Read и Readln способны к вводу лишь определенного количества чисел, букв и знаков препинания. Но они не способны распознать нажатие на клавиатуре таких клавиш как «Ctrl», «Esc», «Alt» и других функциональных клавиш.
В модуле CRT присутствует более удобная для этих целей функция, которая называется ReadKey. Прежде чем познакомиться с данной функцией рассмотрим другую функцию из модуля CRT под названием KeyPressed.
Функция KeyPressed служит для проверки, была ли нажата клавиша и возвращает значение либо True (если клавиша была нажата), либо False (если клавиша не нажата). Рассмотрим следующий пример.

Функция KeyPressed.





program crt1;
uses crt;
var a:integer;
begin
     clrscr;
     randomize;
     repeat
     a:=random(1000);
     writeln(a);
   until 2>3;
   readln
end.



Здесь приводится код программы, которая выводит на экран случайные числа. Здесь используется цикл Repeat..Until. Цикл в программе будет бесконечным, т.к. условие остановки цикла (until 2>3) не выполнится никогда (это условие я взял от балды, лишь для того, чтобы продемонстрировать работу бесконечной программы).

При запуске программы на экран будут выводиться различные числа, причем программа будет работать до бесконечности, какие бы клавиши вы не нажимали. В процессе работы программа не реагирует на нажатие клавиш, за исключением одновременного нажатия клавиш «Ctrl+Break», которые используются для принудительного завершения программы.

funkciya keypressed

funkciya keypressed.

Изменим строку №10, выставив другое условие: until keypressed. Теперь цикл будет выполняться до тех пор, пока не будет нажата какая либо клавиша.

funkciya keypressed..

После запуска программы нажмите на любую клавишу на клавиатуре. Цикл перестанет работать, и числа больше не будут выводиться.

funkciya keypressed...


Предыдущая статья : Использование процедур в Паскале.
Оглавление : Уроки Паскаль. Модуль CRT.
Следующая статья : Функция ReadKey.


Комментарии  

 
+19 # Саня 09.12.2012 14:27
А как записать цикл,если я хочу,чтобы цикл заканчивался нажав какую-нибудь конкретную клавишу?
Ответить
 
 
0 # no name 30.07.2016 22:33
While true do
Begin

key:= readkey;
If key = nushnayaklavish a then goto 12;
End;
12: //А тут типо пиши че хочешь, здеся выход из цикла, не забудь прописать после uses, метки (label 12);
:-)
Ответить
 
 
0 # Господин 08.11.2016 07:15
8) 8) 8) 8) 8) 8) 8) 8) 8) 8) 8) :o :o :o :o :o :o :o :o
Ответить
 
 
0 # SadGirl 19.05.2017 15:54
:sad:
Ответить
 

Добавить комментарий

Защитный код
Обновить

   ГлавнаяПаскальМодуль CRT в Паскаль