keypressed функция
В езика за програмиране Pascal има няколко инструмента за работа с клавиатурата. С някои от тях вече видяхме. Това Операторите Прочетете и Readln, които ви позволяват да въведете данни от клавиатурата. Лесен за употреба на тези 2 процедури е, че те автоматично да преобразува входните знаци в стойността на определения вид.
Например, да предположим, че програмата декларира променлива «chislo» типа Integer Данни: Var chislo: цяло число. Тогава Readln оператор (chislo) ще доведе до програмата, за да спре и да изчака вход от героите комбинации, които трябва да са числа. След като въведете тези знаци ще се превърнат в съответните двоични стойности и на променливата «chislo». Narpimer, ако се въведе номера 10, тя ще се превърне в двоична система. Резултатът ще бъде броят 1010. Сега, да приемем, че променливата «chislo» е от тип String: Var chislo: низ. В този случай, Readln оператор (chislo) също спира напредъка на програмата и ще чака на входа на символа. Ако се въведе номер на клавиатурата, те ще трябва да се преобразува в двоичен код, базиран на таблицата с ASCII код. Например, номер 10 ще се преобразува, както следва: символа "1" съгласно таблицата на ASCII код 49 (в двоичен 110001). "0" символ е кодът, 48 (110 000 в двоична бройна система). По този начин символите 10 се превръщат в двоични стойности 110001 и 110000 и възложени променлива «chislo».
Все пак, въпреки лекотата и удобството на използване на стандартни процедури Прочетете и Readln те имат някои недостатъци. Един от основните недостатъци се показва на екрана за въвеждане характер, че не е нужно да се покаже по план на програмата. В допълнение, процедурите прочетени и Readln може да се сложи на определен размер на числа, букви и препинателни знаци. Но те не са в състояние да признае пресоването на клавишите на клавиатурата, като например «Ctrl», «Esc", "Alt» и други функционални бутони.
Модулът CRT присъства в по-удобно за тези цели, функция, която се нарича ReadKey. Преди да се запознае с тази функция, помислете различна функция от модула за CRT нарича KeyPressed.
KeyPressed функция се използва за тестване на ключовата и връща или вярно (ако е натиснат бутон) или невярно е натиснат (ако не се натисне клавиш). Да разгледаме следния пример.
Ето един код на програмата, която показва случайни числа. Той използва цикъл Repeat..Until. Цикълът на програмата ще бъде безкраен, тъй като условието за спиране на цикъла (до 2> 3) няма да успее някога (това състояние взех от булдозера, само за да покаже работата на безкрайна програма).
Когато стартирате програмата, на екрана ще се появи друг номер, а програмата ще продължи неопределено време, без значение какъв е натиснат. В този процес, програмата не реагира на натискания на клавиши, освен при преобръщане «Ctrl + Break», които се използват, за да принуди края на програмата.
Промяна на линия №10, който прати още едно условие: до keypressed. Сега, цикълът ще се изпълнява, докато е натиснат произволен клавиш.
След стартиране на програмата, натиснете произволен клавиш от клавиатурата. Цикълът ще спре да работи, и вече няма да се показват цифрите.