Управление на оператори. Контролни структури в Visual Basic

Управляващите оператори (Изявление за контрол) се наричат \u200b\u200bизпълними оператори, които променят последователността на изпълнението на инструкциите на програмата. От всички оператори, използвани в програмните езици, контролните оператори предизвикаха най-много спорове. Основният предмет на обсъждане е най-лесният контролен оператор. Тя ви позволява да промените процедурата за изпълнение на програмата и да отидете на изпълнението на програмата, като започнете с определено място, което е посочено от името или номера. Следователно този оператор не е нищо повече от директното прилагане на командата за преход на машината. Наличието на такъв оператор на езика на високо равнище позволява програмистите да пишат такива несистематични програми1:

gOTO 40 20 Приложете процедура за избягване

gOTO 70 40 IF (KRYPTONITELEVEL< LethalDose) then goto 60

60 Приложете Resciremse 70 процедура ...

като има предвид, че всички тези действия могат да бъдат написани с помощта на една структура:

ако (kryptonitevel.< LethalDose)

след това (приложите процедурата за спасиране) иначе (приложите процедурата за избягване)

За да се избегнат такива трудности, съвременните езици за програмиране съдържат такива контролни оператори, които ви позволяват да записвате разклоняващите се структури, използвайки един израз. Някои общоприети разклонени структури и техните съответни програмни оператори са изобразени на различни езици за програмиране. 5.7. Моля, обърнете внимание, че вече сме се срещали с първите две структури в глава 4. В нашия псевдокод, те са представени от IF-in-int-ent и докато операторите. Третата структура, която се нарича изборът, може да се счита за разширяване на структурата I f-тогава-ел. Разликата между тях е, че операторът IF-THE-INSE ви позволява да избирате от две опции и операторът е от няколко.

Друга обща структура е за оператора на цикъла (фиг. 5.8), подобно на оператора на нашия псевдокод. Разликата между тях е, че инициализацията, модифицирането и проверката на условията на завършване на цикъла се комбинират в един оператор. Такъв оператор е удобно да се използва, когато цикълът трябва да извърши определен брой пъти - веднъж за всяка стойност на променливата на параметъра на определен интервал. По-специално операторът е показан на фиг. 5.8, предписва велосипедното тяло, което трябва да бъде направено няколко пъти: когато стойността на променливата на броя е 1, тогава, когато стойността му е 2 и последният път е равен на 3.

От горните примери може да се заключи, че разклоняващите се с малки вариации присъстват в императивни и в обектно-ориентирани езици за програмиране. В теоретичната изчислителна технология има предположение, че решението на всяка задача, имащо алгоритмично решение, може да бъде написано с ограничен брой структури. Ще обсъдим това изявление в глава 11. Междувременно трябва да се отбележи, че изучаването на езика за програмиране не е безкрайно изследване на различни управленски оператори. Всъщност повечето контролни структури, използвани в съвременните езици за програмиране, са вид структури, описани в тази глава.


Изборът на кои структури включват по език на програмиране, вкус. Преди създателя на езика, целта е да се разработи език, който не само ви позволява да записвате алгоритми в удобна форма за четене, но и помага на програмист в това. Тази цел се постига чрез ограничаване на използването на тези елементи, които исторически доведоха до неточно програмиране и въвеждането на добре обмислени елементи. В резултат на това имаме структурно програмиране (структурирано програмиране), което съчетава програми за писане на програми и правилното използване на контролни оператори. Целта е да се създаде програма, лесна за разбиране и изпълнение на задачи, зададени преди нея.

Коментари

Опитът показва, че когато човек се опитва да разбере програмата с големи размери, не е толкова важно колко добре се обмисля езикът за програмиране и как се използват нейните свойства, но дори и допълнителната информация, представена на нормалния човешки език, е необходими. Ето защо, в програмните езици, е възможно да се настанят в програмата Обяснителни бележки (коментари). Преводачът игнорира коментарите, така че тяхното присъствие или отсъствие не влияе на програмата от гледна точка на машината. Програмата на езика на машината, генерирана от преводача, остава непроменена, със или без коментари. Но информацията, която съдържат, е важна за хората. Без него би било невъзможно да се разберат големи и сложни програми.

