WWW.DISS.SELUK.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА
(Авторефераты, диссертации, методички, учебные программы, монографии)

 

Pages:     | 1 |   ...   | 4 | 5 || 7 |

«М.П.ЛАПЧИК, И.Г.СЕМАКИН, Е.К.ХЕННЕР МЕТОДИКА ПРЕПОДАВАНИЯ ИНФОРМАТИКИ Под общей редакцией М. П. Лапчика Рекомендовано Учебно-методическим объединением по специальностям педагогического образования в качестве учебного ...»

-- [ Страница 6 ] --

• второй закон Ньютона в дифференциальной формулировке, его применение при построении моделей динамических процессов;

• какое воздействие оказывает сила сопротивления среды на характер движения тел;

• какие факторы принимаются во внимание при учете сопротивления среды;

• дифференциальные или конечно-разностные формулировки ряда моделей физических процессов. Среди них могут быть:

• свободное падение тела с учетом сопротивления среды;

• движение тела, брошенного под углом к горизонту, с учетом сопротивления среды;

• движение небесных тел;

• движение заряженных частиц;

• колебательные движения различных маятников;

• теплопроводность в однородном стержне и др.

Учащиеся должны уметь:

• отбирать факторы, влияющие на поведение изучаемой системы, выполнять ранжирование этих факторов;

• выводить уравнения указанных выше процессов;

• выбирать наиболее подходящие программные средства для исследования построенных моделей;

• использовать простейшие численные методы при решении систем дифференциальных уравнений (решать конечно-разностные уравнения);

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

• анализировать полученные результаты и исследовать математическую модель при различных наборах параметров, в том числе граничных или критических.

ТЕМА «ИМИТАЦИОННЫЕ СТОХАСТИЧЕСКИЕ МОДЕЛИ»

Учащиеся должны знать:

• основные понятия теории вероятности: среднее значение, случайное событие, равновероятные и неравновероятные события, случайная величина, выборка, математическое ожидание, дисперсия, законы распределения случайных величин, доверительный интервал и др.;

• алгоритмы, используемые при моделировании псевдослучайных чисел на ЭВМ; способы получения последовательностей случайных чисел с заданным законом распределения;

• подходы к построению математических моделей в теории массового обслуживания;

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

Учащиеся должны уметь:

• моделировать последовательности случайных чисел с заданным законом распределения;

• согласно выбранным моделям моделировать случайные события и интерпретировать полученные результаты.

ТЕМА «МОДЕЛИРОВАНИЕ ДИНАМИКИ РАЗВИТИЯ ПОПУЛЯЦИЙ»

Учащиеся должны знать:

• отличительные особенности и специфику компьютерного математического моделирования в классической экологии;

• основные понятия классической экологии: особи, популяции, сообщества, конкуренция, хищничество и др.;

• модели динамики численности популяций с дискретным размножением;

• модели динамики численности популяций с непрерывным размножением;

• модели популяций хищника и жертвы.

Учащиеся должны уметь:

• исследовать динамику численности популяций с дискретным размножением; строить фазовые диаграммы;

• исследовать динамику численности популяций с непрерывным размножением, анализировать влияние на ее поведение внутривидовой и межвидовой конкуренции;

• исследовать систему «хищник—жертва», анализировать взаимное влияние численностей популяций;

• строить, исследовать и анализировать имитационные модели экологических систем.

14.5. ВАРИАНТЫ ТЕМАТИЧЕСКОГО ПЛАНИРОВАНИЯ

КУРСОВ, ОРИЕНТИРОВАННЫХ НА МОДЕЛИРОВАНИЕ

Ниже приведены программы нескольких профильных курсов данной категории и комментарии к ним.

КУРС «ОСНОВЫ ИНФОРМАЦИОННОГО МОДЕЛИРОВАНИЯ»

для учащихся X—XI классов естественнонаучного направления.

1. Введение.

1.1. Информатика — наука XX века.

1.2. История становления информатики.

1.3. Информатизация как новый этап развития общества.

1.4. Информатика как научная основа информатизации.

1.5. Язык и информация.

2. Информационное моделирование.

2.1. Модель. Простейшие модели. Моделирование как метод познания.

2.2. Основные идеи формализации.

2.3. Формализация и интерпретация.

2.4. Компьютер — универсальное устройство для автоматической обработки информационных моделей.

2.5. Основная технологическая цепочка решения задачи с использованием компьютера.

2.6. Понятия «система», «элемент», «свойство», «отношение».

2.7. Структурирование. Структурный граф.

2.8. Виды информационных моделей (классификационные, динамические, логико-лингвистические).

3. Классификационные модели.



3.1. Классификация и описательные дисциплины.

3.2. Дискретные модели: древовидные структуры, иерархия, 3.3. Обзор автоматизированных систем, основанных на классификационных моделях.

3.4. Задача распознания образов — непрерывная модель.

3.5. Разработка конкретной модели классификационного типа.

3.5.1. Разработка структуры.

3.5.2. Реализация классификационной модели на основе готовых программных средств.

3.5.3. Наполнение и изучение предметно-ориентированных справочных систем (биология, химия, география и др.).

3.5.4. Разработка автоматизированных процедур распознавания и классификации (животные, растения и др.).

4. Динамические модели.

4.1. Особенности динамических моделей. Дискретность и непрерывность в моделировании.

4.2. Обзор возможных программных средств для обработки динамических моделей.

4.3. Значение разработки и исследования динамических моделей. Примеры.

4.4. Проектирование конкретной динамической модели:

4.4.1. Постановка задачи разработки динамической модели конкретной реальной ситуации.

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

4.4.3. Описание элементов модели, их отношений и закона движения.

4.4.4. Компьютерная реализация полученной информационной модели.

4.4.5. Организация исследования разработанной информационной модели.

5. Самостоятельное выполнение учебных исследовательских проектов.

5.1. Выбор учащимися темы учебного проекта. Краткая характеристика тем.

5.2. Самостоятельное выполнение учебных проектов.

5.3. Оформление отчетов.

6. Заключение.

6.1. Обсуждение отчетов групп учащихся о проделанной работе.

6.2. Обобщающее повторение.

6.2.1. Обсуждение основных идей информационного моделирования.

6.2.2. Значение метода информационного моделирования.

6.2.3. Перспективы информатизации общества.

Примечания.

1. В вопросах моделирования автор курса придерживается классификации, изображенной на рис. 14.2.

2. В отношении классификации профильных курсов, приведенной в табл.

13.2 и 13.3, данный курс относится к «соотнесенным с предметными областями». Точнее говоря, он соотнесен с информатикой и естествознанием. Поскольку многие вопросы, отнесенные к данному курсу, берут свое начало в базовом курсе информатики, то задача данного курса — углубление соответствующих знаний и навыков.

КУРС «КОМПЬЮТЕРНОЕ МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ»

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

Такое содержание наиболее адекватно отражает выделенные выше содержательные линии и отвечает задачам курса КММ. Данное содержание представляется инвариантным по отношению к указанному курсу и должно составить его основу. Поясним этот тезис.

Действительно, в курсе КММ целесообразно изучать те процессы и объекты, которые допускают строгое математическое описание или, по крайней мере, «полустрогое», эмпирическое (это позволяет проводить имитационное моделирование подобных процессов с должной степенью адекватности их реальным процессам). Это, прежде всего, связано с тем, что, как отмечалось ранее, курс предназначен для учащихся, склонных к изучению физики, математики, информатики и др. Указанные разделы представляют именно те предметные области, где формулируемые модели отвечают приведенному здесь требованию.

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

