Содержание
-
Программирование разветвляющихся алгоритмов на языке Паскаль
Лекция 3
-
План
Оператор условного перехода if Оператор выбора case Оператор безусловного переходаgoto Литература
-
Литература
Касторнов А.Ф., Евстратова Г.А. Язык программирования Паскаль : учебное пособие для вузов. - Череповец : ГОУ ВПО ЧГУ, 2010. - 117 c. - Библиогр.: С.114. Электронный учебник по языку программирования Паскаль /http://pascal.guti.ru План
-
Оператор условного перехода if
Оператор условного перехода if позволяет выполнить одну или другую последовательность действий (операторов) в зависимости от истинности или ложности некоторого условия. В повседневной жизни условие обычно формулируется в виде вопроса, на который можно ответить Да или Нет. Например: Сумма больше 300? Номер дня недели равен 7?
-
В программе условие – это выражение логического типа (Boolean), которое может принимать одно из двух значений: истина (True) или ложь (False). При описании условий используются: операторы сравнения (=, , >, =,
-
Если в условии использован один оператор сравнения, то такое условие называется простым. Из простых условий при помощи логических операций можно строить сложные (составные) условия. При записи сложных условий необходимо учитывать то, что логические операторы имеют более высокий приоритет, чем операторы сравнения, и поэтому простые условия следует заключать в скобки.
-
Например: Var Summa, Day: Integer; Summa > 300 {Сумма больше 300? – простое условие} Day=7 { Номер дня недели равен 7? – простое условие} (Summa>300) and (Sum
-
Условный оператор if работает следующим образом: Вычисляется значение условия. Если условие истинно (True), то выполняется Оператор1, после чего выполнение оператора if заканчивается. Если условие ложно (False), то выполняется Оператор2, после чего выполнение оператора if заканчивается.
-
Полная развилка Неполная развилка. В этом случае, при ложности условия, работа оператора if заканчивается, и никакие действия им не производятся.
-
Оператор if записывается следующим образом: {Полная развилка. Перед служебным словом else «;» не ставится} if условие then Оператор1 else Оператор2; {Неполная развилка} if условие then Оператор1;
-
Если в программе по той или иной ветке необходимо выполнить несколько операторов, то запись оператора if выполняется следующим образом: if условие then begin блок операторов 1 end else begin блок операторов 2 end;
-
Пример Дано действительное x. Для функции f, график которой представлен на рисунке, вычислить f(x). Решение задачи Математическая модель: функция вычисляется по следующей формуле:
-
Составим блок-схему алгоритма.
-
Переведем алгоритм на язык Паскаль. Program ex1; varx, f:Real; begin Write('Введите x: '); Readln(x); if x=-1) and (x=0) and (x
-
Оператор выборасase
Часто возникают ситуации, когда в программе приходится осуществлять выбор одного из нескольких альтернативных вариантов. Несмотря на то, что такой выбор можно организовать с помощью оператора if, удобнее воспользоваться специальным оператором выбора Case.
-
Оператор выбора Case работает следующим образом: Вычисляется значение выражения. Это значение последовательно сравнивается с константами выбора из списка констант. Если значение выражения совпало с константой, то выполняется соответствующий данной константой оператор. На этом выполнение оператора Case заканчивается. Если значение выражения не совпало ни с одной из констант выбора, то выполняется оператор, следующий за служебным словом else. Если ветка else в операторе не описана, то оператор Case никаких действий не производит.
-
-
Оператор Case может работать только с выражениями порядковых типов. Это, например, типы Integer, Boolean. В общем виде оператор Case записывается следующим образом: caseВыражение of Константа1: Оператор1; Константа2: Оператор2; … КонстантаN: ОператорN; elseОператор(N+1) end; Перед служебными словами else и end «;» ставить необязательно. Ветку else в записи оператора можно опускать.
-
Если при нескольких константах выбора выполняется один и тот же оператор, то константы перечисляются через запятую, затем ставится «:» и указывается выполняемый оператор. Например case Выражение of Константа1, Константа2, Константа3: Оператор; Константа4: Оператор4; … КонстантаN: ОператорN; else Оператор(N+1) end;
-
Если константы выбора представляют собой диапазон целых чисел, то можно указать первую и последнюю константу диапазона, разделив их двумя точками. Например 1..6 5..8, 10, 15, 17..20
-
Если по веткам необходимо выполнить несколько операторов, то запись оператора Case выполняется следующим образом: caseВыражение of Константа1: begin блок операторов 1; end; … КонстантаN: begin блок операторов N; end; elsebegin блок операторов (N+1); end; end;
-
Пример: по номеру дня недели вывести сообщение – рабочий это день или выходной (выходными считаются суббота и воскресенье). program Ex2; var Day: integer; begin Writeln ('Введите номер дня недели в диапазоне от 1 до 7'); Readln (Day); Сase Day of 1..5: Writeln ('Рабочий день'); 6..7: Writeln ('Выходной день'); ElseWriteln ('Номер дня недели введен неверно!'); end; Readln; end. План
-
Оператор безусловного перехода goto
Помимо операторов условного перехода существует также оператор безусловного перехода goto. Формат: gotoметка; Оператор goto переходит при выполнении программы к оператору, отмеченному указанной меткой. Метка должна быть описана в разделе описания меток label.
-
Пример label 1; … begin ... goto1; ... 1: WriteLn('Переход к метке 1'); … end.
-
Понятие структурного программирования и общепринятый стиль программирования НЕ ПРИВЕТСТВУЕТ применение меток и операторов безусловного перехода в программах. Это затрудняет понимание программы как автором, так и потребителями, кроме того, применение меток отрицательно сказывается на эффективности генерируемого кода. План
Нет комментариев для данной презентации
Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.