- •Министерство образования и науки рф
- •Владимирский государственный университет
- •Оглавление
- •Глава 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 Легенда о происхождении игры «Ханойская башня»
Глава 2. Программирование
« Программист обязан обладать способностью первоклассного математика к абстракции и логическому мышлению, эдисоновским талантом, уметь сооружать всё, что необходимо, из нуля и единицы. Он должен соединять в себе аккуратность банковского клерка с проницательностью разведчика, фантазию автора детективных романов с трезвой практичностью бизнесмена, кроме того, иметь вкус к коллективному труду…»
А.П. Ершов
В жизни, в профессиональной деятельности человек встречается с множеством практических задач. Для решения большинства из них можно использовать мощный и надёжный помощник – компьютер. Решение задач с использованием компьютера состоит из нескольких этапов:
постановка задачи;
анализ объекта моделирования и построение информационной модели;
алгоритмизация решения задачи – это выбор компьютерного исполнителя, выбор метода проектирования алгоритма, проектирование алгоритма. В этой работе мы предлагаем в качестве компьютерного исполнителя выбирать системы: Ершол, QBasic, Turbo Pascal, Turbo Delphi, Visual Basic.Net, Visual C#. Чаще всего алгоритм решения поставленной задачи на этом этапе описывается словесно или с использованием блок-схем;
создание компьютерной модели – реализация алгоритма на компьютере, кодирование алгоритма для выбранного исполнителя;
тестирование и отладка программы;
анализ результатов моделирования;
доработка программы для решения конкретных задач, составление документации для использования компьютерной модели.
В реализации этих этапов ведущая роль отводится программисту или группе программистов – для решения большой задачи. Программист – это связующее звено между компьютером и задачей, которую машине предстоит решать. У программиста очень ответственная роль: он должен представить любую задачу в виде программы.
Ведущими программистами мира разрабатываются правила создания больших программных комплексов с целью дисциплинировать процесс их разработки, снизить их сложность и стоимость.
Современными методологиями процедурного проектирования программ являются «Структурное программирование» и «Объектно-ориентированное программирование». Лучшими программистами 70-х годов (Дейкстра9, Вирт10, Хоар11 и др.) были разработаны строгие правила проектирования программ, которые получили название – структурная методология. Дейкстра в 1969 году на международной конференции впервые использовал термин «структурное программирование». Метод структурного программирования основан на предположении, что код в модуле легче пишется, читается, если он сконструирован из фиксированного набора базовых структур организации действий, управляющих структур, с ограниченным использованием оператора GOTO. Доказано, что организовать действия в любой сложной программе можно используя линейную комбинацию основных управляющих структур: следования, условных и циклических структур. Другим принципом структурной методологии является принцип «разделяй и властвуй», принцип декомпозиции. Декомпозиция используется для разбиения программы на компоненты (модули), которые затем могут быть объединены, позволяя решить основную задачу. Модуль12 – это конструкция, объединяющая и надежно скрывающая детали реализации определенной подзадачи, выполняемой модулем. Выполняемые локальные действия модулем должны быть гарантировано независимыми от влияния других частей основной программы при любых изменениях и коррекциях. Основные концепции структурного программирования: вся программа построена из модулей; модуль – это независимый блок, код которого физически и логически отделен от кода других модулей; каждый модуль имеет единственную точку входа/выхода; идентификаторы всех переменных и модулей должны быть смысловыми; идентификаторы, относящиеся к одному типу должны начинаться с одинакового префикса, указывающего этот тип; при кодировании использовать только стандартные управляющие конструкции; при оформлении программы использовать «ступенчатую» форму записи кода: вложенные операторы и серии команд, входящих в составные команды, при записи сдвигаются на несколько позиций влево относительно записи операторов, которым они принадлежат.
Визуальное объектно-ориентированное программирование является развитием технологии алгоритмического структурного программирования. Объектно-ориентированное программирование – это методология программирования, которая основана на представлении программы в виде совокупности объектов. Процесс разработки программы в среде визуального объектно-ориентированного программирования сводится к выбору набора объектов и их свойств, заданию событий и процедур их обработки, которые в совокупности обеспечивают решение поставленной задачи.
На практике при создании крупных проектов рекомендуется применять обе методологии разработки программ: «Структурное программирование» и «Объектно-ориентированное программирование». Целесообразно сначала применять объектно-ориентированный подход для создания общей иерархии объектов, отражающих сущность программируемой задачи, а затем использовать структурную методологию для упрощения разработки программного кода.
Схема взаимодействия пользователя и исполнителя
Как можно командовать исполнителем-инструментом? Почему составные команды организации действий в программах называются управляющими? Чтобы ответить на эти вопросы, учащиеся должны понимать, что программы составляются для компьютера, который без вмешательства человека может выполнять составленную программу, управляя исполнителем-инструментом (смотрите схему). Следовательно, в программе надо предусмотреть все возможные ситуации, возникающие при решении задачи, и запрограммировать какие команды компьютер должен отдать исполнителю-инструменту в возникающих ситуациях. Тогда при написании программ для компьютера и возникает необходимость в составных командах, управляющих командах организации действий: командах ветвления, командах цикла. Эти команды компьютер «научен» выполнять.
Пользователь передаёт компьютеру программу решения поставленной задачи. Компьютер выполняет программу, управляя исполнителем-инструментом. Часть времени компьютер расходует на обработку информации, не обращаясь к исполнителю. Пользователь получает результаты от компьютера и исполнителя – это, например, чертежи, картины, документы, расчёты.