Egy utasítás végrehajtásának eredménye. Feltételes operátor? Üzemeltetői használati korlátozások

Az előző bekezdésben megismerkedtünk egy program felépítésével Pascalban, megtanultuk az adatok leírását, és megnéztük a hozzárendelés operátort. Ez elég egy adatkonverziós program megírásához. De ezeknek az átalakulásoknak az eredménye nem lesz látható számunkra.

Adatok kiadása innen véletlen hozzáférésű memória Az írási kimeneti operátor a monitor képernyőjén használatos:

Itt, zárójelben, egy kimeneti lista kerül - azoknak a kifejezéseknek a listája, amelyek értékei ki vannak nyomtatva. Ezek lehetnek numerikus, szimbolikus és logikai kifejezések, beleértve a változókat és konstansokat.

Az aposztrófokba zárt karakterek tetszőleges halmaza karakterlánc-állandónak minősül. A karakterlánc-konstans bármilyen, a billentyűzeten beírt karaktert tartalmazhat.

Példa. A write ("s=", s) utasítás a következőképpen hajtódik végre:

  1. A képernyőn aposztrófokba foglalt szimbólumok jelennek meg: s=
  2. A RAM s nevű cellájában tárolt változó értéke megjelenik a képernyőn.

Ha az s változó értéke 15, és egész típusú, akkor a képernyőn s=15 jelenik meg.

Ha az s változó értéke 15, de valós típusú, akkor a következő jelenik meg a képernyőn: s=l.5E+01.

A kimeneti utasítás végrehajtásakor a kimeneti lista minden eleme közvetlenül egymás után kerül kinyomtatásra. Így az írás (1, 20, 300) operátor hatására az 120300 számsor jelenik meg a képernyőn, amit 120300 számként fogunk felfogni, nem pedig három különálló numerikus állandóként. A kimeneti adatokat többféleképpen is hozzáférhetőbbé teheti az észlelés számára:

Kimeneti formátum a kettőspont után jelzett egész szám, amely meghatározza, hogy a megjelenített érték hány pozíciót foglaljon el a képernyőn. Ha egy számban kevesebb számjegy van, mint amennyi a képernyőn a számára fenntartott hely, akkor a szabad helyeket a számtól balra lévő szóközök egészítik ki. Ha a kimeneti formátumban a kettőspont után megadott szám kisebb a szükségesnél, akkor automatikusan a szükséges minimumra nő.

Valós szám fixpontos formátumban történő kiadásához két paramétert kell megadni a kimeneti listában minden kifejezéshez:

  1. a számhoz kiosztott pozíciók teljes száma;
  2. a pozíciók száma a szám törtrészében.

Amikor egy új írási utasítás végrehajtásra kerül, a kimenet ugyanazon a sorban folytatódik. Új sorra ugráshoz használja a writel operátort. Nincs más különbség a write és writeln utasítások között.

4.2.2. Az első program Pascal nyelven

A fent tárgyalt operátorok segítségével létrehozunk egy programot, amely kiszámítja egy 5,4 cm sugarú kör kerületét és területét.

A probléma kezdeti adata a sugár: r - 5,4 cm. A program eredménye a C - kerület és S - a kör területe értéke. C, S és r valós típusú mennyiségek.

A kiindulási adatokat és eredményeket a matematika tantárgyból ismert összefüggések kapcsolják össze: C = 2πr, S = πr +. Az alábbi képleteket használó számításokat végrehajtó program így fog kinézni:

Ez a program helyes és megoldja a problémát. Futtatásakor a következő eredményt kapja:

Ennek ellenére az általunk összeállított programnak van egy jelentős hátránya: egyetlen sugárértékre (5,4 cm) megkeresi a kör kerületét és területét.

A kör kerületének és területének más sugárértékhez történő kiszámításához közvetlenül a programszövegben kell módosítania, nevezetesen meg kell változtatnia a hozzárendelési operátort. A meglévő programok módosítása enyhén szólva nem mindig kényelmes (például ha a program nagy és sok hozzárendelési operátor van). Az alábbiakban egy olyan operátort ismerhet meg, amely lehetővé teszi a kezdeti adatok megadását a program futása közben, a program szövegének megváltoztatása nélkül.

4.2.3. Billentyűzet bemenet

A változó értékek RAM-ba való beírásához használja az olvasási bemeneti operátort:

A read utasítás végrehajtása után a számítógép adatváró üzemmódba lép: a felhasználónak be kell írnia az adatokat a billentyűzetről, és meg kell nyomnia az Enter billentyűt. A numerikus típusú változókhoz több érték is megadható szóközzel vagy vesszővel elválasztva. Karakterváltozók beírásakor a szóközt és a vesszőt a rendszer karakterként kezeli, így nem írható be.

A felhasználó által beírt első változóérték arra a memóriahelyre kerül, amelynek a neve először található a beviteli listában stb. Ezért a bemeneti értékek típusának (bemeneti adatfolyamnak) meg kell felelnie a változóban megadott változótípusoknak. leírás rész.

Példa. Hadd

var i, j: egész szám; x: valódi; a:char;

Adjuk hozzá az i, j, x változókat, valamint az 1, 0, 2,5 és "A" értékeket. Ehhez a read (i, j, x, a) operátort használjuk, és a bemeneti adatfolyamot a következő módok egyikével rendezzük:

Itt nem csak különféle elválasztójeleket (szóköz, vessző) használtunk, hanem a bemeneti adatfolyamot egy, kettő és négy sorként is ábrázoltuk.

A readln operátort is használhatjuk adatok bevitelére a billentyűzetről, amely csak annyiban tér el a read operátortól, hogy végrehajtása után a kurzor egy új sorba kerül.

Javítsuk az n_1 programot úgy, hogy a read operátor segítségével megszervezzük az adatbevitelt benne. És hogy a felhasználó tudja, mire szánják a programot, és megértse, milyen műveletet vár tőle a számítógép, megjelenítjük a megfelelő szöveges üzenetek a writel operátor használatával:

A továbbfejlesztett program eredménye:

Most programunk ki tudja számítani a kör kerületét és területét bármely r értékre. Más szóval, nem egyetlen problémát old meg, hanem problémák egész osztályát. Ezenkívül a program egyértelműen és kényelmesen megszervezi a kezdeti adatok bevitelét és a kapott eredmények kimenetét. Ez biztosítja a barátságos felhasználói felületet.

A legfontosabb

A változó értékek RAM-ba való beviteléhez az read és readln bemeneti operátorokat használjuk.

Az adatok RAM-ból a monitor képernyőjére történő továbbításához az írási és írási kimeneti operátorok használatosak.

A kezdeti adatok bevitelét és az eredmények kimenetét világosan és kényelmesen kell megszervezni; ez biztosítja a barátságos felhasználói felületet.

Kérdések és feladatok

  1. Írjon egy utasítást, amely lehetővé teszi az összegző változó értékének megadását a program futása közben.
  2. Az i, y, k egész változókhoz 10, 20 és 30 értékeket kell rendelni. Írja le a bemeneti adatfolyamnak megfelelő bemeneti utasítást:
      a) 20 10 30
      b) 30 20 10
      c) 10 30 20
  3. Írja le a háromszög területének kiszámításához szükséges változókat a három oldala alapján, és írjon egy utasítást, amely megadja a szükséges bemeneti adatokat.
  4. Mi az eredménye az utasítás végrehajtásának?
      a) írj (a)
      b) írja be (1 a ")
      c) írja be (1 a=1, a)
  5. Milyen típusú az f változó, ha a write (f) utasítás végrehajtása után a következő szám jelent meg a képernyőn?
      a) 125
      b) 1,25E+2
  6. Hogyan jeleníthetek meg valós számot fixpontos formátumban?
  7. Írja fel két szám beírásához és fordított sorrendben történő kiadásához szükséges operátorokat.
  8. Íme egy részlet a programból:

    olvasni egy); olvas(b); c:=a+b; írás(a, b); írj (c)

    Egyszerűsítse a bemeneti és kimeneti utasítások számának csökkentésével.

  9. Íme egy részlet a programból:

    a:=10; b:=a+l: a:=b-a; írd (a, b)

    Milyen számok jelennek meg a számítógép képernyőjén?

  10. Írjon programot, amely kiszámolja egy téglalap területét és kerületét a két oldala alapján!

Adatkimenet
Adatok továbbítása a RAM-ból a monitor képernyőjére:
ír
(<выражение 1> ,< выражение 2> , ...,< выражение N>)
kimeneti lista
Kifejezések - szimbolikus, numerikus, logikai,
beleértve a változókat és állandókat is
Példa:
write("s=", s).
S=15 esetén a képernyőn a következő látható: s=15.
Az idézőjelben lévő információk megjelennek a képernyőn
változtatások nélkül