Visual Basic е обектно-ориентиран език за програмиране. Той е разработен от Microsoft като инструмент, с който потребителите на операционната система Microsoft Windows могат да развият свой собствен графичен потребителски интерфейс. Всъщност Visual Basic е повече от просто език за програмиране. Това е пълен пакет за разработване на софтуер, който позволява на програмиста да създаде потребителски интерфейс от определени компоненти (като бутони, флагове, текстови полета, превъртане и др.) И повтори тези компоненти според техните нужди, описващи как трябва да отговорят как трябва да отговорят на определени събития. Например, в случай на бутона програмист, той може да опише какво трябва да се случи, ако кликнете върху мишката. Този метод за създаване на софтуер от предварително определени компоненти е съвременна тенденция в разработването на софтуер.

Благодарение на популярността на операционната система Windows и удобството да използвате визуалния основен пакет, Visual Basic е днес един от най-често срещаните езици за програмиране. От друга страна, поради факта, че Visual Basic е съвместим с софтуерните инструменти на Microsoft, той не се признава като език за програмиране с общо предназначение.

Има два основни начина за разделяне на коментарите от текста на програмата. Един от тях е да сключи коментар в специални скоби. Друг начин е да се определи началото на коментара, който може да заема оставащата част от линията вдясно от знака. В C ++, с # и Java, и двата начина за писане на коментари са възможни. В тях коментарът може да бъде поставен между знаците / * и * / или да го стартира с //. Така в C ++, с # и Java, и двата записа са разрешени:

/ * Това е коментар. * /

// това е коментар.

Трябва да се каже няколко думи за какво да пишете в коментарите. Начинаещи програмисти, когато говорят за необходимостта от предоставяне на програма с коментари, обикновено до такъв израз, както

Grounchange - Slipangle - Hyperpacelecine:

добавете коментар "SUBTRACT HIPERSPACELCINE от SLIPHANK и присвоявате стойността на променливата на възникване." Такива коментари не правят програма по-разбираема, но само го удължи. Не забравяйте, че целта на коментара е да обясните програмата и да не го повторите. В този пример е по-добре да се обясни защо се изчислява стойността на променливата на подбранцата (ако не е ясна от програмата). Например, коментар: "Променливата на наближаването се използва по-късно, за да се изчисли стойността на променливата на Forcefiel Djetti Sonvel," много по-полезна от предишната.

В допълнение, коментарите, поставени между програмните оператори, понякога затрудняват прочитането и разбирането на програмата. Най-добре е да поставите коментари по отношение на един програмен блок на едно място, например в началото. Това създава някаква част от програмата, която съдържа описание на целта и общите характеристики на програмния блок, където потребителят може да намери необходимите обяснения. Ако използвате такова приемане за всички програмни блокове, тогава програмата придобива еднаквост: всеки блок се състои от обяснителни коментари, последвани от официално представяне на този блок. Такава еднородност значително улеснява четенето на програмата.

Процедурни единици

В предишни глави говорихме за ползите от разделянето на големи програми за малки управлявани единици. В този раздел ще насочим вниманието си към концепцията за процедура, която е основното средство за получаване на модулно представяне на програмата, написана в императивния език за програмиране. Процедурата е и инструмент, който се използва в програмата, написана в обектно-ориентиран език, за да опише как обектът трябва да отговори на различни входни сигнали.

Процедури

Процедурата е набор от команди за изпълнение на някаква задача, която други софтуерни единици могат да използват като абстрактен инструмент. Контролът се предава на процедурата (използвайки командата за преход на машината), когато действията му са необходими, а след това след завършване на процедурата, връщанията отново връщат оригиналния софтуер (фиг. 5.9). Процесът на предаване на процедурата се нарича процедурен разговор. Програмата, която изисква изпълнението на процедурата, ние ще се нарича програма за повикваща или модула за повикване (звено).

