Valdymo operatoriai. „Visual Basic“ valdymo struktūros

Valdymo sakiniai yra vykdomieji sakiniai, kurie keičia programos komandų vykdymo seką. Iš visų programavimo kalbose naudojamų operatorių daugiausiai ginčų sukėlė valdymo operatoriai. Pagrindinis diskusijos objektas yra paprasčiausias valdymo teiginys, goto. Tai leidžia keisti programos vykdymo tvarką ir pradėti vykdyti programą nuo konkrečios vietos, kuri nurodoma vardu arba skaičiumi. Todėl šis teiginys yra ne kas kita, kaip tiesioginis mašinos kalbos peršokimo instrukcijos taikymas. Tokio operatoriaus buvimas aukšto lygio kalba leidžia programuotojams rašyti tokias atsitiktines programas1:

goto 40 20 Taikyti Evade procedūrą

goto 70 40 if (kriptonito lygis< LethalDose) then goto 60

60 Taikykite RescueDamsel procedūrą 70 ...

kadangi visi šie veiksmai gali būti parašyti naudojant vieną struktūrą:

jei (kriptonito lygis< LethalDose)

tada (taikyti RescueDamsel procedūrą) kita (taikyti Evade procedūrą)

Siekiant išvengti tokių komplikacijų, šiuolaikinėse programavimo kalbose yra valdymo teiginių, leidžiančių parašyti šakojančias struktūras naudojant vieną išraišką. Kai kurios visuotinai priimtos šakojančios struktūros ir jas atitinkančios skirtingomis kalbomis programavimo valdymo operatoriai parodyti pav. 5.7. Atkreipkite dėmesį, kad su pirmomis dviem struktūromis jau susidūrėme 4 skyriuje. Mūsų pseudokode jas vaizduoja if-then-else ir while teiginiai. Trečioji struktūra, vadinama pasirinkimu, gali būti vertinama kaip i f-then-el se struktūros tęsinys. Skirtumas tarp jų yra tas, kad jei-tada-else teiginys leidžia pasirinkti iš dviejų variantų, o atvejo teiginys leidžia pasirinkti iš kelių.

Kita įprasta struktūra yra for ciklo teiginys (5.8 pav.), panašus į teiginį while mūsų pseudokode. Skirtumas tarp jų yra tas, kad inicijavimas, modifikavimas ir kilpos užbaigimo sąlygos testavimas yra sujungti viename sakinyje. Šį operatorių patogu naudoti, kai ciklo korpusą reikia vykdyti tam tikrą skaičių kartų – vieną kartą kiekvienai skaitiklio kintamojo reikšmei tam tikrame intervale. Visų pirma, operatorius, parodytas fig. 5.8 nurodo, kad ciklo turinys turi būti vykdomas kelis kartus: kai kintamojo Count reikšmė yra 1, tada, kai jo reikšmė yra 2, ir paskutinį kartą, kai jo reikšmė yra 3.

Iš aukščiau pateiktų pavyzdžių galime daryti išvadą, kad šakojančių struktūrų su nedideliais variantais yra tiek imperatyviose, tiek objektinėse programavimo kalbose. Teoriškai Kompiuterinė technologija Yra prielaida, kad bet kurios problemos sprendimas, turintis algoritminį sprendimą, gali būti parašytas naudojant ribotą skaičių struktūrų. Šį teiginį aptarsime 11 skyriuje. Kol kas reikia pažymėti, kad programavimo kalbos mokymasis nėra begalinis tyrimas įvairių operatorių valdymas. Tiesą sakant, dauguma valdymo struktūrų, naudojamų šiuolaikinėse programavimo kalbose, yra tam tikri šiame skyriuje aprašytų struktūrų variantai.


Pasirinkti, kurias struktūras įtraukti į programavimo kalbą, yra skonio reikalas. Kalbos kūrėjas turi tikslą sukurti tokią kalbą, kuri ne tik leistų lengvai skaitoma forma parašyti algoritmus, bet ir padėtų programuotojui. Šis tikslas pasiekiamas apribojant tų elementų, kurie istoriškai lėmė aplaidų programavimą, naudojimą ir įvedant gerai suprojektuotus elementus. Rezultatas – struktūrizuotas programavimas, kuriame derinamos programų rašymo technikos su teisingu valdymo teiginių naudojimu. Tikslas yra sukurti programą, kuri būtų lengvai suprantama ir įgyvendintų numatytą tikslą.

