Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Fier
  • Folosind Var, Integer, Readln. Introducere în Pascal

Folosind Var, Integer, Readln. Introducere în Pascal

În secțiunea despre întrebarea De ce Pascal a citit și readln, dacă readln traduce și un rând, deși în teorie nu ar trebui? dat de autor Alexandru cel mai bun răspuns este readln - preia o valoare din tamponul de intrare într-un parametru, șterge întregul tampon de intrare de la tastatură
și citește - preia valoarea din buffer-ul de intrare în parametru și nu o șterge în buffer, ci lasă valoarea !! !
avans automat de linie la tastare - peste tot
adică readln este o intrare sigură
citire - intrare nesigură
exemplu:
var
a, b: întreg;
începe
Citeste o); (utilizatorul a introdus: 4, 5 a = 4)
(în tamponul de intrare numărul 5!!}
citiți (b); (aici a introdus un număr: 6, dar b = 5)
(numărul 6 rămâne în tamponul de intrare!!}
---
readln (a); (utilizatorul a introdus: 4, 5; a = 4)
(bufferul de intrare este clar!!}
readln (a); (utilizatorul a introdus numărul 6 și b = 6)
(bufferul de intrare este clar!!}
readln (b);
Sfârșit.
Dimpotrivă, nu există o detectare automată a tipului valorii de intrare, totul este determinat de convențiile din specificatorul de format.

Raspuns de la Yoali-Mali[guru]
Poate fi explicat într-un mod mai simplu, fără probleme speciale:
Când se execută procedura de citire, valoarea următoarelor date este citită de pe aceeași linie, iar când se execută procedura readln, valoarea următoarelor date este citită de pe o linie nouă.
Prin urmare, operatorul Readln (b1, b2, ... bn); asigură introducerea datelor în BAR.
După introducerea fiecărei variabile b1, b2, ..bn, cursorul se deplasează la începutul unei noi linii.
Operator de citire (b1, b2, ... bn); oferă introducerea datelor în LINE


Raspuns de la VT-107 FIT[guru]
Aici ceva Dmitry a mers prost, dar nu este adevărat. Și despre un tampon complet curățat și necurățat și despre siguranță. Nici Sali nu a răspuns corect. Nu există coloane și linii, reguli complet diferite.
În primul rând, aceste proceduri nu funcționează numai cu intrarea în consolă, deci sunt necesare două funcții.
procedura Citire (F, V1 [, V2, ... Vn]);
citește toate V1..Vn din flux (exact n parametri), toate datele citite vor fi șterse. Tot ce se va întâmpla după aceste date va rămâne neschimbat.
Citirea unei linii va citi totul până la o nouă linie sau la sfârșitul fișierului. Apelurile ulterioare la citire vor returna un șir gol. Iar caracterul newline nu va fi eliminat din flux.
Dacă citiți un caracter, atunci, în funcție de setări, caracterul newline poate fi citit ca caracter (26)
La citirea numerelor, toate spațiile, tabulatorii, întreruperile de rând sunt sărite. Iar următoarea lectură va începe cu caracterul care urmează numărului citit. Din nou, caracterele inutile pot fi sărite.
procedura ReadLn ([var F: Text;] V1 [, V2, ..Vn]);
citește din fluxul V1, Vn (adică funcționează ca citirea) și apoi omite toate caracterele până la linia nouă inclusiv. Toate caracterele după o întrerupere de rând vor rămâne neschimbate.
Tranziția la o linie nouă se realizează deoarece apăsați Enter în consolă.
Despre siguranță exagerat. Acestea sunt funcții cu scopuri diferite. Orice utilizare necorespunzătoare a acestora nu este sigură, corectă și în mod corespunzător sigură.

Limbajul de programare Pascal folosește instrucțiuni precum read și readLn. Ce sunt ei?

Ce este o declarație citită?

Această instrucțiune este menită să ofere intrare de la tastatura PC-ului a diferitelor valori ale variabilelor folosind limbajul Pascal. Schema de utilizare a instrucțiunii luate în considerare pare simplă: ca citire („valoare variabilă”).

În practică, instrucțiunea de citire este utilizată pentru a se asigura că anumite date sunt citite dintr-un fișier și apoi valorile preluate din datele corespunzătoare sunt atribuite variabilelor care sunt specificate la apelarea procedurii.

