Добавил:
kostikboritski@gmail.com Выполнение курсовых, РГР технических предметов Механического факультета. Так же чертежи по инженерной графике для МФ, УПП. Писать на почту. Дипломы по кафедре Вагоны Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
72
Добавлен:
12.08.2017
Размер:
8.79 Mб
Скачать
    1. Программирование разветвляющихся алгоритмов

Разветвляющимся алгоритмомназывается такая алгоритмическая конструкция, которая обеспечивает выбор между несколькими альтернативами в зависимости от условия или значений входных данных.

      1. Логические выражения

Выражение называется логическим, если результатом его вычисления является логическое значениеtrue(истина) илиfalse(ложь). Логические выражения в языкеPascalслужат для записи условий выполнения определенных операторов или поиска необходимых данных и чаще всего встречаются в операторах ветвления и цикла.

Простые логические выражения могут содержать константы, переменные и выражения сравнимого типа, соединенные между собой операциями отношения (<, >, <=, >=,<>). Из простых логических выражений составляются более сложные с использованием логических операций not,and,or,xor(таблица 2.4). Приоритет выполнения логических операций следующий:

1) not; 2)and; 3)or;xor.

Изменение приоритета логических операций регулируется скобками. Рассмотрим несколько примеров записи логических выражений на Pascal:

Логическое выражение

Запись на языке Pascal

Оба числа a и b положительны

(a>0) and (b>0)

Хотя бы одно из чисел a и b положительно

(a>0) or (b>0)

Только одно из чисел a и b положительно

(a>0) xor (b>0)

(x>=a) and (x<=b)

(x<a) or (x>b)

или not((x>=a) and (x<=b))

и

((x<a) or (x>b)) and (x<>c)

Число x принадлежит одному из интервалов [ab] или [c; d]

(x>=a) and (x<=b) or (x>=c) and (x<=d)

      1. Оператор условного переходаif. Оператор выбораcase

Для реализации ветвления на Pascalиспользуются условный операторifи оператор множественного выбораcase.

Условный оператор (оператор условия, ветвления, альтернативы)это структурированный оператор, предназначенный для выделения из составляющих его операторов одного, который и выполняется в дальнейшем.

Оператор if, как и остальные структурированные операторы, обычно включает в себя составные операторы.

Форматусловного оператора (полнаяформа):

if <логическое выражение> then <оператор 1> else <оператор 2>;

где ifозначаетесли,thenто,elseиначе.

Принцип действия:

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

Можно использовать краткуюформу условного оператора:

if <логическое выражение> then <оператор>;

Принцип действия:

Вычисляется значение логического выражения, т. е. проверяется условие. Если значением логического выражения является true(истина), то выполняется оператор, следующий после словаthen. Если значением логического выражения являетсяfalse(ложь), то управление передается на оператор, следующий после условного.

Примечания.

1 Если в зависимости от условия предполагается выполнить несколько действий, то соответствующие операторы берутся в операторные скобки begin…end (используется составной оператор).

2 Перед зарезервированными словами then и else знак «;» никогда не ставится, т. к. конструкция if … then … else …; является единым оператором.

Пример 2.3.Составить программу вычисления значения выражения при всевозможных значениях переменнойa1:

Решение.

Program task_if;

var

a1 : real; {описание переменной}

z, z1 : real; {описание вспомогательной и

вычисляемой переменной}

begin

write(Введи значение a1); {вывод вспомогательной фразы}

readln(a1); {ввод значения переменной a1}

if a1>0

then z:=sqr(ln(a1)/ln(10))

else

if a1<0

then begin z1:=cos(a1)/sin(a1); {расчет котангенса}

z:=z1/(sqr(z1)*z1+5)

end

else z:=0;

writeln(a1=,a1:3:2,  z=,z:6:3)

end.

Оператор множественного выбора caseпозволяет выбрать одно из нескольких возможных продолжений программы. Параметром, по которому осуществляется выбор, служитключ выбора− выражение любого порядкового типа (кромеlongint).

Формат оператора выбора:

case <ключ_выбора> of

<список_выбора 1> : <оператор 1>;

<список_выбора 2> : <оператор 2>;

<список_выбора N> : <оператор N>;

[else <операторы>]

end;

Здесь

  • case,of,else,end− зарезервированные слова (в переводе означающие соответственновыбор,из,иначе,конец),

  • <ключ_выбора>− имя переменной или выражение порядкового типа (кромеlongint);

  • <список_выбора 1>, …, <список_выбора N>− константа или список констант того же типа, что и выражение <ключ_выбора>;

  • <оператор 1>, …, <оператор N>− произвольные операторы языкаPascal, в том числе составной и структурированные.

Принцип действияоператораcase:

Вычисляется значение выражения <ключ_выбора>, затем в последовательности <список_выбора> отыскивается тот, которому принадлежит константа, равная вычисленному значению <ключа_выбора>. Оператор, соответствующий выбранному списку, выполняется, остальные − игнорируются. После этого оператор выбора caseзавершает свою работу. Если в списке выбора не будет найдена константа, соответствующая вычисленному значению ключа выбора, управление передается операторам, стоящим за словомelse. Частьelse <операторы>можно не использовать.

Пример 2.4. Составить программу, организующую ввод значенийxиy, и, в зависимости от выбора пользователя, выдающую на экран их сумму, разность, произведение или частное.

Решение.

program Calculus;

label m1;

var

operation : Char; {Знак операции}

x, y, z : Real; {Операнды и результат}

begin

writeln('Введите переменные x,y= '); readln(x,y);

write('Введите операцию: '); readln(operation);

case operation of

'+':z:=x+y;

'-':z:=x–y;

'*':z:=x*y;

'/':z:=x/y

else writeln('Неверный ввод'); goto m1;

end;

writeln ('результат=',z:8:3);

m1:end.

Соседние файлы в папке экзамен информатика