• частные цели и задачи обучения КММ;

• профиль образовательного учреждения, где проводится курс;

• подготовка учащихся по общеобразовательным дисциплинам;

• интересы учащихся;

• интересы и подготовка учителя и др.

Таким образом, представленный ниже перечень заданий может служить лишь ориентиром при собственном планировании учителем курса КММ.

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

ТЕМАТИЧЕСКОЕ ПЛАНИРОВАНИЕ

1. Введение в технологию компьютерного математического моделирования.

1.1. Понятия «модель», «натурная и идеальная модель», «математическая модель». Компьютер и моделирование. Примеры.

1.2. Этапы компьютерного математического моделирования. Примеры.

1.3. Подходы к классификации моделей. Сферы применения компьютерного математического моделирования; его роль в развитии современной науки.

2. Компьютерные модели в физике.

2.1. Свободное падение тела с учетом сопротивления среды.

2.1.1. Дифференциальная формулировка второго закона Ньютона. Составляющие силы сопротивления среды, их учет при моделировании.

2.1.2. Математическая модель свободного падения тела с учетом сопротивления среды. Численные методы решения систем дифференциальных уравнений (метод Эйлера, Эйлера-Коши). Сравнительная характеристика методов.

Понятие об устойчивости, корректности метода. Эмпирический контроль точности.

2.1.3. Сравнение движения тела с учетом и без учета сопротивления среды.

2.1.4. Самостоятельная работа над проектом «Исследование свободного падения тела в газе или жидкости с учетом сопротивления среды». (Разработка программы, ее тестирование, проведение исследований, составление отчета.) 2.2. Движение тела, брошенного под углом к горизонту. Понятие об обезразмеривании и законах подобия.

2.3. Исследование законов движения космических тел. Проверка законов Кеплера.

2.4. Исследование движения математического маятника.

2.5. Движение тела с переменной массой: взлет ракеты.

2.6. Самостоятельная работа над одним из проектов по выбору: «Исследование движения тела, брошенного под углом к горизонту», «Исследование законов движения космических тел», «Исследование движения математического маятника», «Исследование движения тела с переменной массой».

2.7. Задачи тегоюмассопереноса. Исследование процесса теплопроводности в одномерном стержне. Явная и неявная схемы решения дифференциальных уравнений в частных производных. Метод прогонки для систем линейных уравнений с трехдиагональной матрицей. Самостоятельная работа над проектом.

3. Компьютерное математическое моделирование в классической экологии.

3.1. Основные понятия экологии: «особь», «популяция», «конкуренция» и др. Специфика построения математических моделей в экологии.

3.2. Исследование динамики численности популяций с дискретным размножением.

3.3. Динамика численности популяций с непрерывным размножением.

3.4. Внутривидовая и межвидовая конкуренция. Модель Лот-киВольтерры.

3.5. Система «хищник—жертва».

3.6. Самостоятельная работа по выбору над одним из проектов: «Исследование динамики численности популяций с дискретным размножением», «Исследование динамики численности популяции с непрерывным размножением и внутривидовой конкуренцией», «Исследование динамики численности двух конкурирующих популяций с непрерывным размножением», «Исследование системы хищник—жертва».

4. Модели в экономике (задача линейного программирования).

4.1. Примеры задач, приводящих к постановке общей задачи линейного программирования.

4.2. Геометрический способ решения задачи линейного программирования. Существование и единственность решения.

4.3. Симплекс-метод.

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

5. Компьютерные модели с элементами стохастики.

5.1.Способы получения последовательностей псевдослучайных чисел.

Основные понятия теории вероятностей. Понятие о законах распределения случайных величин.

5.2. Моделирование очереди.

5.3. Самостоятельная работа над проектами «Моделирование случайных чисел с заданным законом распределения», «Моделирование очереди с одним продавцом».

6. Имитационное моделирование.

6.1. Принципы имитационного моделирования.

6.2. Самостоятельная работа над проектами по имитационному моделированию различных процессов.

Примерное поурочное планирование

ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ И ОБСУЖДЕНИЯ К ГЛАВЕ

1. Как ввести учащихся в круг понятий информационного моделирования?

2. Какие педагогические задачи решаются в профильных курсах информатики, ориентированных на моделирование?

3. Какие содержательные линии отражены в курсах, ориентированных на моделирование?

4. Какая Вам известна педагощческая литература, посвященная проблемам изучения в школе различных видов моделирования с использованием компьютеров?

5. Какие виды и формы обучения могут быть использованы в школьных курсах информатики, ориентированных на моделирование, и какие из них являются основными?

6. Как строится отчет по проектам, выполненным учащимися в процессе изучения моделирования?

7. На каких примерах можно объяснить учащимся ранжирование факторов при построении модели?

8. На каких примерах можно объяснить учащимся то, что один процесс может породить несколько достаточно различных моделей?

9. Какие образовательные задачи решаются в процессе изучения темы «Классификационные информационные модели»?

10. Какие источники педагогической и специальной литературы по данной теме Вам известны?

11. На каких примерах можно пояснить различия между материальными и информационными связями?

12. Какие Вам известны примеры структурирования информации путем выделения элементов (характеристик) некоторого сложного объекта?

13. Какие элементы теории графов целесообразно изучать в обсуждаемых курсах?

14. В чем состоят различия в подходах к изучению табличных информационных моделей в различных базовых курсах информатики?

15. На каких примерах можно объяснить учащимся принципиальные различия между естественными и искусственными языками?

16. На каких примерах можно строить рассказ о различных моделях представления знаний?

17. Какова методика введения метаязыка синтаксических диаграмм? На последовательности каких примеров (кроме приведенных в тексте) можно реализовать данную тему?

18. Какие иные, кроме ЛОГО, языки управления учебными исполнителями можно использовать при проведении урока по теме «Язык управления учебными исполнителями как логико-лингвистическая модель»?

19. Какие содержательные примеры могут подкрепить проведение вводного занятия по теме «Технология компьютерного математического моделирования»?

20. Почему тема «Моделирование физических процессов» часто занимает значительное место в обсуждаемых курсах?

21. Каковы цели и задачи изучения компьютерного моделирования физических процессов?

22. Какие проблемы, связанные с недостаточной математической подготовкой учащихся, могут встать при изучении компьютерного моделирования физических процессов? Какие существуют пути решения этих проблем?

23. Как наиболее просто (в методическом плане) ввести дифференциальную форму законов движения тел?

24. Как связать переход от дифференциального уравнения к конечноразностному с общей идеей дискретизации информации, присущей информатике как науке?

25. Какие формы отображения информации на экране компьютера целесообразно использовать при изучении моделирования движения тел?

26. Какова методика изучения движения тел при решении учителя обойтись вообще без дифференциальных уравнений?

27. Каковы методические достоинства и недостатки привлечения для изучения данной темы специальных программ моделирования? Какие такие программы Вы знаете?

28. В чем методические достоинства и недостатки перехода от размерных к безразмерным величинам при моделировании физических процессов?

29. В чем заключаются содержательные и методические проблемы, связанные с недостаточностью знаний учащихся, при моделировании колебательных движений?

30. В чем заключаются содержательные и методические проблемы, связанные с недостаточностью знаний учащихся, при моделировании движения небесных тел?

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

32. В чем заключаются содержательные и методические проблемы, связанные с недостаточностью знаний учащихся, при моделировании процессов тешюмассопереноса?