Dacă utilizatorul greșește la introducerea datelor, acestea nu corespund niciunui tip de variabile reflectate în instrucțiune, programul oprește executarea comenzilor. În acest caz, pe ecranul computerului apare un mesaj că a apărut o eroare în aplicație.

Dacă programatorul folosește mai multe instrucțiuni de citire, atunci datele vor fi introduse într-un fel sau altul pe o linie. Următorul salt este posibil numai dacă linia curentă se termină. Cu toate acestea, puteți citi informațiile plasate pe o altă linie folosind instrucțiunea readLn. Să luăm în considerare caracteristicile sale mai detaliat.

Ce este instrucțiunea readLn?

Esența instrucțiunii readLn este să setați o condiție în program în care:

  • orice număr introdus în șir este atribuit ultimei variabile de către instrucțiune;
  • restul liniei nu este procesat de program, în timp ce instrucțiunea următoare va necesita o nouă intrare.

Deci, puteți introduce instrucțiunile:

readLn (C, D); citește (E);

Și dacă după aceea introduceți un rând 1 2 3 de la tastatură, atunci variabila C va dobândi valoarea 1, D - 2. Însă programul nu va atribui o anumită valoare variabilei E până când utilizatorul introduce un nou număr.

Ca și în cazul instrucțiunii de citire, dacă utilizatorul a introdus un tip de date incorect folosind comanda readLn, programul se iese și afișează un mesaj de eroare.

Comparaţie

Principala diferență dintre readLn și read este că prima procedură presupune ca programul să sară la linia fișierului urmând cea în care sunt scrise instrucțiunile. A doua procedură permite programului să citească datele plasate în rândul următor, doar cu permisiunea utilizatorului - dacă acesta apasă Enter.

În practică, instrucțiunea readLn este folosită cel mai adesea pentru a oferi o întârziere între rezultatul execuției aplicației și trecerea la următoarea instrucțiune. Întârzierea corespunzătoare durează până când utilizatorul apasă Enter.

După ce am stabilit care este diferența dintre readLn și read în limbajul Pascal, să stabilim concluziile din tabel.

Subiect: Intrare ieșire. Citiți (Readln), Scrieți (Scrieți) declarații. Cele mai simple programe liniare.

Să rezolvăm problema comentând fiecare dintre acțiunile noastre între acolade. Amintiți-vă că comentariul nu este perceput de computer, dar avem nevoie de el pentru a înțelege mai bine cum funcționează programul.

Sarcină ... Scrieți un program care șterge ecranul și calculează produsul a două numere furnizate de utilizator.

Programul Proizv2;
Utilizări
Crt; (Conectăm modulul Crt)
Var
number1, (variabilă care va deține primul număr)
number2, (variabilă care va deține al doilea număr)
rezult (variabila care va contine rezultatul)
: întreg;
Începe
ClrScr; (Folosim procedura de ștergere a ecranului din modulul Crt)
Scrie („Introduceți primul număr”);
Readln (numar1);
(Numărul introdus de utilizator este citit în variabila număr1)
Scrie („Introduceți al doilea număr”);
(Afișarea caracterelor scrise între apostrofe)
Readln (numarul 2);
(Numărul introdus de utilizator este citit în variabila număr2)
rezultă: = număr1 * număr2;
(Găsiți produsul numerelor introduse și atribuiți-l variabilei rezult)
Scrieți („Produsul numerelor”, numărul1, „și”, numărul2, „egal”, rezult);
(Afișăm o linie care conține răspunsul la problemă)
Readln; (procedura de întârziere a ecranului)
Sfârșit.

Pentru a înțelege mai bine acțiunea unui program, tastați-l pe computer și testați-i acțiunea. Răspunde la întrebările:

  • de ce se numea programul Proizv2?
  • De ce ai pus modulul Crt în secțiunea Utilizări?
  • care este scopul variabilelor number1, number2, rezult?
  • ce tip sunt aceste variabile? ce înseamnă?
  • Dacă atribuim variabilelor număr1 și număr2 valorilor 5 și respectiv 7, ce linie va produce computerul la executarea ultimei proceduri Write? Notează-l în caiet.
  • în ce linii i se solicită utilizatorului valorile variabilelor?
  • pe ce linie are loc inmultirea numerelor?
  • ce face operatorul de atribuire în acest program?

