
- •Министерство образования и науки рф
- •Владимирский государственный университет
- •Оглавление
- •Глава 1. Алгоритмизация 17
- •Глава 2. Программирование 77
- •Глава 3. Отдельные вопросы методики преподавания
- •2. Проектная технология – средство реализации
- •3. Пример использования элементов технологии
- •Введение
- •Краткая структурная схема изучения темы «Алгоритмизация и программирование»
- •Требования к знаниям и умениям учащихся при изучении содержательной линии «Алгоритмизация и программирование»
- •Рекомендации по изучению языков программирования Процедурное программирование
- •Краткая история языков программирования Ершол, Turbo Pascal, qBasic Язык программирования Ершол
- •Язык программирования Turbo Pascal
- •Язык программирования qBasic
- •Визуальное объектно-ориентированное программирование
- •Языки логического и функционального программирования
- •Глава 1. Алгоритмизация
- •1. Алгоритм и его свойства
- •1.1. Понятие алгоритма
- •1.2 Исполнитель. Схема знакомства с исполнителем
- •1.3. Свойства алгоритмов
- •2. Способы записи алгоритмов
- •2.1. Словесный способ записи алгоритмов
- •2.2. Блок-схемы4 алгоритмов
- •2.2.1. Основные элементы построения блок-схем
- •Основные управляющие команды организации действий в алгоритмах
- •2.2.3. Дополнительные управляющие команды организации действий в алгоритмах
- •3. Примеры блок-схем алгоритмов
- •3.1. Блок-схемы алгоритмов, содержащих команды ветвления
- •3.2. Блок-схемы алгоритмов, содержащих команды повторения
- •3.3 Блок-схемы алгоритмов работы с массивами
- •3.4. Блок-схемы алгоритмов, содержащих команды обращения к вспомогательным алгоритмам
- •4. Алгостихи
- •5. Алгоритмы для исполнителя мнр (машины с неограниченными регистрами)
- •Глава 2. Программирование
- •1. Кодирование управляющих команд организации действий на процедурных языках Ершол, qBasic, Turbo Pascal13
- •2. Коды программ решения задач 10-36 на языках Ершол, qBasic, Turbo Pascal14
- •3. Занимательные игры-алгоритмы
- •Структурная схема возможных блоков построения игровых алгоритмов
- •3.1. Задача Баше
- •Программа на языке qBasic игры Баше
- •3.2. Ханойская башня
- •Программа на языке Turbo Pascal игры Ханойская башня (с использованием рекурсии)
- •3.3 Игра «Жизнь»
- •Программа на языке qBasic игры «Жизнь»
- •Глава 3. Отдельные вопросы методики преподавания учебного материала содержательной линии «Алгоритмизация и программирование»
- •1. Предметные технологии формирования информационной культуры учащихся
- •1.1. Проектирование алгоритмов «сверху вниз» и «снизу вверх»
- •Примеры проектирования алгоритмов с использованием технологий «сверху вниз» и «снизу вверх»
- •Задания к данному параграфу
- •1.2. Имитационное моделирование исполнения программ компьютером
- •1.2.1. Моделирование памяти компьютера
- •Задания к данному параграфу
- •1.2.2. Моделирование с использованием наглядных протоколов
- •Примеры ручного исполнения программ с использованием метода наглядных протоколов
- •Решение
- •Задания к данному параграфу
- •1.3. Имитационное моделирование при нахождении алгоритма поиска минимального элемента в массиве чисел
- •Задания к данному параграфу
- •1.4. Имитационное моделирование при нахождении алгоритма сортировки элементов массива методом выбора
- •Задания к данному параграфу
- •1.5. Имитационное моделирование при изучении механизма пирамидальной сортировки элементов массива
- •2. Проектная технология – средство реализации личностно-ориентированного обучения
- •3. Пример использования элементов технологии проблемного обучения при введении команды повторения «пока», управляющей команды организации действий в алгоритмах
- •4. Вопросы и задания к семинарским занятиям
- •5. Лабораторно-практические работы
- •Лабораторная работа 1
- •Лабораторная работа 2
- •Лабораторная работа 3
- •Лабораторная работа 4
- •Лабораторная работа 5
- •Лабораторная работа 6
- •6. Самостоятельная работа
- •Приложения Приложение 1. Программа на языке vba для Microsoft Excel, имитирующая механизм сортировки элементов массива простыми включениями
- •Приложение 2. Процедура на языке Turbo Delphi, имитирующая механизм сортировки элементов массива простым выбором
- •Библиографический список
- •Отпечатано в отделе оперативной полиграфии вггу
- •600024, Г. Владимир, ул. Университетская, 2, т. 33-87-40
- •15 Легенда о происхождении игры «Ханойская башня»
Глава 1. Алгоритмизация
Алгоритмизация – это раздел информатики, изучающий алгоритмы и их свойства, формальные способы записи алгоритмов, методы их проектирования (поиск методов решения задач, реализацию решения в алгоритмы для выбранных исполнителей), доказательство свойств рассматриваемого алгоритма.
С другой стороны, под алгоритмизацией будем понимать сам процесс построения алгоритма решения задачи: выделение этапов процесса обработки данных, определение порядка их выполнения, формальную запись содержания этих этапов.
1. Алгоритм и его свойства
1.1. Понятие алгоритма
П
онятие
«алгоритм»
является одним из основных понятий
информатики и математики. Название
алгоритм
происходит от Algorithmi
– латинской формы написания имени
великого учёного средневекового Востока
Мухаммеда ибн Мусса Аль Хорезми. Его
годы жизни приблизительно с 783 по 850 гг.
Он сформулировал правила выполнения
арифметических действий над многозначными
числами.
Что же будем понимать под алгоритмом?
Задача 1. Даны два натуральных числа1 a и b. Напишите алгоритм нахождения НОД(a, b) – наибольшего общего делителя a и b.
Решение. a и b – входные данные задачи. По существу, мы имеем не одну задачу, а бесконечное множество однотипных задач, столько, сколько существует различных пар натуральных чисел (a; b). Возникает вопрос: существует ли общий метод, позволяющий для любой частной задачи, получаемой подстановкой вместо a и b конкретной пары натуральных чисел, за конечное число шагов определить НОД(a, b).
Для решения задачи необходимо иметь последовательность каких-то действий над входными данными и результатами предыдущих действий, если такие уже имеются, позволяющих найти НОД(a, b). Желательно, чтобы набор этих действий был невелик и в то же время достаточен для нахождения наибольшего общего делителя для любых a, bN. Тогда должно существовать нечто такое, обозначим его «А», что после каждого действия оно должно указывать, что делать дальше: либо окончить процесс и указать результат, либо перейти к выполнению следующего определенного действия.
Вот это «А» и принято называть алгоритмом.
Для решения поставленной задачи выберем бездумного исполнителя, в систему команд которого входят команды: найди частное от деления двух натуральных чисел, найди остаток от деления двух натуральных чисел, сравни два натуральных числа и выбери большее или меньшее из них, присвой значения переменным.
Алгоритмом решения поставленной задачи для выбранного исполнителя является, например, алгоритм Евклида.
Шаг 1. Сравни два числа a и b. Обозначь большее число через r, а меньшее через r1. Найди остаток r2 от деления r на r1. Сравни r2 с нулем, если r2 равно нулю, то НОД(a, b) присвой значение r1 и иди на шаг 3, иначе иди на шаг 2.
Шаг 2. Переменной r присвой значение r1, а r1 – значение r2. Найди остаток от деления r на r1 и обозначь его r2. Сравни r2 с нулем, если r2 равно нулю, то НОД(a, b) присвой значение r1 и иди на шаг 3, иначе иди на шаг 2.
Шаг 3. Процесс вычисления НОД(a, b) закончи.
Возникает вопрос: всегда ли описанный процесс заканчивается, т.е. всегда ли за конечное число шагов получим нулевой остаток? Легко доказать, что процесс последовательного деления конечен. Любой из остатков является неотрицательным целым числом, и последовательность остатков монотонно убывает. Следовательно, последовательность конечна и последний остаток равен нулю.
Под алгоритмом будем понимать понятное и точное предписание исполнителю совершить последовательность действий, направленных на решение поставленной задачи.2