33. На каких примерах можно ввести учащихся в круг задач имитационного моделирования?

34. Как связать различные функции распределения случайных величин с конкретными процессами, понимание которых доступно учащимся?

35. Какова методика проведения занятий по теме «Моделирование очередей»? На каких примерах из окружающей действительности можно строить соответствующее занятие?

36. В чем причина популярности учебного компьютерного моделирования на материале экологии?

37. Как объяснить учащимся различие задач классической экологии и проблематики, связанной с защитой окружающей среды?

38. Какие модели развития и взаимодействия популяций, приводимые в специальной и педагогической литературе (кроме перечисленных выше в тексте), приемлемы для реализации в школьном курсе информатики, нацеленном на компьютерное моделирование?

39. Как пояснить учащимся соотношение между детерминированными и случайными (имитационными) моделями экологических процессов?

14.6. ЛАБОРАТОРНЫЙ ПРАКТИКУМ

ТЕМА «ПРОФИЛЬНЫЕ КУРСЫ ИНФОРМАТИКИ, ОРИЕНТИРОВАННЫЕ

НА КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ»

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

Тема «Методические особенности обучения элементам систе-мологии и теоретическим основам моделирования»

Дидактические цели: исследовательские.

Способы организации: практикум.

Технологии и методы обучения: работа с книгой (составление тематического тезауруса, матрицы идей), учебная дискуссия, поисковые упражнения, рецензирование.

Средства обучения: учебно-методическая и специальная литература [1 — 13, 15—24, 28, 31 — 34], программные средства [1—4, 7-9].

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

Основные понятия: система, надсистема, подсистема, структура, системный анализ, формализация, модель, моделирование, информационная модель.

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

После этого возникает возможность познакомить учащихся с компонентами системы и основными свойствами систем.

Изучение методологических подходов направлено на формирование представлений о возможностях применения системного, информационного и функционального подходов к исследованию явлений, процессов, объектов действительности. Следует подчеркнуть, что методологические подходы являются теоретической основой исследовательской деятельности, поэтому реализуются не сами по себе, а через такие методы, как: системный анализ, формализация, моделирование, метод «черного ящика». Метод моделирования позволяет упрощать модель по сравнению с объектом на основе конкретного сходства и различия. В познавательном процессе исследуемый объект заменяется моделью, имитирующей его структуру или функционирование. Изучение модели позволяет получать новую информацию об исходном объекте.

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

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

I. Варианты заданий Задание 1. Разработать конспект урока-лекции по заданной теме. Содержание конспекта должно включать в себя следующее:

1.1. Наименование учебной темы и часы.

1.2. Цели (образовательные, развивающие, воспитательные).

1.3. Основные понятия содержания обучения (рекомендуется составить понятийный словарь).

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

1.5. Предварительная подготовка учителя (определяются практические задачи, которые решает учитель, готовясь к лекции).

