Document, comentariu, eseu, bacalaureat, liceu si facultate
Top documenteAdmitereTesteUtileContact
      
    


 


Ultimele referate adaugate

Adauga referat - poti sa ne ajuti cu un referat?

Politica de confidentialitate



Ultimele referate descarcare de pe site
  CREDITUL IPOTECAR PENTRU INVESTITII IMOBILIARE (economie)
  Comertul cu amanuntul (economie)
  IDENTIFICAREA CRIMINALISTICA (drept)
  Mecanismul motor, Biela, organe mobile proiect (diverse)
  O scrisoare pierduta (romana)
  O scrisoare pierduta (romana)
  Ion DRUTA (romana)
  COMPORTAMENT PROSOCIAL-COMPORTAMENT ANTISOCIAL (psihologie)
  COMPORTAMENT PROSOCIAL-COMPORTAMENT ANTISOCIAL (psihologie)
  Starea civila (geografie)
 

Ultimele referate cautate in site
   domnisoara hus
   legume
    istoria unui galban
   metanol
   recapitulare
   profitul
   caract
   comentariu liric
   radiolocatia
   praslea cel voinic si merele da aur
 
despre:
 
Instructiunea de citire
Colt dreapta
Vizite: ? Nota: ? Ce reprezinta? Intrebari si raspunsuri
 

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.


Colt dreapta
Creeaza cont
Comentarii:

Nu ai gasit ce cautai? Crezi ca ceva ne lipseste? Lasa-ti comentariul si incercam sa te ajutam.
Esti satisfacut de calitarea acestui document, eseu, cometariu? Apreciem aprecierile voastre.

Nume (obligatoriu):

Email (obligatoriu, nu va fi publicat):

Site URL (optional):


Comentariile tale: (NO HTML)


Noteaza documentul:
In prezent fisierul este notat cu: ? (media unui numar de ? de note primite).

2345678910

 
Copyright© 2005 - 2024 | Trimite document | Harta site | Adauga in favorite
Colt dreapta