Príkazy na zadávanie údajov ReadLn a Read. Postupy Čítať a Čítať Čo robí readln v pascale

čítať A ReadLnčítať informácie zo štandardného vstupného zariadenia. V konzolových aplikáciách môže byť týmto zariadením napríklad klávesnica (presnejšie údaje zadávané z klávesnice), v grafických aplikáciách súbor na disku.

To znamená, že tieto postupy sú „antipódy“ - vykonávajú opačné akcie.

Postupy Read a ReadLn vykonávajú podobné akcie. Hlavný rozdiel medzi týmito dvoma je v tom, že rutina ReadLn vykonáva posun riadkov po dokončení vstupu (a v prípade súborov číta súbor riadok po riadku). A procedúra Read prečíta údaje postupne - bez nového riadku.

POZNÁMKA:

V Turbo Pascal si to nepamätám (možno som len zabudol), ale zadávanie klávesnice je možné vykonať iba pomocou procedúry ReadLn a procedúra Read z nejakého dôvodu nefunguje.

Syntax výstupu konzoly:

postupČítať(Args: Argumenty);

Syntax pre výstup do súboru:

postupČítať( var F: text; Args: Argumenty);

Argumenty ( Argumenty) môžu byť rôzne. Ak sa použije viacero premenných, sú uvedené oddelené čiarkami. Napríklad:

Var x, y: celé číslo; z:real; str:string; begin WriteLn("Zadajte tri celé čísla oddelené medzerou:"); ReadLn(x, y, z); WriteLn("Zadali ste: ", x, ", ", y, ", ", z:0:2); ReadLn(str); WriteLn(str + str); ReadLn; koniec.

Ako už bolo spomenuté, pri zadávaní z konzoly môžu byť tieto premenné odlišné typy. Ale na rozdiel od procedúr Write / WriteLn nie je dovolené používať (a to je logické))).

DÔLEŽITÉ!
Pri zadávaní údajov majte na pamäti, že ak je používateľom zadaná hodnota iného typu ako typ premennej, do ktorej sa táto hodnota zadáva, dôjde k chybe behu. Ak napríklad vo vyššie uvedenom príklade používateľ zadá skutočnú hodnotu ako prvé číslo (napríklad 3.14), program spadne, pretože premenná x má typ celé číslo.

Pri čítaní zo súboru môžete pracovať s písanými aj textovými súbormi.

Ak F(pozri syntax) je typizovaný súbor, potom premenné odovzdané ako parametre (Args) musia mať rovnaký typ, ako je špecifikovaný pre súbor F. Súbory bez typu nie sú povolené. Ak parameter F nie je špecifikované, predpokladá sa, že čítanie pochádza zo štandardného vstupu.

Ak súbor F má typ Text, potom musia byť premenné typu , alebo .

Ak počas čítania súboru nie sú k dispozícii žiadne údaje na čítanie, potom sa do premennej F vráti prázdna hodnota (0 - pre , prázdny reťazec - pre reťazce).

V prípade použitia procedúry ReadLn, teda pri čítaní údajov riadok po riadku, je koniec riadku označený určitou postupnosťou znakov (ktoré - závisí od operačný systém, pre DOS/Windows sú to dva znaky - #10 a #13).

Značka konca riadku nie je súčasťou čítaného riadku a je ignorovaná.

Ak sa počas vykonávania procedúry Read/ReadLn vyskytne chyba, vygeneruje sa chyba pri spustení. Toto správanie nie je vždy prijateľné (napríklad pri čítaní súboru). Preto je v niektorých prípadoch generovanie chýb zakázané. Môžete to urobiť pomocou .

POZNÁMKA:

V rôznych ladiacich a školiacich programoch sa procedúra ReadLn často používa na zabránenie automatickému ukončeniu konzolovej aplikácie po spustení. Ak to chcete urobiť, na konci programu jednoducho napíšte (ako v príklade vyššie):

Teda len názov procedúry bez parametrov. V tomto prípade bude program čakať na stlačenie klávesu ENTER. Preto sa program neskončí, kým nestlačíte kláves ENTER, čo vám umožní vidieť výsledok programu. Samozrejme, v operačnom systéme

Myslím, že to bude zaujímať veľa ľudí

prečítajte a prečítajte si pokyny

Inštrukcia čítania je určená na zadávanie premenných hodnôt (počiatočných údajov) z klávesnice. Vo všeobecnosti pokyn vyzerá takto:

read(Premenná1, Premenná2, ... PremennáN)

kde premenná je názov premennej, ktorej hodnotu je potrebné zadať z klávesnice počas vykonávania programu.

Tu sú príklady písania príkazu na prečítanie:

prečítaj); čítaj(Cena, Kol);