1.6. Средства обучения (литература, представленная по разделам: учебники и учебные пособия для учащихся, пособия и методические рекомендации для учителя, дополнительная литература; технические и программные средства;

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

1.7. Поэтапный план занятия с учетом временных затрат.

1.8. Содержание обучения (нужно обязательно выделить в тексте сведения, которые записывают учащиеся в рабочие тетради, а также расставить ссылки на использованную литературу).

1.9. Итоговые выводы занятия.

Примечание. Если предусмотрено использование обычной классной доски, то требуется представить набор изображений, которые будут последовательно создаваться на доске.

1. Введение в системологию.

2. Теоретические основы моделирования.

3. Информационное моделирование.

4. Модели представления знаний в системах искусственного интеллекта.

5. Введение в компьютерное моделирование.

6. Имитационное моделирование.

Задание 2. Разработать конспект комбинированного урока по заданной теме в соответствии с п.п. 1.1 — 1.8 задания 1. Следует учитывать специфику комбинированного урока, поэтому в конспекте нужно составить описание следующих основных элементов, составляющих методическую подструктуру урока:

2.1. Организация учащихся к занятиям.

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

2.4. Введение учителем нового материала и организация работы учащихся по его осмыслению и усвоению.

2.5. Первичное закрепление нового материала и организация работы по выработке у учащихся умений и навыков применения знаний на практике.

2.7. Подведение итогов урока и инструктаж по выполнению домашнего задания.

1. Системная классификация.

2. Язык программирования (управления учебным исполнителем) как логико-лингвистическая информационная модель.

3. Представление знаний в форме семантических сетей.

4. Компьютерное моделирование физических процессов и явлений.

5. Моделирование систем массового обслуживания.

6. Моделирование динамики численности популяций.

II. Структуризация учебной информации Задание 1. Составить толковый словарь терминов (тезаурус), характеризующих элементы системы основных понятий или ядра содержания обучения заданной темы урока.

Задание 2. Установить взаимосвязи внутри сконструированной системы понятий заданной темы урока и внешние связи этой системы с понятиями базового курса информатики (табл. 14.2,14.3).

Выходные дан- Наименование ные учебника раздела Целесообразно по результатам выполненного студентами логикосодержательного анализа учебной литературы базового курса информатики провести учебную беседу с целью уточнения определений основных понятий темы и вариантов классификаций моделей, а также обоснования наиболее предпочтительного выбора учебной литературы. Возможна организация учебной деятельности по подгруппам, например, обучаемые первой подгруппы выполняют по вариантам задание 1, а второй — задание 2. Возможный прием — рецензирование работ студентов внутри подгруппы. В рамках дискуссии рекомендуется обсудить результаты учебной деятельности студентов по структуризации учебной информации, направленной на работу с системой понятий.

Тема «Методика обучения технологическим приемам построения информационных и компьютерных моделей»

Дидактические цели: иллюстративно-исследовательские.

Способы организации: лабораторно-практическая работа.

Технологии и методы обучения: работа с книгой (тезирование, аннотирование), поисковые упражнения, рецензирование.

Средства обучения: учебно-методическая и специальная литература [1, 2, 5, 7, 8, 22—27, 29, 30, 31, 35, 36], программные средства [4—9].

Предварительная подготовка студентов: требуется ознакомиться с планом лабораторно-практической работы и выполнить п.п. 1—2 этого плана.

Основные понятия: прототип, моделирование, принятие решения, компьютерный эксперимент.

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

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

1. Выбрать, по согласованию с преподавателем, одну из предложенных тем уроков лабораторно-практических работ.

2. Изучить учебную, методическую и специальную литературу по информатике в соответствии с выбранной тематикой, составить аннотированный список литературы.

3. Освоить функциональное наполнение программных средств, которые предполагается использовать с целью выполнения практических заданий старшеклассниками или для оформления ими отчетов.

4. Выполнить задания 1 — 3, приведенные ниже, и представить письменные отчеты.

I. Варианты заданий Задание 1. Разработать конспект урока лабораторно-практических работ по заданной теме в соответствии с п.п. 1.1 —1.8 (занятие 1). Следует учитывать специфику урока лабораторно-практических работ, поэтому в конспекте нужно описать следующие основные этапы:

• вводная часть урока, на которой преподаватель формулирует цели занятия, дает задание, определяет вопросы, выполняет вместе с учащимися схему предстоящих действий;

• самостоятельная работа учащихся, организованная таким образом, чтобы они могли определить пути решения поставленных задач, наметить последовательность выполнения необходимых действий, решить поставленные задачи и составить отчеты;

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

Задание 2. В целях эффективной организации деятельности обучаемых разработать инструктажные карты к выполнению заданий лабораторнопрактической работы.

Задание 3. Разработать вариативные наборы заданий для лабораторнопрактической работы, содержащие четкие формулировки заданий и ответы.

Тематика уроков лабораторно-практических работ 1. Выделение характеристик объекта и информационных связей между ними.

2. Построение древовидных и графовых моделей.

3. Построение табличных информационных моделей.

4. Построение продукционных моделей представления знаний.

5. Моделирование движения.

6. Моделирование колебаний.

7. Прогнозирование состояния экологических систем с помо-Щью компьютерных моделей.

II. Структуризация учебной информации Дополнить вариативные наборы (задание 3) формально-логическими моделями решения прикладных задач с применением программных средств (табл.

14.4).

Формулировка Этапы модели- Программные ТехнологичеАлгоритмы Результаты Для студентов, успешно справившихся с заданиями 1—3, рекомендуем дополнительное задание, выполнение которого направлено на структуризацию учебной информации. Целесообразно организовать внутри студенческой группы рецензирование вариативных наборов прикладных заданий, предложить студентам продемонстрировать использование инструктажных карт в учебном процессе.

1. Средства подготовки презентаций: PowerArt, PowerPoint, ClipArt и др.

2. Системы компьютерного моделирования: GPSS, CSSE и др.

3. Математические пакеты: Derive, MathCad, Mathematica и др.

4. Табличные процессоры: SuperCalc 5.0, Microsoft Excel и др.

5. Системы управления базами данных: MS Access, FoxPro и др.

6. Интегрированные системы: FrameWorks, Works 4.0 и др.

7. Система учебных исполнителей: Программно-методический комплекс по курсу информатики «Основы алгоритмизации» и др.

8. Системы программирования: Turbo Pascal, Delphi, Visual Basic, Turbo Prolog, Turbo C, Borland C++, Fort, JavaScript и др.

9. Текстовые редакторы: Lexicon, MS Word и др.

ЛИТЕРАТУРА К ГЛАВЕ

1. Белошапка В. К. Информационное моделирование в примерах и задачах. — Омск:

Изд-во Ом. гос. пед. ин-та, 1992.

2. Гейн А. Г., Юнерман Н.А. Информатика 10—-11 кл. // Информатика: Еженед. прил.

к газ. «Первое сентября». — 1999. — № 40,43,46; 2000. — № 3.

3. Глинский Б.А. и др. Моделирование как метод научного исследования. — М.: Знание, 1965.

4. Захарова Т. Б. Профильная дифференциация обучения информатике на старшей ступени школы. — М.: МЦНТИ, 1997.

5. Информатика: Задачник-практикум: В 2 т. / Под ред. И. П. Семакина и Е.К.Хеннера.

— М.: Лаборатория базовых знаний, 1999.

6. Информатика: Энциклопедический словарь для начинающих. — М.: ПедагогикаПресс, 1994.

7. Информационная культура: Кодирование информации. Информационные модели:

9—10 кл. — М.: Дрофа, 1996.

8. Компьютерные модели, вычислительный эксперимент: введение в информатику с позиций математического моделирования. — М.: Наука, 1988.

9. Могилев А. В., Пак И. И., Хеннер Е.К. Информатика: Учеб. пособие для студентов пед. вузов / Под ред. Е.К.Хеннера — М.: Академия, 1999.

10. Могилев А.В., Хеннер Е.К. О понятии «Информационное моделирование» // Информатика и образование. — 1997. — № 8.

11. Мороз А. Я. Кибернетика в системе современного научного знания. — Киев, 1988.

12. Острейковский В.А. Теория систем. — М.: Высш. шк., 1997.

13. Семакин И.Г. и др. Информатика: Базовый курс 7 — 9 кл. — М.: Лаборатория Базовых Знаний, 1999.

14. Бабанский Ю. К. Методы обучения в современной общеобразовательной школе.

— М.: Просвещение, 1985.

15. Белошапка В. К., ЛесневскийА. С. Основы информационного моделирования // Информатика и образование. — 1993. — № 6.

16. Бешенков С.А., ГейнА.Г., Григорьев С.Г. Информатика и информационные технологии. — Екатеринбург: Изд-во Урал. гос. пед. ун-та, 1995.

17. Бигон М., ХарперДж., Таунсенд К. Экология: В 2 т. — М.: Мир, 1989.

18. Брусиленко Н.П. Метод статистического моделирования. — М.: Мир, 1970.

19. Брусиленко Н. П. Моделирование сложных систем. — М.: Наука, 1978.

20. Гейн А. Г., Данилина И. И., Шолохович В. Ф. Информатика (естественнонаучный профиль) // Информатика: Еженед. прил. к газ. «Первое сентября». — 1998. - № 42. — С. 3— 14.

21. Гейн А. Г., Сенокосов А. И. Информатика и основы вычислительной техники:

Учеб. пособие для 8—11 кл. школ с углубленным изучением информатики // Информатика:

Еженед. прил. к газ. «Первое сентября».— 1998.-№43.-С. 7-29.

22. ГорсткоА.Б. Познакомьтесь с математическим моделированием. — М.: Знание, 1991.

23. Гулд X., Тобочник Я. Компьютерное моделирование в физике: В 2 т. — М.: Мир, 1990.

24. Информатика: 9 кл. / Под ред. Н.В. Макаровой. — СПб.: Питер, 1999.

25. Основы экологии и природопользования. Компьютерный курс / б-Ф. Шолохович, А. Г. Гейн, С.В.Комов и др. — М.: Просвещение, 1995.

26. Островская Е. М. Моделирование на компьютере// Информатика и образование.

— 1998. — № 7, 8; 1999. — № 1.

27. Пак Н.И. Компьютерное моделирование в примерах и задачах. — Красноярск:

Изд-во Краснояр. гос. пед. ун-та, 1994.

28. Пекелис В.Д. Кибернетика от А до Я: Энциклопедия. — М., 1990.

29. Петрова Н. П. Маленькие модели большого мира (задачи на моделирование) // Информатика: Еженед. прил. к газ. «Первое сентября». — 1995.-№31.

30. Преподавание компьютерного курса «Основы экологии и природопользования» в общеобразовательной школе / В.Ф.Шолохович, С.В.Комов, АТ.Гейн, И.И.Данилина. — Екатеринбург: Изд-во Урал. гос. пед. ун-та, 1994.

31. Самарский А.А., Михайлов А.П. Математическое моделирование. Идеи. Методы.

Примеры. — М.: Наука, 1997.

32. Чубарова Т.П. Моделирование и элементы системологии: Учеб. пособие для учащихся 11 кл. // Информатика: Еженед. прил. к газ. «Первое сентября». — 2000. — № 10, 13.

33. Шеннон Р. Имитационное моделирование систем — искусство и наука. — М.:

Мир, 1978.

34. Шнейдеров В. С. Занимательная информатика. — СПб.: Политехника, 1994.

35. Шуиукова Л. 3. Технология решения и подготовки задач на компьютере // Информатика и образование. — 1999. — № 7.

36. Яковлева Т. А. Технология компьютерного моделирования // Информатика и образование. — 1997. — № 5.

ПРОФИЛЬНЫЕ КУРСЫ

ИНФОРМАТИКИ, ОРИЕНТИРОВАННЫЕ

НА ПРОГРАММИРОВАНИЕ

Программирование — наиболее традиционная сфера деятельности при организации профильно-ориентированных курсов информатики. Существует множество вариантов таких курсов. Однако само содержание термина «программирование» нуждается в уточнении.

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

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

Принципиально иное направление в программировании связано с методологиями (иногда говорят «парадигмами») непроцедурного программирования. В их число входят объектно-ориентированное и декларативное программирование.

Объектно-ориентированная программа — совокупность множества независимых объектов. Каждый объект можно использовать для решения задачи, не вникая во внутренние механизмы его функционирования. Наиболее популярные языки объектного программирования — C++, Delphi, Visual Basic.

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

Наибольший опыт преподавания программирования в школе накоплен в отношении, прежде всего, языков типа Бейсик и Паскаль. В конце 1980-х гг.

появились курсы, ориентированные на изучение основ математической логики и логического программирования, с середины 1990-х гг. — объектноориентированного программирования.

Сделаем ряд следующих замечаний в связи с изучением программирования в школе.

1. При углубленном изучении программирования часто не ограничиваются одним подходом. Достаточно типична ситуация, когда последовательно реализуются два курса (скажем, один в Х кл., а второй в XI кл.).

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

Или другой вариант: всему должен предшествовать чисто объектный подход, а на его базе изучают все остальное. Аргументация обычно такова: методология X легче осваивается после методологии Y, а не наоборот. По нашему мнению, в таких утверждениях в основном отражаются профессиональные пристрастия разработчиков курсов.

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

15.1. МЕТОДИКА ОБУЧЕНИЯ СТРУКТУРНОМУ

ПРОГРАММИРОВАНИЮ

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

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

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

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

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

ТЕМА «АЛГОРИТМЫ. СТРУКТУРНАЯ АЛГОРИТМИЗАЦИЯ»

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

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

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

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

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

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

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

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

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

ТЕМА «ВВЕДЕНИЕ В ПАСКАЛЬ»

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

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

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

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

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

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

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

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

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

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

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

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

ТЕМА «ДАННЫЕ. ТИПЫ ДАННЫХ. ВЫРАЖЕНИЯ»

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

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

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

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

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

Разговор о типах данных разумно привязать к изучаемому языку (т. е.

Паскалю). Введите четыре стандартных типа (целочисленный — integer, вещественный — real, логический (булевский) — boolean и символьный — char), покажите, какие значения могут принимать величины этих типов. Укажите на обязательность явного описания типов переменных в Паскале и покажите на примерах, как это сделать. Рассказ о том, что в Турбо Паскале на базе целочисленного и вещественного типов образованы одноименные группы типов, можно отложить на тот момент, когда стандартных типов real и integer станет недостаточно для решения задач.

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

а) тип выражения определяется типом принимаемых им значений;