Exercițiu ... Modificați programul astfel încât să solicite utilizatorului o altă variabilă și să scoată produsul din trei numere.

Scrieți și scrieți declarații

Am folosit deja operatorii Write și WriteLn, dar trebuie să ne oprim mai detaliat asupra regulilor de utilizare a acestor operatori.

Write este un operator care este folosit pentru a afișa informații pe ecran. Operatorul WriteLn efectuează aceeași acțiune, dar întrucât are și terminația Ln (linie - linie engleză, linie), atunci după afișarea pe ecran a mesajului dorit, mută suplimentar cursorul pe linia următoare.

Forma generala:
Scrie (lista de expresii)
WriteLn (lista de expresii)

Procedurile Write și WriteLn sunt folosite nu numai pentru afișarea rezultatului, ci și pentru afișarea diferitelor mesaje sau solicitări. Acest lucru vă permite să conduceți un dialog cu utilizatorul, să îi spuneți când trebuie să introducă valori, când obține un rezultat, când a greșit etc.

De exemplu, la executarea procedurii WriteLn (‘Număr găsit’, a), va fi tipărită o linie cuprinsă în apostrofe, iar apoi este afișată valoarea variabilei a.

Instrucțiunea WriteLn poate fi utilizată fără parametri. În acest caz, va fi imprimată o linie formată din spații, iar cursorul va fi mutat pe o altă linie. Uneori avem nevoie de el pentru o mai bună percepție a datelor introduse.

Operatori Read și ReadLn

Să ne amintim că scopul principal al unui computer este de a economisi munca umană. Prin urmare, este necesar să se ofere o oportunitate, după ce odată scris un program, reutilizați-l, introducând de fiecare dată date diferite. Această flexibilitate în limbaj este oferită de instrucțiunile Read și ReadLn. Acești operatori introduc informații de la tastatură.

Forma generala:
Citiți (variabilă, variabilă...)
ReadLn (variabilă, variabilă...)

Procedura Read se așteaptă ca valorile enumerate în paranteze să fie introduse. Datele introduse trebuie separate între ele prin spații. Atribuirea valorilor are loc pe rând.

De exemplu, dacă se introduc valorile 53 și X, atunci când se execută instrucțiunea Citire (a, b), numărul 53 va fi atribuit variabilei a, iar litera X variabilei X. Mai mult, în pentru a evita o urgență, trebuie să determinați corect tipul de date în secțiunea Var; în cazul nostru a: întreg și b: char.

Nu există diferențe speciale în citire și scriere în utilizarea operatorilor Read și ReadLn. Adesea, procedura ReadLn fără parametri este utilizată la sfârșitul programului pentru a întârzia: înainte de a apăsa o tastă rezultatul executării programului rămâne pe ecran. Acest lucru este foarte util pentru analiza rezultatelor.

Notă ... Când setați întârzierea ecranului, acordați atenție la intrarea anterioară. Dacă datele au fost solicitate prin procedura Citire, nu va exista nicio întârziere.

Să rezolvăm o problemă în care vom lua în considerare toate utilizările posibile ale acestor proceduri.

Sarcină ... Aflați media a trei numere.

Notă ... Pentru a afla media mai multor numere, adunați aceste numere și împărțiți suma la numărul acestor numere.

Introduceți textul problemei și luați în considerare cu atenție fiecare rând. Numele programului Srednee reflectă conținutul sarcinii. Apropo, să fim de acord că numele programului și numele fișierului care conține acest program sunt aceleași. Urmează conectarea modulului Crt. În secțiunea Var, First, Second, Third sunt descrise ca variabile de tip întreg, iar Suma este de tip real. Secțiunea operator începe cu rutina standard de ecran ClrScr (Clear Screen) găsită în modulul Crt. Apoi, cu instrucțiunea Write, afișăm mesajul ‘Introduceți primul număr’, după primirea căruia utilizatorul trebuie să introducă numărul.

Acum computerul ar trebui să citească caracterele introduse și să le pună în prima variabilă, acest lucru se va întâmpla când următoarea instrucțiune ReadLn (Prima) este executată. Apoi, folosind instrucțiunea Write, solicităm valorile a încă două numere și le citim în a doua și a treia variabilă. Apoi calculăm suma lor și atribuim numărul rezultat variabilei Sum. Pentru a găsi media, acum trebuie să împărțiți numărul rezultat la 3 și să stocați rezultatul într-o variabilă.