Keď sa vykoná príkaz read, stane sa toto:

1. Program pozastaví svoju prácu a čaká, kým sa na klávesnici napíšu požadované údaje a stlačí sa kláves .

2 http://tissot.ua/ kúpiť hodinky na nákup Kyjev. . Po stlačení klávesu zadaná hodnota je priradená premennej, ktorej názov je uvedený vo výpise.

Napríklad v dôsledku vykonania inštrukcie

read(Teplota);

a napísaním riadku 21 na klávesnici bude hodnota premennej Temperat číslo 21.

Jeden príkaz na prečítanie vám umožňuje získať hodnoty niekoľkých premenných. V tomto prípade musia byť zadané čísla napísané na jeden riadok a oddelené medzerami. Napríklad, ak je typ premenných a, b a c skutočný, potom v dôsledku vykonania inštrukcie read(a, b, c); a zadanie riadku z klávesnice:

4.5 23 0.17

premenné budú mať nasledujúce hodnoty:

a = 4,5; b = 23,0; c = 0,17.

Ak reťazec obsahuje viac čísel ako premenných špecifikovaných v inštrukcii na čítanie, zvyšok reťazca bude spracovaný podľa nasledujúcej inštrukcie na čítanie http://crystal.lviv.ua crystal crystal. . https://mainvisa.com.ua fotopozvanie na Ukrajinu pre zahraničných občanov. . Napríklad v dôsledku vykonania pokynov

čítaj (A, B); čítaj(C);

a vstup z klávesnice

10 25 18

premenné získajú nasledovné hodnoty: A = 10, B = 25. Inštrukcia read (C); premennej c priradí hodnotu 18.

Inštrukcia readln sa líši od inštrukcie read v tom, že po extrakcii ďalšieho čísla z reťazca zadaného na klávesnici a jeho priradení k poslednej premennej v zozname inštrukcie readin sa zvyšok reťazca stratí a ďalšia inštrukcia na čítanie alebo čítanie bude vyžadovať nový vstup.

Napríklad v dôsledku vykonania inštrukcie

readin(A, B); čítaj(C);

a písanie z klávesnice

10 25 18

premenné získajú nasledovné hodnoty: A = 10, B = 25. Potom program počká na zadanie nového čísla, aby ho priradil premennej c.

Pred každou inštrukciou čítania alebo čítania by ste mali zadať inštrukciu na zápis, aby ste používateľovi povedali, aké údaje od neho program očakáva. Napríklad fragment programu na výpočet ceny nákupu môže vyzerať takto:

writeln("Zadajte počiatočné údaje.");

Napíšte("Cena produktu:");

Readln(Cena);

write("Množstvo šarže:");

readln(col);

napíš("Zľava:");

readln(Skidka);

Ak sa typ údajov zadaných z klávesnice nezhoduje alebo ich nemožno previesť variabilný typ ktorých mená sú uvedené v inštrukcii na čítanie (čítanie), program spadne (inštrukcie nasledujúce po prečítaní sa nevykonajú) a na obrazovke sa zobrazí chybové hlásenie.

autora Alexander položil otázku v Iné jazyky a technológie

Prečo Pascal čítal a readln, ak read tiež prekladá riadok, hoci teoreticky by nemal? a dostal najlepšiu odpoveď

