In mod obisnuit, tastatura este desemnata ca dispozitiv-standard de intrare. n6m2mg
  Citirea datelor de la tastatura se realizeaza prin apelul procedurilor predefinite 
  read sau readln. Aceste doua proceduri apartin unit-ului System care este deasemenea 
  predefinit(nu trebuie de declarat). Lista parametrilor actuali a unui apel read 
  sau readln poate sa includa variabile de tip integer, real, char si string. 
  
  Astfel apelul read(x) are urmatorul efect. Daca variabila x este de tip integer 
  sau real, atunci este citit intregul sir de caractere care reprezinta 
  valoarea intreaga sau reala. Daca x este de tip char, procedura citeste 
  un singur caracter.
  Apelul read(x1 , x2, …,xn) este echivalent cu read(x1); read(x2); … 
  ;read(xn).
  Datele numerice introduse de la tastatura trebuie separate prin spatii sau caractere 
  sfarsit de linie. Spatiile dinaintea unei valori numerice sunt ignorate. 
  Sirul de caractere care reprezinta o valoare numerica se conformeaza sintaxei 
  constantelor numerice de tipul respectiv. In caz contrar, este semnalata 
  o eroare de intrare-iesire.
  De exemplu, fie programul:
Program exemplu;ACitirea datelor numerice de la tastaturaS
  Var i, j : integer; x,y:real; begin read(i, j, x, y);
  writeln('Ati introdus: ');
  writeln('i=', i);
  writeln('j=', j);
  writeln('x=', x);
  writeln('y=', y); end.
In care sunt citite de la tastatura valorile variabilelor i, j, x, y. 
  Dupa lansarea programului in executie, utilizatorul tasteaza:
  1<Enter>
  2<Enter>
  3.0<Enter>
  4.0<Enter>
  Pe ecran se va afisa:
  Ati introdus: i=1 j=2 x=3.0000000000E+00 y=4.0000000000E+00
  Acelasi efect se va obtine si la tastarea numerelor intr-o singura linie:
  1 2 3.0 4.0<Enter>
  Procedura readln citeste datele in acelasi mod ca si procedura read. Insa, 
  dupa citirea ultimei valori, restul caracterelor din linia curenta se ignora. 
  Pentru exemplificare, prezentam programul urmator:
 
 Program exemplu1; AApelul procedurii readlnS
  Var i, j :integer; x,y : real; begin
  writeln('Apelul procedurii read'); read(i, j); read(x, y);
  writeln('Ati introdus:');
  writeln('i=', i, 'j=', j, 'x=', x, 'y=', y);
  writeln('Apelul procedurii readln'); readln(i,j); readln(x, y);
  writeln('Ati introdus:');
  writeln('i=', i, 'j=', j, 'x=', x, 'y=', y); end.
 La executia instructiunilor read(i, j);read(x, y); valorile numerice din linia 
  introdusa de utilizator
  1 2 3 4<Enter> vor fi atribuite variabilelor respectiv i, j, x, y. La executia instructiunii 
  readln(i, j); valorile numerice 1si 2 din linia 1 2 3 4<Enter> vor fi 
  atribuite variabilelor i si j. In continuare calculatorul executa instructiunea 
  readln(x, y); adica va astepta introducerea unor valori pentru x si y.
  Mentionam faptul ca apelul procedurii readln fara parametri va forta calculatorul 
  sa astepte actionarea tastei <ENTER>. Acest apel se utilizeaza pentru 
  a suspenda derularea programului, oferindu-i utilizatorului posibilitatea sa 
  analizeze rezultatele afisate anterior pe ecran. In programul de mai jos 
  observam ca acesta se termina cu instructiunea readln. Ce rol are ea? Dupa ce 
  un program isi incheie executia, se revine in mod automat 
  in mediul in care se gaseste textul sursa. Rezultatele se pot vizualiza 
  tastand ALT+F5. Pentru ca revenirea sa nu se faca automat (sa avem timp 
  sa vedem rezultatul), vom utiliza instructiunea readln fara parametri. Efectul? 
  Se va astepta sa se tasteze <ENTER>. In acest timp, avem posibilitatea 
  sa vedem ce s-a tiparit.
 Program exemplu;
  Begin
  Writeln(6);
  Readln;
  End.