Kimeneti szervezési lehetőségek
választási lehetőség
kivonás megszervezése
Nincsenek elválasztók
Következtetési operátor
write(1, 20, 300).
Eredmény
120300
Határolójelek hozzáadása írja be (1, ',' , 20,
– vesszők
’, ’, 300)
1, 20, 300
Adjon hozzá határolókat, írja be (1, ‘’, 2, ‘’, 3)
– terek
1 20 300

Kimeneti formátum
A kimeneti formátum lehetővé teszi a pozíciók számának beállítását
a megjelenített érték által elfoglalt képernyőn.
ír(s:x:y)
x - a számhoz kiosztott pozíciók teljes száma;
y - a pozíciók száma a szám törtrészében.
Következtetési operátor
A végrehajtás eredménye
operátor
write(‘s=‘, s:2:0);
s=15
write(‘s=‘, s:3:1);
s=15,0
write(‘s=‘, s:5:1);
s=
írva
15.0
- kimenet új sorból!

Első program
program n_1;
const pi=3,14;
var r, c, s: valódi;
kezdődik
r = 5,4;
c:=2*pi*r;
A program eredménye:
s:=pi*r*r;
writeln("c="", c:6:4);
writeln("s=", s:6:4)
Turbo Pascal
7.0 verzió
vége.
c = 33,9120
s = 91,5624

Billentyűzet bemenet
Változó értékek bevitele a RAM-ba:
olvas
(<имя переменной1>, …, <имя переменной N>)
beviteli lista
Az olvasott utasítás végrehajtása:
1) a számítógép adatkészenléti módba lép:
2) a felhasználó beírja az adatokat a billentyűzetről:
több változó érték
numerikus típusok adhatók meg
szóközzel vagy vesszővel elválasztva;
karakterváltozók bevitelekor
Szóközök és vesszők nem használhatók;
3) a felhasználó megnyomja az Enter billentyűt.

Billentyűzet bemenet
!
A bemeneti értéktípusoknak egyeznie kell
leírás részben megadott változótípusok
változók.
var i, j: integer;x: real;a: char;
read(i, j, x, a);
lehetőségek a bemeneti adatfolyam szervezésére:
1 0 2,5 A 1,0 1
2.5, A 0
2.5
A
A readln utasítás végrehajtása után a kurzor a következőre lép
új sor.

Továbbfejlesztett program
program n_1;
const pi=3,14;
var r, c, s: valódi;
kezdődik
writeln("Kör kerületének és területének kiszámítása");
write("Írja be az r>>-t");
readln(r);
c:=2*pi*r;
A program eredménye:
s:=pi*r*r;
writeln("c="", c:6:4);
Pascal 7.0 verzió
writeln("s=", s:6:4) Turbó
A kör kerületének és területének kiszámítása
Írja be: r >> 8.5
vége.
c = 53,3800
s = 226,8650

A legfontosabb
Változó értékek bevitele a RAM-ba
Az read és readln bemeneti operátorok használatosak.
A RAM-ból származó adatok megjelenítése a képernyőn
A monitor az írási és írási kimeneti operátorokat használja.
A kezdeti adatok bevitele és az eredmények kimenete kötelező
világosan és kényelmesen legyen megszervezve; ez biztosítja
a felhasználói felület felhasználóbarát jellege.

Kérdések és feladatok
1) Adott egy programrészlet:
a:=10; b:=a+1: a:=b–a; írd (a, b)
Milyen számok jelennek meg a számítógép képernyőjén?
2) Ismertesse a számításhoz szükséges változókat!
egy háromszög területe a három oldala mentén, és
írjon bemeneti nyilatkozatot
szükséges kezdeti adatok.
3) Mi az eredménye az utasítás végrehajtásának?
a) írj (a)
b) írd ("a")
c) írd ("a=", a)
4) Egész számú i, j, k változót kell hozzárendelni
az értékek rendre 10, 20 és 30.
Írja le a bemenetnek megfelelő input utasítást!
folyam:
a) 20 10 30
b) 30 20 10
c) 10,30,20

Operátor egy nyelvi elem, amely a végrehajtandó művelet teljes leírását adja meg. Minden operátor egy programozási nyelv teljes kifejezése, és az adatfeldolgozás egy teljesen befejezett szakaszát határozza meg. Az operátorok tartalmazhatnak függvényszavakat, adatokat, kifejezéseket és egyéb operátorokat. BAN BEN angol nyelv ezt a koncepciót a „nyilatkozat” szóval jelöljük, ami egyben „javaslatot” is jelent.