б) типов выражений потенциально столько же, сколько типов данных в языке программирования.

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

sin(x), cos(x), arctan(x), ln(x), abs(x), sqr(x), sin(x), cos(x), arctan(x), ln(x), real Большая часть этих функций не вызывает затруднений, так как знакома по курсу математики. Однако такие функции, как trunc и round требуют комментариев. Это функции преобразования типов, и нетривиальность равенства trunc(5.0) = 5 должна стать темой обсуждения.

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

Примером такой функции на этом этапе может стать функция ord(x), аргумент которой может принимать значения (в частности) типов char и boolean (полный ее смысл будет раскрыт позже).

В связи с введением функции ord(x) уместен разговор о различии понятий упорядоченный и порядковый тип (в некоторых пособиях используется иная терминология, но существо дела от этого не меняется). Все четыре базовых типа являются упорядоченными, так как внутри каждого из них возможно сравнение элементов по < > =. Однако тип real, в отличие от остальных трех, не является порядковым, так как в нем нельзя пронумеровать элементы. Это существенно сказывается на ряде моментов в программировании (например, величину этого типа нельзя использовать как аргумент функции ord).

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

После усвоения этого материала перейдите к построению нематематических выражений. На данном этапе, до введения строковых величин, отрабатывайте лишь логические выражения. Введите основные логические операции И, ИЛИ, НЕ и запишите для них таблицы истинности. Далее, не прибегая к нотациям Паскаля, строят простые логические выражения и показывают, как вычисляются их значения. При этом используют в этих выражениях как переменные величины, так и логические константы. Например: (А В) С, А (В С) true и т.п.

Затем вводят нотации Паскаля и продолжают отработку навыков вычисления логических выражений, вводя в них элементы — сравнения. Например:

(А < В) or С. На примере такого выражения (и ему подобных) можно объяснить, что сравнение по < > = возможно и для величин нечисловой природы (любых упорядоченных, в частности, для символьных и логических).

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

Начинать надо с тщательной отработки понятия присваивание, без которого в дальнейшем многое не будет правильно воспринято. Вопрос представляется крайне простым: вычисляется значение выражения, стоящего справа от знака := и его получает переменная величина, стоящая слева от этого знака.

Однако понимание этого приходит не сразу. В частности, необходимо на примерах величин различных типов пояснить, что до первого присваивания переменная вообще не имеет значения.

Здесь же следует ввести понятие «совместимость типов». Паскаль является жестко типизированным языком, что способствует большей корректности программ. В языке есть понятие «совместимости типов по присваиванию», т.е.

при присваивании тип переменной слева от знака присваивания доожет не совпадать с типом выражения справа; останавливаться на этом подробно в данном месте нецелесообразно, но один момент надо пояснить — допустимо, чтобы переменная имела тип real, а выражение — integer.

Операции ввода с клавиатуры и вывода на экран — следующие за присваиванием по порядку изучения, так как без них практически не бывает программ. Различия между операциями read и readln, write и writeln опишите путем указания на визуальное расположение информации на экране.

Впоследствии, при изучении текстовых файлов, этот вопрос можно уточнить.

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

После изучения указанных операторов почти все дальнейшие примеры следует оформлять в виде завершенных программ. Попутно знакомимся с комментариями и пользуемся ими в разумных пределах.

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

Более общим (и более мощным) средством, аналогичным условному оператору, является оператор множественного ветвления. Объяснив его достаточно сложную структуру, покажите на примерах, что применение этого оператора часто избавляет от громоздких конструкций — многократно вложенных развилок, делает программу более читаемой. Обратите также внимание, что селектор и метки могут быть не обязательно типа integer (допустим любой порядковый тип), что в свою очередь добавляет выразительности программам.

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

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

Как правило, при организации циклических процессов при заранее известном числе выполнения тела цикла наиболее удобен цикл с параметром (цикл for). Познакомьте с ним учащихся; обратите внимание, что по организации работы в Паскале этот цикл вначале проверяет условие, а затем реализует тело цикла. Цикл for устроен достаточно сложно, и детальное, по пунктам, «проговаривание» порядка его исполнения существенно помогает пониманию темы. Обратите внимание учащихся на то, что параметр цикла может иметь не только тип integer, но и любой порядковый тип. Разберите, например, задачу:

вывести на экран последовательность латинских букв а, Ь,..., z- Достичь этого можно, например, так:

var i, j, k: integer;

………………………………………………………………………… i:=ord(a); j:=ord(z); for k:=i to j do write (chr(k), '_') но можно и более изящно:

var с:char;

……………………………………………………………………… for c:= 'a' to 'z' do write (c, '_') Целесообразно провести решение нескольких простых задач с помощью каждого из трех циклов и сопоставить решения. Например, это может быть задача типа: найти сумму квадратов первых 100 натуральных чисел.

