Разветвляющийся алгоритм – алгоритм, в котором в зависимости от выполнения или невыполнения некоторого условия совершается либо одна, либо другая последовательность действий. Запишем определение в тетрадь. СЛАЙД 2 Различают полную и неполную формы ветвления. СЛАЙД 3 Говорят, что конструкция «ветвление» записана в полной форме, если в ней присутствуют команды как для случая истинного условия, так и для ложного. На рис.2 приведена блок-схема ветвления в полной форме. Конструкция ветвления в полной форме реализуется следующим образом. Если условие истинно, то выполняется действие 1, если условие ложно, то выполняется действие 2. Каждый из путей ведет к общему выходу, так что работа алгоритма будет продолжаться независимо от того, какой путь будет выбран. Например, Если ты болен, то раздевайся и ложись в постель, поправляйся, иначе иди в школу. Если гриб съедобный, то положи в корзину, иначе его не трогай. Если низко ласточки летают, то будет дождь, иначе дождя не будет. На языке программирования Паскаль конструкция полной формы ветвления реализуется при использовании условного оператора if, следующим образом: if then else . СЛАЙД 4 Если в ветвлении присутствуют действия только для истинности условия, то говорят, что она записана в неполной форме. На слайде приведена блок-схема ветвления в сокращенной форме. Конструкция ветвления в сокращенной форме реализуется следующим образом. Если выбрана ветвь, в которой отсутствует действие, то конструкция ветвления не выполняется, а управление получает конструкция, следующая за ветвлением. Например, Если ты болен, то обращайся к врачу. Если назвался груздем, то полезай в кузов. На языке программирования Паскаль конструкция не полной формы ветвления реализуется следующим образом: if then ; А теперь, чтобы лучше познакомится с алгоритмической структурой ВЕТВЛЕНИЕ, давайте решим следующую задачу. СЛАЙД 5 Задача: найти наибольшее среди двух целых чисел a, b. Вопрос: что дано из условия задачи? Вопрос: а что надо найти? Хорошо, разобравшись с величинами, давайте составим графический алгоритм решения данной задачи. Блок-схему записываем в тетрадь. Вопрос: какой же шаг будет первым в нашем алгоритме? Правильно, тогда на втором шаге нашего алгоритма мы должны будем проверить заданное условие, ab. Вопрос: какая геометрическая фигура, отвечает за проверку условия в задаче? Правильно, записываем условие ab, и если это истина, то мы выполняем следующее. Переменной например max, которая будет содержать (выводить) максимальное значение из двух переменных присвоим значение переменной а. Если же у нас условие ab окажется ложным, т.е. переменная b будет больше чем а, то мы переменной max присвоим значение переменной b. Затем выводим максимальное значение. И завершаем наш алгоритм блоком «конец». Ребята, давайте посмотрим, как работает данная задача на примере двух чисел. Пусть нам даны два числа 7 и 5, тогда проверяем условие 75. Да, больше – идем по положительной ветви. Переменной max:=7. Затем выводим значение переменной max на экран. Предположим, что нам даны числа 4 и 6. Проверяем условие 46, нет. Значит идем по отрицательной ветви и переменной max:=6. (данный пример, я рядом с блок-схемой записываю на доске) Теперь, когда алгоритм разработан и записан графически, составим программу на языке программирования Паскаль. СЛАЙД 6 Итак, начинаем программу с заголовка программы, со служебного слова Program. Указываем имя программе. Переходим к разделу описаний переменных – Var. Указываем переменные, которые будут необходимы нам для решения задачи. Это переменные a,b – данные по условию и переменная max, которую мы будем искать. Ставим двоеточие, указываем тип данных – множество целых чисел. Переходим к телу программы, которое начинается со служебного слова Begin. Дальше выводим на экран символы a=, которые будут указывать пользователю на ввод значения переменной a. Вывод осуществляем при помощи оператора Write, ввод значения – Read. Аналогично выводим символ «b=» и вводим значение переменной b. Дальше проверяем условие, при помощи условного оператора if. Если ab,то выполняется действие: переменной отвечающей за результат – max присваивается значение переменной а, т.е. максимальное значение. Иначе идем по отрицательной ветви и переменной max присваиваем значение переменной b. Это значит, что у нас не выполняется условие ab и в данном случае b является максимальной. Дальше при помощи оператора Writeln выводим сообщение «max=» и выводим максимальное значение переменной на экран. И закрываем тело программы оператором End. Решим еще одну задачу. СЛАЙД 7 Задача: составьте программу удваивающую значение целой переменной а, если a5. По условию задачи нам дана целая переменная а. необходимо составить программу, которая будет удваивать значение этой переменной, при условии, что значение переменной, а5. Значит, первый шаг в нашем алгоритме – это ввод значения переменной а. Тогда на втором шаге мы проверяем условие a5. И если это истина мы удваиваем значение переменной а, т.е. значение умножаем на 2. И выводим удвоенное значение переменной. Завершаем наш алгоритм блоком «конец». Теперь составим программу на языке программирования Паскаль. СЛАЙД 8 Итак, начинаем программу с заголовка программы, со служебного слова Program. Указываем имя программе. Переходим к разделу описаний переменных – Var. Указываем переменные, которые будут необходимы нам для решения задачи. Это переменная а – данная по условию задачи. Ставим двоеточие, указываем тип данных – множество целых чисел. Переходим к телу программы, которое начинается со служебного слова Begin. Дальше выводим на экран символы a=, которые будут указывать пользователю на ввод значения переменной a. Вывод осуществляем при помощи оператора Write, ввод значения – Read. Дальше проверяем условие, при помощи условного оператора if. Если a5,то выполняется действие: переменной а:=2*a. И выводим удвоенное значение на экран. Закрываем тело программы оператором End. А сейчас ребята мы с Вами запишем домашнее задание, потом Вы пересядете за компьютеры и будите набирать текст данной программы в среду программирования Geany. |