Информатика. 7 класс. Часть 1. Поляков К.Ю., Еремин Е.А.

Учебное издание предназначено для изучения предмета «Информатика» в 7 классе (базовое и углублённое изучение). Входит в состав УМК по информатике для 7-9 классов, включающего авторскую программу, учебные издания, рабочие тетради, электронные ресурсы и методическое пособие. Рассмотрены вопросы устройства и управления компьютером, построение алгоритмов для исполнителей, технологии работы с числовой, текстовой, графической и мультимедийной информацией.

Информатика. 7 класс. Часть 1. Поляков К.Ю., Еремин Е.А.

Информатика. 7 класс. Часть 1. Поляков К.Ю., Еремин Е.А.

Алгоритмы повышенной сложности

Выше рассматривались простейшие структуры алгоритмов с повто­рением и с разветвлением. На практике применяются более сложные структуры этих типов алгоритмов. Ниже описаны циклические алго­ритмы с разветвлением и алгоритмы с вложенными циклами.

3.6.1. Циклические алгоритмы с разветвлением

В предыдущих разделах рассматривались алгоритмы с фиксирован­ным, наперед известным количеством циклов. Например, алгоритм получения таблицы умножения на 3 содержит 10 циклов. На практике часто используются алгоритмы, в которых количество циклов заранее неизвестно. Оно зависит от текущей ситуации в процессе выполнения алгоритма. Например, неизвестно, сколько раз нужно бросить кубик с цифрами от 1 до 6, чтобы получить сумму чисел больше 45. Неизвестно также, сколько раз необходимо выполнить вычитание из большего числа меньшего, чтобы разница чисел стала меньше меньшего числа. Напри­мер, если заданы числа 34 и 9, процесс уменьшения будет происходить таким образом:

1-      й         цикл: 34 — 9 = 25;

2-      й         цикл: 25 — 9 = 16;

3-      й         цикл: 16 — 9 = 7, конец.

Циклические алгоритмы с заранее неизвестным количеством повто­рений делятся на два вида: с предусловием и с постусловием.

Циклические алгоритмы с предусловием

В алгоритмах с предусловием сначала проверяется определенное условие. До тех пор, пока результат его проверки имеет значение «истинно», цикл выполняется. Как только в результате проверки усло­вия получается значение «ложно», выполнение цикла прекращается.

На рис. 3.76 представлена схема, объясняющая сущность цикли­ческого алгоритма с предусловием. Как видим из рис. 3.76, операции тела цикла могут вообще быть не выполнены ни разу, если результат проверки условия имеет значение «ложно».

Рис. 3.77. Движение объекта bay4-walking-a 83

Рис. 3.76. Графическая схема циклического алгоритма с предусловием

Для реализации циклических алгоритмов с предусловием в среде Скретч используется команда:

Инструкции, вставленные в эту команду, будут выполняться в случае, если условие, записанное в команде, имеет значение «истинно».

Пример. На рис. 3.77 изображены фон сцены scholl2 (папка Outdoors) и объект boy4-walking-a (папка People).

Для создания эффекта анимации объекта boy4-walking-b импорти­руем его образы b и c. Программа, моделирующая его перемещения, представлена на рис. 3.78. После запуска программы объект начинает двигаться, как только будет нажата кнопка мыши. Движение объекта прекращается, если кнопку мыши отпустить. Итак, команды тела цикла выполняются только при нажатии кнопки мыши.

Рис. 3.78. Программа моделирования движения объекта boy4-walking

Циклические алгоритмы с постусловием

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

Рис. 3.79. Графическая схема циклического алгоритма с постусловием

Сущность циклических алгоритмов с постусловием объясняется гра­фической схемой, представленной на рис. 3.79.

В среде Скретч для реализации цикли­ческих алгоритмов с постусловием исполь­зуется такая команда:

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

Рис. 3.80. Программа моделирования игры в кубик

Пример. В расписании поездов по станции Киев подсчитать количе­ство поездов, следующих в г. Львов. Обозначим: Расписание — общий список поездов по станции Киев (содержащий станции назначения Ровно, Харьков, Львов, Николаев, Львов, Херсон, Львов); a — текущий номер строки в расписании поездов; p — содержание текущей строки расписания; c — количество поездов во Львов. Программа представлена на рис. 3.81.

Пример. Перед экзаменом по математике Вася взял кубик с цифрами от 1 до 6 и решил так: если выпадет цифра 5 не позже чем после третьего бросания, то ему повезет, иначе экзамен будет тяжелым. Программа моделирования этого процесса представлена на рис. 3.80. В переменной k сохраняется количество бросаний кубика.

Рис. 3.81. Программа определения количества поездов в списке

3.6.2. Алгоритмы с вложенными циклами

Алгоритмы, с вложенными циклами — это такие алгоритмы, в ^^ которых инструкции одного цикла содержатся в инструкциях дру­гого цикла.

Рассмотрим сущность алгоритмов такого типа на примере. Записаны три строки чисел, в каждой из которых находится по пять чисел:

Необходимо найти их общую сумму. Алгоритмы нахождения суммы чисел могут быть разными. Чаще всего применяется метод «последо­вательного накопления» суммы. Его сущность заключается в том, что берется число первой строки первого столбца, к нему прибавляется число второго столбца этой же строки. К полученной сумме прибав­ляется число третьего столбца, затем четвертого и пятого. Далее в такой же последовательности к полученной сумме добавляются числа второй, потом третьей строк. Для поданного примера этот процесс
можно записать следующим образом: 1 + 3 = 4; 4 + 5 = 9; 9 + 7 = 16; 16 + 9 = 25; 25 + 4 = 29; 29 + 6 = 35 и т. д.

Обозначим текущее значение суммы переменной s; текущее значение числа, которое прибавляется — переменной a; b — значение числа первого столбца текущей строки. С учетом описанного алгоритм нахождения суммы чисел можно записать таким образом:

1.   Начало.

2.   Текущее значение суммы равно 0 (s: = 0).

3.   Сделать текущей первую строку.

4.   Сделать текущим первый столбец.

5.   Выбрать число (а) из текущей строки текущего столбца.

6.   Добавить к текущей сумме текущее число (s = s + a).

7.   Увеличить на единицу номер текущего столбца.

8.   Повторить пункты 5-7 пять раз.

9.   Увеличить на единицу номер текущей строки.

10.   Повторить пункты 4-9 три раза.

Рис. 3.82. Программа вычисления суммы чисел

Программа реализации этого алгоритма представлена на рис. 3.82. В программе учтено, что каждое последующее число строки больше предыдущего на 2, а первое число каждой последующей строки больше первого числа предыдущей строки — на 3.

Пример. На рис. 3.83 представлен орнамент. Его анализ показывает, что изображено 6 равносторонних треугольников различного цвета. Каждый из них сдвинут относительно предыдущего на половину его стороны. Программа рисования орнамента представлена на рис. 3.84.

Рис. 3.83. Орнамент для разработки программы

Рис. 3.84. Программа моделирования орнамента

Выполняем

1. Два целых числа вводятся с клавиатуры. Разработайте программу для создания таблицы умножения для большего числа.

2.   Случайные числа генерируются в диапазоне от 2 до 7 и добавляются одно к другому. Разработайте программу определения количества случайных чисел, сумма которых будет больше 49.

3.   В памяти банкомата сохраняется список купюр 20 и 50 грн. На рис. 3.85 приведена программа вычисления общей суммы денег и необходимого количества купюр каждого номинала.

[свернуть]

Предложения интернет-магазинов.