Необходимо показать учащимся и задачи, в которых цикл с параметром неприменим (или применение его требует особых ухищрений). Это, прежде всего, итерационные циклические процессы, в которых выход из цикла определяется не заранее известным числом шагов, а условием, связанным с чем-то, вычисляемым в теле цикла. Хорошим примером будут математические задачи типа: найти приближенное значение a по итерационной формуле xn1 xn с выходом из итераций при достижении условия |хя+1 - х„| < е.

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

ТЕМА «ПЕРЕЧИСЛИМЫЙ И ИНТЕРВАЛЬНЫЙ ТИПЫ ДАННЫХ»

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

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

Приведя примеры определения перечислимых типов, остановитесь на допустимых операциях над соответствующими переменными и константами (операциями отношения) и функциях pred, succ, ord — лишь сейчас их можно определить в полной мере.

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

С интервальным типом проблем гораздо меньше. Фактически отдельные задачи на отработку навыков использования этого типа данных решать необязательно. В дальнейшем, особенно при описании массивов, использование интервального типа станет обычным (и не всегда осознаваемым) делом.

ТЕМА «ПРОЦЕДУРЫ И ФУНКЦИИ»

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

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

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

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

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

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

Нелегко также учащимся понять различия между формальными параметрами-значениями и параметрами-переменными. Многословные объяснения в ряде руководств иногда лишь затрудняют понимание этого важного вопроса.

Для начала вполне достаточно, если в разбираемых примерах процедур параметры будут четко подразделяться на входные и выходные и будет соблюдаться простое правило: входные параметры есть параметры-значения, выходные — параметры-переменные. Это правило страхует от ошибок, связанных с непониманием механизмов замещения параметров при обращении к процедуре. Разумеется, впоследствии этот вопрос должен быть отработан глубже.

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

Задание 1. Вычислить периметр треугольника по координатам его вершин.

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

Задание 2. Найти наибольший общий делитель (НОД) 100 натуральных чисел по алгоритму Евклида.

Процедура — НОД двух чисел. В заголовке — три переменные. Две из них — параметры-значения, третья — переменная (результат).

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

program parametr;

procedure plusl (n: integer);

procudure plas2 (var n: integer);

k:=10; plusl(k); writeln(k);

k:=10; plus2(k); writeln(k) Объясните, почему в первой печати результат оказался равен 20, а во второй — 30.

В обучении использованию процедур можно пойти и по другому пути.

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

После решения простейших задач можно переходить к более сложным, с точки зрения организации процедур. Разберите детальнее вопрос об области действия описаний. Сформулируйте простое правило: в Паскале любая переменная должна быть описана перед своим употреблением. Это правило относится и к процедурам. Полезно привести возможную схему взаимного расположения описаний процедур в некоторой условной программе и по ней разобрать вопрос об области действия описаний подпрограмм. Одна из таких схем изображена на рис. 15.4.

Рис. 15.4. Взаимное расположение описаний процедур Объясните, почему из основной программы можно обратиться к подпрограммам А и В, из А1 — к А2, но не наоборот, из В1 можно обратиться к А, но нельзя к А1 и т.д.

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

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

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

Рекурсивные процедуры — материал повышенной трудности. В теоретическом отношении организация рекурсий — принципиально важный прием программирования; на практике он по ряду причин не слишком популярен.

Обычным примером при отработке понятия «рекурсивный алгоритм» является вычисление факториала натурального числа. Если учащиеся проявили понимание и заинтересованность, то после этого можно разобрать классическую задачу «Ханойская башня», приведенную во многих руководствах по Паскалю в разделах, посвященных рекурсиям.

ТЕМА «СТРУКТУРИРОВАННЫЕ ТИПЫ ДАННЫХ»

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

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

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

На схеме не отражено, что в Турбо Паскале «вещественный» и «целый»

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

Изучение структурированных типов начните с наиболее традиционного — массива. Подчеркните его групповые свойства: упорядоченная однородная статическая структура прямого доступа; приведите обоснование этих свойств.

Способ, который принят для выделения элементов массива, — индексация — заслуживает отдельного разговора. Индексация не является единственно возможным способом выделения элементов структурированной величины и неразрывно связана с указанными свойствами. Неочевидно для учащихся, что границы изменения индексов назначаются произвольно, что тип индексов — интервальный — не обязательно базируется на типе integer (хотя чаще всего это так). Наконец, полезно соотнести представление о линейном (одномерном) массиве с цепочкой ячеек памяти ЭВМ, в которых хранятся элементы массива.

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

Var A: array [1980..2000,1.. 15] of real вместо альтернативного, явно отражающего фразу «массив массивов»:

Var A: array [1980.. 2000] of array [1.. 15] of real Далее, на первом этапе изучения языка вносит путаницу наличие еще одной альтернативы — описание массива, сочетая type и var. На том же примере это выглядит так:

Туре В = array [1980.. 2000,1.. 15] of real Подобная многовариантность украшает язык, но методически на первых порах неприемлема.

Особо следует остановиться на том, что в Паскале массив не может быть динамической структурой. Учащиеся часто встают в тупик при необходимости, скажем, удалить элемент из массива. То, что между понятиями «удалить» и «вставить нуль» большая разница, понять легко. Удаление элемента со сдвигом остальных влево — операция технически несложная, но тогда получается «дырка» на правом конце массива. Убрать ее «на ходу» невозможно по самой природе массива, и если это действительно необходимо, то надо пользоваться иной структурой.

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

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

Примером более сложной задачи, решать которую целесообразно в классе с помощью учителя, служит известная задача о нахождении простых чисел при заданной верхней границе поиска — алгоритм Эрастофена. Ее можно решить несколькими способами. Весьма изящное решение связано с организацией булевского массива, который изначально заполнен элементами true, а по ходу чисел, не являющихся простыми, элементы с соответствующими номерами заменяются на false. Это решение можно найти в ряде пособий.

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

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

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

Введите функции Турбо Паскаля, ориентированные на работу со строками (length, concat, copy, delete, insert, pos), и полезные процедуры преобразования типов (str, val) и можно переходить к решению задач для закрепления навыков работы со строками. Типичные задачи, с которых целесообразно начать эту деятельность, таковы.

1. Определить, сколько раз в данном тексте встречается заданный символ.

2. Заменить в некотором тексте один фрагмент на другой ('Саша' на Маша').

Эту задачу можно решить, как минимум, двумя способами:

а) с использованием функции сору и операции слияния строк;

б) с использованием функций copy, delete и insert.

3. Определить, есть ли в некотором тексте одновременно два заданных слова.

Этот тип данных иллюстрирует возможность существования неупорядоченных структур, достаточно редких для практики программирования. В познавательном плане ознакомление с этим типом данных весьма полезно.

Итак, перед нами неупорядоченная однородная динамическая структура прямого доступа. При ее изучении и решении задач эти свойства будем подчеркивать.

Начать изучение темы целесообразно с введения в математическую теорию множеств (если учащиеся с ней не знакомы). Понятия множество, подмножество, элемент, включение и др. не столь очевидны, как кажется. Затем введите и начните отрабатывать операции над множествами — объединение, пересечение, разность. Все эти понятия и операции реализованы в Паскале (разумеется, лишь над конечными множествами).

После этого вводите способ описания множественного типа. Базировать его в первых примерах удобно на самостоятельно построенном перечислимом типе (фрукты, животные и т.п.). Тут же подчеркните, что, построив множество, мы потеряли возможность указать порядок следования элементов, так как его нет в принципе. Над элементами величин перечислимого типа можно произвести операции pred, succ, ord, а над множеством, построенном на базе этих величин — нет. Это не сразу осознается. Зато появляются принципиально новые операции, для отработки которых надо привести ряд примеров и решить несколько задач.