komentarai

Patirtis rodo, kad kai žmogus bando suprasti didelę programą, nėra taip svarbu, kaip gerai sukurta programavimo kalba ir kaip naudojamos jos savybės, kiek naudinga ar net reikalinga. Papildoma informacija, pateikta įprasta žmonių kalba. Todėl programavimo kalbos suteikia galimybę programoje pateikti aiškinamuosius komentarus. Vertėjas nepaiso komentarų, todėl jų buvimas ar nebuvimas neturi jokios įtakos programai mašinos požiūriu. Vertėjo sukurtos programos versija mašinine kalba lieka nepakitusi, su komentarais arba be jų. Tačiau juose esanti informacija žmogui yra svarbi. Be jo būtų neįmanoma suprasti didelių ir sudėtingų programų.

Visual Basic yra į objektą orientuota programavimo kalba. Jį sukūrė „Microsoft“ kaip įrankį, padedantį operacinės sistemos vartotojams Microsoft Windows gali sukurti savo grafiką vartotojo sąsaja. Tiesą sakant, „Visual Basic“ yra daugiau nei tik programavimo kalba. Tai pilnas plėtros paketas programinė įranga, kuri leidžia programuotojui iš tam tikrų komponentų (pavyzdžiui, mygtukų, žymimųjų langelių, teksto laukelių, slinkties juostų ir kt.) sukurti vartotojo sąsają ir perkurti šiuos komponentus pagal savo poreikius, aprašant, kaip jie turėtų reaguoti į tam tikrus įvykius. Pavyzdžiui, mygtuko atveju programuotojas gali apibūdinti, kas turėtų nutikti, kai ant jo paspaudžiama pele. Šis programinės įrangos kūrimo iš iš anksto nustatytų komponentų metodas yra šiuolaikinė programinės įrangos kūrimo tendencija.

Dėl operacinės populiarumo Windows sistemos ir naudojimo paprastumas Vizualinis paketas Basic, Visual Basic kalba šiandien tapo viena iš labiausiai paplitusių programavimo kalbų. Kita vertus, dėl to, kad Visual Basic suderinamas tik su programinė įranga Microsoft, ji nėra pripažinta bendrosios paskirties programavimo kalba.

Yra du pagrindiniai būdai atskirti komentarus nuo programos teksto. Vienas iš jų – komentarą įrašyti specialiuose skliausteliuose. Kitas būdas – pažymėti komentaro pradžią, kuri gali užimti likusią eilutės dalį dešinėje nuo veikėjo. C++, C# ir Java galimi abu komentarų rašymo būdai. Juose komentarą galima dėti tarp ženklų /* ir */ arba pradėti nuo //. Taigi C++, C# ir Java galioja abu įrašai:

/* Tai komentaras. */

// Tai komentaras.

Reikėtų pasakyti keletą žodžių apie tai, kas turėtų būti rašoma komentaruose. Pradedantiesiems programuotojams, kai jiems pasakoma apie būtinybę pateikti programą su komentarais, dažniausiai tokia išraiška kaip

ApproachAngle – SlipAngle – HyperSpacelncine:

pridėkite komentarą „Atimkite HyperSpacelncine iš SlipAngle ir priskirkite vertę ApproachAngle kintamajam“. Tokie komentarai nepadaro programos suprantamesnio, o tik pailgina. Nepamirškite, kad komentaro tikslas yra paaiškinti programą, o ne ją pakartoti. IN šiame pavyzdyje Geriau paaiškinkite, kodėl skaičiuojama ApproachAngl e kintamojo reikšmė (jei tai neaišku iš programos). Pavyzdžiui, komentaras: „Kintamasis ApproachAngle naudojamas vėliau apskaičiuojant ForceFiel dJetti sonVel ocity kintamojo reikšmę“ yra daug naudingesnis nei ankstesnis.

Be to, dėl komentarų tarp programos teiginių kartais sunku skaityti ir suprasti programą. Komentarus, susijusius su vienu programos bloku, geriausia talpinti vienoje vietoje, pavyzdžiui, jos pradžioje. Taip sukuriama tam tikra programos dalis, kurioje pateikiamas tikslo aprašymas ir Bendrosios charakteristikos programos blokas, kuriame vartotojas gali rasti reikiamus paaiškinimus. Jei ši technika naudojama visiems programos blokams, programa įgauna vienodumą: kiekvienas blokas susideda iš aiškinamųjų komentarų, po kurių pateikiamas formalus to bloko pristatymas. Dėl tokio vienodumo programa yra daug lengviau skaitoma.