Odpoveď od Skipy _[guru]
readln - prevezme hodnotu zo vstupnej vyrovnávacej pamäte do parametra vymaže celú vstupnú vyrovnávaciu pamäť klávesnice
a čítať - prevezme hodnotu zo vstupného buffera do parametra a nevymaže ju do buffera, ale ponechá hodnotu!! !
posun riadku pri zadávaní automaticky - všade
readln je bezpečný vstup
čítať - nebezpečný vstup
príklad:
var
a,b: celé číslo;
začať
prečítaj); (užívateľ zadaný: 4, 5 a = 4)
(Vo vstupnej vyrovnávacej pamäti je číslo 5 !!}
čítaj(b); (tu zadal číslo: 6, ale b = 5)
(číslo 6 zostáva vo vstupnej vyrovnávacej pamäti!!}
---
readln(a);(používateľ zadaný: 4, 5; a = 4)
(vstupná vyrovnávacia pamäť je jasná!!}
readln(a);(užívateľ zadal číslo 6 a b = 6)
(vstupná vyrovnávacia pamäť je jasná!!}
readln(b);
koniec.
Naopak, nedochádza k automatickému určovaniu typu vstupnej hodnoty, všetko je určené symbolov v špecifikátore formátu.

Odpoveď od Yoali-Mali[guru]
Dá sa to vysvetliť jednoduchšie, bez väčších problémov:
Keď sa vykoná procedúra čítania, hodnota nasledujúcich údajov sa načíta z toho istého riadku a keď sa vykoná procedúra readln, hodnota ďalších údajov sa načíta z nového riadku.
Preto príkaz Readln (b1,b2,...bn); poskytuje zadávanie údajov do STĹPCA.
Po zadaní každej premennej b1, b2, ..bn kurzor preskočí na začiatok nového riadku.
Operátor Read(b1,b2,...bn); poskytuje vstup údajov do STRING


Odpoveď od BT-107 FIT[guru]
Tu sa niečo Dmitrij rozpadlo, ale nie je to pravda. A o úplne vyčistenom a nevyčistenom nárazníku a o bezpečnosti. Aj Sali odpovedal nesprávne. Neexistujú žiadne stĺpce a čiary, úplne iné pravidlá.
Po prvé, tieto rutiny nepracujú len so vstupom z konzoly, takže sú potrebné dve funkcie.
procedure Read(F, V1 [, V2,...Vn ]);
načíta všetky V1..Vn zo streamu (presne n parametrov), všetky načítané dáta budú vymazané. Všetko po týchto údajoch zostane nezmenené.
Pri čítaní riadku sa prečíta všetko až po znak nového riadku alebo koniec súboru. Nasledujúce volania na čítanie vrátia prázdny reťazec. A znak nového riadku nebude odstránený zo streamu.
Ak čítate znak, potom v závislosti od nastavení možno znak nového riadku prečítať ako znak (26)
Pri čítaní čísel sa preskakujú všetky medzery, tabulátory, zlomy riadkov. A ďalšie čítanie začne znakom nasledujúcim za prečítaným číslom. Opäť sa dajú preskočiť nepotrebné znaky.
procedure ReadLn([ var F: Text; ] V1 [, V2, ..Vn ]);
číta z prúdu V1, Vn (t.j. funguje ako čítanie) a potom preskočí všetky znaky až po nový riadok vrátane. Všetky znaky po zalomení riadku zostanú nezmenené.
Ísť do Nový riadok vykonaná, pretože v konzole stlačíte Enter.
O bezpečnosti pritiahnuté za vlasy. Sú to funkcie s rôznym účelom. Akékoľvek ich nesprávne použitie nie je bezpečné, každé správne použitie je primerane bezpečné.

Inštrukcia čítania je určená na zadávanie premenných hodnôt (počiatočných údajov) z klávesnice. Vo všeobecnosti pokyn vyzerá takto:

read (Premenná!, Premenná2, ... PremennáU kde premenná je názov premennej, ktorej hodnota sa má zadať z klávesnice počas vykonávania programu.

Tu sú príklady písania príkazu na prečítanie:

Prečítaj); čítaj(Cena, Kol);

Keď sa vykoná príkaz read, stane sa toto:

1. Program pozastaví svoju prácu a čaká, kým sa na klávesnici napíšu požadované údaje a stlačí sa kláves .

2. Po stlačení klávesu zadaná hodnota je priradená premennej, ktorej názov je uvedený vo výpise.

Napríklad v dôsledku vykonania inštrukcie

Čítať (Temperat);

a napísaním riadku 21 na klávesnici bude hodnota premennej Tempérât číslo 21.

