Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
met_2011.doc
Скачиваний:
111
Добавлен:
13.11.2019
Размер:
2.46 Mб
Скачать

Тема 2. Программирование разветвляющихся алгоритмов

Цель лабораторной работы: научиться пользоваться простейшими компонентами организации переключений (TСheckBox, TRadioGroup). Составить блок-схему, написать и отладить программу разветвляющегося алгоритма.

2.1. Операции сравнения и логические операции

Операции сравнения используются при работе с двумя операндами и возвращают значение True (1), если результат сравнения – истина, и False (0), если результат сравнения – ложь. В языке Pascal определены следующие операции сравнения: < (меньше), <= (меньше или равно), > (больше), >= (больше или равно), = (равно), <> (не равно).

Логические операции применяются только к данным логического типа (Boolean). Существуют следующие логические операции:

Andлогическое «и» (пересечение),

Orлогическое «или» (объединение),

Xorисключающее «или»,

Notотрицание или логическое «не».

Примеры: 0 ≤ у ≤ 20 => (0<=у) And <=20)

x ≠ 0 или у=0 => (x<>y) Or =0)

x четное => Not Odd(x)

y кратно 3 => y Mod 3 = 0

2.2. Оператор условной передачи управления If

Оператор If проверяет результат логического выражения или значение переменной типа Boolean и организует разветвление вычислений.

Ф орматы оператора If:

  1. Полная форма:

If условие Then оператор_1

Else оператор_2;

Если условие (логическое выражение) истинно, то выполняется оператор_1, иначе – оператор_2.

Пример: найти наибольшее из значений a и b, т.е. Max (a, b)

I f a > b Then Max := a

Else Max := b;

  1. Сокращенная форма

If условие Then оператор;

Если условие (логическое выражение) истинно, т о выполняется оператор.

Пример: найти │а│

If a < 0 Then a:= -a;

  1. Вложенная форма:

If условие_1 Then оператор_1

Else If условие_2 Then оператор_2

Else оператор_3;

Е сли условие_1 истинно, то выполняется оператор_1, иначе, если условие_2 истинно, то выполняется оператор_2, иначе выполняется оператор_3.

П ример:

If x < 0 Then y := Sqr (x)

Else If x>0 Then y:=Power (x, 3)

Else y := 0;

2.3. Оператор выбора Case

Оператор Case применяется для выбора одного из возможных вариантов.

Формат оператора:

Case переменная_выбора Of

значение 1: оператор 1;

значение 2: оператор 2;

значение n: оператор n;

Else оператор n+1

End;

переменная_выбора, значение 1,…, значение n – константа, переменная или выражение порядкового типа (целого, символьного, логического, интервального или перечисляемого типа). Значения переменной выбора и значение 1,…, значение n должны быть одинакового типа.

При выполнении оператора Case сначала вычисляется значение переменной выбора, которое последовательно сравнивается со значением 1,…, значением n и при совпадении значений выполняется соответствующий оператор, иначе выполняется оператор n+1. Конструкция Else может отсутствовать.

Пример: выбрать функцию f(x): х2, |x|,

Case k Of

1: f := Sqr (x);

2: f := Abs (x);

3: f := Sqrt(x);

Else Memo1.Lines.Add (‘F(x) не задана!’)

End;

2.4 Оператор безуславной передачи управления GoTo

Оператор безусловной передачи управления имеет вид:

GoTo <метка>;

Метка – это идентификатор, описанный в разделе меток Label.

Например:

Label M1;

………

Goto M1;

………..

M1: y:=Sin(x);

……………

Оператор GoTo передает управление оператору с указанной меткой, в данном случае – M1. Оператор, следующий за GoTo, обязательно должен иметь метку, иначе он никогда не получит управление. По возможности следует избегать использования оператора GoTo, так как это приводит к созданию неэффективных программ. Перескок внутри программы приводит к тому, что нужно заново обновлять очередь команд, готовых к выполнению в процессоре, и перенастраивать его управляющие регистры. Чем меньше в программе операторов Goto, тем выше квалификация программиста.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]