Procesiniai vienetai

Ankstesniuose skyriuose kalbėjome apie didelių programų skaidymo į mažus, valdomus vienetus naudą. Šiame skyriuje mes sutelksime dėmesį į procedūros sąvoką, kuri yra pagrindinė priemonė gauti modulinį programos, parašytos imperatyvia programavimo kalba, atvaizdą. Procedūra taip pat yra įrankis, naudojamas programoje, parašytoje į objektą orientuota kalba, siekiant aprašyti, kaip objektas turi reaguoti į įvairius įvesties signalus.

Procedūros

Procedūra yra komandų rinkinys tam tikrai užduočiai atlikti, kurį kiti programos vienetai gali naudoti kaip abstrakčią priemonę. Valdymas perkeliamas į procedūrą (naudojant mašinos kalbos šuolio instrukciją), kai reikia jos veiksmų, o vėliau, užbaigus procedūrą, grąžinamas į pradinį programos bloką (5.9 pav.). Valdymo perdavimo procedūrai procesas vadinamas procedūros iškvietimu. Programos bloką, kuris prašo atlikti procedūrą, pavadinsime iškvietimo programa arba iškvietimo vienetu.

Daugeliu atžvilgių procedūra yra maža programa, kurią sudaro deklaracijos teiginiai, po kurių seka vykdomieji sakiniai, nurodantys, ką procedūra atliks. Paprastai procedūroje deklaruojamas kintamasis yra vietinis kintamasis, tai reiškia, kad jį galima naudoti tik toje procedūroje. Šis metodas pašalina painiavą, kuri gali kilti, jei du nepriklausomi profesionalai naudoja kintamuosius tais pačiais pavadinimais. Kintamieji, kurių poveikis neapsiriboja viena programos dalimi, vadinami visuotiniais kintamaisiais, kuriuos galima rasti bet kurioje programos vietoje. Dauguma programavimo kalbų naudoja vietinius ir pasaulinius kintamuosius.

Programavimo kalbose, kurias svarstome, procedūros aprašymas yra beveik toks pat kaip ir mūsų pseudokode (žr. 4 skyrių). Ji prasideda išraiška, vadinama procedūros antrašte, kurioje, be kita ko, yra procedūros pavadinimas. Po antraštės pateikiami teiginiai, kurie išsamiau apibrėžia procedūrą.

Tačiau skirtingai nei mūsų laisvas pseudokodas, kuriame prašėme atlikti procedūrą su tokia išraiška kaip „Taikyti procedūrą Deacti vateCrypton“, dauguma šiuolaikinių programavimo kalbų leidžia iškviesti procedūrą tiesiog nurodant jos pavadinimą. Pavyzdžiui, jei GetNames, SortNames ir WriteNames yra vardų sąrašo gavimo, rūšiavimo ir spausdinimo procedūrų pavadinimai, tada programą, kuri gauna sąrašą, surūšiuoja ir spausdina, galima parašyti kaip

Taikykite GetNames procedūrą. Taikykite SortNames procedūrą. Taikykite WriteNames procedūrą.

Atminkite, kad kiekvienai procedūrai suteikėme pavadinimą, identifikuojantį procedūros atliekamą veiksmą, todėl ši trumpoji forma yra komandų seka, atspindinti programos tikslą.

Filialo operatorius

Šakos (sąlyginio šuolio) operatorius leidžia vykdyti tam tikras programos komandas, priklausomai nuo loginių sąlygų. Visual Basic šakos operatorius gali būti naudojamas dviem formomis: eilutės ir bloko.

Interneto mainai studentų darbais">

1 pavyzdys

Pavyzdžiui, jei a > b Tada max = a Kitu atveju max = b.

Jei reikia įvykdyti kelis teiginius, jie atskiriami dvitaškiais.

2 pavyzdys

Pavyzdžiui, jei a > 0 Tada b = a + 1: c = a\2.

Blokų sintaksė suteikia daugiau parinkčių, yra labiau struktūrizuota ir lengviau skaitoma.

Blokuoti sintaksę:

Būklė - loginė išraiška, kuris gali įgauti vertę Tiesa(tiesa), Netiesa(klaidinga) arba Null, kuri yra lygiavertė Netiesa. Kai vykdomas bloko šakos sakinys, patikrinama sąlyga ir, jei teisinga, vykdomas sekantis sakinys. Tada. Jei sąlyga neteisinga, ji patikrinama sąlyga2, ateina iš paskos Kitaip. Kai randama tikroji reikšmė, vykdomas teiginys_at_true2, kuris seka Tada, po kurio programa išeina PabaigaIf(t. y. vėliau Kitaip, jei jie yra, nėra tikrinami). Jei tikrosios sąlygos Kitaip nerasta, teiginys vykdomas pagal_klaidingą_sąlygą.

3 pav. Bloko sintaksės pavyzdys. Autorius24 – internetinis keitimasis studentų darbais

Pasirinkimo operatorius

Atvejo pasirinkimo operatorius vykdo konkrečius teiginius, priklausomai nuo testuojamo reiškinio ar kintamojo reikšmių rinkinio. Pasirinkite operatoriaus sintaksę:

4 pav. Pasirinkite operatoriaus sintaksę. Autorius24 – internetinis keitimasis studentų darbais

Reikšmė yra kintamasis arba išraiška, kuri patikrinama pagal vieną ar daugiau sąlygų. Vertybių sąrašas nurodomas atskiriant kableliais, reikšmių diapazonas nurodomas naudojant funkcinis žodis Į(pvz., nuo 5 iki 9).

3 pavyzdys

Naudodami metų mėnesio numerį, parodykite pranešimą, nurodantį, kuriam metų laikui priklauso nurodytas mėnuo.

>> Valdymo struktūros. Bendra informacija apie ciklus

Mokymo kursai:

Valdymo struktūros. Bendra informacija apie ciklus

Valdymo struktūros

Bendra informacija apie ciklus

Ciklai yra operacijų kartojimas tol, kol yra teisinga kokia nors loginė sąlyga. Pavyzdžiui, nustatykime ciklo sąlygą, kad tam tikras kintamasis a yra mažesnis nei 10.

Ciklas veiks tol, kol joje esantys teiginiai bus vykdomi tiek kartų, kol ši sąlyga išsipildys.

Yra trijų tipų kilpos: for, do...while, while. Apsvarstykite, pavyzdžiui, for ciklo konstrukciją.

for (kintamojo inicijavimas; sąlyga; kintamojo keitimas po kiekvieno ciklo teiginių bloko vykdymo)
{
kilpos korpusas
}

Pažvelkime į for ciklo naudojimo pavyzdį (3.1 sąrašas).

Sąrašas 3.1.
For ciklo naudojimo pavyzdys

Šioje programoje vienoje eilutėje bus rodoma dešimt žvaigždučių. Cikle nebūtina inicijuoti skaitiklio kintamojo (skaitiklio kintamasis yra kintamasis, nuo kurio priklauso ciklo korpuso vykdymų skaičius). Pažiūrėkime į programos pavyzdį, nedeklaruojant skaitiklio kintamojo cikle (3.2 sąrašas).

Sąrašas 3.2.
Programos pavyzdys nenurodant skaitiklio kintamojo cikle

Galite naudoti daugiau nei vieną skaitiklio kintamąjį. Pažiūrėkime į pavyzdį panaši programa, pateiktas Sąrašo 3.3.

Sąrašas 3.3.
Kelių skaitiklio kintamųjų naudojimo pavyzdys

Apsvarstykite ciklą while. Šioje kilpoje tam tikra sąlyga nurodoma kaip parametras. Sąlyga patikrinama prieš vykdant kilpą. Nors ciklo diagrama atrodo taip:

kol (sąlyga)
{
kilpos korpusas
}

Pažiūrėkime į pavyzdinę programą, kuri naudoja ciklą while (3.4 sąrašas).

Sąrašas 3.4.
Nors ciklo naudojimo pavyzdys

Vykdant šią programą ekrane bus rodoma dešimt žvaigždučių.

Atkreipkite dėmesį, kad jei pamiršite nurodyti sąlygos kintamojo prieaugį arba tiesiog neteisingai nurodysite sąlygą, gali įvykti vykdymo klaida, kuri nebus aptikta kompiliavimo etape ir ciklas veiks be galo.

Klaidingos programos pavyzdys.

Dabar apsvarstykime ciklą do...while.
Jis labai panašus į o kilpa ir skiriasi tik tuo, kad tikrina sąlygą ne prieš kitą ciklo vykdymą, o po jos vykdymo. Žemiau parodyta do...while ciklo diagrama.

