Циклы и ветвления в паскале

Циклы и ветвления в паскале

Проанализируем, как осуществляются ветвления Паскаль. В Паскале применяется 2 оператора для реализации условных переходов, а именно if и case и еще один оператор для реализации безусловного перехода — goto. С их помощью может быть нарушен последовательный порядок выполнения программы. Остановимся поподробнее на каждом из операторов. Оператор условного перехода в Паскале представляется в виде:

Условие — это логическое выражение, от которого зависит выбор одной из двух альтернативных ветвей алгоритма. Если условие принимает значение true (истина), выполняется оператор1, помещенный за ключевым словом then. Иначе выполняется оператор2, записанный за ключевым словом else (в этом случае оператор1 опускается).

Когда указанные операторы выполнены, то программа переходит к выполнению команды, стоящей после оператора if. И помните, что никогда не ставится символ «;» перед else (иначе возникает синтаксическая ошибка). Ключевое словоelse может как присутствовать, так и отсутствовать в операторе if:

Но тогда в случае, когда не выполнено логическое условие, то управление передается оператору, которые стоит в программе после конструкции if.

Заметка. Синтаксис языка Паскаль позволяет записать только один оператор после ключевых слов then и else, вследствие этого группа инструкций должна быть объединена в составной оператор (заключить между служебными слова begin и end). Иначе происходит логическая ошибка программы, и компилятор ошибок не выдает, однако программа все-таки работает неправильно. Приведем примеры:

В процессе создания программы часто приходится производить выбор одного из нескольких альтернативных путей выполнения программы. Мы уже знаем, что подобный выбор организуется при помощи оператора if. Однако для большего удобство используют другой специальный оператор выбора case, формат которого представлен ниже:

либо с ключевым словом else:

Мы видим, что за ключевым словом else записано некоторое выражение. Оно называется селектором, может иметь любой перечисляемый тип. В нашем примере в состав «варианта» входит одна или большее количество констант или диапазонов, которые разделяются запятыми. Необходимо, чтобы они принадлежали к одному и тому же типу, что и селектор.

Читайте также:  Что делать если odin не видит телефон

При этом не допускается более одного упоминания варианта в записи инструкции case. Из указанного множества операторов выбирается тот оператор, перед которым записан совпадающий со значением селектора вариант. В противном случае, выполняется оператор, следующий за словом else (в случае, если таковой имеется). Приведем пример:

Оператор безусловного перехода goto

И, наконец, перейдем к рассмотрению безусловного оператора goto:

При выполнении программы оператор goto осуществляет переход к помеченному оператору программы (перед ним стоит метка). Она должна быть представлена в разделе описания меток той или иной функции и процедуры, в которой она используется (не рекомендуется переходить из одной функции или процедуры в другую, иначе ошибка программы). В исходном тексте программы необходимо существование оператора, зафиксированного определенной меткой (уже знаем, что ставится она перед оператором и разделяется символом «:»).

Пример:

Приведенные выше опера условного и безусловного перехода помогут Вам правильно организовать ветвления Паскаль.

Одной из основных алгоритмических структур является ветвление (альтернатива).

Если условие выполняется, то будет выполнена инструкция "1", если нет, то — инструкция "2". Несмотря на то, что в схеме присутствуют два действия, выполнено будет только одно, так как условие либо ложно, либо истинно. Третьего не дано. Такая схема позволяет решать задачи, в которых в зависимости от сложившихся обстоятельств требуется совершить то или иное действие. Нет никакого сомнения, что число задач такого рода огромно. Более того, очень сложно придумать реально значимое задание, алгоритм выполнения которого содержал бы в себе простое прямое следование команд. Даже примитивный пример, взятый из курса математики, как вы увидите, не может быть решен без использования ветвления. Итак, необходимо вычислить значение выражения y=1/x. Вам известно, что данная функция не всегда имеет значение, то есть не для всех значений аргумента существует значение результата. Наша задача так составить алгоритм, чтобы исполнитель ни в коем случае не встал в тупик, даже при получении нуля в качестве аргумента. Сформулировать это на естественном языке не трудно:

Читайте также:  Интернет подключен но не работает на компьютере

1. Получить значение x.

2. Если x=0, то сообщить, что выражение значения не имеет, иначе — вычислить y как 1/x.

Таким образом используется приведенная выше алгоритмическая структура. Она может быть выражена простыми словами:

Как это записать на Паскале? Да точно так же, только по-английски.

