Программа элективного курса «Компьютерное моделирование в среде Turbo Pascal 7.0.»


Чтобы посмотреть этот PDF файл с форматированием и разметкой, скачайте файл и откройте на своем компьютере.
Рассмотрено на заседании методического объединения учителей математики и информатики Китовской муниципальной средней общеобразовательной школы от «__» _____ _200 _ г. № ___ Рассмотрено на заседании муниципального экспертного совета (полное название МЭС) о т «__» _____ 200 _ г. № ___ Утверждено решением педагогического совета Китовской муниципальной средней общеобразовательной школы от «__» ___ __200 _ г. № ___ ПРОГРАММА ЭЛЕКТИВН ОГО КУРС А «Компьютерное моделирование в среде Turbo Pascal 7.0.» Разраб отчик : учитель информатики Китовской МСОШ Кузнецова Л юбовь А венировна Шуйский район 2008 2 Пояснительная записка Настоящая программа ориентирована на учащихся 10 - 11 классов и направлена на получение учащимися дополнительных знаний и практических навы ков по таким содержательным линиям базового и профильного курса информатики как «Моделирование и формализация» и «Алгоритмизация и программирование». Данная программа предполагает, прежде всего, наполнение курса разнообразными, интересными задачами школьно й программы, рассматриваемыми, в том числе на уроках физики, математики, биологии и др., их решение методом составления информационных моделей с последующей реализацией в среде программирования. Цель курса : расширение практики программирования, изучение с пособов и методов программирования . Задачи курса : ‬ освоение среды программирования TurboPascal и реше ние прикладных предметных задач; ‬ формирование готовности представлять результаты проектной деятельности. Программа рассчитана на 17 учебных часов. Изу чение курса требует базовых знаний по теории программирования на языке TurboPascal , поэтому его целесообразно проводить со 2 - 3 четверти учебного года. Курс р екомендован для изучения учащимися профильных информационно - технологических, физико - математических групп. Материал в курсе разбит на темы, изложенные в виде кратких теоретических сведений. С целью эффективного использования учебного времени учащимся выдаются опорные конспекты - памятки с базовыми понятиями или важными сведениями по изучаемой теме. Объе м теоретического материала достаточен для первичного освоения среды программирования TurboPascal и решения простых прикладных задач. При подборе разноуровневых заданий возможно изучение курса учащимися, ранее не знакомившимися на уроках информатики с сист емой программирования. Задачи, рассматриваемые в каждой теме, носят практический характер, требуют исследования моделей из различных предметных областей. Методы и формы обучения Особенностью данной программы является то, что она основывается преимущественн о на методах активного обучения, на деятельностном характере процесса 3 моделирования как важнейшем способе познавательной, учебной и практической деятельности. В программе применяются метод проблемного обучения, метод проектов . Основные формы мониторинга д остижений учащихся Текущий контроль усвоения материала должен осуществляться путем устного и письменного опроса, практических заданий. Знания и умения по завершении изучения курса проверяются самостоятельной реализацией творческого междисциплинарного проек та (информатика - математика, - физика, - биология, - психология и т.д.), выбранного в соответствии с изученными темами: ‬ электронная версия психологического теста; ‬ контролирующий предметный тест; ‬ вычисление площадей криволинейных фигур, заданных графиками функций; ‬ вычисление сумм числовых рядов; ‬ учебная база данных и т.д. Для учащихся, ранее не изучавших язык программирования Turbo Pascal , изучение курса можно завершить работой над межпредметным мини - проектом (расчетной, диалоговой задачей, мини - тестом ). Возможна групповая работа над проектом (2 - 3 человека). Форма итоговой оценки ‬ зачет. Основные образовательные результаты В результате изучения курса учащиеся должны: Знать ‬ приемы и правила реализации задач разных предметных областей в среде про граммирования TurboPascal ; Уметь ‬ оперировать типовыми алгоритмами обработки величин; ‬ самостоятельно разрабатывать алгоритмы решения задач и реализовывать их в языковой сре де TurboPascal 7.0; ‬ разрабатывать и реализовывать интерфейс программы; ‬ анал изировать эффективность алгоритмов, проводить сравнительный анализ; ‬ самостоятельно вести работу над проектом, представить и защитить проект. 4 Учебно - тематический план (17 часов) № п \ п Тема Выход на проект Кол - во часов 1. Основы программирования. 2 ‬ Система программирования Turbo Pascal 7.0. ‬ Практикум решения задач. «Психологический тест» 2. Организация циклических операций языка Turbo Pascal 7.0. 2 ‬ Операторы безусловного и условного переходов, цикла со счетчиком. «Таблица умножения» ‬ Операторы цикла с постусловием, цикла с предусловием. «Удивительная математика» 3. Операции над символами и строками 2 ‬ Типы строковых и символьных величин. «Шифратор» ‬ Функции и процедуры обработки строк. «Правописание безударных гласных в корн е слова» 4. Структурированные типы данных. Массивы. 5 ‬ Одномерные массивы. «Вычисление площадей треугольников» ‬ Приемы поиска информации в массивах данных. Алгоритмы поиска. ‬ Сортировка массива. «Словарь школьных слов» ‬ Двумерный массив данных, его формирование в памяти компьютера. ‬ Приемы поиска информации в двумерных массивах данных. БД «Учителя и предметы» 5. Процедуры и функции. 2 ‬ Понятие подпрограмм. Процедуры. Функции. ‬ Понятие рекурсии. 6. Практикум решения зад ач моделирования. 2 7. Творческий проект. 2 5 Содержание курса 1. Основы программирования. Система программирования Turbo Pascal 7.0. Алгоритмы, их свойства и способы описания. Примеры алгоритмов. Языки программирования. Структура программы. Структура диа логовой программы. Обучающие, контролирующие, тестирующие программы. 2. Организация циклических оп ераций языка Turbo ascal 7.0 . Оператор ы безусловного и условного переходов, цикла со счетчиком , цикла с постусловием , цикла с предусловием. Методы приближенных вычислений, реализуемые с помощью циклов. 3. Операции над символами и строками. Типы строковых и символьных величин. Операции над символами и строками. Функции. Процедуры. 4. Структурированные типы данных. Массивы. Одномерные массивы . Сортировка массива. Критер ии оценки эффективности алгоритма. Двумерный массив данных, его формирование в памяти компьютера. Приемы поиска информации в массивах данных. Алгоритмы поиска. 5. Процедуры и функции . Понятие подпрограмм. Процедуры. Функции. Понятие рекурсии. 6. Практикум решени я задач . Задачи математического, физического, статистического и др. моделирования в среде Turbo Pascal 7.0. Программная реализация поставленной задачи путем сочетания необходимых типовых алгоритмов. П рограммирование диалоговых приложений . 6 Литература для учителя : 1. Златопольский Д.М. Я иду на урок информатики: Задачи по программированию. 7 - 11 классы: Книга для учителя. ‬ М.: Издательство «Первое сентября», 2002. 2. Учебные материалы к элективным курсам по информатике для 10 - 11 классов. Выпуск 2. ‬ Хабаровск, 2 005. 3. Лебедева Э.В. Методическая поддержка курса «Программирование на языка Turbo Pascal ». Методическое пособие для учителя. ‬ Иваново, Центр информатизации и оценки качества образования, 2006. 4. Информатика. 9 класс: элективные курсы «Создание программ на я зыке Паскаль» / авт. - сост. Э.С. Ларина. ‬ Волгоград: Учитель, 2008. 5. Информатика в школе: Приложение к журналу «Информатика и образование». № 3 - 2008. ‬ М.: Образование и Информатика, 2008. 6. Информатика в школе. № 7 - 2008. ‬ М.: Образование и Информатика, 2008. Литература для учащихся: 1. Информатика: Учеб. пособие 10 - 11 кл. общеобразоват. учреждения Л.З.Шауцукова ‬ М.: Просвещение, 2000. 2. Угринович Н.Д. Информатика и информационные технологии. Учебное пособие 10 - 11 классов. - М.: Лаборатория базовых знаний, АО «Московские учебники», 2001 3. Ставровский А.Б. Турбо Паскаль 7.0. Учебник. ‬ К.: Издательская группа BHV , 2000. 4. Лебедева Э.В., Молькова Е.О., Петрова К.В. Подготовка к ЕГЭ по информатике. Выпуск 2. Методические рекомендации к решениям и решения задач уровн я С, аналогичных демонстрационным вариантам ЕГЭ по информатике. Методическое пособие. ‬ Иваново, Центр информатизации и оценки качества образования, 2008. 7 Информационно - методическая поддержка курса Занятие 1. Тема 1. Основы программирования. Система про граммирования Turbo Pascal 7.0. Цель: сформировать общее представление о среде программирования Turbo Pascal 7.0, ее интерфейсе и базовых элементах. Задачи: ‬ научить оперировать понятиями среды, различать типы данных; ‬ научить распознавать структу ру алгоритма конкретной задачи; С уроков информатики: - учащиеся знают:  понятие алгоритма, их свойства и способы описания;  основные алгоритмические структуры;  виды языков программирования;  понятие переменной величины и команду присваивания. - учащиеся ум еют:  приводить примеры алгоритмов;  описывать алгоритм в виде блок - схемы. На занятии элективного курса: - учащиеся повторяют:  интерфейс среды Турбо Паскаль;  структуру программы;  основные типы данных;  синтаксис операторов ввода и вывода, условного оператор а. - учащиеся узнают о:  видах задач, реализуемых линейным и разветвленным алгоритмом (диалоговые, расчетные, с элементами моделирования);  структуре диалоговой (тестирующей, обучающей, контролирующей) программы. - учащиеся получают памятки:  «структура прогр аммы»  «типы данных в Паскале»  «целочисленные типы данных»  «вещественные типы данных» 8 Содержание занятия: - Теоретическая часть 1. Интерфейс TP 7.0. ( File ‬ Save … - сохранить файл, File ‬ Open … - открыть файл; Ctrl + F 9 ‬ запуск программы , Alt + F 5 ‬ просмотр результата работы программы). 2. Структура Pascal - программы: 3. Требования к идентификаторам: - начинаются с буквы или символа «_», может включать цифры и знак «_», только латинские буквы; - нельзя использовать зарезервированные слова; - длина ‬ меньше 127 сим волов (сравнение идет по первым 63 символам). 4. Стандартные модули - это процедуры и функции, обеспечивающие работу с устройствами компьютера. Вызов модуля: Uses <…,…> Пример: Uses Crt ; - обслуживает процесс вывода информации на экран дисплея и ввод информац ии с клавиатуры (обеспечивает работу экрана в текстовом режиме: 80 столбцов и 30 строк); Uses Graph ‬ обслуживает процессы работы с графическими изображениями. 5. Блок описания глобальных переменных - предназначен для сообщения компилятору имен всех идентифик аторов, использованных в основной программе (4 раздела): 1) описание меток (метка позволяет прервать последовательный порядок выполнения программы и передать управление оператору, помеченному ей) Описание: Label <имя метки1,…>; Вызов в программе: имя метки: оператор; Пример: Label Metka , C , 1; 2) описание констант (константа ‬ идентификатор, не меняющий своего значения в процессе работы программы) Описание: Const <имя константы><значение>; Пример: Const Pi =3,14; 3) описание типов данных (используется для опи сания типов пользователя) Описание: Type <имя типа><значение типа>; Var <имя переменной>:<имя типа>; 4) описание переменных (переменная ‬ идентификатор, меняющий свое значение в процессе работы программы. Каждая переменная, встречающаяс я в программе, должна быть описана) 9 Описание: Var <имя переменной,…>:<тип переменных>; Пример: Var A , B , C : integer ; ‬ Что такое «локальные переменные»? (переменные, используемые в тексте вспомогательной программы ‬ процедуры или функции). 6. Комментарии ‬ пояс нительный текст, который можно записывать в любом месте программы, где разрешен пробел. Оформление комментария: {…}, /*…*/ - Практическая часть. Демонстрируются тексты готовых программ, комментарии к ним. Изучается структура программы. Демонстрируется в ыполнение диалоговых и расчетных алгоритмов. Особое внимание обратить на наличие комментариев. Например: - Теоретическая часть. (на примерах, рассмотренных в практической части) 7. Оператор ‬ языковая запись, совершающая одну, назначенную ей операцию. ; - разделитель операторов. 1) Простой оператор ‬ одна запись. 2) Составной оператор ‬ несколько операторов, заключенных в операторные скобки begin … end . begin <оператор 1>; <оператор 2>; … <оператор N � ; end 8. Примеры операторов 1) оператор ввода данных Read (<перем.1>,<переем.2>,…<переем N �) ; 2) оператор вывода Write ( переменная � , <‘ символ или строка ‘> , арифметическое выражение � ); 3) оператор присваивания ‬ связывает имя переменной с ее значением 10 имя переменной �:= выражение �; (выражение ‬ конкретное или вычисляемое значение) 9. Вспомогательные процедуры и функции процедура ClrScr ‬ очищает экран от информации, функция ReadKey ‬ ожидает нажатия клавиши и приостанавливает выполнение программы. 10. Типы данных (выдаются памятки «типы данных », обсуждается отличие типов) Целочисленные типы данных Вещественные типы данных 11 Занятие 2. Тема: Практикум решения задач Цель: научить алгоритмам создания диалоговых программ . Задачи: ‬ по знакомить со структурой диалоговых программ разных типов ; ‬ развить умение «читать» текст программы. С уроков информатики: - учащиеся знают:  этапы решения задачи с использованием компьютера; - учащиеся умеют:  запускать программу на выполнение, просматривать результаты работы программы, сохранять и открыват ь файл программы;  использовать комментарии в программе;  «читать» текст программы. На занятии элективного курса: - учащиеся решают задачи:  организации диалога пользователя с компьютером (задача «Давайте познакомимся»);  выполнения расчетов (задача «Головаст ики»);  с элементами моделирования (задача «Температура»). - учащиеся знакомятся  со структурой программы - теста на примере готовой тестирующей программы. - учащиеся выбирают проект:  «Психологический тест»  «Контролирующая программа» - учащиеся получают памят ку:  «Структура обучающих, контролирующих, тестирующих программ» Практический материал к занятию: 1. Демонстрация тестирующей программы «Основы языка программирования Pascal » (по теме предыдущего занятия). 2. Составление простых программ: 1) диалоговая программа «Давайте познакомимся!» Организовать диалог пользователя с компьютером: «Как тебя зовут?», «Сколько тебе лет?». Диалог завершить фразой «Приятно познакомиться, (имя)! Пригласи меня через … года на 20 - летие!» 2) расчетные программы «Головастики», «Температура » Весной лягушка мечет икру. Десятую часть икринок съедают раки, 5% икринок вязнет в тине, а 14% - уносит течение. Напишите программу для подсчета количества икринок, которые станут головастиками. Дана температура, измеренная по шкале Цельсия. Перевести е е в шкалы Фаренгейта, Кельвина, Ренкина. Формулы для перевода: Т F = 1.8* ТС  32; Т K = Т C + 273.15; Т R = 1.8* Т C + 492. 12 3) программа с элементами моделирования «Температура» Перевести значение температуры из одной заданной температурной шкалы во все остальные (см. предыдущую задачу). 3. Выбор темы проекта. Памятка: 13 Занятие 3. Тема: Организация циклических операций языка Turbo ascal 7.0 . Операторы безусловного и условного переходов, цикла со счетчиком. Цель: обосновать значение цикла с параметром для решения класса математических задач. Задачи: ‬ научить использовать цикл с параметром для выполнения приближенных вычислений ; ‬ развивать алгоритмическое мышление. С уроков информатики: - учащиеся знают:  алгоритмические структуры «ве твление», «цикл»; - учащиеся умеют:  приводить примеры алгоритмов данных структур;  описывать алгоритм в виде блок - схемы. На занятии элективного курса: - учащиеся повторяют:  синтаксис условного оператора;  синтаксис оператора цикла со счетчиком. - учащиеся узнают о:  «зацикливании» программы;  роли меток в организации безусловного перехода;  методах приближенных вычислений, реализуемых с помощью циклов. - учащиеся получают памятки:  «правила использования оператора цикла For … to … do » Содержание занятия: - Теорет ическая часть Цикл ‬ это последовательность операторов, которые могут выполняться более одного раза. Способы организации циклических операций: 1. С помощью операторов безусловного и условного переходов. а) оператор безусловного перехода Goto <метка>; Обрат ить внимание на разумное использование данного оператора , чтобы избежать путаницы в программах. б) оператор условного перехода If <логическое условие> then Goto <метка1> else Goto <метка2>; Пример: Программа «Таблица умножения» (демонстрация). program Z; label 1; var n,i,r,rez: integer; begin write ('Введите число ‘); readln ( n ); i:=0; 1: i:=i+1; writeln (' Вычислите : ‘); 14 writeln(‰i*‘,n,‘?‘); r:=i*n; write(' Введите ответ ‘); readln(rez); if rez=r then goto 1 else writ eln (‰ учите таблицу умножения !‘) end . Обратить внимание на: ‬ недостатки программы, ‬ пути ее совершенствования, ‬ случаях «зацикливания программы», ‬ роли меток в программе. 2. Операторы цикла а) цикл со счетчиком Оператор п овтора For применяется, когда заранее известно число повторений. Переменная, хранящая количество повторений называется параметром цикла. Существует две структуры данного оператора. Счет по возрастанию: For <параметр цикла>:<целочисленное выражение1 > to целочисленное выражение2> do <оператор цикла>; Счет по убыванию: For <параметр цикла>:<целочисленное выражение2 > downto < целочисленное выражение1> do <оператор цикла>; Памятка : Особенности использования оператора цикла с заданным числом повторе ний ‬ Практическая часть 1. Задача «Замени действие» а) вычислить 5х N , не используя операцию умножения; б) возвести в n - ю степень число 4, не используя операцию возведения в степень. Выход на проект «Контролирующая программа ‮ Таблица умножения   для младших школьников» 15 2. Задача «Возведение в степень без умножения» Написать программу, в которой вводится число и вычисляется квадрат числа, число в третьей степени при помощи правил: а) 1 2 = 1 2 2 = 1 + 3 3 2 = 1 + 3 + 5 4 2 = 1 + 3 + 5 + 7 5 2 = 1 + 3 + 5 + 7 + 9 и т.д. б) Подумайте самостоятельно! 1 3 = 1 2 3 = 3 + 5 3 3 = 7 + 9 + 11 4 3 = 13 + 15 + 17 + 19 5 3 = 21 + 23 + 25 + 27 + 29 … Обратить внимание на расчет первого слагаемого суммы каждого ряда и формирование каждого следующего элемента ряда. ‬ Теоретическая часть «Знакомство с методами приближен ных вычислений» 1. Метод разложения в бесконечный ряд: Демонстрируются формулы представления основных тригонометрических функций и числа  в виде суммы бесконечного ряда: Задача: Вычислить приближенное значение числа  Реализация с помощью цикла с зада нным числом повторений (точность вычисления задается количеством итераций (повторений)). Обсуждение блок - схемы, составление программы. Оценка точности результата и времени работы программы. Дополнительные задачи: 1. Вычислить y =( 1+1 / n ) n при 2, 20, 200, 2000, 3200. 2. Написать программу вычисления произведения 3 - х целых чисел без операции умножения. 3. Вычислить S= Выход на проект «Удивительная мате матика» (числовые ряды, занимательные факты) 16 Занятие 4. Тема: Организация циклических операций языка Turbo ascal 7.0 . Операторы цикла с постусловием, цикла с предуслови ем. Цель: сформировать общее представление о видах циклов, их отличиях и и спользовании при решении задач м оделирования. Задачи: ‬ научить анализировать результаты работы программы, оценивать эффективность алгоритма ; ‬ научить распознавать структуру а лгоритма конкретной задачи; С уроков информатики: - учащиеся знают:  понятия «арифметический» и «итерационный» цикл; - учащиеся умеют:  описывать блок - схемой данные виды циклов. На занятии элективного курса: - учащиеся повторяют:  синтаксис операторов цикл а с пред - и постусловием. - учащиеся узнают о:  методах приближенных вычислений, реализуемых с помощью циклов с пред - и постусловием. - учащиеся получают памятки:  «правила использования оператора цикла Repeat … Until »  «правила использования оператора цикла Wh ile … do » Содержание занятия: ‬ Теоретическая часть (продолжение изучения способов организации цикла) б) оператор цикла с постусловием Repeat <тело цикла> Until <условие завершения цикла �; Пример: Задача с проблемной ситуацией . В чем смысл фрагм ента программы? repeat write (‘Введите число ’); readln(ch); until ch =1111; writeln (‰ Ура ! Сейф открыт! ‰); С какой целью можно использовать фрагмент? В каких программах? Памятка: 17 в) оператор цикла с предусловием While <условие> do <тело цикла>; Прове рка условия осуществляется перед циклом, цикл выполняется, если условие принимает значение True (истина). Памятка: ‬ Практическая часть Задача: Вычислить приближенное значение числа  методом разложения в бесконечный ряд Реализация с помощью цикла с постусловием (точность вычисления задается погрешностью Е). На основе обсуждения конструируется блок - схема: Исследуется работа готовой программы , оценивается время работы и точность вычисления. 18 ‬ «Знакомство с методами приближенных вычислений» 2. М етод Монте - Карло (вероятностный метод, основанный на статистических испытаниях): ‬ объяснение сути метода; ‬ постановка статистического эксперимента; ‬ составление блок - схемы; ‬ программирование (с использованием датчика случайных чисел) ‬ исследование мод ели; ‬ выводы о ее использовании, сравнение с методом разложения в бесконечный ряд. Дополнительная задача «Древняя легенда» : По древней легенде, мудрец, придумавший шахматы, потребовал от персидского шаха такое вознаграждение: пусть на шахматную доку кладут зерна пшеницы ‬ на первую клетку 1 зерно, на вторую ‬ 2 зерна, на третью ‬ 4 зерна и так далее ‬ на каждую следующую клетку в 2 раза больше, чем на предыдущую. 1) Сколько зерен будет лежать на последней клетке? 2) На какой клетке будет лежать 258 зе рен? 3) Сколько всего зерна получит мудрец, если 15 зерен пшеницы весят 1 грамм? 19 Занятие 5. Тема: Операции над символами и строками . Типы строковых и символьных величин. Операции над символами и строками. Цель: показать значимость операций над си мволам и и строками в алгоритмах . Задачи: ‬ научить решать стандартные задачи на обработку строк ; ‬ развивать логическое мышление ; С уроков информатики: - учащиеся знают:  о существовании переменных строкового и символьного типа;  основные операции над строк ами. - учащиеся умеют:  описывать переменные символьного и строкового типов;  организовывать помещение информации и ее извлечение в переменные данных типов. На занятии элективного курса: - учащиеся повторяют:  стандартные задачи на обработку строк (поиск си мволов в тексте, замена искомого символа (слова) и т.д.);  структуру программы на обработку строк. - учащиеся узнают о:  строках, как структурах данных с индексированными элементами . Содержание занятия: - Теоретическая часть Стандартные задачи на обработ ку строк: 1. Подсчет количества искомых объектов (символов, слов) во введенном тексте. 2. Замена части введенного текста (символа, слова) на другой объект такой же длины. 3. Вывод по определенному алгоритму введенной пользователем строки («мигающая», «бегущая» стро ка и др.). 4. Анализ содержимого введенной строки на наличие искомого объекта. 5. Упорядочивание слов в строке, сравнение слов во введенной строке. ‬ Практическая часть Задача моделирования «Шифратор сообщений» Написать программы кодирования и декодирования сообщений с помощью одного из методов шифровки: ‬ «шифровка вставкой» (вставка одного и того же символа после каждой буквы исходного слова); ‬ «кодирование с ключевым кодом» (вводится строка и ключевое слово, в котором определяется количество букв. На данн ую величину происходит циклический сдвиг каждого символа введенной строки); 20 ‬ «шифровка перестановкой» (в исходной строке буквы попарно меняются местами); ‬ реализация собственного метода шифровки. Выход на проект « Шифратор » ( контролирующая программа по теме «Кодирование» ) 21 Занятие 6. Тема: Операции на д символами и строками. Функции и процедуры обработки строк. Цель: расширить знания учащихся о строковом и символьном типах величин . Задачи: ‬ научить пользоваться функциями и процедурами обработки строк ; С уроков информатики: - учащиеся знают:  основн ые функции и процедуры для обработки строк. - учащиеся умеют:  использовать данные процедуры и функции при решении простых задач на обработку строк. На занятии элективного курса: - учащиеся повторяют:  стандартные задачи на обработку строк (поиск символов в тексте, замена искомого символа (слова) и т.д.);  структуру программы на обработку строк. - учащиеся узнают о:  видах задач, связанных с выделением и обработкой фрагментов текста;  возможности решать математические задачи нетрадиционным «нечисловым» способо м; - учащиеся получают памятки:  «преобразование чисел и строк»  «функции и процедуры обработки строк» Содержание занятия: - Теоретическая часть Памятка : Преобразование чисел и строк 22 Памятка : ‬ Практическая часть Задачи преобразования чисел и строк: 1. Найти цифровой корень числа, получаемого по правилу: сложить цифры числа, затем сложить цифры вновь полученного числа и так до тех пор, пока не будет получена только одна цифра. 2. Определить, является ли счастливым автоб усный билет (для шестизначного номера сумма первых трех цифр должна быть равна сумме последних трех цифр) . 3. Определить, является ли число, введенное с клавиатуры, числом Армстронга, для которого выполняется правило: сумма цифр этого числа, возведенных в п - у ю степень ( п ‬ количество цифр числа), равна самому числу). Д ля более сложного уровня задания предложить выполнить решение задач двумя способами (с использованием строковых переменных и без них). Функции и процедуры для обработки строк 23 Занятие 7. Тема: Структурированные типы данных. Массивы. О дномерные массивы. Цель: формировать готовность представлять результаты проектной деятельности в виде базы данных, созданных программно с помощью массивов. Задачи: ‬ формировать способности оперировать типовыми алгоритмами обработки массивов; ‬ учить структур ировать данные при составлении алгоритма конкретной задачи; С уроков информатики: - учащиеся знают:  понятие массива данных;  назначение массивов в программировании; - учащиеся умеют:  приводить примеры массивов информационных данных; На занятии э лективного курса: - учащиеся повторяют:  способ описания массивов;  этапы обработки массива; - учащиеся узнают о:  использовании массивов при решении класса задач «Геометрия»; - учащиеся получают памятки:  «этапы обработки массива» Содержание занятия: - Теор етическая часть Массив ‬ структурированный тип данных, состоящий из фиксированного числа элементов, имеющих один и тот же тип. Элементы, образующие массив, упорядочены таким образом, что каждому элементу соответствует номер (индекс), определяющий его место нахождение в общей последовательности. Варианты описания массива: ‬ Формат записи массива через раздел описания типов имеет вид: Type <имя типа> array [тип индекса] of <тип элементов>; Var <идентификатор,…>: <имя типа>; ‬ Формат записи массива через ра здал описания переменных: Var <идентификатор,…>: array [тип индекса] of <тип компонента>; Массивы различают по количеству индексов: одномерные (1 индекс), двумерные и N - мерные ( N индексов). Пример : Var V : array [1..25] of real ; { одномерный ма ссив } Matrix: array [1..20, 1..30] of byte; { двумерный массив } 24 Памятка : Обратить внимание: заполнение, обработка и вывод элементов массива производят в цикле. Памятка: Одномерные массивы. Типовые алгоритмы . ‬ Практическая часть Класс задач «Геометрия», реализуемых в программировании через работу с массивами данных: ‬ вычисление расстояний между точками (хранение в массиве координат точек); ‬ вычисление площадей фигур (хранение в ма ссиве координат вершин фигур). Алгоритм работы с массивом: 1. Описание массива. 2. Заполнение массива (ввод элементов массива). 3. Обработка массива. 4. Вывод массива и (или) результатов обработки. Выход на проект « Вычисление площадей треугольников раз личными способами » . 25 Примеры задач: 1. На плоскости N точек заданы своими координатами. Найти точку, сумма расстояний от которой до остальных точек максимальна. 2. На плоскости N точек заданы своими координатами. Найти две наиболее удаленные друг от друга точки. 3. На плоскости N точек заданы своими координатами. Найти минимальный радиус окружности, включающий в себя все точки. 4. Определить, пересекаются ли два отрезка на плоскости координатами своих концов. Построение математической модели, разработка алгоритма и составление блок - схемы одной из предложенных задач. Программная реализация алгоритма. 26 Занятие 8. Тема: Структурированные типы данных. Массивы. Приемы поиска информации в массивах данных. Алгоритмы поиска. Цель: с формировать умение опериров ать алгоритмами поиска при решении конкретных задач . Задачи: ‬ научить решению абстрактных вычислительных задач и использованию полученных алгоритмов для решения практических задач ; С уроков информатики: - учащиеся знают:  понятие массива данных;  наз начение массивов в программировании; - учащиеся умеют:  составлять простые и составные логические условия; На занятии элективного курса: - учащиеся повторяют:  способы решения задач на поиск информации в массиве данных. - учащиеся получают памятки:  «выбор по условию» Содержание занятия: - Теоретическая часть Памятка: Выбор по условию в одномерном массиве 27 ‬ Практическая часть Работа с массивами на примере задачи: Даны два массива целых чисел. Вычислить произведение максимального э лемента первого массива на минимальный элемент второго массива. Удалить максимальный элемент из первого массива и добавить его во второй массив после минимального. Дополнительные требования к программной реализации: ‬ использовать раздел описания типов д ля описания массивов; ‬ организовать ввод массивов разными способами; ‬ использовать комментарии. Вариант программы: program mass ; type massiv= array [1..40] of integer; var a, b: massiv; i, n, k, p, j, min, Imin, max, Imax: integer; begin {ввод мас сива с клавиатуры} write ('Введите размер массива А n ='); readln ( n ); writeln ('Введите элементы массива А'); for i:=1 to n do begin write('a[',i,']='); readln ( a [ i ]); end ; {ввод массива случайным образом} write ('Введите раз мер массива В k ='); readln ( k ); randomize ; {подключение генератора случайный чисел} for i :=1 to k do b [ i ]:= random (16); {заполнение массива случайными числами от 0 до 15} {Вывод массива на экран} Writeln ('Массив В'); for i:=1 to k do write(b[i],' '); writeln ; {пустой оператор вывода} {Поиск максимального элемента в первом массиве } max:=a[1]; Imax:=1; for i:=2 to n do if a[i]�max then begin max := a [ i ]; {максимальный элемент} Imax := i ; {индекс максимал ьного элемента} end ; {Поиск минимального элемента во втором массиве } min := b [1]; Imin:=1; for i:=2 to n do if b[i]min then begin min := b [ i ]; {минимальный элемент} 28 Imin := i ; {индекс м инимального элемента} end ; {вычисление произведения мин. и макс. элементов и его вывод на экран} p := min * max ; writeln ('Произведение max и min равно ', p ); {Удаление элемента из первого массива с позиции Imax } for i := Imax to n - 1 do a [ i ]:= a [ i +1]; n := n - 1; {Уменьшение количества элементов массива на 1} {Вставка элемента в о второй массив после элемента равного min } i:=1; while ik do begin if b[i]=min then begin for j := k +1 downto i +1 do b [ j ]:= b [ j - 1]; {с мещение элементов на один вправо, начиная с последнего} k := k +1; {Увеличение количества элементов на один} b [ i +1]:= max ; {Вставка элемента на позицию i +1} end ; i := i +1; {Увеличение счетчика итераций} end ; {Выв од массивов А и В на экран в строку} writeln(‰ Массив А : ‰); for i:=1 to n do write(a[i],' '); writeln; writeln(‰ Массив В : ‰); for i:=1 to k do write(b[i],' '); end . 29 Занятие 9. Тема: Структурированные типы данных. Массивы. Сортировка массива. Цель: сформировать общее представление о видах сортировок. Задачи: ‬ научить анализировать результаты сортировки и оценивать по различным параметрам ; ‬ развивать умение описывать алгоритм различными способами ; С уроков информатики: - учащиеся з нают:  о необходимости упорядочивания массивов информационных данных и преимущества отсортированных массивов;  о существовании различных способов сортировки; - учащиеся умеют:  приводить примеры упорядоченных массивов данных;  упорядочивать массив методом «п узырька» или сортировкой поиском последовательных минимумов. На занятии элективного курса: - учащиеся повторяют:  известные способы упорядочивания массива. - учащиеся узнают о:  прямых и улучшенных методах сортировки, их отличиях;  сортировке вставкой;  преим уществах и недостатках различных методов сортировки. Содержание занятия: - Практическая часть Повторение. Демонстрация алгоритмов сортировки методом «пузырька» (обмен) и поиском последовательных минимумов (выбор). Оценивается время сортировки для кажд ого способа при одинаковых исходных данных . - Теоретическая часть Все методы сортировки делятся на прямые и улучшенные. Прямые методы сортировки разделяются на: ‬ сортировки обменом («пузырьковая»); ‬ сортировка выбором (выделением); ‬ сортировка вставко й (включением). Их характеристики на практике: относительно низкое быстродействие; наиболее приемлемы для небольших массивов данных; показательны для изучения принципов и методов сортировок. Улучшенные методы сортировки имеют в основе те же принципы, чт о и прямые, но используют ряд оригинальных идей, которые позволяют ускорить процесс преобразования 30 массива данных. Сортировка вставкой Суть метода : массив данных разделяется на две части ‬ отсортированную и неотсортированную. Элементы из отсортированной ч асти поочередно выбираются и вставляются в отсортированную часть так, чтобы не нарушить в ней упорядоченность элементов. В начале работы алгоритма в качестве отсортированной части принимается первый элемент массива. Алгоритм (одного прохода массива): 1. взять элемент из неотсортированной части и сохранить в дополнительной переменной; 2. найти позицию в отсортированной части массива для вставки взятого элемента; 3. сдвинуть элементы массива для вставки элемента массива в отсортированную часть; 4. вставить элемент в най денную позицию. - Практическая часть Задание: смоделировать алгоритм в виде блок - схемы и реализовать программно. Оценить количество итераций, время сортировк и, сравнить с предыдущими способами. Вариант решения : Program Z; Uses Crt; Const n=5; Var a: a rray [1. .n]of byte; b, i, J, k, p. C: byte; begin ClrScr; Randomize; WriteLn ( ‰ СОРТИРОВКА МЕТОДОМ ВСТАВКИ ‘ ); Writein(‰ исходный массив ‘); for i:=1 to n do begin a[i]:=Random(100); Write(a[i] :3) end; WriteLn; WriteLn(‰C ортировка ‘ ); c:=0; for i:=2 to n do begin b:=a[i]; j:=1; while b�a[j] do j:=j+1; for k:=i - 1 downto j do a[k+1] :=a[k]; a[j]:=b; for p:=l to n do Write(a [pj :3); c:=c+1; WriteLn end; WriteLn(‰ количество итераций ‘, C); WriteLn; WriteLn(‰ отсортированный массив ‘); for i:=1 to n do Write(a[i] :3); 31 ReadKey end. Дополнительн о е задани е . В последовательности чисел найти и вывести подпоследовательност ь подряд идущих чисел наибольшей длины. Выход на проект «Словарь» . 32 Занятие 10. Тема: Структурированные типы данных. Массивы. Двумерный массив данных, его формирование в памяти компьютера. Цель: формирование представлений о двумерном массиве, его назначении в программировании. З адачи: ‬ расширить понятийный аппарат учащихся по теме «Массивы»; ‬ развивать умение работать с вложенными циклами. С уроков информатики: - учащиеся знают:  о существовании многомерных массивов данных;  о способе описания двумерного массива;  о способах формирования и вывода двумерного массива. - учащиеся умеют:  приводить примеры двумерных массивов данных;  описывать двумерный массив;  заполнять массив тремя способами (присваиванием значений, вводом данных с клавиатуры, генерацией случайных чисел). На зан ятии элективного курса: - учащиеся повторяют:  различные способы формирования двумерных массивов;  этапы работы с двумерным массивом. - учащиеся узнают о:  частных случаях матриц (нулевой, единичной, верхне - и нижнетреугольной, симметричной и кососимметричной ). - учащиеся получают памятки:  «двумерные массивы » Содержание занятия: - Практическая часть Демонстрация работы программы с двумерным массивом, в которой смоделирована ситуация «П одведение итогов соревнований» . Известны очки, полученные 5 - ю футбольным и командами в школьном первенстве. Подвести итог соревнованиям: расставить команды - призеры на «пьедестале почета». - Теоретическая часть Разновидности двумерных массивов (матриц): 1. Нулевая ‬ матрица, у которой значения всех элементов равны нулю. 2. Единичная ‬ квадратная матрица, у которой значения элементов главной диагонали равны 1, а значения остальных элементов ‬ 0. 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 33 3. Верхнее - и нижнетреугольная ‬ квадратная матрица, значения элементов которой разделены главной диагональю на верхнюю (нижнюю) часть с произвольными значениями и нижнюю (верхнюю) с нулевыми значениями. 4. Симметричная ‬ квадратная матрица, у которой значения элементов равны относительно главной диагонали. 5. Кососимметричная ‬ квадратная матрица, у которой значения элементов относительно главной диагонали противоположны. ‬ Т еоретические сведения сопровождаются практической работой учащихся по поиску способов заполнения различных видов матриц (№№ 1 - 3). ‬ Демонстрируются приемы транспонирования и суммирования матриц для получения симметричной матрицы. Памятка: Двумерные мас сивы. Типовые алгоритмы. 3 0 0 0 0 5 2 0 0 0 7 4 1 0 0 8 8 2 6 0 12 2 3 8 2 5 4 7 10 0 0 4 3 5 8 0 0 2 2 7 0 0 0 10 1 0 0 0 0 6 34 Занятие 11. Тема: Структурированные типы данных. Массивы. Приемы поиска информации в двумерных массивах данных. Цель: формирование алгоритмов поиска информации в двумерных массивах. Задачи: ‬ научить использовать двумерн ые массивы в решении практических задач и задач моделирования. С уроков информатики: - учащиеся знают:  об алгоритмах поиска информации в двумерных массивах. - учащиеся умеют:  выполнять обработку двумерного массива по простому условию. На занятии электи вного курса: - учащиеся повторяют:  типовые задачи обработки и поиска информации в двумерном массиве. - учащиеся узнают о:  использовании массивов в решении практических задач. Содержание занятия: - Теоретическая часть Обратить внимание на возможность обр аботки двумерного массива отдельно по строкам и столбцам. При этом следует учитывать взаимное расположение (вложенность) циклов, перебирающих индексы элементов строки (столбца). Пример выбора по условию в двумерном массиве отдельно по строкам: - П рактическая часть Задача «Завуч школы» : В школе учатся ребята с 1 по 11 класс . В каждой параллели ‬ 3 класс а . В ведомости завуча школы хранится информация о количестве отличников в каждом классе. Требуется написать программу для завуча школы, вычисляющ ую : ‬ количество отличников в каждой параллели ; ‬ лучший класс в каждой параллели (тот класс, в котором больше отличников). Постановка задачи. Демонстрация рабочей учебной базы данных, выдающей по запросу полную информацию об объекте. Выход на проект «Учителя и предметы» (учебная база данных) . 35 Занятие 12. Тема: П роцедуры и функции . Понятие подпрограмм. Процедуры. Функции. Цель: формирова ние приемов работы со вспомогательными алгоритмами . Задачи: ‬ расширить знания о процедурах и функциях ; ‬ научить использовать процедуры и функции пользователя при решении к онкретных задач ; С уроков информатики: - учащиеся знают:  назначение функци й и процедур в программировании . - учащиеся умеют:  использовать процедуры и функции при решении простых вычислительных задач . На занятии элективного курса: - учащиеся повторяют:  стандартные задачи на использование процедур и функций;  структуру программы с использованием процедур и функций;  взаимосвязи значений переменных подпрограммы и основной программы. - учащиеся узнают о:  видах задач, связанных с выделением и обработкой фрагме нтов текста;  правилах использования глобальных переменных; Содержание занятия: - Теоретическая часть В процедурном программировании основное внимание уделяется алгоритму, то есть некоторой заданной последовательности действий, выполнение которых приводи т к получению результата вычислений. Структуризация алгоритмов привела к выделению отдельных блоков (подпрограмм). Подпрограммы значительно облег чают программирование, за счет: а) избавления от необходимости многократно повторять в тексте пр ограммы аналоги чные фрагменты; б) улучшения структуры программы, обле гчая ее понимание при разборе; в) повышения устойчивости программы к ошибкам программирования и непредвиденным последствиям при модификациях. Различают два вида подпрограмм - процедуры и функции. Проц едура ‬ это независимая именованная часть программы, которую можно вызвать по имени для выполнения определенных действий. Процедура не может выступать как операнд в выражении. Упоминание в тексте имени процедуры приводит к её активизации и называется вызов ом. Функция ‬ аналогично процедуре, с двумя от личиями: 1) функция передает в то чку вызова скалярное значение, 2) имя функции может использоваться в выражении как операнд. Структура процедур и функций полностью повторяет структуру самой программы, кроме заголовка. Заголовки подпрограмм оформляются следующим образом: 36 rocedure <имя_процедуры> (<список формальных параметров>); Function <имя_функции> (<список формальных параметров>): <тип результата>; Все подпрограммы располагаются выше начала основной час ти программы (перед первым begin ). Задача математического моделирования (с использованием процедуры и функции) Организовать ввод координат вектора. Вычислить длину вектора. Пояснить понятия «вектор» и «длина вектора». Для начала определим список формальн ых параметров: входные и выходные данные . Нам потребуется р азмерность векторного пространства ( k : byte ) и переменная х пользовательского типа vector = array [1..100] of real . Для ввода координат будем использовать procedure , так как выходных данных будет мно го (его координаты), а так как длина вектора это число, поэтому используем function . Разработка вспомогательных алгоритмов , конструирование из них программы. Программная реализация и проверка результатов. Вариант решения задачи: program Z ; type vector =array [1..100] of real; var k: byte; dl:real; x: vector; procedure vvod (var y:vector); { Процедура ввода вектора } var i:byte; begin writeln(' Введите координаты вектора '); for i:=1 to k do readln(y[i]); end; function dlvec(y:vector):real; { Функция вычисления длины вектора } var i:byte; s:real; begin for i:=1 to k do s := s + sqr ( y [ i ]); dlvec := sqrt ( s ); {Обязательно в конце нуж но имени функции присвоить вычисленное значение} end ; begin write (' Введите размерность векторного пространства k ='); readln ( k ); vvod ( x ); {вызов процедуры} dl := dlvec ( x ); {вызов функции} writeln('Длина вектора Х равна', dl: 8: 2); end . 37 Занятие 13. Тема: Процедуры и функции . Понятие рекурсии. Цель: сформировать общее представление о рекурсии. Задачи: ‬ расширить понятийный аппарат учащихся ; ‬ научить использовать рекурсивные подпрограммы при решении классических задач; ‬ поб удить интерес к решению нетрадиционных задач с использованием рекурсии. С уроков информатики: - учащиеся знают:  о рекурсивных алгоритмах работы учебных исполнителей; На занятии элективного курса: - учащиеся узнают о:  использовании рекурсии при решении в ычислительных и графических задач;  видах задач ; Содержание занятия: - Теоретическая часть Рекурсия ‭ это такой способ организации вспомогательного алгоритма (подпрограммы), при котором эта подпрограмма (процедура или функция) в ходе выполнения ее операт оров обращается сама к себе . Рекурс ию считают одним из видов цикла. П одпрограммы, которые вызывают сами себя, называются рекурсивными . Создание таких подпрограмм является красивым приемом программирования, но не всегда целесообразно из - за чрезмерного расхо да памяти ЭВМ. Рекурсии можно использовать для получения различных картинок . Фигуры с рекурсивным подобием называются фракталами . Увеличенные детали фрактала подобны полному изображению . 38 - Практическая часть Демонстрируются рекурсивные программы, а нализируется их работа: 1. Алгоритм и программа вычисления факториала непосредственно используют рекурсивное определение величины n!. При n > 1 функция FN(n) вычисляет значение путем обращения к самой себе, но с другим значением параметра. Program factor ial; Uses crt; Var n: longint; Function fn( n: longint ): longint; Begin if n = 1 then fn := 1 else fn := fn( n - 1 ) * n End; Begin clrscr; write ( ‰введите число:‘ ); readln ( n ); writeln ( ‰ факториал ‰, n :2, ‰  ‰, fn ( n ):10 ); End. 2 . Найти максимальную цифру в записи данного натурального числа . Program MaxDigit; Type NaturLong = 1..(High(LongInt)); Digit = 0..9; Var A : LongInt; Function Maximum(N : LongInt) : Digit; Begin If N 10 Then Maximum := N Else If N Mod 1 �0 Maximum(N Div 10) Then Maximum := N mod 10 Else Maximum := Maximum(N Div 10) End; Begin Write('Введите натуральное число: '); ReadLn(A); WriteLn(' Максимальная цифра равна ', Maximum(A)) End. При создании функции Maximum было использовано с ледующее соображение: если число состоит из одной цифры, то она является максимальной, иначе если последняя цифра не является максимальной, то ее следует искать среди других цифр числа. При написании рекурсивного алгоритма следует позаботиться о граничном условии, когда цепочка рекурсивных вызовов обрывается и начинается ее обратное «раскручивание». В нашем примере это условие N 10. 3. Игра "Ханойские башни" Есть три стержня. На первый из них надета пирамидка из n колец (большие кольца снизу, меньшие сверху ). Требуется переместить кольца на другой стержень. Разрешается перекладывать кольца со стержня на стержень, но класть большее кольцо поверх 39 меньшего нельзя. Составить программу, указывающую требуемые действия. Решение. Напишем рекурсивную процедуру перем ещения i верхних колец с m - го стержня на n - ый (предполагается, что остальные кольца больше по размеру и лежат на стержнях без движения). procedure move(i,m,n: integer); var s: integer; begin if i = 1 then begin writeln ('сделать ход', m , ' - �', n); end else begin s:=6 - m - n; {s - третий стержень: сумма номеров равна 6} move (i - 1, m, s); writeln ('сделать ход', m, ' - �', n); move (i - 1, s, n); end; end; (Сначала переносится пирамидка из i - 1 кол ец на третью палочку. После этого i - ое кольцо освобождается, и его можно перенести куда следует. Остается положить на него пирамидку.) Задачи на использование рекурсии: 1. Перевести целое число N из десятичной системы счисления в двоичную с использованием р екурсивной процедуры. 2. Напишите рекурсивную программу возведения в целую неотрицательную степень . Учащиеся выбирают задачу и планируют работу над рекурсивной подпрограммой. Работа в группах. 40 Занятия 14, 15 Тема: Практикум решения задач. Задачи математическ ого, физического, статистического и др. моделирования в среде Turbo Pascal 7.0. Цель: формирование готовности представлять результаты проектной деятельности в виде прикладных программ. Задачи: ‬ развивать самостоятельность в решении задач; ‬ воспитыв ать «культуру программирования» при организации интерфейса программ; Содержание занятия: - Практическая часть Возможны следующие варианты деятельности учащихся: 1. Решение задач на основе типовых алгоритмов. 2. Разноуровневые задания (мини - проекты) для учащи хся, не изучавших язык программирования , помимо данного курса. Требования: оформление решения задач в удобном интерфейсе, с комментариями. 3. Начало работы по программированию отдельных блоков итогового проекта, их отладкой. 41 Занятие 16, 17. Тема: Творческий проект. Цель: самостоятельное исследование задачи некоторой предметной области и программная реализация ее решения. Задачи: ‬ формирование способностей создавать прикладные программы средствами языка программирования Паскаль, создавать дружественный ин терфейс при программировании диалоговых программ; ‬ формирование способностей оперировать типовыми алгоритмами обработки данных; ‬ развитие самостоятельности, инициативности, вариативности мышления. Темы интегрированных проектов даны в процессе изучения б локов теоретического материала. Варианты тем проектов: 1. Психологический тест «Уровень Вашей самооценки», «Приятно ли с Вами общаться?», «Умеете ли Вы работать в коллективе?» и др. 2. Тест по физике (математике, биологии, и т.д.) по одной из тем. 3. Контролирующ ая программа для учащихся начальной школы «Таблица умножения». 4. «Удивительная математика» (числовые ряды, занимательные факты) 5. Контролирующая программа по русскому языку «Правописание безударных гласных в корне слова». 6. «Шифратор» 7. Вычисление площадей треугол ьников различными способами. 8. «Словарь школьных слов». 9. Учебная база данных «Учителя и предметы»