Pentru a inlesni introducerea datelor, se recomanda ca apelurile read(…) 
  si readln(…) sa fie precedate de afisarea unor mesaje sugestive. Exemple:
  
  Write('Dati doua numere:'); readln(x, y);
  Write('Dati un numar intreg:'); readln(i);
  Write('x='); readln(x);
  Write('Raspundeti cu D sau N:'); readln(c);
 Unii incepatori sau cunoscatori ai limbajului BASIC cred ca se poate 
  face o citire in felul urmator: readln('Dati n= ', n); iar altii nu sesizeaza 
  diferenta intre un sir si valoarea identificatorului: readln('n');.
  In cazul in care valoarea introdusa nu corespunde tipului variabilei 
  declarate se va semnala o eroare de executie si astfel se va iesi automat din 
  program. Pentru a evita aceasta iesire se poate testa daca datele introduse 
  corespund tipului variabilei respective prin introducerea inaintea instructiunii 
  read sau readln a directivei A$i-S si dupa instructiune - A$i+S. Aceste directive 
  fac posibila continuarea rularii programului fara a iesi din el. Si pentru a 
  verifica daca valoarea introdusa este corecta, verificam prin intermediul functiei 
  predefinite IOResult care va returna un numar diferit in cazul unei erori, 
  si va returna 0 daca nu exista nici o eroare. Ca exemplificare vom prezenta 
  programul urmator:
 
 Program ex;
  Var a:integer;
  Begin 
  Writeln('Dati o valoare pentru a!');
  A$i-S readln(a);A$i+S if IOResult<>0 then writeln('Ati introdus gresit!') else begin a:=a+1; Amarim valoarea lui a cu o unitateS
  writeln('a=', a); end; end.
 Program exemplu;
  Astfel daca in lipsa directivelor A$i-S si A$i+S dam lui a valoarea bicaz 
  care este de tipul string se va semnala o eroare si se va iesi automat din program. 
  Dar in prezenta lor programul va rula in continuare afisind 
  mesajul Ati introdus gresit. Daca valoarea introdusa e de tipul integer se va 
  mari valoarea variabilei cu o unitate si se va afisa noua valoare.
  
  O larga intrebuintare o au procedurile read si readln in prelucrarea 
  fisierelor.
  Stim ca pentru deschiderea unui fisier pentru citire se apeleaza procedura reset(f) 
  unde lui f ii este atribuit fisierul de tipul respectiv(text sau fisiere 
  cu tip).Insa citirea datelor din fisier se face printr-o apelare de forma 
  read(f, v), iar in cazul fisierelor de tip text se permite si apelarea 
  readln(f,v) , care reprezinta citirea sffarsitului de linie din fisier.
  O simpla apelare de tipul readln(f) va avea ca efect trecerea in fisier 
  la linia urmatoare. O instructiune de forma readln(f,v1,v2,…,vn) este 
  echivalenta cu secventa de instructiuni read(f,v1,v2,…,vn);readln(f); 
  . Programul ce urmeaza afiseaza continutul fisierului FILE.TXT pe ecran.
 Var f:text; c:char;
  Begin
  Assign(f,'FILE.TXT');
  Reset(f);
  While not eof(f) do
  Begin
  While not eoln(f) do
  Begin
  Read(f, c); Aciteste c din fS
  Write(c);
  End;
  Readln(f); Atrece la linia urmatoare din fS
  Writeln;
  End;
  Close(f);
  Readln;
  End.
Astfel fara de instructiunea de citire nu ne putem lipsi practic in nici 
  un program Pascal.