Jeden príkaz na prečítanie vám umožňuje získať hodnoty niekoľkých premenných. V tomto prípade musia byť zadané čísla napísané na jeden riadok a oddelené medzerami. Napríklad, ak je typ premenných a, b a c reálny, potom v dôsledku vykonania inštrukcie čítajte (a, b, c); a zadanie riadku z klávesnice:

4.5 23 0.17

premenné budú mať nasledujúce hodnoty: a = 4,5; b = 23, o; c = 0,17.

Ak je v riadku napísaných viac čísel, ako je nastavených premenných v príkaze read, zvyšok riadku bude spracovaný nasledujúcim príkazom read. Napríklad v dôsledku vykonania pokynov:

Čítať (a, b); čítaj(C);

a vstup z klávesnice

10 25 18

premenné získajú nasledovné hodnoty: a = 10, b = 25. Inštrukcia čítaj (C); premennej c priradí hodnotu 18.

Inštrukcia readln sa líši od inštrukcie read v tom, že po extrakcii ďalšieho čísla z reťazca zadaného na klávesnici a jeho priradení k poslednej premennej v zozname inštrukcie readln sa zvyšok reťazca stratí a ďalšia inštrukcia read alebo readln bude vyžadovať nový vstup.

Napríklad v dôsledku vykonania príkazu:

readln(a, b); čítaj(C);

a písanie z klávesnice

10 25 18

premenné získajú nasledovné hodnoty: a = u, b = 25. Potom program počká na zadanie nového čísla, aby ho priradil premennej c.

Pred každou inštrukciou čítania alebo čítania by ste mali umiestniť inštrukciu na zápis, aby ste používateľovi povedali, aké údaje od neho program očakáva. Napríklad fragment programu na výpočet ceny nákupu môže vyzerať takto:

Writeln("Zadajte počiatočné údaje."); write("Cena produktu:"); readln(sepa); write("Množstvo šarže:"); readln(col); napíš("Zľava:"); readln(Skidka);

Ak sa typ údajov zadaných z klávesnice nezhoduje s typom premenných, ktorých názvy sú uvedené v inštrukcii read (readln), program sa zrúti (inštrukcie nasledujúce po načítaní sa nevykonajú) a na obrazovke sa zobrazí správa.

téma: Vstup výstup. Operátori Čítať (Readln), Zápis (Writeln). Najjednoduchšie lineárne programy.

Problém riešime komentovaním každého nášho konania v kučeravé zátvorky. Pripomeňme, že komentár počítač nevníma a potrebujeme ho, aby sme lepšie pochopili, ako program funguje.

Úloha . Napíšte program, ktorý vyčistí obrazovku a vypočíta súčin dvoch čísel zadaných používateľom.

ProgramProizv2;
používa
Crt; (Zahrnúť modul Crt)
Var
číslo1, (premenná, ktorá bude obsahovať prvé číslo)
číslo2, (premenná, ktorá bude obsahovať druhé číslo)
výsledok (premenná, ktorá bude obsahovať výsledok)
: celé číslo;
Začať
ClrScr; (Pomocou rutiny na vymazanie obrazovky z modulu Crt)
Napíšte("Zadajte prvé číslo");
readln(číslo1);
(Číslo zadané používateľom sa načíta do premennej číslo1)
Napíšte("Zadajte druhé číslo");
(Na obrazovke zobrazujeme znaky napísané medzi apostrofmi)
readln(číslo2);
(Číslo zadané používateľom sa načíta do premennej číslo2)
vysledok:= cislo1 * cislo2;
(Nájdeme súčin zadaných čísel a výsledok priradíme do premennej)
Napíšte ("Súčin čísel ", číslo1, " a ", číslo2, "je rovný", výsledok);
(Zobrazíme riadok obsahujúci odpoveď na problém)
Readln; (Postup oneskorenia obrazovky)
koniec.

