Функции Sqr, Abs, Sqrt, Sin, Cos, Arctan, Ln, Exp, Pi в Pascal.

Мы уже знаем, какие существуют функции для целых переменных. Это – нахождение модуля числа (Функция Abc), а также возведение числа в квадрат (Функция Sqr). В этом уроке мы рассмотрим функции, применяемые к дробным числам. Это функции Sqr - квадрат ...

Умножение, деление, сложение, вычитание вещественных чисел в Pascal.

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

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

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

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

Итерационные циклы.

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

...

Арифметический цикл с рекуррентной зависимостью.

Многие циклические вычислительные процессы используют рекуррентные зависимости при решении различных математических задач.

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


Комментарии  

 
+21 # Саня 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.