В много отношения процедурата е малка програма, състояща се от оператори на описание, последвани от изпълними оператори, които определят извършената процедура за действие. Като правило, променливата, декларирана в процедурата, е локална променлива (локална променлива), която е, тя може да се използва само в тази процедура. Този подход елиминира объркването, което може да възникне, ако две независими пролузни глупаци използват променливи със същите имена. Променливи, чието действие не е ограничено до една част от програмата, се наричат \u200b\u200bглобални променливи (глобална променлива), те са достъпни навсякъде в програмата. Повечето езици за програмиране използват местни и глобални променливи.

В разглежданите езици за програмиране описанието на процедурата е почти същото като в нашия псевдокод (виж глава 4). Тя започва с израз, който се нарича заглавие на процедурата и който, наред с други неща, съдържа името на процедурата. Заглавието е последвано от оператори, определящи процедурата по-подробно.

Въпреки това, за разлика от нестериозния псевдодод, в който поискахме процедурата, използвайки такъв израз, как да "приложим процедурата на DaCTI Vatecrypton", повечето съвременни езици за програмиране ви позволяват да се обадите на процедурата, просто като посочите името му. Например, ако Getnames, Sortnames и Writename са процедурни имена за получаване, сортиране и извеждане за отпечатване на списък с имена, програма, която получава списък, сортирането и печат, може да бъде написано като

Прилагане на процедурата на Gettnames. Прилагайте процедурата за справяне. Прилагане на процедурата за записване.

Отбележете, че тъй като сме задали името, което означава, че действието, извършено по тази процедура, тази кратка форма на запис е командната последователност, отразяваща заданието на програмата.

Разклоняване на оператора

Изявлението на клона (условно преход) ви позволява да извършвате определени програмни команди в зависимост от логическите условия. На визуалния основен език клонът може да се използва в два вида: линия и блок.

интернет борса студентски работи "\u003e

Пример 1.

Например, ако a\u003e b след това max \u003d друго max \u003d b.

Ако трябва да извършите няколко оператора, те са разделени с дебелото черво.

Пример 2.

Например, ако a\u003e 0 след това b \u003d a + 1: c \u003d a \\ t

Block Syntax осигурява повече функции, е по-структуриран и по-четлив.

Синтаксис на блок:

Състоянието е логически израз, който може да отнеме стойност Вярно. (вярно), Фалшив (лъжа) или НУЛАкоето се равнява на Фалшив. Когато изпълнявате декларация за блок, се проверява условие и ако е вярно, операторът е следващ следващия Тогава.. Ако състоянието не е вярно, проверено състояние2., Минавам Тел. Когато се намери истинската стойност, се изпълнява операторът_ster_startylock, който следва Тогава., след което програмата излиза До края на града (т.е. последващи действия ТелАко са, не са проверени). Ако са истински условия Тел не е намерен, изпълнен от оператор_NUCHNY_V.

Фигура 3. Пример за синтаксис на блок. Автор24 - Студентска интернет обмяна

Избор на оператор

Оператор за избор на случай Извършва определени оператори в зависимост от набора от стойности на експресията или променливите стойности. Синтаксис на оператора за избор:

Фигура 4. Синтаксис на оператора за подбор. Автор24 - Студентска интернет обмяна

Стойността е променлива или израз, която се проверява върху едно или повече условия. Списъкът на стойностите е зададен чрез запетая, обхватът на стойностите се настройва с помощта на услуга Да се. (например 5 до 9).

Пример 3.

До месец на годината да оттегли послание за това, което е посоченият месец за годината.

\u003e\u003e Контролни структури. Преглед на циклите

Курсове за обучение:

Контролни структури. Преглед на циклите

Контролни структури

Преглед на циклите

Циклите са повторение на операциите Докато е вярно определено логическо състояние. Например, ние определяме състоянието на цикъла, който определена променлива е по-малка от 10.

Цикълът ще се извърши дотогава (т.е. оградата, затворени в нея, ще се извършват толкова пъти), докато това състояние стане правилно.

Има три вида цикли: за, правят ... докато, докато. Обмислете например дизайна на цикъла.

за (инициализация на променлива; състояние; променлива променлива след всяко изпълнение на блока на цикъла)
{
циклично тяло
}

Помислете за пример за използване на цикъла (вписване 3.1).

