Вспомните1. Что такое алгоритм с ветвлением?2. Какие существуют типы ветвления в Python?3. Какой синтаксис имеет одноальтернативный тип ветвления? Представьте графическую схему данного ветвления.4. Какой синтаксис имеет двухальтернативный тип ветвления? Представьте графическую схему данного ветвления.
Циклы с параметром. Существует разные варианты циклов с параметрами. Структуру одного из вариантов циклов с параметрами изображено на рис. 1. Переменная i - это параметр цикла. Блок Оператор есть телом цикла. В блоке может быть одна инструкция или несколько. Переменная n содержит конечное значение переменной цикла, а переменная а – её начальное значение.i:=a. Операторi:=i+1i≤n. Да. Нет. Рис.1
Циклы с параметром. Результат умножения чисел от 1 до 10 на 8 получается в переменной p сразу выводится . В этом алгоритме телом цикла есть инструкция p:=8*i, вывод p, i:=i+1, которые выполняются 10 раз. Инструкция i:=1 выполняет подготовку к реализации инструкций тела i≤10 осуществляется проверка завершения их выполнения. Как видим в этой схеме переменная i выполняет функцию счётчика циклов. Как только значение переменной станет больше 10, выполнение цикла завершается.i:=1p:=8*ii:=i+1i≤10 Вывод р. Да. Нет. Рис. 2
Циклы с параметром. Цикл с параметром в языке Python реализуется оператором цикла for (для), который имеет такую структуру: For <переменная цикла> in <объект>: <блок инструкций тела цикла>[else: <блок инструкций> #выполняется, если не используется оператор break]В ней <объект> - это может быть строка, список, диапазон, словарь и др,, которые поддерживают реализацию цикла. <Переменная цикла> - текущее значение . Текущее значение – это первый элемент объекта в другом цикле эта переменная примет значение другого элемента объекта, и так до последнего. Блок инструкций тела цикла будет выполнятся до тех пор, пока переменная цикла последовательно не примет все значения, которые содержатся в объекте.
Циклы с параметром. Инструкции в квадратных скобках являются не обязательными . Если в середине цикла не используется оператор break, то после завершения использования цикла будет выполнятся блок в инструкции else простейшая структура оператора for такая: For <переменная цикла> in <объект>: <блок инструкций тела цикла>Оператор выполняется так: в начале выполнения цикла переменная цикла получает значение первого элемента объекта. Оператор in генерирует логическое значение True, и выполняется блок инструкций тела цикла. На следующем этапе переменная цикла примет значение другого элемента объекта и тоже будет генерировать значение True, в результате чего будет выполнен блок инструкций тела цикла. После того как все объекты будут перебраны, оператор in сгенерирует значение False, блок инструкций тела цикла не выполнится, а управление будет передано первой инструкции , которая расположена непосредственно за блоком инструкций тела цикла.
Примеры. Пример 1: Необходимо разработать программу реализации алгоритма получения таблицы умножения на 8. Блок схему этого алгоритма мы рассматривали на рис. 2 В этом примере используется функция range(). Общая структура этой функции такая: Range ([<начало>,]<конец>[,<шаг>])Как видим обязательным есть только параметр конец. При помощи функции range(10) формируется диапазон чисел от 0 до 10, но нам не нужно умножать число 8 на 0. Поэтому значение переменной сразу увеличивается на 1 (i=i+1)
Примеры. Пример 3: Дано строку символов. Программу вывода каждого символа со строки через один пробел с подсчётом в нем количества символов: В примере объектом в структуре оператора for есть строка. Переменная цикла s последовательно приобретает значения , начиная с буквы м до буквы p. Аргумент end=“” в операторе print обеспечивает вывод символов строки через пробел в одной строке.
Для чисел 2, 7, 21, 9, 33, 17 разработайте код вычисления их суммы. Разработайте код, который вычисления суммы непарных чисел , больших, чем 13, но меньших чем 21. Разработайте ко, вычисления суммы чисел натурального ряда, максимальное значение которого не превышает 7. ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