Читайте также:
|
|
Изучаемые вопросы:
· Определение алгоритма;
· Свойства алгоритма;
· Типы алгоритмических задач.
Определение и свойства алгоритма. В учебниках дается следующее определение алгоритма: «Алгоритм – понятное и точное предписание исполнителю выполнить конечную последовательность команд, приводящих от исходных данных к искомому результату».
В этом определении содержатся исходные понятия, связанные с алгоритмом и его главные свойства.
Центральным объектом в этой системе является ИСПОЛНИТЕЛЬ алгоритмов. Исполнитель – это тот объект (или субъект), для управления которым составляется алгоритм. Основной характеристикой исполнителя, с точки зрения управления, является система команд исполнителя (СКИ). Это конечное множество команд, которые понимает исполнитель, т. е. Умеет их исполнять.
Для выполнения всякой работы, решения поставленной задачи исполнитель на входе получает алгоритм и исходные данные, а на выходе получает требуемые результаты. Алгоритм может включать в себя только команды, входящие в СКИ. Это требование к алгоритму называется свойством понятности.
Другое свойство алгоритма – точность. Всякая команда должна быть сформулирована так, чтобы определить однозначное действие исполнителя. Например, кулинарный рецепт можно рассматривать как алгоритм для исполнителя – повара по приготовлению блюда. Но если одним из пунктов в нем будет написано: «Положить несколько ложек сахара», то это пример неточной команды. Сколько ложек? Каких ложек (чайных, столовых)?
Работа исполнителя состоит в последовательном формальном выполнении команд алгоритма. Отсюда следует вывод о возможности создания автоматических исполнителей. В частности, таким автоматическим исполнителем алгоритмов по обработке информации является компьютер. Конечность. Это свойство определяет, что каждое действие в отдельности и алгоритм в целом должны иметь возможность завершения
Бесконечно исполняемый алгоритм безрезультатен. Поэтому свойство конечности называют еще результативностью алгоритма.
Дискретность. Это свойство указывает, что любой алгоритм должен состоять из конкретных действий, следующих в определенном порядке.
Детерминированность. Это свойство указывает, что любое действие алгоритма должно быть строго и недвусмысленно определенно в каждом случае. Например, если к остановке подходят автобусы разных маршрутов, то в алгоритме должен быть указан конкретный номер маршрута -5. кроме того, необходимо указать точное количество остановок, которое надо проехать, - скажем, три.
Массовость. Это свойство показывает, что один и тот же алгоритм можно использовать с разными исходными данными.
Результативность. Это свойство требует, чтобы в алгоритме не было ошибок.
Алгоритм, заданный словесно, в виде таблицы или графически (блок-схемой), может быть обработан с помощью ЭВМ только в том случае, если он переведен на некоторый язык программирования. Выбор языка зависит от многих факторов как объективных, так и субъективных: наличие техники, ПО, наличия литературы.
Блок-схема – это графическое представление алг-ма, каждое действие алг-ма записыв-ся соответствующей геометрической фигурой.
Начало алг-ма
Конец алг-ма
Арифметическое действие или группа действий
Выбор действия в зависимости от истинности или ложности; в программе соотв.
Операторам условного перехода и конструкциям цикла while и Repeat.
Повторение действий заданное кол-во раз;
в программе соответствует конструкции цикла FOR.
ввод значений переменных с клавиатуры
вывод значений переменных и текста на экран
направление вычисления сверху вниз или слева направо
направление вычисления снизу вверх и справа налево
точка разрыва в схеме
Различают следующие типы алгоритмов: линейный, разветвляющийся, циклический.
Линейный алгоритм не содержит логических условий и им одну ветвь вычислений
Разветвляющийся алгоритм содержит одну или несколько ветвей вычисления.
Циклический алгоритм содержит многократно повторяемые части.
Составить алгоритм и написать программу, которая выводят y=x2 в диапазоне от -10 до 10, с шагом 0,5.
Наиболее полно тема раскрывается в учебнике Шауцуковой Л. З.
В списке учебных элементов темы насчитывается 19 понятий: исполнитель алгоритма, данные, алгоритм, свойства алгоритма, словесный способ, блок-схема, псевдокод, итерационный алгоритм, вложенный цикл алфавит, синтаксис, семантика, математическая модель,, алгоритмические конструкции, язык программирования, язык ассемблера, отладка программ, тестирование, сопровождение программ.
Это позволяет нам положить изучение данной темы 19 часов в 8-9 классах (по стандарту). Для 10-11 классов данная тема рассматривается в отдельных вопросах.
В данном учебнике дано следующее определение алгоритма – заранее заданное понятное и точное предписание возможному исполнителю совершить определенную последовательность действий получения решения задачи за конечное число шагов.
Указания на выполнение каждого отдельного действие названо командой, а «совокупность команд, которые могут быть выполнены исполнителем, называется системой команд исполнителя». В качестве основного свойства алгоритма подчеркивается формальный характер работы исполнителя при его выполнении. Отсюда делается вывод о том, что исполнительным алгоритма может быть автомат (машина, робот). На этой идее основан принцип программного управления работы компьютера, поскольку программа-это и есть алгоритм, представленные на языке, «понятном» компьютеру - на языке программирования.
В задачах вычислительного характера в качестве метода работы исполнителя предлагается заполнение таблицы значения. В программировании такие таблицы принято называть трассировочными.
Наряду с использованием алгоритмического языка для описания алгоритмов в учебнике Шауцуковой Л. З. активно используются блок-схемы. Подчеркивается необходимостью стандартного изображения блок-схем, чего также требует методика структурного подхода к программированию.
Основные типы учебных алгоритмических задач. Для закрепления основных понятий, связанных с определением алгоритма, полезно рассмотреть с учениками несколько заданий следующего содержания:
1. выполнить роль исполнителя: дан алгоритм, формально исполнить его;
2. определить исполнителя и систему команд для данного вида работы;
3. в рамках данной системы команд построить алгоритм;
4. определить необходимый набор исходных данных для решения задачи.
Требования к знаниям и умениям учащихся по линии алгоритмизации и программирования
Учащиеся должны знать:
· Что такое алгоритм; какова роль алгоритма в системах управления;
· В чем состоят основные свойства алгоритмов;
· Способы записи алгоритмов: блок – схемы, учебный алгоритмический язык;
· Основные алгоритмические конструкции: следование, ветвление, цикл, структуры алгоритмов;
· Назначение вспомогательных алгоритмов; технологии построения сложных алгоритмов;
· Основные свойства величин в алгоритмах обработки информации: что такое имя, тип, значение величины; смысл присваивания;
· Назначение языков программирования;
· Правила представления данных на одном из языков программирования высокого уровня;
· Правила записи основных операторов: ввода, вывода. Присваивания, цикла, ветвления;
· Правила записи программы;
· Назначение систем программирования;
· Содержание этапов разработки программы: алгоритмизация – кодирование – отладка – тестирование.
Учащиеся должны уметь:
· Пользоваться языком блок – схем, понимать описания алгоритмов на учебном алгоритмическом языке;
· Выполнять трассировку алгоритма для известного исполнителя;
· Составлять несложные линейные, ветвящиеся и циклические алгоритмы управления одним из учебных исполнителей;
· Выделять подзадачи; определять и использовать вспомогательные алгоритмы;
· Составлять несложные программы решения вычислительных задач с целыми числами;
· Программировать простой диалог.
76. Методика преподавания решения задач по программированию.
Основные подходы к программированию
Языки высокого уровня делятся на
§ процедурные (алгоритмические) (Basic, Pascal, C и др.), которые предназначены для однозначного описания алгоритмов; для решения задачи процедурные языки требуют в той или иной форме явно выписать процедуру ее решения;
§ логические (Prolog, Lisp и др.), которые ориентированы не на разработку алгоритма решения задачи, а на систематическое и формализованное описание задачи с тем, чтобы решение следовало из составленного описания;
§ объектно-ориентированные (Object Pascal, C++, Java и др.), в основе которых лежит понятие объекта, сочетающее в себе данные и действия над ними. Программа на объектно-ориентированном языке, решая некоторую задачу, по сути, описывает часть мира, относящуюся к этой задаче. Описание действительности в форме системы взаимодействующих объектов естественнее, чем в форме взаимодействующих процедур.
Принцип структурного программирования
Структурное программирование – методология разработки ПО. Предложена в 70-х годах двадцатого века, разработана и дополнена Н. Виртом. В соответствии с данной методологией разработки ПО:
1. Вводится следующий порядок выполнения программы:
• последовательное исполнение – однократное выполнение операций в том порядке, в котором они записаны в тексте программы;
• ветвление – однократное выполнение одной из двух и более операций, в зависимости от условия;
• цикл – многократное выполнение одной и той же операции до тех пор пока выполняется некоторое заданное условие (условие продолжения цикла).
2. Повторяющиеся фрагменты программы(или фрагменты, представляющие собой логически целостные блоки) оформляются в виде подпрограмм (процедур или функций). В этом случае, в тексте основной программы, вместо помещённого в подпрограмму фрагмента вставляется инструкция вызова подпрограммы. Инструкция вызова запускает выполнение заданная подпрограмма, после окончания которой исполнение программы продолжается с инструкции, следующей за командой вызова.
3. Разработка программы ведётся пошагово, методом „сверху вниз“.
Системы программирования
Системы программирования - это комплекс инструментальных программных средств, предназначенный для работы с программами на одном из языков программирования. Системы программирования предоставляют сервисные возможности программистам для разработки их собственных компьютерных программ.
Бейсик (Basic) – для освоения требует начальной подготовки (общеобраз-я шк.) Microsoft Visual Basic
Паскаль (Pascal) – требует специальной подготовки Borland Delphi
Паскаль (Pascal) – требует специальной подготовки Microsoft Visual С++
Ява (Java) требует серьезной подготовки Java: Borland JBuilder
Типы решаемых задач
- Программы с простейшей структурой
- Использование управляющих конструкций
- Использование функций
- Массивы и указатели
- Обработка символьной информации
Требования к знаниям и умениям учащихся
Учащиеся должны знать:
• что такое алгоритм; какова роль алгоритма в системах управления;
• в чем состоят основные свойства алгоритма;
• способы записи алгоритмов: блок-схемы, учебный алгоритмический язык;
• основные алгоритмические конструкции: следование, ветвление, цикл; структуры алгоритмов;
• назначение вспомогательных алгоритмов; технологии построения сложных алгоритмов: метод последовательной детализации и сборочный (библиотечный) метод;
• основные свойства величин в алгоритмах обработки информации: что такое имя, тип, значение величины; смысл присваивания;
• назначение языков программирования;
•*в чем различие между языками программирования высокого уровня и машинно-ориентированными языками;
• правила представления данных на одном из языков программирования высокого уровня (например, на Паскале);
• правила записи основных операторов: ввода, вывода, присваивания, цикла, ветвления;
• правила записи программы;
• *что такое трансляция;
• назначение систем программирования;
• содержание этапов разработки программы: алгоритмизация - кодирование - отладка - тестирование.
Учащиеся должны уметь:
• пользоваться языком блок-схем, понимать описания алгоритмов на учебном алгоритмическом языке;
• выполнять трассировку алгоритма для известного исполнителя;
• составлять несложные линейные, ветвящиеся и циклические алгоритмы управления одним из учебных исполнителей;
• выделять подзадачи; определять и использовать вспомогательные алгоритмы;
• составлять несложные программы решения вычислительных задач с целыми числами;
• программировать простой диалог;
• работать в среде одной из систем программирования (например, Турбо Паскаль);
• осуществлять отладку и тестирование программы.
Дата добавления: 2015-07-11; просмотров: 542 | Нарушение авторских прав