Читайте также:
|
|
Лабораторная работа № 2
Тема: Разработка, отладка и испытание разветвляющихся алгоритмов и программ.
Цель работы:
1. Овладение практическими навыками разработки и программирования разветвляющихся процессов с использованием условного оператора (if, if/else).
2. Научиться разрабатывать блок-схему условного оператора (if, if/else), изучить его структуру.
3. Овладение практическими навыками разработки и программирования разветвляющихся процессов с использованием оператора множественного выбора (case/of).
4. Научиться разрабатывать блок-схему оператора множественного выбора (case/of), изучить его структуру.
Программное обеспечение: Pascal (TP или BP), или ABCPascal, или FreePascal.
Аппаратное обеспечение: ЭВМ типа IBM.
Порядок выполнения работы
1. Записать тему и цель лабораторной работы.
2. Ознакомиться с краткими теоретическими сведениями по теме лабораторной работы.
3. Ответить на контрольные вопросы (ответы на контрольные вопросы оформить в отчет).
Выполнить практическую часть работы.
Перед началом решения задач в соответствии с вашим индивидуальным вариантом изучите примеры решения типовых задач (смотри раздел «Практическая часть работы»)
Задача №1 _Использование условного оператора (if, if/else).
Задача №2 _Вычисление значения составной функции с использованием условного оператора (if, if/else).
Задача №3 и №4 _Использование оператора множественного выбора (case/of).
Оформить отчет о проделанной работе
Примечание:
Все задачи оформить в соответствии с установленными ранее требованиями. При оформлении 2-х задач использовать графический способ представления алгоритма решения задачи (блок-схему) (1 задача с использованием оператора (if, if/else) и 2 задача с использованием оператора множественного выбора (case/of)).Остальные задачи оформить с использованием кратких комментариев к листингу программы.
6. Защитить работу и сдать ее преподавателю.
Контрольные вопросы
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.
7. Запишите условный оператор, в котором значение переменной с вычисляется по формуле а+b, если а — нечетное и а*b, если а — четное.
8. После выполнения операторов а:=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 выполняется независимо от того, каким будет результат проверки условия.
Дата добавления: 2015-10-29; просмотров: 296 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
String - методы | | | Ветвление по ряду условий (оператор case) |