GOSY / 4 блок-все
.pdfв СКИ. Это требование к алгоритму называется свойством понятности.
Другое свойство алгоритма – точность. Всякая команда должна быть сформулирована так, чтобы определить однозначное действие исполнителя. Например, кулинарный рецепт можно рассматривать как алгоритм для исполнителя
– повара по приготовлению блюда. Но если одним из пунктов в нем будет написано: «Положить несколько ложек сахара», то это пример неточной команды. Сколько ложек? Каких ложек (чайных, столовых)?
Работа исполнителя состоит в последовательном формальном выполнении команд алгоритма. Отсюда следует вывод о возможности создания автоматических исполнителей. В частности, таким автоматическим исполнителем алгоритмов по обработке информации является компьютер. Конечность. Это свойство определяет, что каждое действие в отдельности и алгоритм в целом должны иметь возможность завершения Бесконечно исполняемый алгоритм безрезультатен.
Поэтому свойство конечности называют еще
результативностью алгоритма.
Дискретность. Это свойство указывает, что любой алгоритм должен состоять из конкретных действий, следующих в определенном порядке.
Детерминированность. Это свойство указывает, что любое действие алгоритма должно быть строго и недвусмысленно определенно в каждом случае. Например, если к остановке подходят автобусы разных маршрутов, то в алгоритме должен быть указан конкретный номер маршрута -5. кроме того, необходимо указать точное количество остановок, которое надо проехать, - скажем, три.
Массовость. Это свойство показывает, что один и тот же алгоритм можно использовать с разными исходными данными.
141
Результативность. Это свойство требует, чтобы в алгоритме не было ошибок.
Алгоритм, заданный словесно, в виде таблицы или графически (блок-схемой), может быть обработан с помощью ЭВМ только в том случае, если он переведен на некоторый язык программирования. Выбор языка зависит от многих факторов как объективных, так и субъективных: наличие техники, ПО, наличия литературы.
Блок-схема – это графическое представление алг-ма, каждое действие алг-ма записыв-ся соответствующей геометрической фигурой.
Начало алг-ма
начало
Конец алг-ма
Конец
Арифметическое действие или группа действий
Выбор действия в зависимости от истинности или
ложности; в программе соотв.
Операторам условного перехода и конструкциям цикла while и Repeat.
Повторение действий заданное кол-во раз;
в программе соответствует конструкции цикла FOR.
КЦ
ввод значений переменных с клавиатуры вывод значений переменных и текста на экран
направление вычисления сверху вниз или слева
направо направление вычисления снизу вверх и справа налево
точка разрыва в схеме
Различают следующие типы алгоритмов: линейный, разветвляющийся, циклический.
142
Линейный алгоритм не содержит логических условий и им одну ветвь вычислений
начало
Ввод a,b,c
S:=a+b
S:= S+c
Вывод S
конец
Разветвляющийся алгоритм содержит одну или несколько ветвей вычисления.
Циклический алгоритм содержит многократно повторяемые части.
143
Составить алгоритм и написать программу, которая выводят y=x2 в диапазоне от -10 до 10, с шагом 0,5.
Наиболее полно тема раскрывается в учебнике Шауцуковой Л. З.
Всписке учебных элементов темы насчитывается 19 понятий: исполнитель алгоритма, данные, алгоритм, свойства алгоритма, словесный способ, блок-схема, псевдокод, итерационный алгоритм, вложенный цикл алфавит, синтаксис, семантика, математическая модель, , алгоритмические конструкции, язык программирования, язык ассемблера, отладка программ, тестирование, сопровождение программ.
Это позволяет нам положить изучение данной темы 19 часов
в8-9 классах (по стандарту). Для 10-11 классов данная тема рассматривается в отдельных вопросах.
Вданном учебнике дано следующее определение алгоритма
– заранее заданное понятное и точное предписание возможному исполнителю совершить определенную
144
последовательность действий получения решения задачи за конечное число шагов.
Указания на выполнение каждого отдельного действие названо командой, а «совокупность команд, которые могут быть выполнены исполнителем, называется системой команд исполнителя». В качестве основного свойства алгоритма подчеркивается формальный характер работы исполнителя при его выполнении. Отсюда делается вывод о том, что исполнительным алгоритма может быть автомат (машина, робот). На этой идее основан принцип программного управления работы компьютера, поскольку программа-это и есть алгоритм, представленные на языке, «понятном» компьютеру - на языке программирования.
В задачах вычислительного характера в качестве метода работы исполнителя предлагается заполнение таблицы значения. В программировании такие таблицы принято называть трассировочными.
Наряду с использованием алгоритмического языка для описания алгоритмов в учебнике Шауцуковой Л. З. активно используются блок-схемы. Подчеркивается необходимостью стандартного изображения блок-схем, чего также требует методика структурного подхода к программированию.
Основные типы учебных алгоритмических задач. Для закрепления основных понятий, связанных с определением алгоритма, полезно рассмотреть с учениками несколько заданий следующего содержания:
1. выполнить роль исполнителя: дан алгоритм, формально исполнить его; 2. определить исполнителя и систему команд для данного вида работы;
3. в рамках данной системы команд построить алгоритм; 4. определить необходимый набор исходных
данных для решения задачи.
145
Требования к знаниям и умениям учащихся по линии алгоритмизации и программирования
Учащиеся должны знать:
∙Что такое алгоритм; какова роль алгоритма в системах управления;
∙В чем состоят основные свойства алгоритмов;
∙Способы записи алгоритмов: блок – схемы, учебный алгоритмический язык;
∙Основные алгоритмические конструкции: следование, ветвление, цикл, структуры алгоритмов;
∙Назначение вспомогательных алгоритмов; технологии построения сложных алгоритмов;
∙Основные свойства величин в алгоритмах обработки информации: что такое имя, тип, значение величины; смысл присваивания;
∙Назначение языков программирования;
∙Правила представления данных на одном из языков программирования высокого уровня;
∙Правила записи основных операторов: ввода, вывода. Присваивания, цикла, ветвления;
∙Правила записи программы;
∙Назначение систем программирования;
∙Содержание этапов разработки программы: алгоритмизация – кодирование – отладка – тестирование. Учащиеся должны уметь:
∙Пользоваться языком блок – схем, понимать описания алгоритмов на учебном алгоритмическом языке;
∙Выполнять трассировку алгоритма для известного исполнителя;
∙Составлять несложные линейные, ветвящиеся и циклические алгоритмы управления одним из учебных исполнителей;
146
∙Выделять подзадачи; определять и использовать вспомогательные алгоритмы;
∙Составлять несложные программы решения вычислительных задач с целыми числами;
∙Программировать простой диалог.
147
148
76. Методика преподавания решения задач по программированию.
Основные подходы к программированию
Языки высокого уровня делятся на
процедурные (алгоритмические) (Basic, Pascal, C и др.), которые предназначены для однозначного описания алгоритмов; для решения задачи процедурные языки требуют в той или иной форме явно выписать процедуру ее решения;
логические (Prolog, Lisp и др.), которые ориентированы не на разработку алгоритма решения задачи, а на систематическое и формализованное описание задачи с тем, чтобы решение следовало из составленного описания;
объектно-ориентированные (Object Pascal, C++, Java и др.), в основе которых лежит понятие объекта,
сочетающее в себе данные и действия над ними.
Программа на объектно-ориентированном языке, решая некоторую задачу, по сути, описывает часть мира, относящуюся к этой задаче. Описание действительности в форме системы взаимодействующих объектов естественнее, чем в форме взаимодействующих процедур.
Принцип структурного программирования
Структурное программирование – методология разработки ПО. Предложена в 70-х годах двадцатого века, разработана и дополнена Н. Виртом. В соответствии с данной методологией разработки ПО:
1. Вводится следующий порядок выполнения программы:
•последовательное исполнение – однократное выполнение операций в том порядке, в котором они записаны в тексте программы;
•ветвление – однократное выполнение одной из двух и более операций, в зависимости от условия;
149
• цикл – многократное выполнение одной и той же операции до тех пор пока выполняется некоторое заданное условие (условие продолжения цикла).
2.Повторяющиеся фрагменты программы(или фрагменты, представляющие собой логически целостные блоки) оформляются в виде подпрограмм (процедур или функций).
Вэтом случае, в тексте основной программы, вместо помещённого в подпрограмму фрагмента вставляется инструкция вызова подпрограммы. Инструкция вызова запускает выполнение заданная подпрограмма, после окончания которой исполнение программы продолжается с инструкции, следующей за командой вызова.
3.Разработка программы ведётся пошагово, методом „сверху вниз“.
Системы программирования
Системы программирования - это комплекс инструментальных программных средств, предназначенный для работы с программами на одном из языков программирования. Системы программирования предоставляют сервисные возможности программистам для разработки их собственных компьютерных программ.
Бейсик (Basic) – для освоения требует начальной подготовки (общеобраз-я шк.) Microsoft Visual Basic Паскаль (Pascal) – требует специальной подготовки
Borland Delphi
Паскаль (Pascal) – требует специальной подготовки
Microsoft Visual С++
Ява (Java) требует серьезной подготовки Java: Borland JBuilder
Типы решаемых задач
-Программы с простейшей структурой
-Использование управляющих конструкций
-Использование функций
-Массивы и указатели
150