Структура оператора case
Структура оператора caseСкачать файл - Структура оператора case
Оператор цикла с предусловием WHILE. Оператор цикла с постусловием REPEAT Оператор цикла с параметром FOR. Процедуры BREAK, CONTINUE, EXIT и HALT. Простой и составной операторы. Оператор в программе — это единое и неделимое предложение, выполняющее какое-либо действие. Типичный простой оператор — это оператор присваивания. Другим примером может служить вызов какой-либо процедуры в программе. Важно, что под любым оператором подразумевается действие присваивание, вызов подпрограммы и т. Блоки описания переменных, констант, типов и меток не являются в этом смысле операторами. Если какое-то действие мыслится как единое, но реализуется несколькими различными операторами, то последние могут быть представлены как составной оператор. Составной оператор — это последовательность операторов, перед которой стоит слово BEGIN , а после — END. Слова BEGIN и END часто именую операторными скобками. Составной оператор может содержать любое количество простых операторов. Он допускает вложенность, то есть может содержать внутри себя другие составные операторы. Составной оператор применяется в тех случаях, когда синтаксис языка Паскаль допускает использование только одного оператора, в то время как алгоритм требует задания некоторой последовательности действий. В Паскале все управляющие структуры операторы не различают простой и составной оператор: Условный оператор IF служит для организации процесса вычислений изменения последовательности выполнения операторов в зависимости от какого-либо логического условия. IF Условие THEN Оператор1 ELSE Оператор2 ;. IF Условие THEN Оператор ;. Условие может быть представлено логической константой FALSE — ложь, TRUE - истина , переменной логического типа Boolean или логическим выражением. Если условие истинно, то выполняется оператор простой или составной , следующий за словом THEN, в противном случае, когда условие ложно, будет выполняться оператор, следующий за словом ELSE. Альтернативная ветвь ELSE может отсутствовать, если в ней нет необходимости. Пусть необходимо составить программу, вычисляющую значение функции: IF Условие THEN if ПодУсловие then Обратите внимание на отсутствие точки с запятой между ключевыми словами. При вложениях условных операторов самое главное — не запутаться в вариантах сочетаний условий отчасти этому может помочь ступенчатая форма записи операторов. Но на самом деле он будет отнесен к Условию2 и выполнится только при выполнении Условия1 и невыполнении Условия2! В условии оператора IF может стоять достаточно сложное логическое выражение. О правилах построения логических выражений см. Оператор варианта необходим в тех случаях, когда в зависимости от значения какой-либо переменной нужно выполнить те или иные операторы простые или составные. Если вариантов всего два, то можно обойтись и оператором IF. Но если их, например, десять? В этом случае оптимален оператор варианта CASE. Между служебными словами CASE и OF должна стоять переменная или выражение оно вычисляется при исполнении оператора CASE целочисленного или любого порядкового типа. Набор значений — это конкретные значения управляющей переменной или выражения, при которых необходимо выполнить соответствующий оператор, игнорируя остальные варианты. Если в наборе несколько значений, то они разделяются между собой запятой.. Можно указывать диапазоны значений, например, Наборы значений и диапазоны можно комбинировать. Значения в каждом наборе должны быть уникальными, то есть они могут появиться только в одном варианте. Пересечение наборов значений для разных вариантов является ошибкой, и она будет замечена компилятором. Оператор Оператор1, Оператор2, … в конкретном варианте может быть как простым, так и составным. Здесь в зависимости от значения переменной А на экран выводится наименование оценки. Наличие варианта ELSE обеспечивает вывод сообщения об ошибке в случае, когда введено число вне интервала Применяется для организации циклов с неизвестным заранее числом повторений, логика которых предполагает выполнение цикла пока истинно некоторое условие. WHILE Условие DO Оператор;. Само условие цикла может быть логической константой, переменной или логическим выражением. Условие выполнения тела цикла WHILE проверяется до начала каждой итерации. Поэтому если условие сразу не выполняется, то тело цикла игнорируется и будет выполнятся оператор, стоящий сразу за телом цикла. Оператором в теле цикла может быть другой циклический оператор, то есть циклы могут быть вложенными. При написании циклов с предусловием следует помнить о двух вещах. Во-первых, чтобы цикл имел шанс когда-нибудь завершится, содержимое его тела должно обязательно влиять на условие цикла. Во-вторых, условие должно состоять из корректных выражений и значений, определенных еще до первого выполнения тела цикла. Обратите внимание на присваивание N: Без него значение N может быть любым, и условие может оказаться некорректным, не говоря уже о самом значении факториала. Значение N меняется внутри цикла. При этом гораздо безопаснее так писать тело цикла, чтобы оператор, влияющий на условие, был бы последним. Это гарантирует от нежелательных переборов. Если, скажем, в рассмотренном выше примере, поставить строку N: Но от этого программа вряд ли станет нагляднее. Оператор цикла с постусловием REPEAT…UNTIL. Применяется для организации циклов с неизвестным заранее числом повторений, логика которых предполагает выполнение цикла до тех пор пока не станет истинным некоторое условие. Условие цикла может быть логической константой, переменной или логическим выражением. Оператор REPEAT…UNTIL имеет две части: Поэтому необходимости в использовании составного оператора для построения тела цикла из нескольких простых операторов не возникает. Принципиальное отличие оператора REPEAT…UNTIL от оператора WHILE в том, что проверка условия производится не перед началом выполнения тела цикла, а после его выполнения, когда решается вопрос, повторить ли еще раз действия. Поэтому тело цикла всегда выполняется по крайней мере один раз. Этот цикл пустой и никогда не прекращающийся. Он хорош только в том случае, когда нужно заблокировать программу, и, возможно весь компьютер. Но если отбросить шутки, то можно и его пристроить в дело. Обычно так организуют программы с повторяющимися действиями: А прервать цикл можно специальными операторами EXIT и HALT. Это имеет смысл, если условий завершения программы много или они очень сложны. Кроме того, циклы с параметром позволяют организовать автоматическое изменение значения некоторой переменной в определенном диапазоне. Оператор, представляющий собой тело цикла, может быть как простым, так и составным. Параметр цикла это обычная переменная, описанная в текущем блоке. Шаг изменения значения параметра цикла всегда постоянный в случае целочисленного типа равен единице. Изменение параметра цикла может быть как возрастающим, так и убывающим. В первом случае МладшееЗначение должно быть больше чем Старшее , а во втором — наоборот. На месте младших и старших значений могут стоять константы, а могут и переменные или выражения, совместимые по присваиванию с параметром цикла. Выполнение цикла начинается с присваивания параметру стартового значения. Затем следует проверка, не превосходит ли параметр конечное значение случай с TO или не является ли он меньше конечного значения случай с DOWNTO. Если результат проверки утвердительный, то цикл считается завершенным. В противном случае выполняется тело цикла оператор, следующий за словом DO , и после этого параметр цикла меняет свое значение на следующее. Далее снова производится проверка значения параметра цикла, то есть алгоритм повторяется. Запрещается изменять параметр цикла и его старшее и младшее значения внутри тела цикла. Кроме того, параметр цикла не может участвовать в построении диапазонов этого же цикла. Операторы FOR могут быть вложенными друг в друга, например. Процедура BREAK применяется для досрочного прекращения циклов WHILE, R EPEAT…UNTIL и FOR. Процедура CONTINUE вызывает переход к следующей циклической итерации игнорируя расположенные ниже операторы, составляющие тело цикла. В примере применен цикл FOR, в котором по убывающий перебираются возможные кандидаты в наибольший общий делитель. Критерий делимости — равенство нулю остатка от деления операция mod. Если кандидат значение переменной CoomDiv не является делителем числа num2, по команде CONTINUE начинается следующий проход цикла, а операторы, оставшиеся в теле цикла, не выполняются. Если число CommDiv оказывается делителем числа num2 и num1, что проверяется вторым оператором IF тела цикла, значит, оно — общий делитель. А поскольку перебор идет от больших к меньшим значениям, первый найденный общий делитель — наибольший. Выводим его на печать и прерываем цикл командой BREAK. Процедура EXIT завершает работу своего программного блока. Если EXIT вызывается внутри процедуры или функции, то их работа завершается. Если EXIT вызывается в основном блоке программы, то это приводит к ее завершению. Этот код впоследствии может быть проанализирован, в частности командой IF ERRORLEVEL в среде MS-DOS. Значение ERRORLEVEL после остановки программы будет равно значению n. Вызов процедуры HALT без параметра эквивалентен вызову HALT 0. На основе процедуры HALT можно легко построить программу, например ASK. PAS, для организации диалога в BAT-файлах MS-DOS. PROGRAM ASK; VAR i: ECHO OFF CLS ECHO Сейчас вы можете: ECHO 0 - Завершить работу ECHO 1 — Запустить Norton Commander ECHO 2 — Отформатировать жесткий диск ECHO Ваш выбор? Управляющие структуры языка операторы.
Урок 10. Немного про Case и goto.
2 Оператор варианта case
Операторы условия и выбора
Как сделать акустику своими руками
Значение имени равиль на татарском