6 skyrius. VALDYMO STRUKTŪROS Priskyrimo operatorius Paprasti ir sudėtiniai operatoriai Sąlyginis operatorius Kelių pasirinkimų operatorius Kilpos operatorius su išankstine sąlyga Ciklo operatorius su sąlyga Ciklo operatorius su parametru Besąlyginis šuolio operatorius ir procedūros


2 Ch. 6. VALDYMO STRUKTŪROS Priskyrimo operatorius Operatorius yra programavimo kalbos konstrukcija, naudojama nurodyti veiksmą arba veiksmų seką programoje su duomenimis. Programos teiginių rinkinys įgyvendina joje įdėtą algoritmą. Bet kuris operatorius reiškia tam tikrus veiksmus. Vertės „įdėjimo“ į kintamąjį procesas vadinamas priskyrimu (pirmasis priskyrimas vadinamas inicijavimu). Priskyrimas atliekamas naudojant specialią konstrukciją – priskyrimo operatorių: kintamojo identifikatorius:=:= išraiška Var W,H: Integer; Pradžia W:= 23; H = 17; W:= W*H; Galas.


3 Ch. 6. KONTROLĖS STRUKTŪROS Paprasti ir sudėtiniai teiginiai Du iš eilės einantys teiginiai turi būti atskirti kabliataškiu (tai reiškia teiginio pabaigą): a:= 11; b:= a * a; Rašyti(a,b); Sudėtinis teiginys yra teiginių seka, traktuojama kaip vienas teiginys. Suformatuota naudojant rezervuotus žodžius pradžia ir pabaiga (operatoriaus skliausteliuose). Operatorius programoje yra vienas nedalomas sakinys, kuris atlieka veiksmą. Paprastame operatoriuje nėra kitų operatorių (priskyrimo operatorius, procedūros iškvietimas,...). pradėti a:= 11; b:= a * a; Rašyti(a,b) pabaiga;


5 tada pradėkite X:= X + 5; Y:= 1 galas, kitaip Y:= -1; Sąlyginis sakinys naudojamas šakoms programuoti, t.y. situacijos, kai tam tikromis sąlygomis prireikia vykdyti " title="4 6 skyrius. VALDYMO STRUKTŪROS Sąlyginis operatorius, jei K > 5, tada prasideda X:= X + 5; Y:= 1 end else Y:= -1 ; Sąlyginis operatorius naudojamas atšakų programavimui, ty situacijoms, kai reikia vykdyti tam tikromis sąlygomis." class="link_thumb"> 4 !} 4 Ch. 6. VALDYMO STRUKTŪROS Sąlyginis operatorius, jei K > 5, tada prasideda X:= X + 5; Y:= 1 galas, kitaip Y:= -1; Sąlyginis sakinys naudojamas šakoms programuoti, t.y. situacijos, kai tam tikromis sąlygomis reikia atlikti įvairius veiksmus. Sąlyginis operatorius turi tokią struktūrą: jei loginė išraiška, tai operatorius else operatorius Kiekvienoje šakoje gali būti parašytas tik vienas operatorius. 5 tada pradėkite X:= X + 5; Y:= 1 galas, kitaip Y:= -1; Sąlyginis sakinys naudojamas šakoms programuoti, t.y. situacijos, kai reikia tam tikromis sąlygomis vykdyti "> 5 tada prasideda X:= X + 5; Y:= 1 end else Y:= -1; Sąlyginis operatorius naudojamas programuoti šakas, t. y. situacijos, kai yra poreikis atlikti įvairius veiksmus esant tam tikroms sąlygoms Sąlyginis sakinys turi tokią struktūrą: jei loginė išraiška, tada teiginys else. Kiekvienoje šakoje galima parašyti tik vieną teiginį."> 5 tada prasideda X:= X + 5; Y:= 1 galas, kitaip Y:= -1; Sąlyginis sakinys naudojamas šakoms programuoti, t.y. situacijos, kai tam tikromis sąlygomis prireikia vykdyti " title="4 6 skyrius. VALDYMO STRUKTŪROS Sąlyginis operatorius, jei K > 5, tada prasideda X:= X + 5; Y:= 1 end else Y:= -1 ; Sąlyginis operatorius naudojamas atšakų programavimui, ty situacijoms, kai reikia vykdyti tam tikromis sąlygomis."> title="4 Ch. 6. VALDYMO STRUKTŪROS Sąlyginis operatorius, jei K > 5, tada prasideda X:= X + 5; Y:= 1 galas, kitaip Y:= -1; Sąlyginis sakinys naudojamas šakoms programuoti, t.y. situacijos, kai tam tikromis sąlygomis prireikia atlikti"> !}




