funcţia keypressed
În limbajul de programare Pascal are mai multe instrumente pentru lucrul cu tastatura. Cu unele dintre ele am văzut deja. Acest Operatorii Citește și readln, care vă permit să introduceți date de la tastatură. Ușor de utilizare a acestor 2 proceduri este faptul că ele converti automat caracterele de intrare în valoare de tipul specificat.
De exemplu, să presupunem că programul declară un «chislo» variabila de tip Integer Data: var chislo: integer;. Apoi, operatorul readln (chislo) va face ca programul să se oprească și să aștepte pentru intrare de la caracterele de la tastatură, care trebuie să fie numere. După introducerea acestor caractere vor fi convertite la valorile binare corespunzătoare și atribuite variabilei «chislo». Narpimer, dacă vom introduce numărul 10, acesta va fi transformat într-un sistem binar. Rezultatul va fi numărul 1010. Acum, să presupunem că variabila «chislo» este de tipul String: var chislo: string;. În acest caz, operatorul readln (chislo) se oprește, de asemenea, progresul programului și va aștepta introducerea de caractere. Dacă introducem un număr de tastatură, acestea vor fi transformate în cod binar pe baza tabelului de cod ASCII. De exemplu, numărul 10 va fi convertit după cum urmează: simbolul „1“, conform tabelului de cod ASCII este de 49 (în binar 110001). Simbolul „0“ este codul 48 (110000 în notație binară). Astfel, simbolurile 10 sunt convertite în valori binare 110001 și 110000 și atribuite variabilei «chislo».
Cu toate acestea, în ciuda ușurința și comoditatea de a folosi proceduri standard Citiți și readln au anumite dezavantaje. Unul dintre principalele dezavantaje este afișat pe ecranul de introducere de caractere care nu trebuie să fie afișate pe un plan al programului. În plus, procedurile Citiți și readln capabile să aducă o anumită cantitate de cifre, litere și semne de punctuație. Dar ei nu sunt capabili să recunoască apăsarea tastelor de pe tastatură, cum ar fi «Ctrl», «Esc», «Alt» și alte taste funcționale.
Modulul CRT este prezent în mai convenabil pentru aceste scopuri, o funcție care se numește ReadKey. Înainte de a ne familiariza cu această caracteristică, ia în considerare o funcție diferită de modulul CRT numit KeyPressed.
Funcția KeyPressed este folosit pentru a testa cheie și returnează fie TRUE (în cazul în care o tastă a fost apăsată) sau fals a fost apăsat (dacă nu se apasă tasta). Luați în considerare următorul exemplu.
Aici este un cod al programului, care afișează numere aleatoare. Acesta utilizează ciclul Repeat..Until. Ciclul programului va fi fără sfârșit, pentru că condiția de a opri ciclul (până când, 2> 3) nu va reuși vreodată (această condiție am luat de la buldozer, doar pentru a demonstra funcționarea programului infinit).
Când executați programul de pe ecran va fi afișat numărul diferit, iar programul va rula pe termen nelimitat, indiferent de ce-cheie ai apăsat. În acest proces, programul nu răspunde la intrarile de la tastatura, cu excepția în caz de răsturnare «Ctrl + Break», care sunt folosite pentru a forța sfârșitul programului.
Schimbarea liniei №10, punând o altă condiție: până la keypressed. Acum, ciclul va fi executat atâta timp cât este apăsată orice tastă.
După pornirea programului, apăsați orice tastă de pe tastatură. Ciclul se va opri de lucru, iar numerele nu vor mai fi afișate.