Referat Instructiunea De Citire

Mai jos puteti citi fragmente din Referat Instructiunea De Citire si de asemenea puteti face Download Referat Instructiunea de citire

Citeste fragmente din Referat Instructiunea De Citire

Instrucţiunea de citire În mod obişnuit, tastatura este desemnată ca dispozitiv-standard de intrare. Citirea datelor de la tastatură se realizează prin apelul procedurilor predefinite read sau readln. Aceste două proceduri aparţin unit-ului System care este deasemenea predefinit(nu trebuie de declarat). Lista parametrilor actuali a unui apel read sau readln poate să includă variabile de tip integer, real, char şi string. Astfel apelul read(x) are următorul efect. Dacă variabila x este de tip integer sau real, atunci este citit întregul şir de caractere care reprezintă valoarea întreagă sau reală. Dacă x este de tip char, procedura citeşte un singur caracter. Apelul read(x1 , x2, …,xn) este echivalent cu read(x1); read(x2); … ;read(xn). Datele numerice introduse de la tastatură trebuie separate prin spaţii sau caractere sfârşit de linie. Spaţiile dinaintea unei valori numerice sunt ignorate. Şirul de caractere care reprezintă o valoare numerică se conformează sintaxei constantelor numerice de tipul respectiv. În caz contrar, este semnalată o eroare de intrare-ieşire. De exemplu, fie programul: Program exemplu;{Citirea datelor numerice de la tastatură} Var i, j : integer; x,y:real; begin read(i, j, x, y); writeln( Aţi introdus: ); writeln( i= , i); writeln( j= , j); writeln( x= , x); writeln( y= , y); end. În care sunt citite de la tastatură valorile variabilelor i, j, x, y. După lansarea programului în execuţie, utilizatorul tastează: 1 2 3.0 4.0 Pe ecran se va afişa: Aţi introdus: i=1 j=2 x=3.0000000000E+00 y=4.0000000000E+00 Acelaşi efect se va obţine şi la tastarea numerelor într-o singură linie: 1 2 3.0 4.0 Procedura readln citeşte datele în acelaşi mod ca şi procedura read. Însă, după citirea ultimei valori, restul caracterelor din linia curentă se ignoră. Pentru exemplificare, prezentăm programul următor: Program exemplu1; {Apelul procedurii readln} Var i, j :integer; x,y : real; begin writeln( Apelul procedurii read ); read(i, j); read(x, y); writeln( Aţi introdus: ); writeln( i= , i, j= , j, x= , x, y= , y); writeln( Apelul procedurii readln ); readln(i,j); readln(x, y); writeln( Aţi introdus: ); writeln( i= , i, j= , j, x= , x, y= , y); end. La execuţia instrucţiunilor read(i, j);read(x, y); valorile numerice din linia introdusă de utilizator 1 2 3 4 vor fi atribuite variabilelor respectiv i, j, x, y. La execuţia instrucţiunii readln(i, j); valorile numerice 1şi 2 din linia 1 2 3 4 vor fi atribuite variabilelor i şi j. În continuare calculatorul execută instrucţiunea readln(x, y); adică va aştepta introducerea unor valori pentru x şi y. Mentionăm faptul că apelul procedurii readln fără parametri va forţa calculatorul să aştepte acţionarea tastei . Acest apel se utilizează pentru a suspenda derularea programului, oferindu-i utilizatorului posibilitatea să analizeze rezultatele afişate anterior pe ecran. În programul de mai jos observăm că acesta se termină cu instrucţiunea readln. Ce rol are ea? După ce un program îşi încheie execuţia, se revine în mod automat în mediul în care se găseşte textul sursă. Rezultatele se pot vizualiza tastând ALT+F5. Pentru ca revenirea să nu se facă automat (să avem timp să vedem rezultatul), vom utiliza instrucţiunea readln fără parametri. Efectul? Se va aştepta să se tasteze . În acest timp, avem posibilitatea să vedem ce s-a tipărit. Program exemplu; Begin $ ( 0 4 < D P t ‚ Ì Î è ø þ N Z ^ d f p r t œ ¨ ª ¼ ¾ Ö Ø Ü V > Þ iteln(6); Readln; End. Pentru a înlesni introducerea datelor, se recomandă ca apelurile read(…) şi readln(…) să fie precedate de afişarea unor mesaje sugestive. Exemple: Write( Daţi două numere: ); readln(x, y); Write( Daţi un număr întreg: ); readln(i); Write( x= ); readln(x); Write( Răspundeţi cu D sau N: ); readln(c); Unii începători sau cunoscători ai limbajului BASIC cred că se poate face o citire în felul următor: readln( Dati n= , n); iar alţii nu sesizează diferenţa între un şir şi valoarea identificatorului: readln( n );. În cazul în care valoarea introdusă nu corespunde tipului variabilei declarate se va semnala o eroare de execuţie şi astfel se va ieşi automat din program. Pentru a evita această ieşire se poate testa dacă datele introduse corespund tipului variabilei respective prin introducerea înaintea instrucţiunii read sau readln a directivei {$i-} şi după instrucţiune - {$i+}. Aceste directive fac posibilă continuarea rulării programului fară a ieşi din el. Şi pentru a verifica dacă valoarea introdusă este corectă, verificăm prin intermediul funcţiei predefinite IOResult care va returna un numar diferit în cazul unei erori, şi va returna 0 dacă nu există nici o eroare. Ca exemplificare vom prezenta programul următor: Program ex; Var a:integer; Begin Writeln( Daţi o valoare pentru a! ); {$i-} readln(a);{$i+} if IOResult<>0 then writeln( Aţi introdus greşit! ) else begin a:=a+1; {marim valoarea lui a cu o unitate} writeln( a= , a); end; end. Program exemplu; Astfel dacă în lipsa directivelor {$i-} şi {$i+} dăm lui a valoarea bicaz care este de tipul string se va semnala o eroare şi se va ieşi automat din program. Dar în prezenţa lor programul va rula în continuare afişînd mesajul Aţi introdus greşit. Dacă valoarea introdusă e de tipul integer se va mări valoarea variabilei cu o unitate şi se va afişa noua valoare. O largă întrebuinţare o au procedurile read şi readln în prelucrarea fişierelor. Ştim că pentru deschiderea unui fişier pentru citire se apelează procedura reset(f) unde lui f îi este atribuit fişierul de tipul respectiv(text sau fişiere cu tip).Însă citirea datelor din fişier se face printr-o apelare de forma read(f, v), iar în cazul fişierelor de tip text se permite şi apelarea readln(f,v) , care reprezintă citirea sffărşitului de linie din fişier. O simplă apelare de tipul readln(f) va avea ca efect trecerea în fişier la linia următoare. O instrucţiune de forma readln(f,v1,v2,…,vn) este echivalentă cu secvenţa de instrucţiuni read(f,v1,v2,…,vn);readln(f); . Programul ce urmează afişează conţinutul fişierului 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); {citeşte c din f} Write(c); End; Readln(f); {trece la linia următoare din f} Writeln; End; Close(f); Readln; End. Astfel fără de instrucţiunea de citire nu ne putem lipsi practic în nici un program Pascal. 쥁@