ࡱ> TVS7 8bjbjUU L7|7|QlZZZZZZZn    . ,n3f f f f f f f f 2222222$4 6h2Zf f f f f 2-ZZf f 3---f Zf Zf 2-f 2--022ZZ2f Z Юrn  v)62230327-72-nnZZZZInstrucciunea 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 aparcin 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 urmtorul 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 spacii sau caractere sfr_it de linie. Spaciile 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('Aci 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 execucie, utilizatorul tasteaz: 1<Enter> 2<Enter> 3.0<Enter> 4.0<Enter> Pe ecran se va afi_a: Aci introdus: i=1 j=2 x=3.0000000000E+00 y=4.0000000000E+00 Acela_i efect se va obcine _i la tastarea numerelor ntr-o singur linie: 1 2 3.0 4.0<Enter> 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, prezentm programul urmtor: Program exemplu1; {Apelul procedurii readln} Var i, j :integer; x,y : real; begin writeln('Apelul procedurii read'); read(i, j); read(x, y); writeln('Aci introdus:'); writeln('i=', i, 'j=', j, 'x=', x, 'y=', y); writeln('Apelul procedurii readln'); readln(i,j); readln(x, y); writeln('Aci introdus:'); writeln('i=', i, 'j=', j, 'x=', x, 'y=', y); end. La execucia instrucciunilor read(i, j);read(x, y); valorile numerice din linia introdus de utilizator 1 2 3 4<Enter> vor fi atribuite variabilelor respectiv i, j, x, y. La execucia instrucciunii readln(i, j); valorile numerice 1_i 2 din linia 1 2 3 4<Enter> vor fi atribuite variabilelor i _i j. n continuare calculatorul execut instrucciunea readln(x, y); adic va a_tepta introducerea unor valori pentru x _i y. Mentionm faptul c apelul procedurii readln fr parametri va forca calculatorul s a_tepte accionarea tastei <ENTER>. 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 observm c acesta se termin cu instrucciunea readln. Ce rol are ea? Dup ce un program _i ncheie execucia, se revine n mod automat n mediul n care se gse_te textul surs. Rezultatele se pot vizualiza tastnd ALT+F5. Pentru ca revenirea s nu se fac automat (s avem timp s vedem rezultatul), vom utiliza instrucciunea readln fr parametri. Efectul? Se va a_tepta s se tasteze <ENTER>. n acest timp, avem posibilitatea s vedem ce s-a tiprit. Program exemplu; Begin Writeln(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('Daci dou numere:'); readln(x, y); Write('Daci un numr ntreg:'); readln(i); Write('x='); readln(x); Write('Rspundeci cu D sau N:'); readln(c); Unii nceptori sau cunosctori ai limbajului BASIC cred c se poate face o citire n felul urmtor: readln('Dati n= ', n); iar alcii nu sesizeaz diferenca 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 execucie _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 instrucciunii read sau readln a directivei {$i-} _i dup instrucciune - {$i+}. Aceste directive fac posibil continuarea rulrii programului far a ie_i din el. ^i pentru a verifica dac valoarea introdus este corect, verificm prin intermediul funcciei 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 urmtor: Program ex; Var a:integer; Begin Writeln('Daci o valoare pentru a!'); {$i-} readln(a);{$i+} if IOResult<>0 then writeln('Aci 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+} dm lui a valoarea bicaz care este de tipul string se va semnala o eroare _i se va ie_i automat din program. Dar n prezenca lor programul va rula n continuare afi_nd mesajul Aci introdus gre_it. Dac valoarea introdus e de tipul integer se va mri valoarea variabilei cu o unitate _i se va afi_a noua valoare. O larg ntrebuincare 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 sffr_itului de linie din fi_ier. O simpl apelare de tipul readln(f) va avea ca efect trecerea n fi_ier la linia urmtoare. O instrucciune de forma readln(f,v1,v2,& ,vn) este echivalent cu secvenca de instrucciuni read(f,v1,v2,& ,vn);readln(f); . Programul ce urmeaz afi_eaz concinutul 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 urmtoare din f} Writeln; End; Close(f); Readln; End. Astfel fr de instrucciunea de citire nu ne putem lipsi practic n nici un program Pascal. 0rz$(04<DPtN Z ^ d f p r t D~$,>BhjlnD6CJmH sH mH sH  5mH sH 5CJmH sH  CJmH sH 6CJH*mH sH 6CJmH sH 5CJmH sH  CJmH sH J02V> 2 \ FpD$a$$`a$8Dfvv>@Jj(z^jl<b$a$$`a$Db>@DH^z*Dv 0J L r!t!!""##\$t$&&&&''N'X'((***@,D,t,,,,,,,,-.-:-8.^...//56CJmH sH  5mH sH 5CJmH sH  CJmH sH  CJmH sH 6CJmH sH R 6 J L r!|!!2"h"""x$**4*Z*n***v++0,@,B,$`a$$a$B,p,J/N//255H5\55556R6b6666F7r77777788$`a$$a$///0000 111122N2f23$333333333J4Z4\4`4b4j4l44455 5785CJmH sH  5mH sH 6CJH*mH sH 6CJmH sH  CJmH sH &888. A!"#$% i0@0 Normal_HmH sH tH <A@< Default Paragraph Font4>@4 Title$a$CJ,mH sH uRC@R Body Text Indent$`a$CJmH sH u.U@. Hyperlink >*B*phQLfA]^#8MRS "3;CZq%5Ec/ 5 6 %&4cd<  -7b~ !8o)1TcjNOPS0000000000000000000000000000000D/8!$DB,88 "#%8  (*3489BFP]dfmnu| #'/278DELOSTX^abhinoqryz   !$(18BCKLTUXY^`dgky !+/067:;DELPUW_`ijnouv~   $'-1?ELR[fmovw~  &-;BSU[_`fmvw  %()1qxy~"#*+239;ABNSXY`djlrs  ./IPRUV^gnuv   : B C R X Y j r s {       ) . > A E N O [ \ ] ^ ` d f g q r ~          " # / 0 2 3 : ; E F L V [ \ ` d n o u x         " ) - : ; A C E F I R V W Y e h i p q y ~         # $ & ' , - 7 : = > E F S T Z [ _ ` i k r w y z &,/67CDKPY]foqrx|~ )/>HNQX^eijtuxy ,.4=?@EFHNVW`acdnovw  %&-.8DHIUV^_lruv|  "#,-129;DEIJUV^_jksy{|!"+=DFJMTU[jknt/6:@AEFHINO[^_bdknoru}   ()/156>?HNS_abfgopz &'-19:CMQRUXZ[_`hiquz{&'-.1:DELMY]bgmqwx $468>ENOQRYZbcmnx"CJw}$%*+2356:PPS48oq(7gkWmo&-;BMP78?@GH^_k )-9=IPgn 0 3 S X    W Y  w y gl"7=-1#+=Ejk&6_aDJOQ#6;abw~;=PPS3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333Liceu.C:\WINDOWS\Desktop\Instrucciunea de citire.docLiceu.C:\WINDOWS\Desktop\Instrucciunea de citire.docLiceu.C:\WINDOWS\Desktop\Instrucciunea de citire.docLiceu.C:\WINDOWS\Desktop\Instrucciunea de citire.docLiceu.C:\WINDOWS\Desktop\Instrucciunea de citire.docLiceu.C:\WINDOWS\Desktop\Instrucciunea de citire.docLiceu.C:\WINDOWS\Desktop\Instrucciunea de citire.docliceu$A:\Ghena\Instrucciunea de citire.docaDC:\Documents and Settings\a\My Documents\Instructiunea de citire.docDVDUD:\My Documents\NET\REFERATE\REFERATE.RO\informatica\INF3\Instructiunea de citire.docvAZ vhh^h`o(-vAPS@PPt#P0PP Q@@@@@@@@@@ @,@2@6UnknownGz Times New Roman5Symbol3& z Arial"1hYlfbf63l .!0d2Instrucciunea de citireLiceuDVDOh+'0|  , 8 D P\dltInstrucţiunea de citirecnstLiceucice Normal.dotnDVD3DMicrosoft Word 9.0i@F#@J@̳Р@ O՜.+,0 hp  Bicaz?.  Instrucţiunea de citire Title  !"#$%&()*+,-./0123456789:;<=>?@ABDEFGHIJLMNOPQRURoot Entry FgrW1Table'7WordDocumentLSummaryInformation(CDocumentSummaryInformation8KCompObjjObjectPoolgrgr  FMicrosoft Word Document MSWordDocWord.Document.89q