Логические величины и выражения, программирование ветвлений. Практикум. Практическая работа № 3.2 "Программирование логических выражений". Практическая работа № 3.3 "Программирование ветвящихся алгоритмов" | Программирование ветвлений (курс sim 34 ч.)


Планирование уроков на учебный год


Уроки 23 - 25
Логические величины и выражения, программирование ветвлений
Практикум
Практическая работа № 3.2
"Программирование логических выражений"
Практическая работа № 3.3
"Программирование ветвящихся алгоритмов"



Содержание урока

Логические величины, операции, выражения

Программирование ветвлений

Пример поэтапной разработки программы решения задачи

Работа 3.2. Программирование логических выражений

Работа 3.3. Программирование ветвящихся алгоритмов


Программирование ветвлений






На уроках "Программирование линейных алгоритмов" был показан способ отображения ветвления (полного и неполного) на блок-схеме и учебном Алгоритмическом языке. Алгоритмическая структура ветвления программируется в Паскале с помощью условного оператора If. В 9 классе вы познакомились с этим оператором. Вспомним его формат.

Полное ветвление:

If < логическое выражение >
Then < оператор 1 >
Else < оператор 2 >

Неполное ветвление:

If < логическое выражение >
Then < оператор >

То, что в алгоритмах называется условием, в Паскале является логическим выражением, которое вычисляется в первую очередь. Если его значение равно true, то будет выполняться < оператор 1 > (после Then), если — false, то < оператор 2 > (после Else) для полной формы или оператор, сразу следующий после условного, для неполной формы (без Else). На ветвях может быть как простой оператор, так и составной — серия операторов в операторных скобках Begin, End.

Пример 1. По длинам трех сторон треугольника а, b, с требуется вычислить его площадь.

Для решения задачи используется формула Герона

image

где р = (а + b + с)/2 — полупериметр треугольника. Исходные данные должны удовлетворять основному соотношению для сторон треугольника — длина каждой стороны должна быть меньше суммы длин двух других сторон, и длины сторон не могут быть отрицательными величинами.

Имея возможность в одном условном операторе записывать достаточно сложные логические выражения, используя логические операции, мы можем сразу «отфильтровать» все варианты неверных исходных данных.

image

Пример 2. Требуется перевести пятибалльную оценку в ее на-именование: 5 — «отлично», 4 — «хорошо», 3 — «удовлетворительно», 2 — «неудовлетворительно».

Блок-схема алгоритма приведена на рис. 3.14.

image

Этот алгоритм имеет структуру вложенных ветвлений и может быть запрограммирован с использованием условного оператора If следующим образом:

image

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

image

Оператор выбора имеет следующий формат:

Case <  селектор > of
< список констант 1 > :	< оператор 1 > ;
···
< список констант N > :	< оператор N > ;
Else <оператор>
End

Здесь < селектор > — это выражение любого порядкового типа; < константа > — постоянная величина того же типа, что и селектор; < оператор > — любой простой или составной оператор.

Выполнение оператора выбора происходит так: вычисляется выражение-селектор; затем в списках констант ищется такое значение, которое совпадает с полученным значением селектора; далее исполняется оператор, помеченный данной константой. Если такой константы не найдено, то происходит переход к выполнению оператора, следующего после слова Else.

Пример 4. В этом примере демонстрируется использование списка констант в операторе выбора. Программа сообщает, сдал студент экзамен или не сдал. Если оценка одна из следующих: 3, 4, 5, то экзамен сдан; если 2, то не сдан.

Case N of
	3,	4,	5:	WriteLn('Экзамен сдан');
			2:	WriteLn('Экзамен не сдан');
	Else WriteLn('Нет такой оценки')
End

Так же как условный оператор, оператор выбора может ис-пользоваться в неполной форме, т. е. без ветви Else.

Если применить условный оператор, то эта программа запишется так:

If (N=3) or (N=4) or (N=5)
Then WriteLn('Экзамен сдан')
Else If N=2
	Then WriteLn('Экзамен не сдан')
	Else WriteLn('Нет такой оценки');

В условии ветвления использовано сложное логическое выражение, содержащее операции логического сложения or (или).

image

Вопросы и задания


1. Какие операторы используются для программирования ветвящихся алгоритмов?

2. В каких случаях удобно использование оператора выбора?

3. Составьте на Паскале программу упорядочения по возрастанию значений в трех переменных: X, Y, Z.

4. Используя оператор выбора, составьте программу, которая по введенному номеру месяца будет выводить название соответствующего времени года (зима, весна, лето, осень).

Следующая страница Пример поэтапной разработки программы решения задачи








Наверх