Задания, в которых множествами пользоваться удобно, например, таковы.

1. Дана символьная строка. Подсчитать в ней все знаки препинания (. —, ; : ! ?).

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

2. Выбрать все простые числа в диапазоне от 2 до N (соответствующий алгоритм «Решето Эрастофена» приводится в нескольких пособиях по Паскалю в разделе «Множества»).

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

ЗАПИСИ

Вступлением в эту тему могут послужить примеры на обработку упорядоченных неоднородных структурированных величин. Еще раз напомните, что массив — структура однородная, что все элементы массива — величины одного типа, и тем самым обычную строчку анкетных сведений, в которой есть и числовые, и текстовые данные, записать в виде массива невозможно.

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

Обратите внимание учащихся на то, что поля записи могут иметь любой тип, в том числе сами могут быть записями. Последнее позволяет строить многоуровневое дерево-анкету. Например, на рис. 15.6 поле «Ф.И.О.» можно сделать записью, состоящей из трех полей: «фамилия», «имя», «отчество».

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

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

1. Сформировать массив записей об учащихся своего класса.

2. В сформированном предварительно массиве записей отыскать всех юношей; вывести на экран записи о них.

Обратите внимание учащихся, что любая обработка записей, в том числе ввод и вывод, производится поэлементно.

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

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

Перед нами — одна из центральных структур данных для всех языков программирования высокого уровня.

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

Собственно говоря, переменные файлового типа в Паскале вовсе не имеют отношения к вопросу о носителе информации. Если не предпринять специальных (необязательных) усилий, то файловая переменная будет храниться в ОЗУ и при выходе из программы ее значение (как и всех остальных переменных) будет безвозвратно утеряно. Это не сразу осознается учащимися.

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

Методически удобна схема файла в виде последовательной цепочки элементов, пронумерованной от нуля и заканчивающейся специальным кодом — маркером конца. Стрелочка на рисунке отмечает позицию указателя (рис. 15.7).

Введите операции «запись в файл» (write) и «чтение из файла» (read).

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

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

Аналогично обсуждают роль процедуры reset — открытие файла для чтения. В отличие от предыдущего, она не стирает файл, а указатель устанавливает на его начало.

В Турбо Паскале нет барьера между файлами последовательного и прямого доступа; любую из приведенных выше процедур можно использовать для организации каждого из способов доступа. Обсудив идею того и другого и подчеркнув методические преимущества прямого доступа, вводят средства его организации. К ним относятся логическая функция eof и числовые функции filesize и filepos (но только отчасти, так как со всеми ими приходится работать и при прямом доступе), процедуры seek и truncate.

Для демонстрации различий между последовательным и прямым доступом удобны следующие простейшие задачи:

1. Найти значение 10-го элемента некоторого уже существующего файла.

2. Вывести на экран последний элемент файла.

3. Вывести на экран элементы файла в обратном порядке. Каждую из подобных задач решают дважды: не используя и используя средства прямого доступа.

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

Наконец, не забудьте о процедуре close. Закрывать открытые в программе файлы следует непременно, даже если в простейших задачах кажется, что можно обойтись и без этого.

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

ТЕМА «ВАЖНЕЙШИЕ НЕЧИСЛОВЫЕ АЛГОРИТМЫ

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

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

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

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

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



Pages:     | 1 |   ...   | 4 | 5 || 7 |


Похожие работы:

«ГОУ ВПО БАШКИРСКАЯ АКАДЕМИЯ ГОСУДАРСТВЕННОЙ СЛУЖБЫ И УПРАВЛЕНИЯ ПРИ ПРЕЗИДЕНТЕ РЕСПУБЛИКИ БАШКОРТОСТАН Кафедра гражданского права М. Л. Шакирова Защита прав потребителей Учебно-методический комплекс для студентов специальностей 080503 Антикризисное управление, 080507 Менеджмент организации Уфа - 2008 2 УДК 347 ББК 67.404 Ш 17 Рецензент: Нуркаева Т. Н., д-р юрид. наук Ш 17 Шакирова М. Л. Защита прав потребителей: учеб.-метод. комплекс для студентов специальностей 080503 Антикризисное управление...»

«УДК 005.936.43:005.935.3(075.8) ББК 30.609я73 Е15 Р е ц е н з е н т ы: кафедра товароведения продовольственных товаров Белорусского торгово-экономического университета потребительской кооперации (заведующая кафедрой кандидат технических наук, доцент Е.В. Рощина); доктор биологических наук, профессор C.А. Сергейчик (Белорусский государственный экономический университет) ISBN 978-985-06-2165-8 © Евдохова Л.Н., Масанский С.Л., 2013 © Оформление. УП Издательство “Вышэйшая школа”, 2013 ПРЕДИСЛОВИЕ...»

«Методические указания по английскому языку на поисковое чтение для студентов 1 курса всех специальностей /Юго-западный государственный университет. Кафедра иностранных языков; сост.: В.С.Звягинцева. – Курск: ЮЗГУ,2011.-48с. Методические указания по английскому языку на поисковое чтение для студентов 2 курса всех специальностей /Юго-западный государственный университет. Кафедра иностранных языков; сост.: В.С.Звягинцева. – Курск: ЮЗГУ,2011.-51с. Методические рекомендации по изучению дисциплины...»

«МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ по подготовке, оформлению и защите курсовых работ юридического факультета МГУ им. М.В. Ломоносова 1. Назначение курсовой работы. Выбор темы. 1. Курсовая работа способствует формированию у студентов навыков к самостоятельному научному творчеству, повышению уровня их профессиональной подготовки, лучшему усвоению учебного материала. 2. При написании курсовой работы студент должен показать умение работать с литературой, анализировать правовые источники, делать обоснованные...»

«ПОЯСНИТЕЛЬНАЯ ЗАПИСКА Рабочая программа по православной культуре для 8 класса разработана на основе авторской программы учебного предмета Православная культура для средних общеобразовательных школ, гимназий и лицеев. В. Д. Скоробогатов, Т. В. Рыжова, О. Н. Кобец. — Ульяновск: ИНФОФОНД, 2006, 62 с. Цели и задачи рабочей программы: формирование мотивации к изучению духовно-мировоззренческих основ отечественной культуры, православной литературы; основ православной нравственности, морали, этики и...»

«Министерство образования и науки Российской Федерации Федеральное государственное бюджетное учреждение высшего профессионального образования Российский химико-технологический университет им. Д. И. Менделеева Требования к подготовке реферата по дисциплине История и философия науки Методические указания и рекомендации Составители: проф. Клишина С. А., проф. Черемных Н. М. Москва 2011 Письменный реферат по курсу История и философия науки является обязательной аспирантской работой и необходимым...»

