Az eredmények megjelenítésére operátort használnak. TurboPascal

Ha emlékszel, amikor a hozzárendelési operátor példáját vizsgáltuk, szembesültünk azzal, hogy meg kell találnunk a program végrehajtásának eredményét. Kitaláltuk, hogyan tároljuk az információkat (változókban), hogyan dolgozzuk fel (kifejezések segítségével), de a legalapvetőbb információs folyamatok közül kettő kimaradt a figyelmünkből: az információ fogadása és továbbítása a számítógépen kívüli világba. Programjaink eddig csak olyan információkat használhatnak fel, amelyek közvetlenül a program szövegében vannak. Tudja meg, milyen értékeket Ebben a pillanatban szintén nem volt lehetséges. A programozás ilyen körülmények között értelmetlen.

Az információ feldolgozására és tárolására szolgáló eszközök interakciója a külső környezettel (legalábbis a felhasználóval) feltétlenül szükséges. Egy ilyen Pascal nyelvű interfészért az információbeviteli-kimeneti operátorok felelősek. Ezek az utasítások lehetővé teszik argumentumok, számítási paraméterek megadását a program végrehajtása során (és nem az írási szakaszban), a számított adatok egy személy számára érthető formában történő megjelenítését.

Első bemeneti utasítások (kimutatásformátumok):

Olvas(<Список ввода>);

Readln(<Список ввода>);

Ebben a formátumban ezek a parancsok lehetővé teszik az adatok bevitelét változókba a program billentyűzetről történő végrehajtása során. A beviteli lista elemei lehetnek változónevek, amelyeket a billentyűzetről beírt értékekkel kell kitölteni.

A bemeneti utasítások végrehajtása a következőképpen történik: a program felfüggesztésre kerül, a kurzor megjelenik a képernyőn, a számítógép a felhasználótól a bemeneti listában megadott változók adatait várja el. A felhasználó a billentyűzetről beírja a szükséges értékeket a beviteli lista által megkívánt sorrendben, majd megnyomja az Enter billentyűt. Ezt követően a beírt adatok a nekik megfelelő változókba kerülnek és a program végrehajtása folytatódik.

Megjegyzés: a bemeneti adatok szóközzel vannak elválasztva.

A Read és a Readln (Read sorból) eljárások működése közötti különbség a következő: a Read végrehajtása után a következő adat értéke ugyanabból a sorból, a Readln végrehajtása után pedig egy új sorból kerül kiolvasásra.

Az információk Pascalban való megjelenítéséhez két parancs is rendelkezésre áll:

Ír(<Список вывода>);

Writeln(<Список вывода>);

A Write és Writeln használatának ez a formátuma lehetővé teszi a kimeneti lista adatainak megjelenítését a monitor képernyőjén. A kimeneti lista elemei lehetnek változónevek, kifejezések, konstansok. A kifejezések értékeinek megjelenítése előtt a számítógép először kiszámítja. A lista elemei, valamint a bemeneti utasításokban vesszővel vannak elválasztva.

A két kimeneti utasítás közötti különbség a következő: a Writeln utasítás végrehajtása után (a Write sorból) a következőre ugrik új sor, és a Write utasítás végrehajtása után az új sorra való áttérés nem történik meg, és a következő Write vagy Writeln kimeneti parancsok nyomtatása ugyanabban a sorban történik meg. Ha paraméterek nélkül hívja meg a Writeln utasítást, az egyszerűen egy új sorra ugrik.

Íme egy példa a bemeneti és kimeneti operátorok használatára:

Program interfész;

Write("Adja meg a kör sugarát"); (Képernyőre történő nyomtatás, bevitelt kérve)

readln(R); (Érték bevitele az R változóba a billentyűzetről)

S:=4*ARCTAN(1)*SQR(R); (Számítsa ki a kör területét (pR2))