Изброяване 3.1.
Пример за използване на цикъла за

Тази програма ще покаже десет звезди на екрана на една и съща линия. Не е необходимо да се инициализира променливият брояч в цикъла (броячът на променлива се нарича такава променлива, от която изпълнява броя на цикъла). Помислете за пример за програма без обявяване на променливата на метъра в цикъла (вписване 3.2).

Изброяване 3.2.
Пример за програмата без обявяване на променливата на метъра в цикъла

Можете да използвате не един променлив брояч, но няколко. Помислете за пример за такава програма, представена в списъка 3.3.

Изброяване 3.3.
Пример за използване на множество променливи

Помислете за времето. В този цикъл условието е определено като параметър. Състоянието се проверява преди извършване на цикъл. Веригата на цикъла на Whele има следната форма.

докато (състояние)
{
циклично тяло
}

Помислете за пример за програма, която използва целия цикъл (вписване 3.4).

Изброяване 3.4.
Пример за използване на цикъл

В резултат на изпълнението на тази програма на екрана ще се показват десет звезди.

Обърнете внимание, че ако сте пропуснали да укажете увеличаването на променливата в състоянието или просто правилно посочете условието, тогава може да се появи грешка в изпълнението, която няма да се появи на етапа на компилация и цикълът ще се извършва безкрайно.

Пример за погрешна програма.

Обмислете сега цикъла на Do ... докато.
Тя е много подобна на цикъла и се отличава само с факта, че проверява състоянието не до друго изпълнение на цикъла, но след неговото изпълнение. Диаграмата на DO ... докато цикълът е показан по-долу.

Глава 6. Контролни структури Операторът Оператор Лесен и композитен оператор Условен оператор Мултичният цикъл на оператора с оператор на оператора на оператора с оператор на оператора и ясни преходни процедури


2 ch. 6. Контролни структури Операторът на възлагане от оператора се нарича дизайн на езика за програмиране, който служи за определяне на всяко действие или поредица от действия в програмата за данни. Комбинацията от програмните оператори изпълнява в нея алгоритъм. Всеки оператор предполага някои действия. Процесът на "препратки" на стойностите към променливата се нарича задание (първата задача се нарича инициализация). Заданието се извършва с помощта на специален дизайн - оператор на задаване: идентификатор на променливата: \u003d: \u003d Expression var W, H: цялостен; Започнете w: \u003d 23; H: \u003d 17; W: \u003d w * h; Край.


3 ch. 6. Контролни структури на прости и композитни оператори Две последователни оператори трябва да бъдат разделени с точка и запетая (има смисъл до края на оператора): A: \u003d 11; B: \u003d a * a; Пиша (a, b); Композитният оператор е последователност от оператори, считани за единични. Тя е съставена, като се използват запазени думи започва и завършват (операторски скоби). Операторът в програмата е едно неделимо предложение, което изпълнява всяко действие. Простата операция не съдържа други оператори (оператор на задание, процедура за оспорване, ...). Започнете a: \u003d 11; B: \u003d a * a; Пишете (A, B) край;