Ak chcete lepšie pochopiť, ako program funguje, zadajte ho do počítača a otestujte ho. Odpovedz na otázku:

  • prečo sa program volá Proizv2?
  • Prečo bol modul Crt umiestnený v sekcii Použitie?
  • aký je účel premenných číslo1, číslo2, výsledok?
  • aký typ sú tieto premenné? čo to znamená?
  • Ak premenným číslo1 a číslo2 priradíme hodnoty 5 a 7, aký riadok počítač vytvorí, keď sa vykoná posledná procedúra Write? Zapíšte si to do zošita.
  • v ktorých riadkoch je používateľ požiadaný o hodnoty premenných?
  • Na ktorom riadku sú čísla vynásobené?
  • čo robí operátor priraďovania v tomto programe?

Úloha . Upravte program tak, aby používateľa vyzval na zadanie inej premennej a vypísal výsledok súčinu troch čísel.

Zápisy a zápisy

Operátory Write a WriteLn sme už použili, ale musíme spracovať pravidlá používania týchto operátorov.

Write (anglicky write) - operátor, ktorý sa používa na zobrazenie informácií na obrazovke. Operátor WriteLn vykoná rovnakú akciu, ale keďže má aj koncovku Ln (riadok - anglický riadok, riadok), po zobrazení želanej správy na obrazovke navyše presunie kurzor na ďalší riadok.

Všeobecná forma:
Napíšte (zoznam výrazov)
WriteLn (zoznam výrazov)

Procedúry Write a WriteLn slúžia nielen na zobrazenie výsledku, ale aj na zobrazenie rôznych správ či dotazov. To vám umožní viesť dialóg s používateľom, povedať mu, kedy potrebuje zadať hodnoty, kedy dostane výsledok, kedy sa pomýlil atď.

Napríklad pri vykonávaní procedúry WriteLn ('Nájdené číslo', a) sa vytlačí riadok uzavretý v apostrofoch a potom sa zobrazí hodnota premennej a.

Príkaz WriteLn možno použiť aj bez parametrov. V tomto prípade sa vytlačí riadok pozostávajúci z medzier a kurzor sa presunie na iný riadok. Niekedy to potrebujeme pre lepšie vnímanie zadávaných údajov.

Výpisy Read a ReadLn

Pripomeňme, že hlavným účelom počítačov je šetrenie ľudskej práce. Preto je potrebné poskytnúť možnosť po napísaní programu ho opakovane používať, zakaždým pri zadávaní iných údajov. Túto flexibilitu v jazyku poskytujú príkazy Read a ReadLn. Tieto operátory zadávajú informácie z klávesnice.

Všeobecná forma:
Čítať (premenná, premenná...)
ReadLn(premenná, premenná...)

Pri vykonávaní procedúry Read sa očakávajú hodnoty uvedené v zátvorkách. Vstupné údaje musia byť od seba oddelené medzerami. Priraďovanie hodnôt ide postupne.

Napríklad, ak sú zadané hodnoty 53 a X, potom pri vykonaní príkazu Read (a, b) bude premennej a priradené číslo 53 a premennej X písmeno X. upozorňujeme, že aby ste sa vyhli núdzovej situácii, musíte správne určiť typ údajov v časti Var; v našom prípade a:integer a b:char.

Pri používaní príkazov Read a ReadLn nie sú žiadne zvláštne rozdiely medzi čítaním a zápisom. Postup ReadLn bez parametrov sa často používa na konci programu na oneskorenie: kým sa nestlačí kláves výsledok vykonávania programu zostáva na obrazovke. To je veľmi užitočné pri analýze výsledkov.

Poznámka . Keď nastavujete oneskorenie obrazovky, venujte pozornosť predchádzajúcemu vstupu. Ak boli údaje vyžiadané procedúrou Read, nedôjde k oneskoreniu.

Poďme vyriešiť problém, v ktorom zvážime všetky možné použitia týchto postupov.

Úloha . Nájdite priemer troch čísel.

Poznámka . Ak chcete nájsť priemer niekoľkých čísel, musíte tieto čísla sčítať a súčet vydeliť počtom týchto čísel.

Napíšte text problému a starostlivo zvážte každý riadok. Názov programu Srednee odráža obsah úlohy. Mimochodom, dohodnime sa, že názov programu a názov súboru, ktorý obsahuje tento program, sú rovnaké. Nasleduje pripojenie modulu Crt. Časť Var popisuje First, Second, Third ako premenné celočíselného typu a Sum ako reálny typ. Sekcia operátora začína s štandardný postup vymazanie obrazovky ClrScr (Clear Screen), ktorá sa nachádza v module Crt. Ďalej pomocou príkazu Write zobrazíme na obrazovke správu „Zadajte prvé číslo“, po prijatí ktorej musí používateľ zadať číslo.

