• Co se čte v pascalu. Pomocí Var, Integer, Readln. Aritmetické operace s celými čísly a proměnnými celočíselného typu v Pascalu

    Předmět: Vstup výstup. Operátoři Čtení (Readln), Zápis (Writeln). Nejjednodušší lineární programy.

    Vyřešme problém tím, že každý náš čin okomentujeme ve složených závorkách. Připomeňme, že komentář počítač nevnímá a potřebujeme jej, abychom lépe porozuměli tomu, jak program funguje.

    Úkol . Napište program, který vyčistí obrazovku a vypočítá součin dvou čísel zadaných uživatelem.

    ProgramProizv2;
    používá
    Crt;(Zahrnout modul Crt)
    Var
    číslo1, (proměnná, která bude obsahovat první číslo)
    číslo2, (proměnná, která bude obsahovat druhé číslo)
    výsledek (proměnná, která bude obsahovat výsledek)
    : celé číslo;
    Začít
    ClrScr; (Používáme postup pro vymazání obrazovky z modulu Crt)
    Napište("Zadejte první číslo");
    readln(číslo1);
    (Číslo zadané uživatelem se načte do proměnné číslo1)
    Napište("Zadejte druhé číslo");
    (Na obrazovce zobrazujeme znaky napsané mezi apostrofy)
    readln(číslo2);
    (Číslo zadané uživatelem se načte do proměnné číslo2)
    vysledek:= cislo1 * cislo2;
    (Najdeme součin zadaných čísel a výsledek přiřadíme k proměnné)
    Napište ("Součin čísel ", číslo1, " a ", číslo2, "je rovno", výsledek);
    (Zobrazíme řádek obsahující odpověď na problém)
    Readln; (Procedura zpoždění obrazovky)
    konec.

    Chcete-li lépe porozumět tomu, jak program funguje, zadejte jej do počítače a vyzkoušejte. Odpověz na otázky:

    • proč se program jmenuje Proizv2?
    • Proč byl modul Crt umístěn do sekce Použití?
    • k čemu slouží proměnné číslo1, číslo2, výsledek?
    • jaký typ jsou tyto proměnné? co to znamená?
    • Pokud proměnným number1 a number2 přiřadíme hodnoty 5 a 7, jaký řádek počítač vytvoří, když se provede poslední procedura Write? Zapište si to do sešitu.
    • ve kterých řádcích je uživatel požádán o hodnoty proměnných?
    • Na kterém řádku se násobí čísla?
    • co dělá operátor přiřazení v tomto programu?

    Cvičení . Upravte program tak, aby uživatele vyzval k zadání jiné proměnné a vytiskl výsledek součinu tří čísel.

    Výpisy Write a WriteLn

    Operátory Write a WriteLn jsme již použili, ale musíme dopracovat pravidla pro používání těchto operátorů.

    Write (anglicky write) - operátor, který se používá k zobrazení informací na obrazovce. Operátor WriteLn provede stejnou akci, ale jelikož má i koncovku Ln (řádek - anglicky line, line), po zobrazení požadované zprávy na obrazovce navíc přesune kurzor na další řádek.

    Obecná forma:
    Napište (seznam výrazů)
    WriteLn (seznam výrazů)

    Procedury Write a WriteLn slouží nejen k zobrazení výsledku, ale také k zobrazení různých zpráv nebo dotazů. To vám umožní vést dialog s uživatelem, říct mu, kdy potřebuje zadat hodnoty, kdy dostane výsledek, kdy udělal chybu atd.

    Například při provádění procedury WriteLn ('Nalezené číslo', a) se vytiskne řádek uzavřený v apostrofech a poté se zobrazí hodnota proměnné a.

    Příkaz WriteLn lze použít i bez parametrů. V tomto případě se vytiskne řádek složený z mezer a kurzor se přesune na jiný řádek. Někdy to potřebujeme pro lepší vnímání zadávaných dat.

    Výpisy Read a ReadLn

    Připomeňme, že hlavním účelem počítačů je šetřit lidskou práci. Proto je nutné poskytnout možnost po napsání programu jej opakovaně používat, pokaždé zadávat jiná data. Tuto flexibilitu jazyka poskytují příkazy Read a ReadLn. Tyto operátory zadávají informace z klávesnice.

    Obecná forma:
    Číst (proměnná, proměnná...)
    ReadLn(proměnná, proměnná...)

    Při provádění procedury Read se očekávají hodnoty uvedené v závorkách. Vstupní data musí být od sebe oddělena mezerami. Přiřazování hodnot jde střídavě.

    Pokud jsou například zadány hodnoty 53 a X, pak při provedení příkazu Read (a, b) bude proměnné a přiřazeno číslo 53 a proměnné X bude přiřazeno písmeno X. upozorňujeme, že abyste se vyhnuli nouzové situaci, musíte správně určit datový typ v sekci Var; v našem případě a:integer a b:char.

    Neexistují žádné zvláštní rozdíly mezi čtením a zápisem v použití příkazů Read a ReadLn. Procedura ReadLn bez parametrů se často používá na konci programu ke zpoždění: dokud není stisknuta klávesa výsledek provádění programu zůstává na obrazovce. To je velmi užitečné pro analýzu výsledků.

    Poznámka . Při nastavování zpoždění obrazovky věnujte pozornost předchozímu vstupu. Pokud byla data požadována procedurou Read, nedojde k žádné prodlevě.

    Pojďme vyřešit problém, ve kterém zvážíme všechna možná použití těchto postupů.

    Úkol . Najděte průměr tří čísel.

    Poznámka . Chcete-li zjistit průměr několika čísel, musíte tato čísla sečíst a vydělit součet počtem těchto čísel.

    Napište text problému a pečlivě zvažte každý řádek. Název programu Srednee odráží obsah úkolu. Mimochodem, shodneme se, že název programu a název souboru, který tento program obsahuje, jsou stejné. Následuje připojení modulu Crt. Část Var popisuje First, Second, Third jako proměnné celočíselného typu a Sum jako skutečný typ. Operátorská část začíná standardním postupem pro vymazání obrazovky ClrScr (Clear Screen), která se nachází v modulu Crt. Dále pomocí příkazu Write zobrazíme na obrazovce zprávu ‚Zadejte první číslo‘, po jejím přijetí musí uživatel zadat číslo.

    Počítač nyní musí přečíst zadané znaky a uložit je do proměnné First, to se stane při provedení dalšího příkazu ReadLn(First). Poté pomocí příkazu Write požádáme o hodnoty dalších dvou čísel a načteme je do druhé a třetí proměnné. Poté spočítáme jejich součet a výsledné číslo přiřadíme do proměnné Součet. Pro zjištění průměru je nyní potřeba výsledné číslo vydělit 3 a uložit výsledek do nějaké proměnné.

    Pro uložení výsledku není nutné deklarovat další proměnnou. Je možné, jako v našem programu, vydělit hodnotu proměnné Suma 3 a výsledek opět přiřadit stejné proměnné Suma. Nyní můžete výsledek výpočtu zobrazit na obrazovce pomocí procedury Write. A konečně poslední procedura ReadLn zpozdí náš výstup na obrazovce až do stisknutí klávesy.

    Stiskněte tlačítka +. Zadejte hodnoty proměnných 5, 7 a 12, na obrazovce uvidíte následující:

    Průměr 5, 7 a 12 je 8,00

    Podívejte se pozorně na tento řádek a porovnejte s výstupním řádkem výsledku v našem programu. Otestujte program ještě několikrát na jiné hodnoty proměnných.

    Vyberte spolu s učitelem úkoly, které chcete vyřešit, z následujícího seznamu:

    1. Zadejte dvě čísla a a b. K výměně jejich hodnot použijte operátor přiřazení:
      a) použití přechodné proměnné (x:=a; a:=b; b:=x);
      b) bez použití meziproměnné (a:=a-b; b:=a+b; a:=b-a).
    2. Napište program, který uživatele vyzve k zadání celého čísla, reálného čísla, libovolného znaku a řetězce, a poté je všechny vypíše na jeden řádek.
    3. Zobrazte své příjmení, jméno a patronymii a o dva řádky později své datum narození.
    4. Napište program pro tisk jednoho z obrázků s hvězdičkami:
      a) vánoční stromky (několik vánočních stromků);
      b) sněhové vločky (několik sněhových vloček);
      c) dům, např.

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

    5. Sestavte si vizitku.


      * Ivanov Sergej *
      * Proletářský 74 čtverečních. 55*
      * Telefon 45-72-88 *
      *******************************

    6. Vytvořte dialog mezi uživatelem a počítačem na libovolné téma.
      Stroj se například zeptá na dvě otázky „Jak se jmenujete?“ Kolik je Vám let?"; po zadání jména (Anton) a čísla (15) se zobrazí „Ano ... Za 50 let vám již bude 65 let a nebudete se jmenovat Anton, ale dědeček Anton“
    7. Požádejte uživatele o dvě čísla a zobrazte výsledek součtu, rozdílu, součinu a podílu těchto čísel jako úplnou odpověď.
    8. Požádejte uživatele o dvě čísla a zobrazte výsledek celočíselného dělení a zbytek celočíselného dělení jako tabulku. Například při zadávání čísel 5 a 3 by se na obrazovce měla objevit následující tabulka:

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

    9. Napište program, který se zeptá na jméno zvířete a číslo, a poté zobrazí frázi jako „Veverka sežere 10 hub“ (při zadání slova „veverka“ a čísla 10).
    10. Zorganizujte dialog mezi prodejcem (počítačem) a kupujícím (uživatelem) při nákupu produktu podle následujícího schématu: nabídka produktu za určitou cenu, požadavek na množství zakoupeného produktu, určení a zobrazení množství peněz, které kupující musí za nákup zaplatit.

    Procedura Readln se používá pro více než pouhé zpoždění obrazovky. Jeho hlavním úkolem je zadávání dat z klávesnice. V tomto článku se naučíme zadávat čísla z klávesnice a poté je zobrazovat na obrazovce. K tomu se budeme muset seznámit s částí pro popis proměnných Var a také s jedním z datových typů používaných v Pascalu.

    Číslo programu3; usecrt; varn:integer; začít clrscr; write('Zadejte číslo z klávesnice:'); readln(n); writeln('Zadali jste číslo ',n); readln end.

    Do řádku č. 3 napíšeme služební slovo Var. Používá se k deklaraci proměnných. Proměnné jsou různé hodnoty, čísla nebo slova, která se mohou během provádění programu měnit. Když zadáváme čísla nebo písmena z klávesnice, zapisují se do proměnných. Za slovem Var mezerou uvedeme identifikátor proměnné (tedy její název, který si vymyslíme sami). Proměnné nejsou servisní slova, programátor si je nastavuje sám. V tomto případě jsme nastavili jednu proměnnou "n" a v budoucnu budeme používat pouze tuto proměnnou. Po zápisu proměnné se použije dvojtečka k označení datového typu. Existuje několik datových typů, jedním z nich je Integer (celé číslo). Říká programu, že naše proměnná "n" může být pouze celé číslo mezi -32768 a 32767. Použití různých datových typů závisí na konkrétních potřebách programátora při psaní programu. Nejdůležitější v této fázi je pochopit, že pokud budete ve svém programu používat nějaké číslo, musíte pro něj zadat proměnnou (v našem případě „n“) a datový typ (v našem případě Integer). .

    Do řádku číslo 7 zapíšeme operátor pro zadávání dat z klávesnice Readln. Tento příkaz volá vestavěnou proceduru zadávání dat a v tomto okamžiku se program zastaví a začne čekat na zadání dat. Tento operátor jsme již použili pro zpoždění obrazovky. V tomto programu je za příkazem Readln naše proměnná "n" uvedena v závorkách. Do této proměnné se zapíše číslo, které zadáme z klávesnice. Podle toho musí toto číslo odpovídat parametrům proměnné, tzn. musí být celé číslo v rozsahu -32768 až 32767. Poté, co program dosáhne 7. řádku, zobrazí zprávu "Zadejte číslo z klávesnice:" a počká. V této fázi musíme zadat nějaké číslo a stisknout Enter.

    Linka číslo 8. Zde zapíšeme výstupní příkaz na obrazovku Writeln. Vypíše hlášku "Zadali jste číslo" a vypíše i hodnotu naší proměnné "n" (tedy hodnotu, kterou zadáme z klávesnice). Všimněte si, že na řádku #8 jsme před proměnnou "n" vložili čárku a proměnná samotná není uzavřena v apostrofech.

    Nyní napíšeme program v Pascalu.

    Spusťte (Ctrl + F9). Napíšeme číslo, například 5 a stiskneme Enter.

    Instrukce čtení je určena pro zadávání proměnných hodnot (počátečních dat) z klávesnice. Obecně instrukce vypadá takto:

    read (Proměnná!, Proměnná2, ... ProměnnáU kde proměnná je název proměnné, jejíž hodnota musí být zadána z klávesnice během provádění programu.

    Zde jsou příklady psaní příkazu read:

    Číst); číst(Cena, Kol);

    Po provedení příkazu čtení se stane následující:

    1. Program pozastaví svou práci a čeká, dokud nebudou na klávesnici napsána požadovaná data a stisknuto tlačítko .

    2. Po stisknutí tlačítka zadaná hodnota je přiřazena proměnné, jejíž název je uveden ve výpisu.

    Například v důsledku provedení instrukce

    Číst (Temperat);

    a zadáním řádku 21 na klávesnici bude hodnota proměnné Tempérât číslo 21.

    Jeden příkaz čtení umožňuje získat hodnoty několika proměnných. V tomto případě je třeba zadaná čísla napsat na jeden řádek a oddělit je mezerami. Pokud je například typ proměnných a, b a c reálný, pak v důsledku provedení instrukce přečteme (a, b, c); a zadání řádku z klávesnice:

    4.5 23 0.17

    proměnné budou mít následující hodnoty: a = 4,5; b = 23, o; c = 0,17.

    Pokud je na řádku více čísel než proměnných v příkazu read, bude zbytek řádku zpracován dalším příkazem read. Například v důsledku provedení pokynů:

    Read(a, b); read(C);

    a vstup z klávesnice

    10 25 18

    proměnné získají následující hodnoty: a = 10, b = 25. Instrukce read (C); přiřadí proměnné c hodnotu 18.

    Instrukce readln se liší od instrukce read v tom, že po extrakci dalšího čísla z řetězce zadaného na klávesnici a jeho přiřazení k poslední proměnné v seznamu instrukce readln se zbytek řetězce ztratí a další instrukce read nebo readln bude vyžadovat nový vstup.

    Například v důsledku provedení příkazu:

    readln(a, b); read(C);

    a psaní z klávesnice

    10 25 18

    proměnné získají následující hodnoty: a = u, b = 25. Poté program počká na zadání nového čísla, aby jej přiřadil proměnné c.

    Před každou instrukcí čtení nebo čtení byste měli umístit instrukci zápisu, abyste uživateli řekli, jaká data od něj program očekává. Fragment programu pro výpočet nákladů na nákup může vypadat například takto:

    Writeln("Zadejte počáteční data."); write("Cena produktu:"); readln(sepa); write("Množství šarže:"); readln(col); napište("Sleva:"); readln(Skidka);

    Pokud se typ dat zadávaných z klávesnice neshoduje nebo je nelze přetypovat na typ proměnných, jejichž názvy jsou uvedeny v instrukci read (readln), program se zhroutí (instrukce následující po čtení se neprovedou) a na obrazovce se zobrazí zpráva.

    číst A ReadLnčíst informace ze standardního vstupního zařízení. V konzolových aplikacích může být tímto zařízením například klávesnice (přesněji data zadávaná z klávesnice), v grafických aplikacích soubor na disku.

    To znamená, že tyto postupy jsou "antipody" - provádějí opačné akce.

    Procedury Read a ReadLn provádějí podobné akce. Hlavní rozdíl mezi těmito dvěma je v tom, že rutina ReadLn provádí posun řádku po dokončení vstupu (a v případě souborů čte soubor řádek po řádku). A procedura Read čte data postupně - bez nového řádku.

    POZNÁMKA:

    V Turbo Pascalu si to nepamatuji (možná jsem jen zapomněl), ale vstup z klávesnice lze provádět pouze pomocí procedury ReadLn a procedura Read z nějakého důvodu nefunguje.

    Syntaxe výstupu konzole:

    postup Přečíst(Args: Argumenty);

    Syntaxe pro výstup do souboru:

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

    Argumenty ( Argumenty) se může lišit. Pokud je použito více proměnných, jsou uvedeny oddělené čárkami. Například:

    Var x, y: celé číslo; z:skutecne; str:string; begin WriteLn("Zadejte tři celá čísla oddělená mezerou:"); ReadLn(x, y, z); WriteLn("Zadali jste: ", x, ", ", y, ", ", z:0:2); ReadLn(str); WriteLn(str + str); ReadLn; konec.

    Jak již bylo zmíněno, při zadávání z konzole mohou být tyto proměnné různého typu. Ale na rozdíl od procedur Write / WriteLn není povoleno (a to je logické))).

    DŮLEŽITÉ!
    Při zadávání dat je třeba vzít v úvahu, že pokud má uživatel zadaná hodnota jiný typ než typ proměnné, do které se tato hodnota zadává, dojde k chybě za běhu. Pokud například ve výše uvedeném příkladu uživatel zadá jako první číslo skutečnou hodnotu (například 3.14), program se zhroutí, protože proměnná x má typ celé číslo.

    Při čtení ze souboru můžete pracovat jak se strojovými, tak textovými soubory.

    Li F(viz syntaxe) je typovaný soubor, pak proměnné předané jako parametry (Args) musí mít stejný typ, jaký je určen pro soubor F. Soubory bez typu nejsou povoleny. Pokud je parametr F není zadáno, předpokládá se, že čtení pochází ze standardního vstupu.

    Pokud soubor F má typ Text, pak proměnné musí být typu , nebo .

    Pokud při čtení souboru nejsou k dispozici žádná data pro čtení, pak se do proměnné F vrátí prázdná hodnota (0 - pro , prázdný řetězec - pro řetězce).

    V případě použití procedury ReadLn, tedy při čtení dat řádek po řádku, je konec řádku označen určitým sledem znaků (co přesně závisí na operačním systému, pro DOS / Windows jsou to dva znaky - # 10 a # 13).

    Značka konce řádku není součástí čteného řádku a je ignorována.

    Pokud během provádění procedury Read/ReadLn dojde k chybě, vygeneruje se chyba za běhu. Toto chování není vždy přijatelné (například při čtení souboru). Proto je v některých případech generování chyb zakázáno. Můžete to udělat pomocí .

    POZNÁMKA:

    V různých programech pro ladění a školení se procedura ReadLn často používá k zabránění automatickému ukončení konzolové aplikace po spuštění. Chcete-li to provést, na konci programu jednoduše napište (jako v příkladu výše):

    Tedy jen název procedury bez parametrů. V tomto případě bude program čekat na stisknutí klávesy ENTER. Program se tedy neskončí, dokud nestisknete klávesu ENTER, a to vám umožní vidět výsledek programu. Samozřejmě v operačním systému

    Stejně jako pro příkazy výstupu informací jsou příkazy read a reeadln operátory pro přístup k vestavěným postupy zadávání informací.

    Operátory read (read) a readln, což pochází ze dvou anglických slov read (read) a line (line), se používají v programech pro zadávání informací do paměti počítače a " čtení"hodnoty do proměnné.

    Zvažte práci těchto operátorů a postupy pro zadávání informací.

    Náš program má proceduru readln(a). Při provádění programu se počítač po zjištění příkazu readln zastaví a čeká na zadání informací. Poté, co z klávesnice zadáme hodnotu proměnné a - 16, počítač tuto hodnotu přiřadí proměnné a, tzn. odešle jej do paměťového umístění s názvem a a bude pokračovat v provádění programu. Tento proces nazýváme" čtení"hodnoty do proměnné.

    Procedury tedy čtou a čtou „čtou“ hodnoty proměnných a přiřazují je k proměnným, které jsou do nich zapsány.

    Takových proměnných může být několik, pak se zapisují těmito operátory oddělenými čárkami, například:

    read(a, b, c, n, g, j, i), readln(e, f, k, p, d) atd.

    Jaký je rozdíl mezi read a readln procedurami?

    Procedura čtení bude vyžadovat vstup nebo výstup informací na jednom řádku za sebou a procedura readln vám umožňuje zadávat a vydávat informace za sebou od začátku nového řádku.

    Například:

    V programu: write("Zadejte hodnoty a a b"); read(a,b);

    write("Zadávání informací do jednoho řádku");

    Po provedení této části programu se na obrazovce zobrazí vše napsané v prvním příkazu zápisu, poté bude kurzor na stejném řádku a počítač bude čekat na hodnoty aab. vstoupil. Zadejte jejich hodnoty - 2 a 3, oddělte je mezerou nebo jinými slovy mezerou. Poté budou informace zapsané v dalším příkazu write vypsány na stejném řádku.

    Na obrazovce:

    Zadejte hodnoty pro a a b 2 3 Zadejte informace na jeden řádek

    V programu:

    writeln("Zadejte a, b a c); readln(a, b, c);

    writeln("Vstupní a výstupní informace od začátku řádku");

    Na obrazovce:

    Zadejte hodnoty a, b a c

    Zadávání a výstup informací od začátku řádku

    Aritmetické operace s celými čísly. Proměnné typu Integer. Skutečný typ

    V Pascalu se používají celá čísla, která zahrnují všechna přirozená čísla vytvořená v procesu počítání objektů: 1, 2, 3, 4, 5, 6, ...; záporná čísla: ..., -6, -5, -4, -3, -2, -1 a číslo nula: 0. Celá čísla tvoří následující řadu:

    6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, ...

    V Pascalu se celá čísla pohybují od -32768 do 32767.

    Proměnné, které nabývají celočíselných hodnot, se zapisují do sekce popisu s uvedením typu integer (integer).

    Například: var a, b, c, a1, b34, nomb: integer;

    Hodnoty jiného typu než tyto proměnné ve stejném programu nelze přiřadit.

    Aritmetické operace s celými čísly a proměnnými celočíselného typu v Pascalu

    Znak "_" znamená mezeru. Mezery mezi názvy proměnných a názvem operace (div) jsou povinné. (Pochází z anglického division - division).

    Zbytek dělení a b. a_mod_b