5 След това започнете x: \u003d x + 5; Y: \u003d 1 край ste: \u003d -1; Условния оператор се използва за програмиране на разклоняване, т.е. Ситуации Когато има нужда при определени условия за изпълнение на "Заглавие \u003d" (! Lang: 4 ch. 6. Контролни структури Условен оператор Ако K\u003e 5 след това започнете x: \u003d x + 5; y: \u003d 1 край else y: \u003d \u003d 1 край st: \u003d -1; условният оператор се използва за програмиране на разклоняване, т.е. ситуации, когато има нужда при изпълнение на определени условия" class="link_thumb"> 4 !} 4 ch. 6. Контролни структури Условен оператор Ако k\u003e 5 след това започнете x: \u003d x + 5; Y: \u003d 1 край ste: \u003d -1; Условния оператор се използва за програмиране на разклоняване, т.е. ситуации, при които се възниква необходимостта от определени условия за извършване на различни действия. Условния оператор има структура: Ако логически израз на остатък операторът във всеки клон е позволено да записва само един оператор. 5 След това започнете x: \u003d x + 5; Y: \u003d 1 край ste: \u003d -1; Условния оператор се използва за програмиране на разклоняване, т.е. Ситуации, когато има нужда от определени условия за изпълнение "\u003e 5, след това започнете X: \u003d X + 5; Y: \u003d 1 край y: \u003d -1; условният оператор се използва за програмиране на клоновете, т.е. ситуации, при които има нужда Възникват определени условия. Условните оператори има структура: ако логически израз, който оператор, който оператор, който и друг оператор във всеки клон е позволено да записва само един оператор. "5 След това започнете X: \u003d X + 5; Y: \u003d 1 край ste: \u003d -1; Условния оператор се използва за програмиране на разклоняване, т.е. Ситуации Когато има нужда при определени условия за изпълнение на "Заглавие \u003d" (! Lang: 4 ch. 6. Контролни структури Условен оператор Ако K\u003e 5 след това започнете x: \u003d x + 5; y: \u003d 1 край else y: \u003d \u003d 1 край st: \u003d -1; условният оператор се използва за програмиране на разклоняване, т.е. ситуации, когато има нужда при изпълнение на определени условия"> title="4 ch. 6. Контролни структури Условен оператор Ако k\u003e 5 след това започнете X: \u003d X + 5; Y: \u003d 1 край ste: \u003d -1; Условния оператор се използва за програмиране на разклоняване, т.е. ситуации, когато има нужда от определени условия за изпълнение"> !}




6 ch. 6. Контролни структури Множественият оператор се използва за прилагане на няколко варианта на алтернативни действия, всяка от които съответства на неговите стойности на определен параметър. Изпращане на казуси на постоянни / различни оператори: край на оператора; Стойността и трябва да се отнася и до един от типовете последователност (с изключение на Longint). В зависимост от стойността, операторът е избран, за който е предшествана постоянната за избора, равна на изчислената стойност (алтернативни - оператори след друго). Постоянните стойности трябва да бъдат уникални във всеки комплект, т.е. Те могат да се появяват само в едно изпълнение.


