Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лр_2_if_caseПЗТ.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
283.14 Кб
Скачать

Лабораторная работа № 2

Тема: Разработка, отладка и испытание разветвляющихся алгоритмов и программ.

Цель работы:

  1. Овладение практическими навыками разработки и программирования разветвляющихся процессов с использованием условного оператора (if, if/else).

  2. Научиться разрабатывать блок-схему условного оператора (if, if/else), изучить его структуру.

  3. Овладение практическими навыками разработки и программирования разветвляющихся процессов с использованием оператора множественного выбора (case/of).

  4. Научиться разрабатывать блок-схему оператора множественного выбора (case/of), изучить его структуру.

Программное обеспечение: Pascal (TP или BP), или ABCPascal, или FreePascal.

Аппаратное обеспечение: ЭВМ типа IBM.

Порядок выполнения работы

  1. Записать тему и цель лабораторной работы.

  2. Ознакомиться с краткими теоретическими сведениями по теме лабораторной работы.

  3. Ответить на контрольные вопросы (ответы на контрольные вопросы оформить в отчет).

  4. Выполнить практическую часть работы.

Перед началом решения задач в соответствии с вашим индивидуальным вариантом изучите примеры решения типовых задач (смотри раздел «Практическая часть работы»)

Задача №1_Использование условного оператора (if, if/else).

Задача №2_Вычисление значения составной функции с использованием условного оператора (if, if/else).

Задача №3 и №4 _Использование оператора множественного выбора (case/of).

  1. Оформить отчет о проделанной работе

Примечание:

Все задачи оформить в соответствии с установленными ранее требованиями. При оформлении 2-х задач использовать графический способ представления алгоритма решения задачи (блок-схему) (1 задача с использованием оператора (if, if/else) и 2 задача с использованием оператора множественного выбора (case/of)).Остальные задачи оформить с использованием кратких комментариев к листингу программы.

  1. Защитить работу и сдать ее преподавателю.

Контрольные вопросы

  1. Чем отличается линейный алгоритм от алгоритма с ветвлением?

  2. Какие операторы используются для программирования разветвлений? Чем полное ветвление отличается от неполного?

  3. Опишите особенности использования вложенных условных операторов. Приведите примеры использования вложенных условных операторов.

  4. Каковы отличия оператора выбора case от оператора условия if?

  5. Для чего служит выражение-селектор в операторе множественного выбора и какого он может быть типа?

  6. Какими будут значения переменных j , k после выполнения условного оператора:

If j>k Then j:=k-2 Else dec(k,2); если исходные значения переменных равны: a) j=3, k=5; b) j=3, k=3; c) j=3, k=2.

Примечание: В результате выполнения оператора dec(k,2) значение переменной k уменьшается на 2.

  1. Запишите условный оператор, в котором значение переменной с вычисляется по формуле а+b, если а — нечетное и а*b, если а — четное.

  2. После выполнения операторов а:=0; If а<>0 Then а: =2; Чему равно значение переменной а. Объясните.

Краткие теоретические сведения

Конструкция ветвления- это часть алгоритма, в которой в зависимости от выполнения или невыполнения некоторого условия выполняется либо одна, либо другая последовательность действий.     Алгоритм, в котором используется конструкция ветвления, называется алгоритмом с ветвлением.

Условный оператор if... then ... else

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

 полная форма

if <Логическое условие (выражение)> then <Оператор 1> else <Оператор 2>

 

сокращенная (неполная) форма

if <Логическое условие (выражение)> then < Оператор 1>

 

Здесь if <Логическое условие (выражение)> — логическое условие или выражение, которое может быть записано в операторе явно или вычислено в программе и присвоено логической переменной;

<Оператор 1>, <Оператор 2> — простые или составные операто­ры. В случае составного оператора (группы операторов) следует применять операторные скобки begin и end.

 

Алгоритм работы условного оператора if... then ... else следующий:

Если (if) <Логическое условие (выражение)> принимает значение True (истина), то (then) выполняется <Оператор 1> и далее следует выполнение операторов программы, иначе (else) выполняется <Оператор 2> и далее следует выполнение операторов программы.

Неполный формат условного оператора в случае ложного (False) значения <Логическое условие (выражение)> не выполняет <Оператор 1>, а переходит к выполнению операторов программ, следующих за условным оператором.

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

 Проверка условия и ветвление в алгоритме

Пусть стоит такая задача: Если X > 3, то выводим на экран X. Блок-схема алгоритма решения этой задачи выглядит так (рисунок 1):

Рисунок 1- Блок-схема алгоритма, выводящего число, если оно больше трех

 На языке Паскаль такую схему обрабатывает условный оператор if.

 Полная и неполная форма оператора if

Формат записи оператора if следующий: if <условие> then <оператор>.

Пример: if X > 3 then writeln(X);

Под условием здесь понимается любое выражение, результат которого имеет тип boolean. Это неполная форма алгоритма с ветвлением. Изменим немного нашу задачу: Если X >= 3, то вывести на экран X, иначе вывести текст 'Х<3'.

В том и другом случае X необходимо увеличить на 1. Здесь используется расширенный условный оператор — полная форма ветвления: if... then .. else ....

Формат записи оператора: if <условие> then <оператор-да> else <оператор-нет> (см. блок-схему на рисунке 2).

Рисунок 2- Блок-схема алгоритма, выводящего число, если оно больше трех, или сообщение «Х<3» в противном случае

 В общем случае структурная схема условного оператора выглядит так (рисунок 3). (SI, S2, S3 — условные обозначения операторов.)

Рисунок 3- Структурная схема условного оператора If

ЗАПОМНИТЕ! Перед else нельзя ставить точку с запятой.

Независимо от формы записи условия, после окончания оператора if программа снова «соединяется» и продолжает выполнять операторы, стоящие после структуры if. Это наглядно демонстрирует рисунок Оператор S3 выполняется независимо от того, каким будет результат проверки условия.

Оператор множественного выбора case

Для разветвления в программе более чем в 2-х направлениях, можно использовать оператор выбора:

Case <Выражение - ключ выбора> OF <Список выбора> End

Или

Case <Выражение - ключ выбора> OF <Список выбора>

Else <Операторы> End

Ключ выбора - выражение любого порядкового типа;

<Список выбора> - одна или более конструкций вида: <Константа выбора> : <Оператор>;

<Константа выбора> - выражение того же типа, что и ключ выбора;

Оператор выбора работает следующим образом: вычисляется значение выражения <ключ выбора>, а затем в последовательности операторов <список выбора> отыскивается такой, которому предшествует константа, равная вычисленному значению. Найденный оператор выполняется, после чего оператор выбора завершает работу. Если в списке выбора нет такой константы, то управление передается оператору, стоящему за ключеваым словом Else. Часть Else может отсутствовать и в этом случае оператор выбора завершает свою работу.

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