Bármely programozási nyelvben minden operátornak megvan a sajátja szintaxisÉs szemantika. Alatt szintaxis operátor alatt olyan szabályrendszert (nyelvtan) értünk, amely az ábécé elemei segítségével határozza meg annak rögzítését ennek a nyelvnek, amely a különféle szimbólumokkal együtt például funkciószavakat tartalmaz. Alatt szemantika operátor megérti a jelentését, azaz. azokat a műveleteket, amelyek megfelelnek egy adott operátor rekordjának. Például rögzíteni i:= i + 1 egy példa a szintaktikailag helyes jelölésre hozzárendelés operátor a Pascal nyelvben, melynek szemantikája jelen esetben a következő: kinyerjük az i változónak megfelelő memóriacella értékét, hozzáadjuk eggyel, és az eredményt ugyanabba a memóriacellába írjuk.

A legtöbb procedurális programozási nyelvben az operátorok halmaza majdnem ugyanaz, és egy hozzárendelés operátorból, kiválasztási operátorokból, hurokoperátorokból, eljáráshívás operátorokból és ugrás operátorokból áll. Néha az üres (nincs művelet) és az összetett operátorokat is megkülönböztetik. Sok operátor bizonyos algoritmikus konstrukciók ábrázolásának módja (lásd " Algoritmikus tervezés” ) egy programnyelven. Nézzük meg részletesebben az operátorcsoportokat a Pascal nyelvi szintaxis használatával.

Hozzárendelés operátor

A hozzárendelés egy számítógépes művelet, amelynek eredményeként egy változó megkapja a számított kifejezés értékét (az a változónak megfelelő memóriacellába kerül). Leírni egy ilyen műveletet a programozási nyelvekben, van hozzárendelés operátor.

Általában a hozzárendelési operátort így írják:

<переменная> <знак присваивания> <выражение>

Például Pascalban a szimbólumkombinációt hozzárendelési jelként használják: =. Számos más nyelven egyenlőségjel.

A hozzárendelési operátor végrehajtásának eredménye az adatok állapotának változása: minden változó, kivéve változó, amelyek a hozzárendelési operátor bal oldalán találhatók, nem a jelentésüket változtatják meg, hanem a megadott változó megkapja az értéket kifejezéseket, amely a hozzárendelési operátor jobb oldalán jelenik meg. A legtöbb esetben szükséges, hogy a típus kifejezéseket megfelelt a típusnak változó. Ha ez nem így van, akkor az operátort vagy szintaktikailag hibásnak tekintik, vagy a kifejezés típusát a változó típusává alakítják (lásd " Adattípusok” ).

Operátorok kiválasztása

Ezeket az operátorokat másképp hívják feltételes állítások. A feltételes utasításokat olyan algoritmusok programozására használják, amelyek algoritmikus elágazási konstrukciót tartalmaznak.

A programozási nyelvekben többféle feltételes utasítás létezik. A teljes feltételes utasítás megfelel a teljes elágazás algoritmikus struktúrájának:

Egy programozási nyelvben a megfelelő feltételes operátor alakja:

ha B akkor S1 más S2

Ha a kifejezés B, amely a feltételes utasítás végrehajtásának elején kerül kiszámításra, „true” értékű, akkor az utasítás végrehajtásra kerül S1, egyébként - operátor S2. Üzemeltetők S1És S2összetett lehet.

A hiányos elágazás algoritmikus struktúrája egy hiányos feltételes operátor segítségével valósul meg, amelynek alakja:

ha B akkor S

Itt B egy logikai kifejezés, és S- tetszőleges operátor. Operátor S akkor kerül végrehajtásra, ha a B kifejezés igaz.

Ha egy feltételes operátor csak két választási ágat ("igen" és "nem") valósít meg, akkor használja változat operátor (ügy-operátor) több ágból álló struktúrát programozhat. A változat operátora így néz ki:

ügy E nak,-nek

Teljesített ezt az operátort mint ez: a kifejezés jelentése E keresett az operátori rekordban felsorolt ​​értékek között V1, V2, …, Vn, és ha ilyen értéket találunk, akkor a megfelelő operátor végrehajtásra kerül S1, S2, …, Sn.

A különböző programozási nyelvekben a felsorolt ​​operátorok szintaxisa, sőt szemantikája eltérhet, de az ilyen konstrukciók által a programozó számára biztosított képességek megközelítőleg azonosak.

1. példa A cikkben " Algoritmikus tervezés”2 példát adtak általánosított másodfokú egyenlet elágazó konstrukciók segítségével történő megoldására szolgáló algoritmus felírására. Itt van egy Pascal program töredéke, amely ugyanazt az algoritmust valósítja meg:

ha a = 0 akkor

ha b = 0 akkor

ha c = 0 akkor writeln("x - bármilyen")

más writeln("nincs gyökér")

más writeln(-c/b)

másképp kezdődik

D: = b*b - 4*a*c;

ha D< 0 akkor writeln("nincs gyökér")

másképp kezdődik

x1:= -b + sqrt(D);

x2:= -b - sqrt(D);

writeln(x1:0:2,""", x2:0:2)

Loop utasítások

A hurokoperátorok ciklikus algoritmikus struktúrákat valósítanak meg; sokszor ismétlődő műveletekhez használják őket. Számos programozási nyelvben háromféle hurokoperátor létezik: „előfeltétellel”, „utófeltétellel”, „paraméterrel”.

A ciklusok programozásához szükséges és elégséges algoritmikus struktúra az „előfeltételes” hurok, tehát a hurok fő típusának nevezhető. Az előfeltételes hurokoperátor így néz ki:

míg B csináld S

Operátor S, amelyhez egy ciklus jön létre az ismételt végrehajtáshoz a hurok teste. A ciklus operátor végrehajtása a ciklustörzs ismételt végrehajtására redukálódik a logikai kifejezés értékéig B igaz (amíg nem lesz hamis). Valójában a hasonló ciklusutasítások feltételes utasítások ismételt végrehajtását valósítják meg ha B akkor S, míg a feltétel igaz B.

2. példa. Tekintsük egy ilyen hurokoperátor használatát egy természetes szám számjegyeinek összegének kiszámításához N:

míg N>0 kezdd el

S:= S + N mod 10;

N:=N div 10

Egy utófeltételes ciklusban a ciklus törzse megelőzi a B feltételt. Az előfeltételes ciklustól eltérően itt B a ciklus befejezésének feltétele. A Pascal utófeltételű hurokoperátor alakja a következő:

ismételje meg S amíg B

Ezzel a ciklusszervezéssel a ciklus teste S legalább egyszer végre kell hajtani.

Szinte minden eljárási nyelven létezik hurok operátor paraméterrel. Sematikusan a következőképpen ábrázolható:

számára< változó > E1 nak nek E2 lépés E3 csináld S

Itt van a jelentése változó(ciklusparaméter) az E1 kifejezés értékéről E2-re változik az E3 lépéseivel. A ciklusparaméterek minden ilyen értékére az S operátor kerül végrehajtásra. A Pascal nyelvben ennek az operátornak a leírásából hiányzik a lépés fogalma, és maga a lépés egy egész ciklusparaméter esetén lehet 1 vagy 1, vagy –1. A hurok paraméterekkel operátora meghatározott számú ismétlődésű hurkok programozására szolgál. Nem alkalmas iteratív ciklusok programozására (amelyek ismétlődéseinek száma előre nem ismert).

Eljáráshívási operátor

A cikkben " Szubrutinok” részletesen leírja az ilyen típusú szubrutinokat, például az eljárásokat. Az egyik rutinkönyvtárban található szabványos programozási nyelvi rutinokat, valamint az ebben a blokkban leírt felhasználói rutinokat az operátor segítségével hívjuk meg. eljárási felhívás:

<имя процедуры>(E1,E2,…,En)

Itt az E1,E2,…,En változók vagy kifejezések, amelyek reprezentálnak tényleges paraméterek az eljáráshoz való hozzáférést. Leggyakrabban használt szabványos eljárások adatbeviteli és -kimeneti eljárások (olvasás és írás Pascalban).

Egy eljárás meghívása szemantikailag egyenértékű az eljárás törzseként leírt blokk végrehajtásával, miután átadjuk abba néhány változó (értékparaméterek) kezdeti értékét, vagy néhány változó (változóparaméterek) nevét lecseréljük az eljárás törzsének nevére. az eljárás hívásakor megadott tényleges változók.

3. példa Leírjuk az abc eljárást:

eljárás abc(a,b:integer; var c: egész);

Ennek az abc(2,3,x) eljárásnak a meghívása egyenértékű egy műveleti blokkkal:

Ugrás operátorok

A leghíresebb operátor ebben az operátorcsoportban a feltétel nélküli ugrás operátor menj. Ha hozzáadja az összes vagy néhány meglévő programutasítást címkéket, akkor a programban lehetővé válik az űrlap átmeneti operátorának használata:

menj<метка>

A címke ebben az esetben annak az utasításnak az elejére vonatkozik, amelytől a program végrehajtását folytatni kell. Ez az operátor lehetővé teszi, hogy olyan programozási nyelven írjon algoritmusokat, amelyek tetszőlegesen összetett szerkezetűek. De gyakran indokolatlan a feltétel nélküli átmenet alkalmazása, mert zavaroshoz, rosszhoz vezet olvasható program. Az operátor szinte egyetlen értelmes használata menj egy kilépés több beágyazott hurokból egyszerre, például kétdimenziós tömbök feldolgozásakor.

4. példa Tegyük fel, hogy meg kell határoznunk, hogy egy a kétdimenziós tömb tartalmaz-e 0-val egyenlő elemet:

számára i:= 1 nak nek N csináld

j esetén:= 1 nak nek N csináld

ha a = 0 akkor kezdje

1: ha b akkorírás ("van") más write("nem");

A strukturált programozás szabályai szerint kifejlesztett program nem tartalmazhat feltétlen ugrás operátorokat. A fenti program az operátor használata nélkül menj a következőképpen írható át:

míg nem b és(én< N) kezdd el

míg nem b és(j< N) kezdd el

ha a = 0 akkor b:= igaz;

ha b akkorírás ("van") más write("nem");

Ebben az esetben a strukturált program kevésbé vizuális, mint az azzal rendelkező program menj.

Más ugrás operátorok is definiálhatók a programozási nyelvekben. Például Pascalban: szünet(a ciklus korai megszakítása, áttérés olyan utasításra, amelyet a ciklus vége után kell végrehajtani), folytatni(az aktuális hurokiteráció korai befejezése és áttérés a következőre), kijárat(az szubrutin korai megszakítása, kilépés belőle), Állj(a program korai megszakítása, átmenet a végére). Hasonló operátorok léteznek a C, C++ és Java nyelveken.

Összetett operátor

Az összetett utasítás olyan utasítások csoportja, amelyek operátori zárójelekbe vannak zárva (Pascal-ban - kezdődikvége; C-ben, C++ - (…)).

Az összetett operátort azért vezették be a programozási nyelvekbe, hogy megkönnyítsék a nyelvi konstrukciók leírását. Például Pascalban minden blokk végrehajtható része (program, eljárás, függvény) egy összetett utasítás. Ugyanígy bármely hurokoperátor törzse csak egy operátorból áll, esetleg egy összetett operátorból. Az összetett operátor alternatívája lehet egy függvényszó, amely egy adott operátor végét jelzi, pl. VÉGE HA alapnyelven.

A „Programozási nyelv operátorai” témát általában csak egy adott programozási nyelv kontextusában tanulmányozzák. Ennek figyelembevételekor fontos bemutatni az alapvető algoritmikus konstrukciók és az operátorok közötti kapcsolatot: az algoritmikus konstrukciók egy programnyelven íródnak a megfelelő operátorok segítségével. A kivétel bizonyos értelemben a szekvenciális tervezés, ez határozza meg a műveletek lineáris sorrendjét. A szigorúan lineáris programban a műveleteket csak hozzárendelési utasítások és eljáráshívási utasítások hajtják végre.

A programozás elsajátításának kezdeti szakaszában az iskolások sok problémával szembesülnek. Az első pszichológiai akadály, amelyet le kell küzdeniük, az a feladatkezelő megtanulása. Az egyik fő feladat, amit a tanulókkal együtt kell megoldanod, két változó értékének felcserélése. Megkérheti az iskolásokat, hogy fejben oldják meg azt a problémát, hogyan cseréljék fel két fiók, például egy íróasztal tartalmát. Általában a beszélgetés ezen szakaszában a tanulók ráébrednek, hogy a probléma megoldásához szükség van egy harmadik dobozra (változóra). Ennek az algoritmusnak a megírásakor azonban gyakran összekeverik, hogy a hozzárendelési operátor melyik részében (bal vagy jobb) jelenjen meg egy adott változó.

Az aritmetikai és logikai kifejezések írási hibái abból adódnak, hogy nem ismerik a kifejezésben használt műveletek elsőbbségét. A műveletek ugyanakkor nemcsak aritmetikai, hanem összehasonlító műveleteket és logikai konnektívumokat is jelentenek, a C nyelvben pedig az iskolásoktól igen szokatlan hozzárendelési műveletet. A helyzetet bonyolítja az a tény, hogy a különböző programozási nyelvekben ugyanazok a műveletek eltérő relatív prioritást élveznek. Ügyeljen arra is, hogy a változó típusai és a hozzárendelési operátor bal és jobb oldalán lévő kifejezések megfeleljenek (lásd " Adattípusok”).

A kiválasztási operátorok elsajátítása során hasznos, ha a tanulók többágú struktúrát tartalmazó algoritmust programoznak, mind feltételes utasítások kombinációjával, mind pedig kiválasztási operátor használatával.

Példa. Egész változóhoz N Adja meg a személy életkorát években. Írja be a következőt: " K éves vagyok”, a szó helyére évek tovább év vagy az év ... ja számától függően K. Íme két megoldás erre a problémára:

ha(k mod 100) ban ben

akkor writeln("",k," éves vagyok")

ügy k mod 10 nak,-nek

0,5..9:writeln("",k," éves vagyok");

1:writeln("",k," éves vagyok");

2..4:writeln("",k," éves vagyok");

var k, n: egész szám;

readln(k); n:= k mod 10;

ha(k mod 100) ban ben

akkor writeln("",k," éves vagyok") más

ha n=1 akkor writeln("",k," éves vagyok")

ha(n >=) és(n<= 4)

akkor writeln("",k," éves vagyok")

más writeln("",k," éves vagyok")

A hurokoperátorok mérlegelésekor érdemes ugyanazt a feladatot három különböző módon programozni három hurokoperátor segítségével, és fordítva, a probléma körülményei alapján megtanulni meghatározni, hogy egy adott esetben melyik hurokoperátor a legalkalmasabb.

Az eljáráshívás operátora első pillantásra egyszerű. Itt fontos elmagyarázni az eljárásoknak és függvényeknek a paraméterek átadásának szabályait, a változó paraméterek és az értékparaméterek közötti különbséget (utóbbi esetben nem csak a változó nevét adhatjuk át, hanem a megfelelő konstanst vagy akár kifejezést is típus). A formális és tényleges paramétereknek típusukban meg kell felelniük, nevükben azonban nem, ami korántsem nyilvánvaló a tanulók számára.

A feltételes és különösen az összetett állítás tanulmányozása jó alkalom arra, hogy a hallgatókkal a programírás stílusáról beszélgessünk. Számos általános módszer létezik a strukturált programok Pascalban való írására, de mindegyik tartalmaz behúzást a beágyazott struktúrák elhelyezéséhez. Fontos a programok és a megjegyzések rögzítéséhez.

A programkód az ábrán látható. 4.3-9.

Opció Strict On Option Explicit On Imports System.Math Public Class Form1 "Funkció egy pont koordinátáinak szövegdobozban történő bevitelére Funkció vvod(ByVal T As TextBox) Egyetlen visszatérésként CSng(Val(T.Text)) Végfüggvény "Eljárás az eredmény kiadása egy TextBox-ban Sub vivod (ByVal Z As Single, ByVal T As TextBox) T.Text = CStr(Z) End Sub "Funkció egy szakasz hosszának kiszámításához két pont koordinátáiból Public Function Segment Length(ByVal) x1 As Single, _ ByVal y1 As Single, ByVal x2 As Single, _ ByVal y2 As Single) As Single Return CSng(Sqrt((x2 - x1) ^ 2 + (y2 - y1) ^ 2)) Funkció vége "Eljárás egy háromszög kerületének és területének kiszámítása Sub PS(ByVal x1 As Single, ByVal y1 As Single, _ ByVal x2 As Single, ByVal y2 As Single, _ ByVal x3 As Single, ByVal y3 As Single, _ ByRef P Asingle , ByRef S As Single) Dim A, B, C, Pp As Single A = Segment Length(x1 , y1, x2, y2)"A negatív hosszának kiszámítására szolgáló függvény meghívása. B = Szegmens hossza (x2, y2, x3, y3) C = a szegmens hossza (x3, y3, x1, y1) P = (A + B + C) : Pp = P / 2 S = CSng(Sqrt(Pp * (Pp - A) * (Pp - B) * (Pp - C))) End Sub "Eljárás a gombra kattintási esemény feldolgozására Button1 Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Kezelek Button1.Click Dim x1 As Single, x2 As Single, x3 As Single Dim y1 As Single, y2 As Single, y3 As Single Dim Per As Single, Plo As Single x1 = vvod(TextBox1) : x2 = vvod(xtBox2 =tB) ) y1 = vvod(Szövegdoboz6) : y2 = vvod(Szövegdoboz7) : y3 = vvod(Szövegdoboz8) PS(x1, y1, x2, y2, x3, y3, Per, Plo) vivod(Plo, TextBox4) : vivod(Plo) TextBox5) End Sub Private Sub Button2_Click (ByVal feladó mint System.Object, _ ByVal e As System.EventArgs) Handles Button2.Click End End End Sub End Class

Az alkalmazás futtatása és az eredmények elérése

Az eredmény az ábrán látható. 4,3-10.

Az eredmény helyességének igazolása

A=
= 2,82843 B =
= 2

C = = 2 P = A + B + C = 6,828427; Рр = Р/2 = 3,414213 S = = 2


Biztonsági kérdések a témában

„A VB programok, modulok és eljárások felépítése.

Programozási eszközök lineáris szerkezeti algoritmusokhoz"

1. Mi az a matematikai modell?

2. Melyek a számítógépes problémák megoldásának főbb lépései?

3. A számítógépes problémamegoldás mely szakaszaira kerül sor számítógép részvétele nélkül?

4. Mit nevezünk egy tárgy vagy jelenség matematikai modelljének?

5. Melyek a programfejlesztési folyamat egymást követő lépései?

6. Mi az algoritmus?

7. Milyen alapvető tulajdonságokkal kell rendelkeznie egy algoritmusnak?

8. Milyen módszerek vannak az algoritmusok leírására?

9. Milyen grafikus szimbólumokat szoktak ábrázolni az algoritmus diagramok?

10. Hogyan működik a tolmács?

11. Hogyan működik a fordító?

12. Melyik algoritmust nevezzük lineárisnak?

13. Melyik algoritmust nevezzük ciklikusnak?

14. Melyik algoritmust nevezzük elágazásnak?

15. Mi a különbség a függvények és eljárások eredményeinek átadása között?

16. Valószínű eredmény megszerzése bizonyítja a program helyességét?

17. Milyen hibák maradhatnak észrevétlenül, ha nem ellenőrzi (nézi, görgeti) a programot?

18. Miben különbözik egy program tesztelése a hibakereséstől?

19. Lehetséges-e teszteléssel bizonyítani egy program helyességét?

20. A program melyik szakaszában történik a referenciavizsgálati eredmények kiszámítása?

21. Sorolja fel a tesztelési folyamat főbb szakaszait!

22. Mi a különbség a szintaktikai hibák és a szemantikai hibák között?

23. Mit jelez a szintaktikai hibaüzenetek hiánya a gépen?

24. Milyen típusú hibákat nem tud a fordító észlelni?

25. Mi a program?

26. Melyik szakaszban történik a program hibáinak felkutatása és kiküszöbölése?

27. Mi az a programozási rendszer?

28. Mi az eljárás?

29. Milyen előnyei vannak egy olyan programnak, amely eljárásokat tartalmaz?

30. Milyen procedurális programozási eszközök állnak rendelkezésre a VB-ben?

31. Hogyan történik az adatcsere az egyes programeljárások között?

32. Mik azok a tényleges és formális paraméterek?

33. Hogyan adjunk át paraméterként: állandót, változót, kifejezést?

34. Hogyan használják a globális változókat?

35. Hogyan használják a helyi változókat?

36. Mik azok a formális paraméterek?

37. Mik a tényleges paraméterek?

38. Mi történik, ha eljárást hívnak?

39. Hogyan lehet paramétereket átadni egy eljárásnak?

40. Milyen paramétereket ad át érték?

41. Milyen paramétereket adnak át a címnek?

42. Mik azok a procedurális programozási eszközök?

43. Mi az eredménye egy függvény végrehajtásának?

44. Hogyan kell az egyes változókat deklarálni, hogy lokálisak legyenek egy függvényen belül?

45. Melyik utasítással lehet korai kilépni egy függvényből?

46. Mit vezérel a függvények és eljárások meghívásakor?

47. Hogyan kell a formális paramétereket deklarálni ahhoz, hogy egy változó paramétert értékenként adjunk át?

48. Hogyan kell a formális paramétereket deklarálni ahhoz, hogy változó paramétert adjunk át egy címnek?

49. Hogyan hívható meg egy függvényeljárás a hívó programból?

50. Mi lehet az eljárás eredménye?

51. Melyik utasítással lehet korai kilépni egy eljárásból?

52. Hol találhatók a funkciók és eljárások leírásai?

53. Hol lesz elérhető a Public operátorral deklarált változó?

54. Hol található a magánüzemeltető?

55. Mi az a megjegyzés és a megírásának szabályai?

56. Melyek a változók értéke a program elején?

57. Miért vannak leírva (definiálva) az eljárások és funkciók?

58. Hogyan nevezik az eljárásokat?

59. Hogyan hívják a függvényeket?


Kapcsolódó információ.





Top