Урок 3. Блок-схемы алгоритмов
Введение в Программирование
Переменная – именованная область оперативной памяти, в которой хранятся данные определенного типа.
Нужно знать:
Значение переменной может изменяться во время выполнения программы
Где и как ПК хранит информацию? Переменная и постоянная величины
2
Нужно знать:
Что значит «присваивание»? Почему можно использовать операторы +=, -=, *=, но нельзя применять /=?
2
Блок-схемы
2
Блок-схемы
Блок-схемы
Заметим, что ветки в условном операторе могут быть направлены в любом направлении, что позволяет делать удобные и понятные блок-схемы.
2
С помощью ветвления можно организовать цикл (многократное выполнение одинаковых действий)
Блок-схемы
В этом случае в блок-схеме будет соединительная линия, идущая «в обратном направлении» (петля, замкнутый контур)
Цикл на рисунке (выделен красным квадратом) закончится только тогда, когда выполнится условие a = 512
Блок-схемы
Решение данных задач можно выполнять двумя вариантами –
ручной прокруткой или анализом алгоритма .
Блок-схемы
Первый способ более подходит для начинающих в программировании, вторым пользуются те, кто уже умеет читать программы и понимает порядок выполнения алгоритмов в них. Удобно решать, объединяя оба эти варианта.
Ручная прокрутка – это работа программиста вместо компьютера, когда на бумаге шаг за шагом выполняются все действия в порядке, в котором они будут выполняться компьютером, с подстановкой конкретных значений и получением результата.
9
Задача 1 . Запишите значение переменной b после выполнения фрагмента алгоритма:
Примеры решения задач
В начале фрагмента переменным a и b присваиваются начальные значения, равные 1.
Далее в алгоритме цикл (на блок-схеме имеем замкнутый контур), перед выполнением тела которого проверяется условие а = 512 , и только при его нарушении (т.е. значение а меньше 512 ) цикл выполняется, иначе цикл завершается.
Для удобства и безошибочного выполнения ручной прокрутки составим таблицу:…
Далее можно просчитать все оставшиеся шаги (их осталось 6), а можно заметить закономерность: при выполнении каждого шага цикла переменная a умножается на 2, т.е. получаем степени двойки, а значение переменной b при этом на 1 меньше следующей степени а. Так как проверяемое в условии значение выхода из цикла а = 512 = 2 9 , то b = 2 10 - 1 = 1023 .
10
Задача 2 . Запишите значение переменной s после выполнения фрагмента алгоритма:
Примеры решения задач
В данном фрагменте представлен цикл использованием двух переменных n и s , которым до начала цикла присвоены нулевые значения. Здесь n - счетчик цикла с шагом единица, а s – сумма нечетных чисел. Далее в цикле, условием окончания которого будет значение n ≤ 100, в переменной s накапливается сумма нечетных чисел от 0 до 100 включительно, т.е.
S = 1 + 3 + 5 + … + 95 + 97 + 99.
Такое суммирование легко выполнять вручную, если разбить числа на пары, сумма которых будет одинаковой и равна 100. Это можно сделать, складывая числа первое и последнее, второе и предпоследнее, и т.д. : 1 + 99, 3 + 97, 5 + 95 и так далее.
Всего в сумме участвует 50 чисел, из которых можно составить 25 пар, тогда в всего в сумме нечетных чисел 25 пар получаем 25*100 = 2500.
11
Задача 3 . Запишите значение переменной х после выполнения фрагмента алгоритма:
Примеры решения задач
Анализ алгоритма показывает, что здесь в цикле в зависимости от соотношения чисел х и у меняется либо число х , либо число у . Поэтому данная задаче проще и точнее решается в режиме ручной прокрутки.
Составим таблицу:…
При заполнении таблицы видим, что далее х будет все время больше у , пока они не станут равными. Так как у не меняется, то при выходе из цикла получим х = у = 8 .
12
Задача 1 . Определите значение переменной a после выполнения фрагмента алгоритма.
Задачи для тренировки
13
Задача 2 . Определите значение переменной x после выполнения фрагмента алгоритма:
Задачи для тренировки
14
Задача 3 . Определите значение переменной a после выполнения фрагмента алгоритма:
Задачи для тренировки
15
Задача 4 . Определите значение переменной n после выполнения фрагмента алгоритма:
Задачи для тренировки
16
Задача 5 . Определите значения переменных x и y после выполнения фрагмента алгоритма:
Задачи для тренировки
17