7 ch. 6. Контролни структури Случай I от (I: Word) 1: X: \u003d X +1; 2.3: x: \u003d x +2; 4..9: Започнете писане (x); X: \u003d x + 3 (m. '; ") Край (mb"; ") друго x: \u003d x * x; Writeln (x) (MB ";") край;


8 ch. 6. Оператор на цикъла на контролните структури "Докато" (с предпоставка), докато условното обслужване правя оператор (цикъл), стоящ след думата на услугата, ще се извършва циклично, докато се извърши логическо състояние, т.е. т.е. Досега, равен на вярно. За да може цикълът да има шанс да приключи, съдържанието на тялото му трябва да повлияе на състоянието на цикъла. Състоянието трябва да се състои от правилни изрази и стойности, определени преди първото изпълнение на цикъла. Varf, n: longint; (изчисление 10 Begin F:= 1; N:= 1; while N !}


9 ch. 6. Контролни структури Операторът на цикъла "до" (с посткон) операторите между думите се повтарят и докато образуват тялото на цикъла. Ако е вярно, цикълът е завършен. Цикълът "Докато" - "досега състоянието е вярно, за извършване на оператори на тялото." Цикъл "до" - "да се извърши тялото на цикъла, докато истинското състояние стане"; Повторете до фалшивост; Оператор на резета до условно изразяване;


10 ch. 6. Контролни структури Цикълът на цикъла с параметъра (цикъл в брояча) е променлива на ординалния тип, същия тип трябва да бъде същото. Стойността се променя в увеличаване (при използване на запазена дума до) или намаляване на (долната) поръчка от стойност до стойност с постоянна стъпка, равна на интервала между двете най-близки стойности в вида, към който принадлежи (За чипове е 1, за символично - от един символ към друг с увеличение на код с 1 и т.н.). За циклите позволяват гнездене, ако нито на вложените цикли не използва и не променя променливите - параметрите на външните цикли. Използвани за организиране на "строги" цикли, които трябва да се правят определени времена. Fo r r параметър на цикъла: \u003d експресия 1 към експресия 2 режим на оператора


12 ch. 6. Контролни структури Безусловния преходен оператор може да стои в програмата навсякъде между операторите и отделени от втория оператор на дебелото черво ":". Обхватът на безусловните преходни оператори е строго локализиран. Преходите към оператора на Гото между процедурите, както и между основното звено и процедурата са забранени. Безусловната преходна декларация предава контрола на изпълнението на определената стойност на програмата (е "излишна" от гледна точка на теорията на структурното програмиране). Етикет на етикет Гото цял без знак; Тагове идентификатор, синтактични класации и: labell1, L2; Започнете ... Goto l1; ... l1: goto l2; ... l2: края.


13 ch. 6. Контролни структури на процедурата за безусловен преход на процедурата за неструктурно предаване на контрол при работа с циклични структури: прекъсване - прилага добив от цикъл от всякакъв вид; Продължи - преходи към следващата итерация на цикъла, пренебрегвайки оставащите оператори до края на тялото. Процедурите за излизане и спиране са специално проектирани да излизат от софтуерни блокове (процедури, функции, първичен софтуер). Halt () Излезте от програмата, като върнете операционната система към посочения код за завършване. Изходни упражнения безусловен изход от подпрограмата. Ако процедурата се използва в основното устройство, тя се извършва по подобен начин.

Ако, ако иначе и комутаторите са най-важните средства за управление на програмата в SI. Те трябва да се използват за прилагане на цялостната структура на програмата. Трима оператори, считани по-долу, обикновено се считат за по-рядко, тъй като прекалено честото използване на тяхната употреба увреждат четливостта на програмата, увеличава вероятността от грешки и затруднява променянето му. Niklaus Firth даде дефиниране на структурно програмиране като програмиране без Гото.

Прекъсване на оператора

Операторът на прекъсване се използва за излизане от време, за да превключи оператора, директно го съдържащ. Контролът се предава на оператора след оператора, от който се извършва изхода. Операторът на прекъсване има форма

докато ((ch \u003d getchar ())! \u003d Eof) / * се чете символът ch \u003d getchar (). Ако тя не съвпада с eof, тялото на оператора докато * / (ако (ако (ch \u003d\u003d ") break; putchar (ch);)

Работата на цикъла напълно спира, веднага щом се срещне символът "Нов ред", когато влизате.

Продължи оператора

Продължителният оператор служи за преминаване на останалата част от итацията на високоговорителя на цикъла, който го съдържа директно. Ако се допусне нова итерация от условията на цикъла, тя се изпълнява, в противен случай цикълът е завършен. Продължителният оператор има следната форма:

докато ((ch \u003d getchar ())! \u003d Eof) / * се чете символът ch \u003d getchar (). Ако тя не съвпада с EOF, тялото на оператора докато * / (ако (ако (ch \u003d\u003d ") продължават; putchar (ch);)

В версията с продължаващ оператор, символите "нови низи" се търгуват, а изходът от цикъла се появява само когато функцията на eof се прочете.

GOTO оператор

Операторът на GOTO е предназначен за безусловно предаване на контрол на оператора с посочения етикет. Той има следната форма:

gOTO етикет;

Kernigan и Ritchi смятат, че операторът на Гото "изключително лоша" на средствата и предлагат да го прилагат колкото е възможно повече или да не се използват изобщо. Нека дадем пример за запис на оператора:

За да направите този оператор правилно, е необходимо да имате друг оператор, имащ етикет за част1. В този случай записът на оператора започва с етикет, последван от дебелото черво:

част1: printf ("преходна точка");

Ако без да се счупите, продължете операторите, връщането не го прави, след това, когато използвате Гото, продължете по кода, а не обратно.

Прекъсването на оператора е по-добре да не се използва за преждевременно изход от цикъла, полезно е да се използва вътре в оператора на превключването.

Продължителният оператор е нежелателен за използване на логика на цикъла, за да промени.

Защо е нежелано да се използват функции с много оператори за връщане. Един от принципите на структурно програмиране е, че програмата трябва да има една входна точка и една изходна точка. Функциите с много оператори на връщане са по-сложни за четене от тези, които имат само един оператор за връщане в края на функцията на тялото.

Дял