6 Ch. 6. VALDYMO STRUKTŪROS Kelių pasirinkimų operatorius Pasirinkimo operatorius naudojamas įgyvendinti keletą alternatyvių veiksmų variantų, kurių kiekvienas atitinka tam tikro parametro reikšmes. konstantos/ diapazono else operatorių atvejo išraiška: operatoriaus pabaiga ; Vertė ir taip pat turi būti vienas iš eilės tipų (išskyrus LongInt). Priklausomai nuo reikšmės, pasirenkamas operatorius, prieš kurį nurodoma pasirinkimo konstanta, lygi apskaičiuotai reikšmei (alternatyva yra operatoriai po kito). Konstantos reikšmės turi būti unikalios kiekviename rinkinyje, t.y. jie gali pasirodyti tik vienu variantu.


7 Ch. 6. VALDYMO STRUKTŪROS I atvejis iš (I: Word) 1: X:= X +1; 2,3: X:= X +2; 4..9: begin Write(X); X:= X + 3 (m.b. ";") galas (m.b. ";") kitaip X:= X * X; Writeln(X) (m.b. ";") pabaiga;


8 Ch. 6. VALDYMO STRUKTŪROS Ciklo operatorius „While“ (su išankstine sąlyga), o sąlyginės išraiškos operatorius do (ciklo korpusas) po funkcijos žodžio do bus vykdomas cikliškai tol, kol bus įvykdyta loginė sąlyga, t.y. tol, kol reikšmė yra True. Kad kilpa turėtų galimybę kada nors pasibaigti, jos korpuso turinys turi turėti įtakos kilpos būklei. Sąlyga turi būti sudaryta iš teisingų išraiškų ir reikšmių, apibrėžtų prieš pirmąjį ciklo korpuso vykdymą. VarF,N: LongInt;(skaičiavimas 10 Begin F:= 1; N:= 1; while N !}


9 Ch. 6. VALDYMO STRUKTŪROS Ciklo operatorius "Do" (su sąlyga) Operatoriai tarp žodžių kartojasi ir iki sudaro kilpos pagrindą. Jei tiesa, ciklas baigiasi. Ciklas "While" - "kol sąlyga yra teisinga, vykdykite pagrindinius teiginius". Ciklas "Prieš" - "vykdyti kilpos pagrindą, kol sąlyga taps teisinga"; kartoti iki False; kartoti t operatorių iki sąlyginės išraiškos;


10 Ch. 6. VALDYMO STRUKTŪROS Ciklo operatorius su parametru (ciklas pagal skaitiklį) yra eilės tipo kintamasis ir turi priklausyti tam pačiam tipui. Reikšmė keičiasi didėjančia (naudojant rezervuotą žodį iki) arba mažėjančia (žemyn) tvarka nuo reikšmės iki reikšmės pastoviu prieaugiu, lygiu intervalui tarp dviejų artimiausių verčių to tipo, kuriam ji priklauso (skirta sveikųjų skaičių tipai- tai yra 1, simboliniam - nuo vieno simbolio prie kito, kai kodą padidinate 1 ir pan.). Kilpoms leisti įdėti lizdus, ​​jei nė viena įdėta kilpa nenaudoja arba nekeičia kintamųjų – parametrų išorinės kilpos. Naudojamas „griežtoms“ kilpoms organizuoti, kurios turi būti užbaigtos tam tikrą skaičių kartų. for loop parameter:= reiškinys 1 į išraišką 2 do downto operatorius


12 Ch. 6. VALDYMO STRUKTŪROS Besąlyginis šuolio operatorius Etiketė programoje gali būti bet kur tarp operatorių ir yra atskirta nuo antrojo operatoriaus dvitaškiu ":". Besąlyginio šuolio operatorių taikymo sritis yra griežtai lokalizuota. Draudžiami perėjimai naudojant goto sakinį tarp procedūrų, taip pat tarp pagrindinio bloko ir procedūros. Besąlyginio šuolio operatorius vykdymo valdymą perkelia į programos vietą, nurodytą etikete (struktūrinio programavimo teorijos požiūriu tai „perteklinė“). goto label Etiketė be ženklo sveikasis skaičius; Etiketės ID, sintaksės diagramos ir: LabelL1, L2; Pradžia... goto L1;... L1: goto L2;... L2: End.


13 Ch. 6. VALDYMO STRUKTŪROS Besąlyginio perėjimo procedūros Nestruktūrinio valdymo perdavimo tvarka dirbant su ciklinėmis konstrukcijomis: Pertrauka – padaro išėjimą iš bet kokio tipo ciklo; Tęsti – pereina į kitą ciklo iteraciją, nepaisydamas operatorių, likusių iki ciklo korpuso pabaigos. Išėjimo ir sustabdymo procedūros yra specialiai sukurtos išeiti iš programos blokų (procedūrų, funkcijų, pagrindinio programos bloko). Halt() išeina iš programos ir grįžta Operacinė sistema nurodytas išėjimo kodas. Exit besąlygiškai išeina iš paprogramės. Jei procedūra naudojama pagrindiniame bloke, ji vykdoma panašiai kaip ir Halt.

if, if-else ir switch teiginiai yra svarbiausios C programos vykdymo valdymo priemonės. Jie turėtų būti naudojami įgyvendinant bendra struktūra programas. Trys toliau aptariami teiginiai paprastai svarstomi rečiau, nes naudojant juos per dažnai, programa tampa mažiau įskaitoma, padidėja klaidų tikimybė ir sunkiau ją modifikuoti. Niklausas Wirthas apibrėžė struktūrinį programavimą kaip programavimą be goto.

pertraukos pareiškimas

Pertraukos sakinys naudojamas išeiti iš while , do , for , perjungimo sakinio, kuriame jis yra tiesiogiai. Valdymas perduodamas operatoriui po to, iš kurio buvo išlipta. Pertraukos teiginys turi formą

while((ch=getchar()) != EOF) /* skaitomas simbolis ch=getchar(). Jei jis neatitinka EOF, vykdomas while sakinio turinys */ ( if(ch=="\n") break; putchar(ch; )

Ciklas visiškai sustoja, kai tik įvesties metu atsiranda simbolis ". nauja linija".

Tęsti operatorių

Teiginys tęsti naudojamas norint praleisti likusią ciklo, kuriame jis yra, vykdymo iteracijos dalį. Jei ciklo sąlygos leidžia atlikti naują iteraciją, ji vykdoma, kitaip ciklas baigiasi. Tęsimo pareiškimas yra tokios formos:

while((ch=getchar()) != EOF) /* skaitomas simbolis ch=getchar(). Jei jis nesutampa su EOF, vykdomas teiginio while turinys */ ( if(ch=="\n") tęsti; putchar(ch); )

Tęsimo versija tiesiog praleidžia naujos eilutės simbolius ir išeina iš ciklo tik tada, kai nuskaitoma EOF vėliavėlė.

goto pareiškimas

Goto teiginys skirtas besąlygiškai perduoti valdymą sakiniui su nurodyta etikete. Jis turi tokią formą:

goto etiketė;

Kernighanas ir Ritchie goto teiginį laiko „labai blogu“ ir siūlo jo vartoti kuo mažiau arba visai nevartoti. Štai operatoriaus įrašo pavyzdys:

Kad šis sakinys veiktų teisingai, turi būti kitas sakinys, pažymėtas part1 . Šiuo atveju teiginio įrašas prasideda etikete, po kurios rašomas dvitaškis:

1 dalis: printf("peršokimo taškas\n");

Jei negalite apsieiti be goto , break , tęsti , grąžinkite operatorius, tada naudodami goto eikite kode pirmyn, o ne atgal.

Geriau nenaudoti pertraukos sakinio, kad išeitumėte iš ciklo anksčiau laiko, naudinga jį naudoti jungiklio sakinyje.

Nepatartina naudoti tęsimo operatorių kilpos logikai modifikuoti.

Kodėl nepatartina naudoti funkcijų su daugybe grąžinimo teiginių. Vienas iš struktūrinio programavimo principų yra tai, kad programa turi turėti vieną įėjimo ir vieną išėjimo tašką. Funkcijos su daugybe grąžinimo teiginių yra sunkiau skaitomos nei tas, kurių funkcijos korpuso pabaigoje yra tik vienas grąžinimo teiginys.

Dalintis