Презентация на тему: «Программирование Разветвляющихся структур». Составила: учитель информатики Чура Н.А. 1
2 Для представления разветвляющего алгоритма в виде программы используются условные операторы и операторы выбора.
3 If then If then else ; else ;или If then If then
4 Сначала вычисляется выражение, записанное в условии. В результате его вычисление получается значение логического (булевского) типа. Если это значение – «истина», то выполняется оператор1, указанный после слова then. Если это значение – «истина», то выполняется оператор1, указанный после слова then. Если же в результате имеем «ложь», то выполняется оператор2. В случае, если вместо оператора1 или оператора2 следует серия операторов, то эту серию операторов необходимо заключить в операторные скобки begin…end. Обратить внимание, что перед словом else точка с запятой не ставится.
5 Пример. Составить программу, которая запрашивает возраст ребенка и затем выдает решение о приеме ребенка в школу (возраст 7лет). Program sh; Var v: integer; Begin Write(Введите возраст ребенка); Readln(v); If v>=7 then writeln(Принимаем в школу) else writeln (Не принимаем в школу); else writeln (Не принимаем в школу);end.
6 Если оператор If обеспечивает выбор из двух альтернатив, то существует оператор, который позволяет сделать выбор из произвольного числа вариантов. Это оператор выбора Case. Это оператор выбора Case. Он организует переход на один из нескольких вариантов действий в зависимости от значения выражения, называемого селектором. Он организует переход на один из нескольких вариантов действий в зависимости от значения выражения, называемого селектором.
7 Общий вид записи оператора выбора Case: Case k of : ; : ; ….. ….. : : else else end; end; Здесь k – выражение-селектор, которое может иметь только простой порядковый тип (целый, символьный, логический)., … - константы того же типа, что и селектор.
8 Оператор Case работает следующим образом: Сначала вычисляется значение выражения- селектора, затем обеспечивается реализация того оператора, константа выбора которого равна текущему значению селектора. Если ни одна из констант не равна значению селектора, то выполняется оператор, стоящий за словом else. Если же это слово отсутствует, то активизируется оператор, находящийся за границей Case, т.е. после слова end
9 При использовании оператора Case должны выполняться следующие правила: 1. Выражение-селектор может иметь только простой порядковый тип (целый, символьный, логический). 2. Все константы, которые предшествуют операторам альтернатив, должны иметь тот же тип, что и селектор. 3. Все константы в альтернативах должны быть уникальны в пределах оператора выбора.
10 Селектор интервального типа: Case I of : writeln(число в диапазоне 1-10); : writeln(число в диапазоне 11-20); else writeln(число вне пределов нужных диапазонов) end; Селектор целого типа: Case I of 1 : y:= I+10; 2 : y:= I+20; 3: y:= I +30; end;
11 Пример 1. Составить программу, которая по введенному номеру дня недели выводит на экран его название. Program days; Var day:byte; Begin Write(Введите номер дня недели); Readln(day); Case day of 1: writeln(Понедельник); 2: writeln(Вторник); 3: writeln(Среда); 4: writeln(Четверг); 5: writeln(Пятница); 6: writeln(Суббота); 7: writeln(Воскресенье) else writeln(Такого дня нет); end; end.
12 Оператор безусловного перехода (go to) означает «перейти к» и применяется в случаях, когда после выполнения некоторого оператора надо выполнить не следующий по порядку, а какой- либо другой, отмеченный меткой, оператор. Общий вид: go to. Метка объявляется в разделе описания меток и состоит из имени и следующего за ним двоеточия. Имя метки может содержать цифровые и буквенные символы, максимальная длина имени ограничена 127 знаками. Имя метки может содержать цифровые и буквенные символы, максимальная длина имени ограничена 127 знаками. Раздел описания меток начинается зарезервированным словом Label, за которым следует имя метки. Раздел описания меток начинается зарезервированным словом Label, за которым следует имя метки.
13 Program primer; Label 999, metka; Begin…. Go to 999; … 999: write ( Имя); … Go to metka; …. Metka: write(Фамилия); … end.
14 Использование безусловных передач управления в программе считается теоретически избыточным и подвергается критике, так как способствует созданию малопонятных и трудномодифицируемых программ, которые вызывают сложности при отладке. Поэтому рекомендуется минимальное использование оператора безусловного перехода с соблюдением следующих правил: Поэтому рекомендуется минимальное использование оператора безусловного перехода с соблюдением следующих правил: 1.Следует стремиться применять операторы перехода для передачи управления только вниз (вперед) по тексту программы; 2.Расстояние между меткой и оператором перехода на нее не должно превышать одной страницы текста (или высоты экрана дисплея).
15 Пустой оператор не содержит никаких символов и не выполняет никаких действий. Используется для организации перехода к концу блока в случаях, если необходимо пропустить несколько операторов, но не выходить из блока. Для этого перед зарезервированным словом end ставятся метка и двоеточие, например: Label m; …begin… go to m; … m: end; end;