Nu este deloc necesar să declarați o altă variabilă pentru a salva rezultatul. Puteți, ca și în programul nostru, să împărțiți valoarea variabilei Sum la 3 și să atribuiți rezultatul aceleiași variabile Sum din nou. Acum puteți afișa rezultatul calculelor pe ecran folosind procedura Write. În cele din urmă, rutina finală ReadLn va întârzia ieșirea noastră pe ecran până când o tastă este apăsată.

Apăsați tastele +... Introduceți valorile variabilelor 5, 7 și 12, veți vedea următoarele pe ecran:

Media lui 5, 7 și 12 este 8,00

Priviți cu atenție această linie și comparați-o cu linia de ieșire a rezultatului în programul nostru. Testați programul de mai multe ori pentru diferite valori variabile.

Alegeți împreună cu profesorul problemele de rezolvat din următoarea listă:

  1. Introduceți două numere a și b. Utilizați operatorul de atribuire pentru a-și schimba valorile:
    a) folosind o variabilă intermediară (x: = a; a: = b; b: = x);
    b) fără a folosi o variabilă intermediară (a: = a-b; b: = a + b; a: = b-a).
  2. Scrieți un program care cere utilizatorului un număr întreg, un număr real, un caracter arbitrar și un șir, apoi imprimă totul pe o singură linie.
  3. Afișați numele de familie, prenumele și patronimul, iar două rânduri mai târziu - data nașterii.
  4. Scrieți un program pentru imprimarea uneia dintre formele cu asteriscuri:
    a) brazi de Crăciun (mai mulți brazi de Crăciun);
    b) fulgi de nea (mai multi fulgi de nea);
    c) o casă. De exemplu,

    *
    * *
    * *
    ***********
    * *
    * *
    * *
    * *
    ***********

  5. Compuneți-vă cartea de vizită.


    * Ivanov Serghei *
    * Proletarskaya 74 mp. 55 *
    * Telefon 45-72-88 *
    *******************************

  6. Compuneți un dialog între utilizator și computer pe o temă arbitrară.
    De exemplu, o mașină pune două întrebări: „Cum te cheamă?” cati ani ai?"; după introducerea numelui (Anton) și a numărului (15) se afișează pe ecran „Da... Peste 50 de ani vei împlini 65 de ani, iar numele tău nu va fi Anton, ci bunicul Anton”
  7. Solicitați utilizatorului două numere și afișați rezultatul sumei, diferenței, produsului și câtului acestor numere cu un răspuns complet.
  8. Solicitați utilizatorului două numere și afișați rezultatul unei diviziuni întregi și restul unei diviziuni întregi sub forma unui tabel. De exemplu, când introduceți numerele 5 și 3, ecranul ar trebui să afișeze următorul tabel:

    **************************
    * X * Y * div * mod *
    **************************
    * 5 * 3 * 1 * 2 *
    **************************

  9. Scrieți un program care cere numele animalului și un număr, apoi afișează o expresie precum „O veveriță va mânca 10 ciuperci” (când introduceți cuvântul „veveriță” și numărul 10).
  10. Organizați un dialog între vânzător (calculator) și cumpărător (utilizator) la achiziționarea oricărui produs după următoarea schemă: oferirea produsului la un anumit preț, solicitarea sumei produsului achiziționat, determinarea și afișarea sumei de bani pe care cumpărătorul trebuie să plătească pentru achiziție.

Citiți (procedură)

Pentru fișierele tastate, citește componenta fișierului într-o variabilă.
- Pentru fișierele text, citește una sau mai multe valori
într-una sau mai multe variabile

Anunţ

Fișiere tastate

Citirea procedurii (F, V1 [, V2, ..., Vn]);

Fișiere text

Citirea procedurii ([Var F: Text;] V1 [, V2, ..., Vn]);

Modul

Windows, Real, Protejat

Observatii

Pentru variabilele șir:

Citire citește toate caracterele până la (dar fără să includă) următorul marcator de sfârșit de linie sau până la Eof(F) va deveni Adevarat. Read nu trece la rândul următor după citire. Dacă șirul rezultat este mai lung decât lungimea maximă a variabilei șir, atunci acesta este trunchiat. După prima Citire, fiecare apeluri de Citire ulterioare va vedea marcatorul de sfârșit de linie și va returna un șir de lungime zero.

Utilizați apeluri multiple către ReadLn pentru a citi mai multe valori de șir.

Când opțiunea este activată Sintaxă extinsă, procedura Citire poate citi șiruri terminate nul la matrice de caractere bazate pe nul.

Pentru variabile precum Întreg sau Real:

Citirea va sări peste orice spații, file sau marcatori de sfârșit de linie care preced o linie numerică. Dacă șirul numeric nu se potrivește cu formatul așteptat, apare o eroare I/O, în caz contrar variabilei i se atribuie valoarea rezultată. Următoarea Citire va începe cu un spațiu, tab sau marcator de sfârșit de linie care a terminat șirul numeric.

Vezi si

Exemplu

folosește Crt, Dos;

var
F: Text;
Ch: Char;

începe
(Obțineți numele fișierului din linia de comandă)
Atribuire (F, ParamStr (1));
Resetare (F);
în timp ce nu EOF (F) face
începe
Citiți (F, Ch);
Scrie (Ch); (Afișăm conținutul fișierului pe ecran)
Sfârșit;
Sfârșit.

Instrucțiunea de citire este destinată introducerii valorilor variabilelor (date inițiale) de la tastatură. În general, instrucțiunea arată astfel:

citiți (variabilă !, variabilă2, ... variabilă

Iată exemple de scriere a unei declarații citite:

Citeste o); citește (Cena, Kol);

Când instrucțiunea de citire este executată, se întâmplă următoarele:

1. Programul își întrerupe activitatea și așteaptă până când datele solicitate sunt tastate pe tastatură și tasta este apăsată .

2. După apăsarea tastei valoarea introdusă este atribuită variabilei numite în instrucțiune.

De exemplu, ca rezultat al executării instrucțiunii

Citiți (Températ);

și tastând rândul 21, valoarea Températ este 21.

O declarație de citire vă permite să obțineți valorile mai multor variabile. În acest caz, numerele introduse trebuie introduse pe o singură linie și separate prin spații. De exemplu, dacă tipul de variabile a, b și c este real, atunci ca urmare a executării citirii (a, b, c); și șirul de intrare de la tastatură:

4.5 23 0.17

variabilele vor avea următoarele valori: a = 4,5; b = 23, o; c = 0,17.

Dacă linia conține mai multe numere decât variabilele specificate în instrucțiunea de citire, atunci restul liniei va fi procesată de următoarea instrucțiune de citire. De exemplu, ca rezultat al executării instrucțiunilor:

Citiți (a, B); citiți (C);

și șirul de intrare de la tastatură

10 25 18

variabilele vor primi următoarele valori: a = 10, b = 25. Citiți instrucțiunea (C); va atribui variabilei cu valoarea 18.

Instrucțiunea readln diferă de instrucțiunea de citire prin aceea că, după selectarea următorului număr din linia introdusă de la tastatură și atribuirea acestuia ultimei variabile din lista instrucțiunii readln, restul liniei se pierde și următoarea citire sau Instrucțiunea readln va necesita o nouă intrare.

De exemplu, ca rezultat al executării instrucțiunii:

Readln (a, B); citiți (C);

și tastând șirul

10 25 18

variabilele vor primi următoarele valori: a = 10, b = 25. După aceea, programul va aștepta să fie introdus un nou număr pentru a-l atribui variabilei c.

Fiecare instrucțiune de citire sau citire ar trebui să fie precedată de o instrucțiune de scriere pentru a spune utilizatorului ce date așteaptă programul de la el. De exemplu, un fragment al programului pentru calcularea costului unei achiziții poate arăta astfel:

Writeln ("Introduceți datele originale."); scrie ("Prețul produsului:"); readln (Sepa); scrie ("Cantitatea din lot:"); readln (Kol); scrie ("Reducere:"); readln (Skidka);

Dacă tipul de date introduse de la tastatură nu se potrivește sau nu poate fi convertit în tipul de variabile ale căror nume sunt specificate în instrucțiunea read (readln), programul se blochează (instrucțiunile care urmează citirii nu sunt executate) și este afișat un mesaj pe ecran despre eroare.

Top articole similare