Počítač musí teraz prečítať zadané znaky a uložiť ich do premennej First, stane sa tak pri vykonaní ďalšieho príkazu ReadLn(First). Potom pomocou príkazu Write požiadame o hodnoty ďalších dvoch čísel a načítame ich do druhej a tretej premennej. Potom vypočítame ich súčet a výsledné číslo priradíme premennej Sum. Ak chcete zistiť priemer, musíte teraz vydeliť výsledné číslo 3 a uložiť výsledok do nejakej premennej.

Na uloženie výsledku nie je potrebné deklarovať ďalšiu premennú. Je možné, ako v našom programe, vydeliť hodnotu premennej Suma 3 a výsledok opäť priradiť k tej istej premennej Suma. Teraz môžete výsledok výpočtu zobraziť na obrazovke pomocou procedúry Write. A nakoniec posledná procedúra ReadLn oneskorí náš výstup na obrazovke, kým nestlačíte kláves.

Stlačte klávesy +. Zadajte hodnoty premenných 5, 7 a 12, na obrazovke uvidíte nasledovné:

Priemer 5, 7 a 12 je 8,00

Pozorne si prezrite tento riadok a porovnajte ho s výstupným riadkom výsledku v našom programe. Otestujte program ešte niekoľkokrát na iné hodnoty premenných.

Vyberte si spolu s učiteľom úlohy, ktoré chcete vyriešiť, z nasledujúceho zoznamu:

  1. Zadajte dve čísla a a b. Na výmenu ich hodnôt použite operátor priradenia:
    a) použitím prechodnej premennej (x:=a; a:=b; b:=x);
    b) bez použitia pomocnej premennej (a:=a-b; b:=a+b; a:=b-a).
  2. Napíšte program, ktorý používateľa vyzve na zadanie celého čísla, reálneho čísla, ľubovoľného znaku a reťazca a potom ich všetky vypíše na jeden riadok.
  3. Zobrazte svoje priezvisko, meno a priezvisko a o dva riadky neskôr svoj dátum narodenia.
  4. Napíšte program na tlač jedného z obrázkov s hviezdičkami:
    a) vianočné stromčeky (niekoľko vianočných stromčekov);
    b) snehové vločky (niekoľko snehových vločiek);
    c) dom, napr.

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

  5. Zostavte si vizitku.


    * Ivanov Sergej *
    * Proletársky 74 štvorcových. 55*
    * Telefón 45-72-88 *
    *******************************

  6. Vytvorte dialóg medzi používateľom a počítačom na ľubovoľnú tému.
    Zariadenie sa napríklad opýta dve otázky: „Ako sa voláš? koľko máš rokov?"; po zadaní mena (Anton) a čísla (15) sa zobrazí „Áno ... O 50 rokov už budeš mať 65 rokov a nebudeš sa volať Anton, ale starý otec Anton“
  7. Požiadajte používateľa o dve čísla a zobrazte výsledok súčtu, rozdielu, súčinu a podielu týchto čísel ako úplnú odpoveď.
  8. Požiadajte používateľa o dve čísla a zobrazte výsledok celočíselného delenia a zvyšok celočíselného delenia ako tabuľku. Napríklad pri zadávaní čísel 5 a 3 by sa na obrazovke mala zobraziť nasledujúca tabuľka:

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

  9. Napíšte program, ktorý si vyžiada meno zvieraťa a číslo a potom na obrazovke zobrazí frázu ako „Veverička zje 10 húb“ (pri zadávaní slova „veverička“ a čísla 10).
  10. Zorganizujte dialóg medzi predajcom (počítačom) a kupujúcim (používateľom) pri kúpe produktu podľa nasledujúcej schémy: ponuka produktu za určitú cenu, požiadavka na množstvo nakupovaného produktu, určenie a zobrazenie množstva peňazí, ktoré kupujúci musí za nákup zaplatiť.