Writeln("Egy ",R," sugarú kör területe egyenlő ",S"-vel

Ez a program bekéri a felhasználót a kör sugarának megadására, lehetőséget ad annak értékének megadására, kiszámítja és megjeleníti egy ilyen sugarú kör területét. Így lehetővé válik a program szövegének módosítása nélkül a sugár különböző értékeinek megadása és a kör területének megfelelő értékeinek megszerzése. Ehhez elegendő a programot többször futtatni. Ez a program bemutatja a következő szabályt is: az eredmények kimenetét kommentálni kell, hogy a nyomtatott számok jelentése egyértelmű legyen. Valójában a Writeln(S)-re korlátozódhatnánk, de a program által kiadott szám jelentése ebben az esetben csak annak lenne világos, aki ezt a programot írta.

BEMENETI ÉS KIMENETI KEZELŐK

Tekintsük a termináleszközről érkező adatbevitel és -kimenet megszervezését. A termináleszköz olyan eszköz, amellyel a felhasználó dolgozik, általában egy képernyő (kijelző) és egy billentyűzet. Az adatbevitelhez és -kimenethez a szabványos olvasási és írási bemeneti és kimeneti eljárásokat használják, amelyek szabványos szekvenciális INPUT és OUTPUT fájlokkal működnek.

Ezek a fájlok változó hosszúságú sorokra vannak bontva, amelyeket sorlezáró választ el egymástól. A sor vége az ENTER billentyű lenyomásával állítható be.

A kezdeti adatok beviteléhez a beviteli eljárások operátorait használják:

Olvass(A1,A2,...AK);

ReadLn(A1,A2,...AK);

Az első a kiindulási adatok K értékeinek kiolvasását valósítja meg, és ezeket az értékeket az A1, A2, ..., AK változókhoz rendeli. A második operátor a kiindulási adatok K értékeinek kiolvasását hajtja végre, a fennmaradó értékeket kihagyja a következő sor elejéig, és az olvasott értékeket hozzárendeli az A1, A2, ..., AK változókhoz. A harmadik operátor a bemeneti adatsor átugrását valósítja meg.

A kiindulási adatok bevitelekor egy transzformációt külső forma reprezentációkat a változók típusa által meghatározott belsővé. A beviteli listát alkotó változók lehetnek egész, valós vagy karakteres típusúak. Logikai típusú nyers adatok olvasása PASCAL-ban nem megengedett.

A bemeneti utasítások az egész és valós típusú változók értékeinek olvasásakor kihagyják a szám előtti szóközöket. Ugyanakkor ezek az operátorok nem hagyják ki a karakterváltozók értékeit megelőző szóközöket, mivel a szóközök a karakterláncokban egyenlő karakterek. Példa a bemeneti utasítások írására:

var rV, rS: Valódi;

iW, iJ: egész szám;

................

Read(rV, rS, iW, iJ);

A kiindulási adatok értékeit szóközzel, valamint a tabulátor és az Enter billentyű lenyomásával lehet elválasztani egymástól.

A program eredményeinek képernyőn történő megjelenítéséhez a következő állításokat kell használni:

Write(A1,A2,...AK);

WriteLn(A1,A2,...AK);

Ezen operátorok közül az első az A1, A2,...,AK változók értékeinek kimenetét valósítja meg a képernyő sorára. A második operátor végrehajtja az A1, A2, ..., AK változók értékeinek kimenetét és az átmenetet a következő sor elejére. A harmadik operátor sorkihagyást és átmenetet valósít meg a következő sor elejére.

A kimeneti listát alkotó változók lehetnek egész, valós, karakteres vagy logikai típusúak. A kimeneti lista elemeként a változónevek mellett kifejezések és karakterláncok is használhatók.

Az egyes értékek kiadása a képernyő egy sorában a kimeneti mező szélessége szerint történik, amelyet a nyelv konkrét megvalósítása határoz meg.

Az értékek megjelenítési formája a kimeneti mezőben megfelel a változók és kifejezések típusának: az egész típusú értékek egész decimális számként, a valós típus - valós decimális számokként decimális sorrendben, karaktertípus és karakterlánc -ként kerülnek kiadásra. szimbólumok, logikai típusú - logikai állandóként IGAZ és HAMIS.

A kimeneti utasítás lehetővé teszi a kimeneti mező szélességének beállítását a kimeneti lista minden eleméhez. Ebben az esetben a kimeneti listaelem A:K alakú, ahol A egy kifejezés vagy egy karakterlánc, K pedig egy egész típusú kifejezés vagy konstans. Ha a kimeneti érték kevesebb helyet foglal el a kimeneti mezőben, mint K, akkor szóközök kerülnek az érték elé. Ha a megjelenített érték nem fér bele a K mező szélességébe, akkor ehhez az értékhez a szükséges számú pozíció kerül kiosztásra. Valós típusú értékek esetén a kimeneti listaelem A:K:M alakú lehet, ahol A egy valós típusú változó vagy kifejezés, K a kimeneti mező szélessége, M pedig a szám a kimeneti érték tört részének számjegyei. K és M egész típusú kifejezések vagy állandók. Ebben az esetben a tényleges értékek fixpontos tizedes számként kerülnek kiadásra. Példa kimeneti utasítások írására:

. . . . . . . . . . . .

var rA, rB: Valódi; iP,iQ:Integer;

bR, bS: Boolean; chT, chV, chU, chW: Char;

. . . . . . . . . . . .

WriteLn(rA, rB:10:2);

WriteLn(iP, iQ:8);

WriteLn(bR, bS:8);

WriteLn(chT, chV, chU, chW);

Címkék. Feltétel nélküli ugrás operátor.

Az utcán minden háznak megvan a saját száma, minden embernek saját neve van, még a számítógépes memóriacelláknak is megvan a saját címe. Mindezt azért fogadjuk el, hogy egyértelműen jelezni lehessen a definiált objektumot. Hasonlóképpen, a címkéket a programok utasításaira használjuk.

A Pascal nyelvi szabványban a címke egy nem negatív egész szám. A programban használt összes címkét fel kell sorolni a címkeleírás részben, amely a Címke kulcsszóval kezdődik, például:

Egy címkével csak egy operátor címkézhető fel. A címkét kettőspont választja el a címkézett állítástól.

6: WriteIn(14/2);

Az összes fenti programban az utasítások egymás után, a szövegben való beírásuk sorrendjében futottak le. Az ilyen algoritmikus struktúrát közvetlen követésnek nevezzük. A Pascal nyelvben azonban kezdetben létezik egy operátor, amely megsérti a program egyszerű végrehajtását, és átadja a vezérlést a program egy tetszőleges pontjára. Az ilyen utasítást feltétel nélküli ágnak nevezik, és a következő formátumú:

menj<метка>;

Ezzel a címkével kell megjelölni azt a kijelentést, amelyre az átmenet megtörténik.

A feltétel nélküli elágazás operátort rendkívül óvatosan használja, hogy elkerülje a hibás eredményeket vagy a program teljes "hurkolását". Általánosságban elmondható, hogy ennek a parancsnak a használata a programozók körében rossz formának minősül. Mint látni fogja, mindig megvan a lehetőség nélküle.

A SZERKEZETI PROGRAMOZÁS ELEMEI

A strukturált program (vagy szubrutin) olyan program, amely alapvető konstrukciók rögzített halmazából áll. Tekintsük ezeknek a konstrukcióknak az algoritmussémákban történő kialakításának főbb definícióit és módjait.

A műveletek, elágazások és összevonások alkotják az alapstruktúrákat: követés, elágazás, ciklus. Csak ezt a három konstrukciót használva lehetséges egy algoritmus megvalósítása bármilyen probléma megoldására.

A konstrukciót, amely két vagy több művelet egymás utáni végrehajtását jelenti, a következőnek nevezzük.

Az elágazásból, két műveletből és egyesítésből álló konstrukciót elágazásnak nevezzük. Lehet, hogy az egyik művelet hiányzik.

Ciklusnak nevezzük azt a struktúrát, amelynek vezérlővonalai vannak előző műveletekhez vagy elágazáshoz.

A követési, elágazási és hurokkonstrukciók műveleteknek tekinthetők, mivel egyetlen bemenettel és egyetlen kimenettel rendelkeznek. Egy tetszőleges műveletsorozat egyetlen műveletként ábrázolható.

Egy művelet végrehajtható bármilyen PASCAL utasítással (egyszerű vagy összetett) vagy utasítások csoportjával, a GOTO átmeneti utasítás kivételével.

A PASCAL nyelvben az alapstruktúrák száma hatra nőtt, ezek a következők:

Kövesse;

elágazó;

Hurok előfeltétellel;

Hurok utófeltétellel;

Hurok paraméterrel;

Feltételes operátor

Az egyik fő algoritmikus struktúra az elágazás (alternatív).

Ha a feltétel teljesül, akkor az "1" utasítás, ha nem, akkor a "2" utasítás kerül végrehajtásra. Annak ellenére, hogy két művelet van a sémában, csak egy kerül végrehajtásra, mert a feltétel hamis vagy igaz. Nincs harmadik. Egy ilyen rendszer lehetővé teszi olyan problémák megoldását, amelyekben a körülményektől függően egy vagy másik intézkedésre van szükség. Kétségtelen, hogy az ilyen jellegű problémák száma óriási. Ráadásul nagyon nehéz olyan igazán értelmes feladatot kitalálni, amelynek végrehajtási algoritmusa a parancsok egyszerű közvetlen követését tartalmazná. Még egy matematika kurzusból vett primitív példa sem oldható meg elágazás nélkül, mint látni fogja. Tehát ki kell számítani az y=1/x kifejezés értékét. Tudod mit adott funkciót nem mindig számít, azaz nem minden argumentumértéknek van eredményértéke. Az a feladatunk, hogy az algoritmust úgy állítsuk össze, hogy az előadó semmi esetre se akadjon el, még akkor sem, ha nullát kap argumentumként. Nem nehéz ezt természetes nyelven megfogalmazni:

1. Szerezzen x értéket.

2. Ha x=0, akkor jelentse, hogy a kifejezésnek nincs értéke, ellenkező esetben számítsa ki y-t 1/x-ként.

Így a fenti algoritmikus struktúrát használjuk. Ki lehet fejezni egyszerű szavakkal:

Ha<усл.>(Ha a feltétel teljesül)

Hogy<действие 1>(majd hajtsa végre az 1. műveletet)

másképp<действие 2>(Egyébként - hajtsa végre a 2. műveletet)

Hogyan kell Pascalban írni? Igen, pontosan ugyanaz, csak angolul.

Feltételes operátorformátum Pascalban:

Ha<условие>

Akkor<оператор 1>

Más<оператор 2>;

Vegye figyelembe, hogy az Akkor és az Else részben csak egy állítás található. De mit kell tenni egy olyan probléma megoldására, amelyben egy feltétel teljesülésekor vagy nem teljesülésekor nem egy, hanem több cselekvést kell végrehajtani? Itt a már ismert összetett kezelő segít. A kezelői zárójelek tetszőleges számú operátort tartalmazhatnak.

A feltételes operátor változata ebben az esetben:

Ha<условие>

Akkor Kezdje<группа операторов 1>vége

Else Begin< группа операторов 2>vége;

A "pontosvessző" jel nem kerül az Else szolgáltatásszó elé, de a csoportokban lévő operátorokat ez a jel természetesen elválasztja egymástól.

Most beszéljünk a feltételekről. A Pascal programokban a feltételek olyan kifejezések, amelyek értéke logikai érték. Ez lehet egy meghatározott típusú egyszerű változó, vagy logikai műveletekkel összekapcsolt utasítások összetett sorozata.

Egyszerű feltételek mellett az összehasonlító műveletek jelei használhatók: > (nagyobb, mint),<(меньше), =(равно), <>(nem egyenlő), >= (nagyobb vagy egyenlő),<=(меньше или равно).

Példák egyszerű feltételekre: A=5 (Az A változó értéke 5)

(C+D3)>=(D1*(45-2)) (A bal oldali kifejezés értéke nagyobb vagy egyenlő, mint a jobb oldali kifejezés értéke)

S<>"ABC" (Az S változó értéke nem egyenlő az "ABC" karakterlánc-állandóval)

Nézzünk egy példát egy másik probléma megoldására: "Két szám közül válassza ki a legnagyobbat."

A megoldás első pillantásra kézenfekvő, de nem olyan triviális, mint amilyennek látszik.

Program példa;

VarA,B,C: Valós; (A,B - argumentumok tárolása, C - eredmény)

Writeln("Írjon be két számot");

ReadIn(A,B); (Írja be az argumentumokat a billentyűzetről)

Ha A>B Akkor C:=A Különben C:=B; (Ha A>B, akkor az eredmény A, ellenkező esetben az eredmény B)

writeln(C); (Az eredményt tedd a képernyőre)

Egy másik klasszikus példa: "Másodfokú egyenlet megoldása a megadott együtthatók segítségével." Ez a feladat nehezebb, ezért a program megírása előtt folyamatábra formájában felírva algoritmust állítunk össze, először beírjuk az együtthatókat, majd kiszámítjuk a diszkriminánst. Most két lehetőség merül fel: vagy a valódi gyök hiánya negatív diszkrimináns esetén, vagy ezek a gyökök továbbra is kiszámíthatók és megjeleníthetők nemnegatív diszkrimináns esetén (az az eset, amikor a diszkrimináns nullával egyenlő , két gyök van, csak ugyanazok J).

Az algoritmus programozási nyelven történő írásakor figyelembe kell venni, hogy a "nem" ágban nem egy művelet van, hanem három, ezért összetett operátort kell használni. Ne felejtse el az aritmetikai kifejezéseket a Pascal nyelv szabályainak megfelelően írni. Egyébként ez a program nem bonyolultabb, mint az előző.

Var A, B, C, D, X1, X2: Valós;

Writeln("Adja meg a másodfokú egyenlet együtthatóit");

Ha D<0 Then Writeln ("Корней нет! ")

X1:=(-B+SQRT(D))/2/A;

X2:=(-B-SQRT(D))/2/A;

Érdekes módon egy feltételes operátor működhet olyan operátorként, amely akkor hajtódik végre, ha egy feltétel teljesül, vagy nem. Ebben az esetben a feltételes utasítások egymásba ágyazásáról beszélünk. Az ilyen problémák megoldása során erősen ajánlom, hogy készítse el az algoritmus folyamatábráját egy notebookban. Csak ezután, egy program összeállításakor először gondosan le kell írni a teljes Akkor-részt, majd továbblépni az Else-részre. Általában, amikor feltételes utasításokat írunk Pascal nyelven (különösen több elágazás esetén), a parancsokat jobbra és lefelé egy párkánylal írjuk. Ez növeli a láthatóságot, és hidd el, csökkenti a hibakeresési időt.

Szemléltetésképpen oldjunk meg egy másik feladatot: „oldjunk meg egy A*x^2 + B*x + C = 0 alakú egyenletet”. Kérem, ne keverje össze a másodfokú egyenlettel, amelyre tudtuk, hogy az A együttható nem egyenlő nullával. Itt az együtthatók tetszőleges számok lehetnek. Az elemi matematikai érvelés alapján a következő algoritmust kapjuk:

Var A, B, C, D, X, X1, X2: Valós;

Writeln("Adja meg az (A, B, C) egyenlet együtthatóit");

Ha C=0 akkor Writeln("X tetszőleges szám")

Else Writeln ("Nincs gyökerek!")

Else Begin X:=-C/B; Writeln("X=",X:8:3) End

Ha D<0 Then Writeln ("Корней нет! ")

X1:=(-B+SQRT(D))/2/A;

X2:=(-B-SQRT(D))/2/A;

WriteIn("X1=", X1:8:3, "X2=",X2:8:3)

Ciklus. A ciklusok típusai.

A ciklus ugyanazon típusú cselekvés ismételt megismétlése. A ciklus testét pontosan azoknak a műveleteknek nevezzük, amelyeket sokszor meg kell ismételni.

Amint érti, ugyanazokat a műveleteket megismételheti a feltétel nélküli ugrás operátorral. Ha ezeket a műveleteket egymás után írjuk be a programba, és a végén egy jump utasítást teszünk a blokk elejére. Viszont így csak olyan programot kaphatunk, ami örökké fut (hurkok). Ez elkerülhető, ha egy feltételes utasítást használunk az átmeneti utasítással együtt, és az átmenet végrehajtását egy bizonyos feltétel teljesülésétől tesszük függővé. Így megkapjuk a feltételes átmenet szerkezetét és a végső ciklus megszervezésének lehetőségét. Általánosságban elmondható, hogy így szinte minden olyan problémát meg tudunk oldani, amely ciklikus algoritmus megvalósítását igényli. Természetesen egyetlen fejszével is lehet házat építeni. Tegyük fel magunk elé a kérdéseket: "Szép lesz ez a ház? Mennyi időt és energiát spórolhatunk meg mindenféle speciális eszközzel?". Miért? - A kényelem, a rövidség, a program könnyebb olvashatósága és – nem félek ettől a szótól – a szépség kedvéért. Tehát háromféle ciklus létezik, amelyek saját Pascal operátorral rendelkeznek az írásukhoz. Ezeknek a típusoknak saját feltételes neveik vannak: "Míg", "Előtte", "Paraméterrel". Ezek némileg eltérnek egymástól, és mindegyiket a saját feladatosztályukhoz használják.

Ciklus "Viszlát"

A séma szerint "huroktestnek" nevezett utasítások egy csoportja végrehajtásra kerül, miközben a ciklusfeltétel igaz. A hurok akkor lép ki, ha a feltétel már nem igaz.

Ha a feltétel kezdetben hamis, akkor a ciklus törzse soha nem kerül végrehajtásra. Ha a feltétel kezdetben igaz, és a ciklustörzsben nincsenek olyan műveletek, amelyek befolyásolnák ennek a feltételnek az igazságát, akkor a ciklustest végtelen számú alkalommal kerül végrehajtásra. Ezt a helyzetet "hurokolásnak" nevezik. A hurkolt program megszakítható vagy operátorral (Ctrl + C lenyomásával), vagy magának a programnak a vészleállításával, változó túlcsordulás, nullával való osztás stb. esetén.

Pascalban a while ciklus szerkezete a következőképpen van írva:

Míg<условие>Tedd<оператор>;

Tényleg tömör? Oroszul ez így olvasható: "Amíg a feltétel igaz, hajtsa végre az utasítást." Itt, csakúgy, mint a feltételes utasításformátumban, csak egy utasítást kell végrehajtani. Ha egynél több műveletet kell végrehajtani, akkor összetett utasítás használható. Ezután az operátor formátuma a következő formában jelenik meg:

Míg<условие>Tedd

<оператор #1>;

<оператор #2>;

<оператор #3>;

Ciklus "TO"

Ez a huroktípus elsősorban abban különbözik az előzőtől, hogy a ciklustörzs ismétlődési feltételének tesztje nem előtte, hanem utána történik. Ezért a "Before" ciklust "utófeltétel" ciklusnak, a "While" ciklust pedig "előfeltétel" ciklusnak nevezik.

Azt is vegye figyelembe, hogy egy új iteráció (a ciklustörzs újrafuttatása) nem akkor történik meg, ha a feltétel igaz, hanem éppen ha hamis. Ezért a ciklus megkapta a nevét (végrehajtja a ciklus törzsét, amíg a megfelelő feltétel nem teljesül).

10. Bemeneti és kimeneti operátorok

Fontolja meg a terminálról érkező adatok be- és kimenetének szervezését

rajzó. A termináleszköz az az eszköz, amellyel a

felhasználó, általában egy képernyő (kijelző) és egy billentyűzet.

Az adatbevitelhez és -kimenethez szabványos beviteli eljárásokat használnak.

és szabványos szekvenciális fájlokon működő Read and Write kimenet

Bemenet és kimenet.

Ezek a fájlok változó hosszúságú sorokra vannak osztva

egymástól a sor végének jelével A sor végét a gomb megnyomásával állíthatjuk be

A kezdeti adatok beviteléhez a beviteli eljárások operátorait használják:

Olvass(A1,A2,...AK);

ReadLn(A1,A2,...AK);

Az első a kiindulási adatok K értékének kiolvasását és hozzárendelését valósítja meg.

ezeket az értékeket az A1, A2,...,AK változókra skálázva. Második operátor

végrehajtja a kezdeti adatok K értékeinek kiolvasását, a fennmaradó értékek kihagyásával

a következő sor elejéig, hozzárendelve az olvasott értékeket a

változó A1, A2, ..., AK. A harmadik operátor sorkihagyást valósít meg a segítségével

beviteli adat.

A kiindulási adatok bevitelekor transzformáció egy külsőről

A reprezentáció belsővé alakul, amelyet a változók típusa határoz meg. pe-

a beviteli listát alkotó változók egész számhoz tartozhatnak,

akár a valódi, akár a karaktertípusokat. Olvasó forrás

A logikai adatok nem engedélyezettek a PASCAL-ban.

Operátorok bevitele egész és változó értékek olvasásakor

A valós típus kihagyja a szám előtti szóközöket.

ugyanakkor ezek az operátorok nem hagyják ki az érték előtti szóközöket

karakteres változókat, mivel a szóközök egyenlőek

karakterlánc karakterek. Példa a bemeneti utasítások írására:

var rV, rS: Valódi;

iW, iJ: egész szám;

................

Read(rV, rS, iW, iJ);

A bemeneti adatok értékeit szóközzel lehet elválasztani egymástól

és nyomja meg a Tabulátor és Enter billentyűket.

A program eredményének képernyőn történő megjelenítéséhez használja a

operátorok:

Write(A1,A2,...AK);

WriteLn(A1,A2,...AK);

Az első operátor az A1 változók értékeinek kimenetét valósítja meg,

A2,...,AK a képernyő sorban A második utasítás valósítja meg a kimenetet

az A1,A2,...,AK változók értékeit és átmenet a következő elejére

vonalak. A harmadik operátor egy sorátugrást és az elejére ugrást valósít meg

következő sor.

A kimeneti listát alkotó változók egész számra vonatkozhatnak,

valós, karakteres vagy logikai típusú. Mint elem

a kimeneti listában a változónevek mellett kifejezések is használhatók

és vonalak.

Az egyes értékek kimenete a képernyő egy sorában a következővel összhangban történik

megvalósítás-specifikus kimeneti mezőszélességgel

Az értékek megjelenítési formája a kimeneti mezőben megfelel a típusnak

övek és kifejezések: az egész típusú értékek egész tizedként jelennek meg

valós számok, valós típus - mint a valós tizedesjegyek

számok tizedesrenddel, karaktertípussal és karakterlánccal - karakter formájában

ökrök, logikai típus - IGAZ és HAMIS logikai állandók formájában.

A kimeneti operátor lehetővé teszi, hogy mindegyikhez beállítsa a kimeneti mező szélességét

kimeneti listaelem.. Ebben az esetben

a kimeneti lista elem A:K alakú, ahol

Az A egy kifejezés vagy egy karakterlánc, a K pedig egy egész típusú kifejezés vagy konstans.

Ha a kimeneti érték kevesebb helyet foglal el a kimeneti mezőben, mint K,

akkor ezen érték előtt szóközök vannak.Ha a kimeneti érték az

nem fér bele a K mező szélességébe, akkor erre az értékre az lesz a válasz

szükséges számú pozíciót. Valódi típusú értékekhez

egy kimeneti listaelem A: K: M alakú lehet, ahol A egy változó vagy kifejezés

valós típus, K - kimeneti mező szélessége, M - számjegyek száma

a megjelenített érték tört része K és M - kifejezések vagy állandók

integer típusú. Ebben az esetben a tényleges értékek a formában jelennek meg

tizedes szám fixponttal.

Példa kimeneti utasítások írására:

. . . . . . . . . . . .

var rA, rB: Real;iP,iQ:Integer;

bR, bS: Boolean;chT, chV, chU, chW: Char;

. . . . . . . . . . . .

WriteLn(rA, rB:10:2);

WriteLn(iP, iQ:8);

WriteLn(bR, bS:8);

A magas szintű programozási nyelvek operátorainak további vizsgálata a Pascal nyelv példáján keresztül történik. Ez a választás a nyelv egyszerűségének és a szigorú szintaxisnak köszönhető.

Hozzárendelési operátorok

Pascalban a hozzárendelés operátorát két ":="" karakter jelöli, amelyek között nincs szóköz. Ennek az utasításnak a bal oldala tartalmazzon egy változót, a jobb oldala pedig egy olyan kifejezést, amelynek értéke a változóhoz lesz rendelve.

A Pascalban nagyon gyakran láthatjuk a p:=p+1 alak felépítését. Ez a bejegyzés nem tartalmaz hibát. A számítógépen belül ez az utasítás a következőképpen hajtódik végre: először a változó kezdeti értékét veszik fel, amelyhez hozzáadunk egyet. Ezen műveletek után a számítások eredménye a p változóba kerül. Így a változó növekmény Pascalban van megvalósítva.

Nagyon fontos annak biztosítása, hogy a hozzárendelési utasítás jobb oldalán szereplő összes változó a végrehajtás időpontjára definiálva legyen. A hozzárendelési operátorok változókból, konstansokból, operátorjelekből, zárójelekből és függvényhívásokból álló aritmetikai kifejezéseket használnak jobb oldalon a numerikus változók kiszámításához. Általános esetben a kifejezések összeállításának szabályai hasonlóak a matematikai jelöléshez. Az egész adatokra alkalmazható bináris műveleteket az 1. táblázat mutatja be.

A hozzárendelési művelet végrehajtásának egy példájaként tekintsük meg a háromszög hipotenuszának két ismert lábból történő kiszámításának problémáját. A Pitagorasz-tétel szerint a hipotenusz kiszámítása a következő képlettel történik:

1. táblázat – Bináris aritmetikai műveletek egész számtípuson

A program forráskódja:

Program Op_prisv;

c:=sqrt(a*a+b*b);

Ez a program csak hozzárendelési operátorokat használ. Ebben az esetben két esetben a kezdeti értéket egyszerűen hozzárendeljük a változókhoz - ezek a háromszög lábai. A harmadik esetben pedig egy kifejezést számítanak ki, amely meghatározza a lábak négyzeteinek összegének gyökerét.

Ennek a kódnak a végrehajtása eredményeként a program kiszámítja egy a, b oldalú háromszög befogójának értékét, és ezt az értéket a c változóban tárolja.

I/O nyilatkozatok

A bemenetre és a kimenetre van szükség ahhoz, hogy a program kommunikáljon a külvilággal - így lehetőség nyílik bemeneti adatok fogadására a felhasználótól és az eredmények képernyőn történő megjelenítéséhez. Nyilvánvaló, hogy a kimenet nélküli programnak semmi értelme. Az előző példában egy derékszögű háromszög befogójának számítását vettük figyelembe, azonban a kimeneti operátor használata nélkül lehetetlen a program végrehajtása során kapott eredmény kiderítése.

A Pascalban az I/O utasításokat helyesebben eljárásoknak nevezzük. A program és a külső eszközök közötti adatcserére szolgálnak. Így például bevihet adatokat a billentyűzetről, fájlból, adatokat küldhet ki a képernyőre vagy fájlba.

A Pascalban két operátor van a billentyűzet bevitelére: Read és Readln. Képernyőkimenethez - Write and Writeln. Az "ln" kiegészítés az angol "line" szóból származik - vonal, sor. Az „ln”-re végződő operátorok műveleteik eredményeként a kurzort egy új sorba helyezik. Így például a Write utasítás működése közben a kurzor az utolsó kinyomtatott karakter után következő pozícióban marad. A Read utasítás esetén pedig ugyanabból a sorból lesz beolvasva a következő adat, ahol a kurzor van.

Az operátori adatok hagyományos rekordja tartalmaz paramétereket, de lehet, hogy nem. Ebben az esetben a Writeln utasítás egyszerűen újsort valósít meg, a Readln utasítás pedig megvárja a kulcsok beírását.

A szabványos kimeneten kívül a Pascal formázott kimenetet is biztosít, ami azért létezik, hogy a megjelenítést érthetőbbé tegye a képernyőn. A formázott kimenet azon pozíciók számát tartalmazza, amelyeket a változó értékéhez hozzá kell rendelni a kimenet során.

Példaként az I/O operátorok használatára a következőképpen módosítjuk a derékszögű háromszög hipotenúza meghatározásának problémáját:

Program Op_vvod_vyvod;

write("Leg a = ");

write("Katet b = ");

c:=sqrt(a*a+b*b);

writeln("Hipoténusz = ",c:3:2);

writeln("Bármelyik gomb megnyomásával befejezheti...");

Ez a program bemeneti adatbeviteli operátorokat használ - egy derékszögű háromszög lábait. Az eredmény képernyőn történő megjelenítéséhez formázott kimenetet használunk. A program eredményeit a 9. ábra mutatja.


9. ábra – Példa az I/O utasításokkal való munkára

Ezenkívül a program paraméterek nélkül használja a Readln utasítást, amely megerősíti a program végét. Tehát bármelyik gomb megnyomása után a program egy üzenetet jelenít meg, hogy a munkája befejeződött (lásd 10. ábra).


10. ábra - Példa a bemeneti operátorra paraméterek nélkül

Az operátorok az operátor részbe kerülnek a kulcsszavak közé, és pontosvesszővel választják el őket egymástól. Azokat az operátorokat, amelyek nem tartalmaznak más operátorokat, egyszerűnek nevezzük:

A hozzárendelési operátor a legalapvetőbb operátor. Kifejezése van a jobb oldalon és az indetben. az eredményeket hozzárendelési jel választja el:=

Például: y:=x + 5 div 2

Az eljáráshívási utasítás egy felhasználó által meghatározott vagy szabványos eljárás aktiválására szolgál. Például: clrscr; stb.

Az üres utasítás nem tartalmaz karaktereket és nem hajt végre semmilyen műveletet. Általában egy üres utasítást használnak arra, hogy egy lokális vagy globális blokk végére ugorjanak olyan esetekben, amikor több utasítást ki kell hagyni, de nem kell elhagyni a blokkot. Ehhez a fenntartott szóvéget egy címke és egy kettőspont előzi meg.

A goto feltétlen ugrás operátor jelentése „menni” és olyan esetekben használatos, amikor valamelyik operátor végrehajtása után nem a következőt kell végrehajtani, hanem egy másik, címkével jelölt operátort. Példa: gotometka1;

ADATBEMENET/KIMENET: olvasási eljárás Numerikus adatok, karakterek, karakterláncok stb. bevitelének olvasása. a program általi további feldolgozáshoz. Formátum: read(x1,x2,x3…); vagy olvassa (FV,x1,x2,x3…); , ahol az x1, x2, x3.. változók, az FV a fájlhoz tartozó változó, ahonnan az olvasás történik. A Readln olvasási eljárása hasonló a Read eljáráshoz, csak a következő sorra való áttérés történik. A Write írási eljárás numerikus adatokat, karaktereket, karakterláncokat és logikai értékeket állít elő. Formátum: Írás (x1,x2,x3…); vagy Write(FV,x1,x2,x3…);

ahol x változók, az FV annak a fájlnak a neve, ahol a kimenet keletkezik.Writeln egy sorátvitel.

26. Adatbeviteli operátorok a billentyűzetről.

Read("változók listája");

Readln("változók listája");

Write("Írja be az értéket a="); readln(a);

írja be az a= értéket.

readln(a); readln(b); readln(c); vagy Readln(a, b, c);

Readln(c1, c2, c3, c4); (várakozik a c1, c2, c3, c4 szimbolikus változók értékének megadására, pl.: "U", "P", "A", "!", majd nyomja meg az Enter billentyűt)

Writeln(c1, c2, c3, c4); felirat jelenik meg: Hurrá!

27. Választott kezelő.

Case "paraméter" Of

"megjelölt operátorok listája"

Else "nyilatkozat" End;

Példa operátorokra egy N egész szám 0 és 999 közötti sorrendjének meghatározására:

0..9: writeln("egy az egyhez");

10..99: writeln("kétjegyű");

100..999: writeln("háromjegyű")

else writeln("Az "N" szám nincs a megadott tartományban") end;

28. Feltételes operátor.

IF "feltétel" Akkor "utasítás1" Else "utasítás2";

Például az "a" szám négyzetgyökének kiszámítása az a>=0 feltétel mellett történik,

HA a >= 0 Akkor b:= Sqrt(a) Else kezdődik WriteLn("a<0"); Readln; Halt end;

A Halt utasítás leállítja a program végrehajtását.

29. Cikluskezelő.

Paraméterrel

For i:= N1 - N2 Do "állítás";

For i:= N1 DownTo N2 Do "kimutatás";

Feltétellel

Míg a "feltétel" DO "állítás";

Ismételje meg az „állításokat” a „feltétel”-ig;

A "feltétel" egy logikai típusú kifejezés.

30 .Ugrás a címkekezelőhöz.

goto "címke";

M1: Write("Enter x>=0"); readln(x); Ha x<0 Then Goto M1;

A címkék leírása a leírás részben található, például: M1 címke;

31.Lineáris tömbök.

A tömbök leírása:

VarA:array[ 1. .30 ] byte;

S: array[ 1. . 30] húrból;

SO:array[ 1. . 30 ]ofstring;

Értékek hozzárendelése tömbelemekhez:

A:= 5; A:= 4; stb.

S:= "Ivanov"; S:= "Petrov"; stb.

Érték hozzárendelése az "y" tömb elemeihez függőséggel:

y=sin(x), ahol x=Pi*i/180, 0<= i <=180 .

i:= 0 és 180 között Do y[i]:= sin(Pi * i/180);

Véletlenszerű értékek hozzárendelése az "R" tömb -30 és +40 száz eleme közötti tartományban:

randomizálni; i:=1-től 100-ig Do R[i]:= - 30+Véletlen(71);

Cél Lab A tüskés munka: tanulja meg a változók helyes leírását a következő szabványos adattípusok használatával: egész szám. valós és logikus; adatbeviteli-kimeneti operátorok tanulmányozása, gyakorlati készségek fejlesztése a PascalABC rendszerrel való munkavégzésben, megtanulják létrehozni, számítógépbe lépni, egyszerű programokat futtatni és javítani Pascal nyelven párbeszéd módban, megismerkedni a fordító diagnosztikai üzeneteivel a végrehajtás során fellépő hibákról lineáris algoritmusokat megvalósító programok.

Az operátor szolgáltatásszavak, azonosítók és speciális karakterek speciális halmaza, amely bizonyos műveleteket hajt végre. Az operátorokat pontosvessző „;” választja el egymástól. Példák hangszórókra.

Hozzárendelés operátora: (:=). A hozzárendelési operátor értéket rendel a változókhoz, például: x:=1; a:=5. 02; b:= 32*a+Sin(x); S:= "Iván Ivanovics".

Összetett állítás: Kezdje<операторы>vége;

Az összetett állítás más állítások törzsében történő rögzítésére szolgál, amelyek sorrendjét ebben az esetben egy állításnak tekintjük. Ez az utasítás kezdi és fejezi be a fő program, szubrutin, függvény végrehajtási szakaszát. A főprogram utolsó END utasítását egy pont követi.

    1. Adatbeviteli/kimeneti utasítások

Négy operátort használnak az I/O műveletek végrehajtására:

Olvasás, olvasás, írás, írás. A Read utasítás bemeneti adatokat biztosít numerikus adatokhoz, karakterekhez, karakterláncokhoz stb. a program általi további feldolgozáshoz.

Formátum: Read(X1, X2, .. , Xn), ahol X1, X2, .. , Xn érvényes adattípusok változói.

Az X1, X2, .., Xn értékeket a felhasználó legalább egy szóközzel beírja a billentyűzeten, és megjeleníti a képernyőn. A változó értékeket szigorúan a nyelv szintaxisának megfelelően kell megadni. Ha a programnak több Read utasítása van, akkor a hozzájuk tartozó adatok egy folyamba kerülnek beírásra, azaz egy Read utasításhoz tartozó változók értékeinek beolvasása után a következő Read utasítás adatai ugyanabba a sorba kerülnek, mint az előzőnél. egyet a sor végéig, majd megtörténik az átmenet a következő sorra. A ReadLn operátor hasonló a ReadLn operátorhoz, az egyetlen különbség az, hogy a lista utolsó értékének beolvasása után egy ReadLn operátornál a következő ReadLn operátor adatai egy új sor elejétől kerülnek beolvasásra.

A write utasítás (Write) adatkimenetet állít elő.

Formátum: Write(X1, X2, .. , Xn), ahol X1, X2, .. , Xn integer, byte, real, char, Boolean stb. típusú kifejezések.

Példa: Write(125); (értékkel ábrázolt kifejezés)Write(A+B-C); (megjelenik a kifejezés eredménye).

A Write utasítás lehetővé teszi a változók értékeinek kiadását a következő módokon.

    Az I érték decimális megjelenítésének kimenete a kurzor pozíciójából (I):

    Az I érték decimális ábrázolásának kiírása a p (I:p) szélességű mező jobb szélső pozícióiba:

Ahol ַ egy szóköz.

3. Az I érték tizedes megjelenítése a p szélességű mező jobb szélső pozícióiba, valamint a q(I:p:q) szélességű szám törtrésze:

A WriteLn operátor hasonló a Write operátorhoz, de miután az aktuális WriteLn operátor listájában az utolsó érték megjelenik, a kurzor a következő sor elejére ugrik. A paraméterek nélkül írt WriteLn utasítás soremelést okoz.

Ha nincs elég pozíció a kimenethez, a szám vagy a szöveg teljes egészében megjelenik, és a formátum figyelmen kívül marad, kivéve a szám törtrészének kimeneti formátumát. Ha a kimeneti formátum nincs beállítva, akkor az egész és a karakterlánc változók értékei teljes egészében, a valódiak pedig a változó típusának megfelelő számjegyekkel jelennek meg, például

a:=5,12345678912345678912345; WriteIn("a=", a); megjelenik a felirat.



Betöltés...
Top