Формат условного оператора на языке Паскаль:

Обратите внимание на то, что в Then- и Else- части стоит только один оператор. Но что делать, чтобы решить задачу, в которой по выполнению или невыполнению условия нужно совершить не одно, а несколько действий? Здесь приходит на помощь уже известный вам составной оператор. В операторные скобки можно заключить любое количество операторов.

Вариант условного оператора в этом случае:

Знак "точка с запятой" не ставится перед служебным словом Else, но операторы в группах, естественно, отделяются друг от друга этим знаком.

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

В простых условиях могут применяться знаки операций сравнения: >(больше), (не равно), >=(больше или равно), =(D1*(45-2))

Приведем пример решения еще одной задачи: "Из двух чисел выбрать наибольшее".

На первый взгляд решение очевидно, но оно не столь тривиально, как кажется.

Writeln(‘Введите два числа’);

If A>B Then C:=A Else C:=B; <Если A>B, то результат — A, иначе результат — B>

Еще один классический пример: "По заданным коэффициентам решить квадратное уравнение". Эта задача сложнее, поэтому перед тем как писать программу составим алгоритм, записав его в виде блок-схемы.Сначала вводим коэффициенты, затем вычисляем дискриминант. Теперь возникает две возможности: либо отсутствие действительных корней в случае отрицательного дискриминанта, либо эти корни можно все-таки вычислить и вывести на экран в случае неотрицательного дискриминанта (случай равенства дискриминанта нулю входит сюда же, корней — два, только они одинаковые J).

Читайте также:  Как сохранить ворд 2003 в 2007

При записи алгоритма на языке программирования следует учесть, что в ветви "нет" не одно действие, а три, поэтому следует применить составной оператор. Арифметические выражения не забывайте записывать в соответствии с правилами языка Паскаль. В остальном, эта программа не сложнее предыдущей.

Var A, B, C, D, X1, X2: Real;

Writeln (‘Введите коэффициенты квадратного уравнения’);

If D 8) and (5 8

ложно 5 8) and (5 8) and (5 больше

>= больше или равно

Имеют один и тот же приоритет и соединяют два выражения одного и того же типа. Результатом любой операции сравнения является значение TRUE или FALSE.

ЛОГИЧЕСКИЕ ОПЕРАЦИИ:: NOT — НЕ; AND — И; OR — ИЛИ

ПОРЯДОК ВЫПОЛНЕНИЯ ОПЕРАЦИЙ:

1. — (унарный минус, т.е. отрицание числа) NOT

2. * / DIV MOD AND

Оператор ветвления (условный оператор)

If условие THEN

где условие — логическое выражение (т.е. в него обязательно входит знак отношения, и можно определить, истинно выражение или ложно)

оператор1 — любой оператор Паскаля; этот оператор исполняется, когда условие истинно;

оператор2 — любой оператор Паскаля, в том числе и условный; этот оператор исполняется, когда условие ложно.

При выполнении этого оператора сначала вычисляется значение условия.

Если условие истинно (true), то выполняется оператор после слова THEN, а оператор2 пропускается;

Перед служебным словом Else разделитель (точка с запятой) не ставится.

or – ИЛИ (выполнение хотя бы одного из условий)

Порядок выполнения (приоритет = старшинство)
выражения в скобках

3. Фирма набирает сотрудников от 25 до 40 лет включительно. Ввести возраст человека и определить, подходит ли он фирме (вывести ответ до 25 лет – «Еще молод», старше 40 – «Пора на покой», 25 – 40 – «Вы нас устраиваете». )

4. Написать алгоритм, который по номеру дня недели — целому числу от 1 до 7
выдавать в качестве результата
название уроков в классе в соответствующий день.

Ссылка на основную публикацию
Фото с листком для вк
Сигна в ВК – это просто фотография человека с листком бумаги, на котором обычно написано чье-то имя. Часто надписи делают...
Установка виндовс зависла на начало установки
Если вы решили переустановить или установить операционную систему, но начало установки Windows 7 зависает, то в этой статье, думаю, вы...
Установка драйвера принтера отказ
Нередки ситуации, когда не устанавливается принтер, хотя система видит, что к компьютеру подсоединилось новое оборудование. Решение такой задачи требует серьезного...
Фото спортивных мужчин 40 лет
17. Джерард Батлер, 48 лет (kinopoisk) «Законопослушный гражданин» Джерард Батлер когда-то работал официантом, демонстратором игрушек и даже юристом. Он также...
Adblock detector