Использование Var, Integer, Readln.

Процедура Readln используется не только для задержки экрана. Ее основная задача - ввод данных с клавиатуры. В этой статье мы научимся вводить числа с клавиатуры, и потом выводить их на экран. Для этого нам будет необходимо познакомиться с разделом ...

Функции LENGTH и CONCAT.

Функция Length возвращает в качестве значения длину строки. Например, если в строковой переменной «stroka» записано слово «Pascal», то Length(stroka) будет равно 6. Эта операция аналогична операции Ord(stroka[0]), которую мы разбирали в 1-м уроке. ...

Ввод логических переменных с клавиатуры.

В отличие от переменных целого, вещественного или символьного типов данных, булевские переменные нельзя вводить с клавиатуры, их можно только выводить на экран. Однако можно использовать небольшую хитрость. Для того чтобы можно было ввести булевскую ...

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

Сортировка простым включением и простым выбором.

Сортировка простым включением.
Пример 33. Методом простого включения упорядочить (отсортировать) в порядке возрастания массив из 8 целых чисел (44, 55,12,42, 94, 18, 06, 67).

ФАЙЛЫ ЗАПИСЕЙ

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

В языке программирования 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.


Комментарии  

 
+20 # Саня 09.12.2012 14:27
А как записать цикл,если я хочу,чтобы цикл заканчивался нажав какую-нибудь конкретную клавишу?
 
 
+3 # 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);
:-)
 
   ГлавнаяПаскальМодуль CRT в ПаскальФункция KeyPressed.