Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Тема «Алгоритмы. Структурная алгоритмизация»



 

Форма изложения материала — сочетание лекции с практическими занятиями. На лекции вспоминают и уточняют понятие «алгоритм», введенное в базовом курсе информатики, и обсуждают особенности алгоритмов, исполнителем которых является компьютер. Далее переходят к способам записи алгоритмов, акцентируя внимание на блок-схемах, приводят примеры нескольких простейших линейных алгоритмов.

Отметим, что по вопросу о целесообразности использования блок-схем при отработке навыков алгоритмизации в методической литературе существуют разные точки зрения. Возможно (хотя и вызывает сомнение), что при подготовке профессиональных программистов в вузах этот способ записи алгоритмов является излишней промежуточной ступенью. Однако, как показывает опыт, при выработке навыков алгоритмизации у школьников использование графических схем является чрезвычайно полезным. При этом необязательно следовать соответствующему стандарту, но некий отчетливый набор Правил по изображению блок-схем должен присутствовать.

Далее переходят к изложению правил структурной алгоритмизации. Приведите на уровне схемы три классические структуры (следование, выбор и цикл). При изображении структуры «выбор» можно использовать, например, схему, приведенную на рис. 15.2 (как показывает опыт, на доске и в тетради удобнее вертикальная компоновка блок-схем); схемы развилки (как частного случая выбора) и различных циклов общеизвестны.

 

 

Рис. 15.2. Схема структуры «выбор»

 

Приведя несколько примеров простых задач, реализуемых через единичный выбор (развилку), единичный цикл (с предусловием и с постусловием), перейдите к иллюстрации важнейшего в структурном программировании понятия «суперпозиции». Уместно вначале просто показать графически, что такое суперпозиция (вложение) различных пар структур друг в друга. Например, структура типа «развилка, вложенная в цикл» изображена на рис. 15.3.

 

 

Рис. 15.3. Пример вложенной структуры

 

Обратите внимание на то, что при анализе изображений алгоритмов методически важной является возможность указать те точки, в которых начинается и заканчивается каждый элементарный фрагмент. При вертикальной компоновке блок-схем эти точки должны быть на одной вертикали.

Теперь сформулируйте несложную содержательную задачу, приводящую к такой структуре, и решите ее графически. Например: в компьютер последовательно вводится 100 чисел, найти отдельно суммы положительных и отрицательных чисел. Надо поступить также с другими суперпозициями: развилка в развилке, цикл в развилке, цикл в цикле, и отрабатывать решение типовых задач алгоритмизации, которые можно почерпнуть в цитированных ниже задачниках. При этом не следует прибегать к структурированию обрабатываемой информации (например, создавать переменные с индексом), чтобы не усложнять основную задачу.

Следующей проблемой является введение в идею модульности, одну из важнейших в структурном программировании. На блок-схемах вспомогательные алгоритмы (из которых впоследствии вырастут процедуры и функции) обозначают, например, так:

 

 

Далее формулируйте принципы нисходящего проектирования и пошаговой детализации, также являющиеся частью структурной алгоритмизации, и путем решения относительно несложных задач вырабатывайте простейшие навыки этой деятельности. Задачи на этом этапе достаточно традиционны, например: найти наибольшее число из нескольких (последовательно вводимых в машину) — вспомогательный алгоритм есть нахождение наибольшего из двух; найти наибольший общий делитель для нескольких целых чисел и т.п.

Опыт показывает, что пока элементарные навыки структурной алгоритмизации не отработаны, изучение языка типа Паскаль нецелесообразно, так как на специфические трудности программирования на новом языке накладываются трудности более высокого порядка. Поэтому этой теме следует посвятить несколько уроков без выхода на ЭВМ.

Тема «Введение в Паскаль»

 

Форма изложения материала — лекционная. Рассматриваются вопросы:

• что такое программирование;

• краткая история развития языков программирования;

• классификация методических подходов («парадигм») в программировании;

• язык Паскаль, история его создания и развития, области применения;

• структура программы на Паскале;

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

Говоря об истории развития языка и рассказав о Турбо Паскаля, в дальнейшем можно не подчеркивать всякий раз, что тот или иной фрагмент связан именно с Турбо Паскалем, поскольку это расширение языка стало в наше время общепринятым. Фактически курс целесообразно базировать именно на Турбо Паскале.

По вопросу об изучении структуры программы на Паскале можно придерживаться двух подходов. Первый — вводить разделы по мере изучения языка (например, о существовании раздела «Описание процедур» сказать тогда, когда приступите к теме «Процедуры и функции»). Второй — сразу перечислить все возможные разделы программы, порядок их следования, не вдаваясь, естественно, в вопрос о деталях устройства. В целостном курсе второй подход представляется предпочтительным. Таким образом, уже на вводном занятии рекомендуется дать полный перечень:

 

программа = заголовок + блок + точка, блок = [описание меток] + [определение констант] + [определение типов] + [описание переменных] + [описание процедур и функций] + составной оператор

 

(разделы, названия которых заключены в квадратные скобки, факультативны, т. е. могут в конкретной программе отсутствовать). Приведите общее, без деталей, описание назначения каждого из разделов, укажите ключевые слова, по которым их можно опознать.

То обстоятельство, что Паскаль является языком со строго определенными понятиями, часто ускользает от внимания «практиков». В спецкурсе, ориентированном на программирование, этот вопрос заслуживает обсуждения, хотя и является материалом повышенной трудности. Вначале ставим проблему ключевого различия между естественными (русским, английским и т.д.) и формальными языками (все языки программирования и не только они). Это интересный способ установить связи между информатикой и лингвистикой, разобраться в таких понятиях, как «синтаксис», «семантика». Далее, подведите учащихся к осознанию того, что для формального языка, в отличие от естественного, должен существовать способ полного, однозначно интерпретируемого описания допустимых в нем конструкций — метаязык. Опыт показывает, что нецелесообразно привлекать на этом этапе обучения нормальные формы Бэкуса, которые довольно трудно воспринимаются. Напротив, синтаксические диаграммы Вирта, благодаря элементам графической поддержки, гораздо «понятнее» и полностью решают поставленную задачу. Следует с осторожностью относиться к привлечению формальных описаний вне той сферы, для которой они созданы (это практикуется в ряде пособий, например, для описания бытовых понятий). Напротив, диаграммы понятий «цифра», «четное число» и им подобные достаточно прозрачны и создают представление о метаязыке еще до появления достаточно сложных конструкций Паскаля. В дальнейщем злоупотреблять синтаксическими диаграммами не следует, они на данном уровне обучения играют вспомогательную роль.


Поделиться:



Последнее изменение этой страницы: 2017-05-05; Просмотров: 510; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.018 с.)
Главная | Случайная страница | Обратная связь