«ОГЛАВЛЕНИЕ Учреждение образования БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ С. А. Касперович, Г. О. Коновальчик ОРГАНИЗАЦИЯ ПРОИЗВОДСТВА И УПРАВЛЕНИЕ ПРЕДПРИЯТИЕМ Допущено Министерством образования Республики Беларусь в качестве учебного пособия для студентов учреждений высшего образования по техническим специальностям Минск 2012 1 ОГЛАВЛЕНИЕ УДК 658.5(075.8) ББК 65.05я73 К28 Рецензенты: кафедра организации и управления БГЭУ (доктор экономических наук, профессор, заведующий...»

«Муниципальное бюджетное общеобразовательное учреждение города Мурманска средняя общеобразовательная школа № 21 СОГЛАСОВАНО УТВЕРЖДАЮ 30 августа 2012 01 сентября 2012г. Протокол №1 МС Приказ № Зам. директора по УВР директор МБОУ СОШ № 21 /Булакова С.В./ /И.И. Чемеркина/ Программа рассмотрена на заседании МО учителей естественно - научного цикла МОУ СОШ № 21 Протокол № _1_ от 30 августа 2012 года Руководитель МО (Кирияк Л.П.) РАБОЧАЯ ПРОГРАММА по географии 9 класс Разработала учитель географии...»

«Методические рекомендации по организации профильного и непрофильного обучения (ГОУ гимназия №1505 Московская городская педагогическая гимназия-лаборатория) Основа содержания обучения в старшей школе двухуровневые государственные стандарты, принятые в 2004 году. Все предметы в старшей школе изучаются на уровне не ниже базового. Старшая школа призвана обеспечить всем учащимся, желающим продолжить образование, и изучать не менее двух предметов на уровне, который в государственном стандарте...»

«Федеральное агентство по образованию ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ Кафедра электронных приборов (ЭП) Е.С. Шандаров АРХИТЕКТУРА ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ Учебное пособие 2007 ПРИНЦИПЫ ПОСТРОЕНИЯ И АРХИТЕКТУРА ЭВМ Основные характеристики ЭВМ Первые электронные вычислительные машины (ЭВМ) появились всего лишь 50 лет тому назад. За это время микроэлектроника, вычислительная техника и вся индустрия информатики стали одними из основных составляющих мирового...»

«Министерство образования и науки Украины Одесская национальная академия связи им. А.С. Попова Кафедра технической электродинамики и систем радиосвязи Э.А. Сукачёв Сотовые сети радиосвязи с подвижными объектами Учебное пособие Одесса, 2013 ББК 32.884.1 УДК 621.396.93 С89 Рецензенты: д-р техн. наук, проф. В.В. Поповский (ХНУРЭ); д-р техн. наук, проф. М.Б. Проценко (ОНАС). Сукачёв Э.А. С89 Сотовые сети радиосвязи с подвижными объектами: учеб. пособ. /Сукачев Э.А. – [3-е изд., перераб. и дополн.]....»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ Уральский государственный экономический университет ОРГАНИЧЕСКАЯ ХИМИЯ Методические указания по лабораторному практикуму и самостоятельной работе для студентов заочного отделения товароведных и технологических специальностей Екатеринбург 2001 Составители: Макаренко И.М. Аксенова Т.Ф. Калугина И.Ю. 2 ВВЕДЕНИЕ Данные методические указания предназначены для самостоятельной подготовки студентов к выполнению лабораторных занятий по органической химии. В...»

«II С. Бразинскас Как подготовить маркетинговую стратегию для центра коммерциализации технологий Проект EuropeAid Наука и коммерциализация технологий 2006 Серия методических материалов Практические руководства для центров коммерциализации технологий подготовлена под руководством Питера Линдхольма (inno AG), директора проекта, представляющего консорциум inno AG (Германия), АЕА Technology (Великобритания), TNO (Нидерланды) при участии С. Клесовой (Франция), В. Иванова, О. Лукши (Россия), А. Бретта...»

«Учебный год: 2013-2014 Учебный предмет: русский язык Количество часов в неделю по учебному плану: 6 Всего количество часов в году по плану: 204 Класс: 5А Учитель: Русанова Наталья Борисовна Программа на курс: Русский язык. 5 класс Рекомендована Министерством образования и науки РФ Количество обязательных контрольных работ: 10 Количество обязательных уроков по развитию речи: 26 Учебное пособие для учащихся: Русский язык: 5 класс: учебник для общеобразовательных учреждений. –М.: Вентана-Граф,...»

«Учебно-методическое обеспечение образовательной программы 1-х классов Лицея им. Г.Ф.Атякшева-ФГОС ПРЕДМЕТ ПРОГРАММА ИСПОЛЬЗУЕМЫЙ МЕТОДИЧЕСКАЯ ЛИТЕРАТУРА УЧЕБНИК Л.Г. Петерсон Математика. 1 кл. В Петерсон Л.Г. Математика. Математика Максимова, Т.Н. Поурочные разработки по математике.1 класс: к учебному комплекту 3-х ч.-М.:Ювента,2011.-96с. Программа. Предметная линия Петерсон Л.Г. / Т. Н. Максимова. - М. : ВАКО, 2009. - 352 с. - (В помощь учебников Перспектива 1- школьному учителю). кл. М.;...»

«Министерство по делам молодежи и спорту Архангельской области Агентство по туризму и международному сотрудничеству Архангельской области Государственное бюджетное образовательное учреждение среднего профессионального образования Архангельской области Архангельский педагогический колледж ИНФОРМАЦИОННО-МЕТОДИЧЕСКИЙ СБОРНИК ОСОБЕННОСТИ ТУРИСТСКОЙ ДЕЯТЕЛЬНОСТИ В АРХАНГЕЛЬСКОЙ ОБЛАСТИ Архангельск 2012 УДК 379.83 (470.11) ББК 75.81 (2Рос-4Арх) О 75 Редакционная коллегия: Ковалев С.М. – заместитель...»

«Негосударственное образовательное учреждение высшего профессионального образования Институт государственного администрирования Утверждаю Проректор по учебной работе Н.Д.Бережнова __ 2013г. Рабочая программа учебной дисциплины Коммуникационный менеджмент (Наименование дисциплины) 080200.62 Менеджмент (Направление подготовки) Бакалавриат (уровень подготовки) Экономика и управление Факультет Государственного администрирования Кафедра разработчик Трудоемкость дисциплины Очная Вид учебной...»

«С. А. АХМЕТОВ ЛЕКЦИИ ПО ТЕХНОЛОГИИ ГЛУБОКОЙ ПЕРЕРАБОТКИ НЕФТИ В МОТОРНЫЕ ТОПЛИВА Допущено учебно-методическим объединением вузов Российской Федерации в качестве учебного пособия для подготовки специалистов по специальностям 130606 Оборудование нефтегазопереработки и 240403 Химическая технология природных энергоносителей и углеродных материалов Санкт-Петербург • Недра • 2007 УДК 665:63.048 ББК 35.514 А95 Рецензенты: Академик АН РБ, доктор технических наук, профессор Р. Н. Гимаев Заведующий...»

«СОДЕРЖАНИЕ 1. Определение сторон 5 2. Преамбула 5 3. Общие положения 6 4. Цели коллективного договора 6 5. Трудовые отношения 7 5.1. Прием на работу 7 5.1.1. Общие положения 7 5.1.2. Порядок приема на работу лиц из числа ППС 8 5.1.3. Порядок приема на работу научных работников 8 5.1.4. Порядок приема на работу руководителей структурных подразделений Университета 5.1.5. Должностные инструкции 5.2. Оплата труда 5.2.1. Общие требования 5.2.2. Организация выдачи денежных средств 5.2.3. Сроки...»

«Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования Казанский государственный технологический университет МАКЕТИРОВАНИЕ КОСТЮМА Методические указания к выполнению курсовой работы 2006 Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования Казанский государственный технологический университет МАКЕТИРОВАНИЕ КОСТЮМА Методические указания к выполнению курсовой работы 2006...»






 
2014 www.av.disus.ru - «Бесплатная электронная библиотека - Авторефераты, Диссертации, Монографии, Программы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.