Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Практические работы по программированию ветвлений






Приемы программирования основных алгоритмических структур на языке Паскаль

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

Алгоритмическая структура ветвления программируется в Паскале с помощью условного оператора, имеющего вид

 

If < Условие> Then < Оператор 1> Else < Оператор 2>;

Кроме того, возможно использование неполной формы условного оператора:

 

 

If < Условие> Then < Оператор >;

Изм.
Лист
№ докум.
Подпись
Дата
Лист
 
ПП.01.ПМ01 625. 14  


Строгое описание условного оператора в форме синтаксической диаграммы показано на рис. 1

 

Условием в условном операторе является логическое выражение, которое вычисляется в первую очередь. Если его значение равно True, то будет выполняться < Оператор 1> (после Then), если же его значение равно False, будет выполняться < Оператор 2> (после False) для полной формы или сразу оператор, следующий после условного, для неполной формы (без False).

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

Then < Оператор>

Else < Оператор>

Рис. 1. Синтаксическая диаграмма условного оператора

 

Ввод N
N=5
N=4
N=3
Отлично
Хорошо
Удовлетворительно
N=2
Неверная оценка
Неудовлетворительно
Конец
Изм.
Лист
№ докум.
Подпись
Дата
Лист
 
ПП.01.ПМ01 625. 14  

 


+ -

 

+ -

 

 

+ -

 

+ -

 

 

Рис. 2 Блок-схема алгоритма перевода пятибалльной оценки в ее наименование

 

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

 

Program Marks;

Var N: Integer;

Begin

Writeln (‘Введите оценку: ’)

Readln (N);

Case N Of

5: Writeln (‘Отлично’)

4: Writeln (‘ Хорошо’)

3: Writeln (‘Удовлетворительно’);

2: Writeln (‘Неудовлетворительно’);

Else Writeln (‘Нет такой оценки’)

End.

Формат оператора выбора описывается синтаксической диаграммой показано на рис. 3, где < Селектор> - это выражение любого порядкового типа, < Константа> - постоянная величина того же типа, что и селектор, а < Оператор> - любой простой или составной оператор.

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

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

 

 

< Оператор выбора>

Изм.
Лист
№ докум.
Подпись
Дата
Лист
 
ПП.01.ПМ01 625. 14  

Case < Селектор> Of

:


< Константа>: < Оператор> Else < Оператор> End

;
.
,

;

Рис. 3 Синтаксическая диаграмма оператора выбора.

 

Case N Of

3, 4, 5: Writeln (‘Экзамен сдан’)

2: (‘Экзамен не сдан’)

Else Writeln (‘Нет такой оценки’);

 

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

 

Практические работы по программированию ветвлений

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

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

где p=(a+b+c)/2 – полупериметр треугольника.

Исходные данные должны удовлетворять основному соотношению для сторон треугольника: длина каждой стороны должна быть меньше суммы длин двух других сторон.

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

 

Program Geron;

Var A, B, C, P, S: Real;

Begin

Writeln (‘Проверка программы’);

A: = 3;

B: = 4;

C: = 5;

Writeln (‘Для а=’, A: 4: 2);

Writeln (' b=', B: 4: 2);

Writeln (' c=', C: 4: 2);

If (A> 0) And (B> 0) And (C> 0) And (A+B> C) And (B+C> A) And (A+C> B)


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.009 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал