Реферат по предмету "Педагогика"


Обучение решению задач из раздела "Основы алгоритмизации и программирования"

МИНИСТЕРСТВООБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ
Учреждение образования
«Брестский государственныйуниверситет имени А.С. Пушкина»
/>Математический факультет
Кафедра информатики и прикладнойматематики
Курсовая работа
Обучениерешению задач из раздела «Основы алгоритмизации и программирования»
 
Брест 2010

Содержание
Введение
1. Выбор технологиипрограммирования для учебного процесса
2. Возможности методическогообеспечения структурного программирования в школе
2.1 Принципы структурнойалгоритмизации
2.2 Выбор подхода кпреподаванию структурного программирования
2.3 Базовый наборструктур и построение алгоритмов на их основе
3. Особенности языкапрограммирования Pascal ABC
3.2 Типы данных в языкеPascal ABC
3.3 Структурный типданных массив
4. Разработкаметодического обеспечения для работы со структурным типом данных массив
3.1 Основные этапыразработки решения задачи
3.2 Реализация учебныхзадач по работе с массивами
3.3 Описание игровыхмоментов при решении задач
Заключение
Список использованныхисточников
Приложение

Введение
Решениезадачи на компьютере невозможно без создания алгоритма. Умения решать задачи,разрабатывать стратегию ее решения, выдвигать и доказывать гипотезы опытнымпутем, прогнозировать результаты своей деятельности, анализировать и находитьрациональные способы решения задачи путем оптимизации, детализации созданногоалгоритма позволяют судить об уровне развития алгоритмического мышленияшкольников. Поэтому необходимо особое внимание уделять алгоритмическомумышлению подрастающего поколения.
Посколькуалгоритмическое мышление в течение жизни развивается под воздействием внешнихфакторов, то в процессе дополнительного воздействия возможно повышение уровняего развития. Необходимость поиска новых эффективных средств развитияалгоритмического мышления у школьников обусловлена его значимостью длядальнейшей самореализации личности в информационном обществе.
Вметодической литературе по информатике отмечены различные способы формированияалгоритмического мышления школьников: проведение систематического ицеленаправленного применения идей структурного подхода, повышение уровнямотивированности задач, постоянная умственная работа.
Эффективнымспособом формирования алгоритмического мышления школьников старших классов вкурсе «Основы алгоритмизации и программирования» является обучение построениюалгоритмов и их использованию при решении большого класса задач.
Целью работыявляется разработка элементов методического обеспечения для обучения решениюзадач из раздела «Основы алгоритмизации и программирования», в частностисоздание интересных методов построения и использования алгоритмов на примереучебных задач по работе со структурного типом данных массив.
Объектомисследования является процесс обучения решению задач.
Предметомисследования является формирование алгоритмического мышления школьников приобучении решению задач из раздела «Основы алгоритмизации и программирования».
Курсоваяработа условно состоит из двух частей. В первой части раскрываютсятеоретические сведения о технологии программирования в школе, принципахструктурной алгоритмизации и выборе подхода к преподаванию программирования.Вторая часть данной работы посвящена разработке различных игровых моментов,которые можно использовать при изучении структурного типа данных массив.
Такимобразом, различные формы работы и подготовленное методическое обеспечениепозволит повысить эффективность работы учащихся и уровень умений при решенииалгоритмических задач. При этом совмещение традиционных форм работы и новыхподходов в использовании стандартных задач расширяет целенаправленность иэффективность урока.

1.Выбор технологии программирования для учебного процесса
 
Выбирая стратегию преподавания информатики в школе, необходимо учитывать, что задача общеобразовательного курса – это в большой степени выработка определенного стиля мышления, формирование наиболее общих навыков, умений и представлений, нежели освоение тех или иных конкретных языков и технических средств программирования.
В то же время такой курс должен служить базой для последующего профессионального изучения программирования в высшей школе или старших классах средней школы (в рамках профессионального обучения).
В настоящее время существуют три наиболее распространенных подхода к преподаванию программирования [10]:
1)      преподавание программирования как теоретической дисциплины вообще, без освоения конкретных языков и систем;
2)      преподавание на основе специально разработанного языка, ориентированного на обучение основным навыкам программирования;
3)      изучение одного или нескольких языков программирования, широко используемых при решении научных и хозяйственных задач.
Первый подход представляется наиболее логичным. Однако его практическая реализация наталкивается на серьезные трудности, так как с отказом от языка программирования не только теряется возможность использовать соответствующий инструментарий, но и зачастую становится трудно обосновать необходимость его использования.
Второй подход часто используется при преподавании основ программирования в младших классах средней школы. Разработаны и специализированные языки для этих целей. В их числе можно назвать Школьник, Рапира (СССР), SMR (Великобритания), LOGO (США). Они предельно упрощены и рассчитаны на возможности младшего школьника в области программирования. Такой подход хорош при углубленном изучении информатики в специализированных классах при начальном этапе обучения.
Противники третьего подхода утверждают, что он непригоден прежде всего потому, что ни один из существующих стандартных языков не отражает в достаточно чистом виде современный концептуальный запас программирования. Такое положение, вообще говоря, естественно, так как все эти языки разрабатывались со своими целями и каждый из них ориентирован на определенную, более или менее узкую область применения. Кроме того, большинство реализаций стандартных языков загружено большим количеством технических деталей и сложны в изучении.
Наиболее приемлемым для общеобразовательной школы является сочетание первого и третьего подходов – обучение теоретическим основам программирования на базе стандартного языка. При этом не обязательно вдаваться в глубины языка. Учащиеся, которых он заинтересует, могут сделать это и сами. Наибольшее внимание следует уделить переходу от алгоритмических структур к их программной реализации на языке программирования.
У каждого языка есть свои сторонники и противники, и конечный выбор определяется наличием аппаратных средств и личными наклонностями преподавателя. Стоит отметить, что Паскаль первоначально создавался как учебный язык, но со временем получил широкое распространение в качестве стандартного языка.
Из существующих технологий программирования наиболее популярной и широко используемой является технология структурного программирования «сверху – вниз». Ее достоинством является то, что она позволяет сформировать у обучаемых алгоритмический стиль мышления, необходимый при изучении практически всего курса информатики. Следовательно, выбирая язык программирования для школьного курса, нужно ориентироваться на один из структурных языков.

2. Возможности методического обеспечения структурного программирования в школе
 
2.1 Принципы структурной алгоритмизации
 
На сегодняшний день самой популярной методикой программирования является структурное программирование «сверху – вниз». Эта технология программирования представляет собой процесс пошагово разбиения алгоритма на все более мелкие части с целью получить такие элементы, для которых можно легко написать конкретные предписания [5].
Структурная алгоритмизация основывается на двух принципах:
1)      последовательная детализация «сверху — вниз»;
2)      ограниченность базового набора структур для построения алгоритмов любой степени сложности.
Из принципов вытекают требования структурного программирования:
1)      программа должна составляться мелкими шагами, таким образом, сложная задача разбивается на достаточно простые, легко воспринимаемые части;
2)      логика программы должна опираться на минимальное число достаточно простых базовых управляющих структур.
Базовый набор структурной алгоритмизации содержит линейные, разветвляющиеся и циклические структуры.
Можно перечислить основные свойства и достоинства структурного программирования:
1)      возможность преодоления барьера сложности программ;
2)      возможность демонстрации правильности программ на различных этапах решения задачи;
3)      наглядность программ;
4)      простота модификации программ.

2.2 Выбор подхода к преподаванию структурного программирования
 
При решении задач с использованием структурного программирования можно выделить два основных направления [7, c. 78]:
1)      «алгоритмический» подход заключается в следующем: схема решения задачи описывается на алгоритмическом языке (языке блок-схем алгоритмов) и затем переводится в программную реализацию на конкретном языке программирования;
2)      «программный» подход – описание решения задачи сразу на конкретном языке программирования.
В соответствии с этими направлениями чаще всего и преподается программирование. Уровень развития современных систем программирования, благодаря хорошо организованным средствам отладки, позволяет создавать программы без использования первого подхода. Однако, программный подход требует от человека наличие определенного стиля мышления и навыков работы с языком программирования. Очевидно, что специалисты, имеющие пусть даже небольшой опыт в программировании, пользуются программным подходом. Им не обязательно описывать решение задачи на алгоритмическом языке, они разрабатывают ее в «уме». В преподавании такой подход хорош при изучении второго языка программирования, когда ученики уже имеют определенную подготовку.
При изучении структурного программирования на начальном этапе более подходит «алгоритмический» подход. Он более полно и последовательно позволяет раскрыть переход от математической формы описания задачи к ее программной реализации и помогает формировать у обучаемых алгоритмический стиль мышления, необходимый при решении задач с использованием языков программирования и изучении многих технических и общеинженерных дисциплин. Кроме того, на основе алгоритмического подхода можно изучать сразу несколько языков программирования.
В силу перечисленных достоинств наиболее верным и методически правильным для преподавания программирования на начальном этапе обучения является алгоритмический подход.
При изучении программирования с использованием алгоритмического подхода учащиеся сталкиваются с двумя проблемами [6, c. 86]:
1)      описание и детализация решения задачи на алгоритмическом языке;
2)      переход от алгоритмических конструкций к конкретному языку программирования.
На разрешение этих трудностей должно быть направлено методическое обеспечение. В первом случае это могут быть схемы основных базовых структур с описанием их работы и особенностей использования при построении алгоритмов. Во-втором – таблицы перевода алгоритмических конструкций в конструкции языка программирования.
 
2.3 Базовый набор структур и построение алгоритмов на их основе
 
Теория структурного программирования доказывает, что алгоритм любой степени сложности можно построить с помощью основного базового набора структур:
1)      последовательная (линейная) структура;
2)      ветвящаяся структура;
3)      циклическая структура.
Наиболее простыми для понимания и использования являются линейные структуры. Линейным называется алгоритм (фрагмент алгоритма), в котором отдельные предписания выполняются в естественном порядке (в порядке записи) независимо от значений исходных данных и промежуточных результатов [3, c. 9].
Алгоритм может быть реализован в ЭВМ, если он содержит только элементарные предписания. Такими элементарными, т.е. не требующими детализации, можно считать следующие предписания или операции:
1)      начало, конец;
2)      список данных;
3)      ввод, вывод;
4)      вычислительные операции, реализуемые оператором присваивания.
Не всякий алгоритм можно описать только линейными структурами. Часто для дальнейшей детализации используются ветвящиеся структуры, т.е. такие, в которых в зависимости от исходных данных или промежуточных результатов алгоритм реализуется по одному из нескольких, заранее предусмотренных направлений. Такие направления часто называются ветвями.
Каждая ветвь может быть любой степени сложности, а может вообще не содержать предписаний, т.е. быть вырожденной. Выбор той или иной ветви осуществляется в зависимости от результата проверки условия с конкретными данными. В каждом случае алгоритм реализуется только по одной ветви, а выполнение других исключается.
Реализация на ЭВМ линейных и разветвляющихся программ не дает большого выигрыша во времени по сравнению, например, с использованием простого калькулятора. Настоящее преимущество вычислительной машины становится очевидным лишь при решении тех задач, где возникает необходимость многократного повторения одних и тех же фрагментов алгоритмов [2].
В циклических алгоритмах выполнение некоторых операторов (групп операторов) осуществляется многократно с одними и теми же или модифицированными данными.
Циклические алгоритмы часто называют циклами. В зависимости от способа организации числа повторений различают три типа циклов:
1)      цикл с заданным условием продолжения работы (цикл-пока);
2)      цикл с заданным условием окончания работы (цикл-до);
3)      цикл с заданным условием повторений работы (цикл с параметром).
Тело цикла с заданным условием продолжения работы может включать в себя группу операторов любой степени сложности. При выполнении условия продолжения работы выполняется тело цикла, если же условие не выполняется, то работа циклической структуры заканчивается и начинается выполнение следующей структуры.
Структура цикл-пока предусматривает вариант, когда тело цикла не выполняется ни разу. Такое возможно, если условие, стоящее в начале цикла, сразу же не выполняется. Когда на практике возникает необходимость использовать структуру, у которой тело цикла выполняется хотя бы один раз, то в этом случае применяется структура цикла-до.
С помощью такой структуры обычно составляют алгоритмы итерационных вычислительных процессов, т.е. таких, в которых для определения последующего значения переменной используется ее предыдущее значение. Выход из конструкции цикл-до осуществляется по достижении параметром требуемого значения.
Рассмотренные типы циклических структур имеют один недостаток: при ошибочном задании исходных данных может произойти зацикливание, т.е. возникает ситуация, когда происходит бесконечное повторение тела цикла.
В практических инженерных задачах обычно известны начальные значения изменяемых величин, закон изменения и конечное число повторений. Переменная, изменение которой организуется в ходе реализации цикла, называется параметром цикла или управляющей переменной. Алгоритм работы цикла с заданным числом повторений представляет собой соединение линейной структуры (начало цикла), структуры цикл-пока (условие в нем заменено на противоположное) и снова линейной (последовательной) структуры в теле цикла.
Таким образом, с помощью базового набора структур можно построить алгоритм любой степени сложности. Освоив принципы и средства структурной алгоритмизации, обучаемые должны уметь реализовать их на конкретном языке программирования. Следовательно, основной концепцией в изучении ими любого языка программирования будет являться методика перевода основных базовых структур в конструкции данного языка.

3. Особенности языка программирования Pascal ABC
 
3.1 Типы данных в языке Pascal ABC
 
В языке Pascal ABC любая переменная характеризуется своим типом. Под типом в данном случае понимается множество значений, которые может принимать переменная и, как следствие, множество операций, допустимых над переменной.
Паскаль является языком жесткой типизации. Это означает, что тип переменной определяется при ее описании и не может быть изменен. Переменная может участвовать только в операциях, определенных ее типом. Такой подход способствует большей аккуратности и ответственности при составлении программы, делает их поддающимися автоматической (при компиляции) проверке на корректность и в конечном итоге приводит к более высокой надежности создаваемых программ [1, c. 237].
Паскаль имеет развитую и изощренную систему типов. На основе небольшого числа стандартных типов программист может конструировать данные произвольной структуры и сложности, адекватно отражающие информационную природу задачи.
Паскаль наследует систему типов эталонного языка, существенно расширяя ее как в смысле добавления очевидных практически полезных типов (например, строковых), так и введением принципиально новых понятий, открывающих нетрадиционные возможности в программировании (в частности, объектов).
Базовыми в системе типов являются простые типы. Составные типы по определенным правилам строятся из простых. Ссылочные типы образуются из любых других типов. Составные и ссылочные типы можно считать некоторыми правилами для построения более сложных типов из более простых. Ограниченные типы формируются из простых типов путем сужения их области допустимых значений. Первичными в иерархии типов являются стандартные скалярные типы, представляющие традиционные в языках программирования множества значений (целые, вещественные, символьные, булевские) и их модификации, учитывающие архитектурные особенности аппаратуры.
Процедурные типы в некотором отношении расширяют традиционное понятие подпрограмм, позволяя обращаться с подпрограммами как с переменными [3, c. 8].
Несколько особняком стоят объектные типы, или объекты. Являясь, с формальной точки зрения, обобщением комбинированных типов (записей), они позволяют радикально изменить подход к разработке программ, предлагая так называемый объектно-ориентированный стиль программирования.
Простые типы: порядковые, вещественные, дата-время.
Порядковый тип в свою очередь делится на:
1. целые типы;
2. логический тип или булевский тип;
3. символьный тип;
4. перечисляемые типы;
5. ограниченные типы или тип-диапазон.
На основе стандартных скалярных типов имеется возможность образовывать пользовательские скалярные типы. Есть два способа порождения новых скалярных типов — ограниченные и перечислимые типы.
Любой скалярный тип характеризуется множеством его различных значений, среди которых установлен линейный порядок. Все скалярные типы, кроме вещественных, называются дискретными.
Составные типы: структурированные типы, указатели, строки, процедурные, объекты, классы, варианты.
Структурированные типы в свою очередь делятся на:
1. регулярные типы (массивы);
2. комбинированные типы (записи);
3. множественные типы;
4. файловые типы;
Простые типы, описанные выше, определяют различные множества атомарных (неразделимых) значений. Составные, или структурные типы, в отличие от простых, задают множества «сложных» значений; каждое значение из такого множества образует некоторую совокупность нескольких значений другого типа (или других типов). Можно сказать, что составные типы определяют некоторый способ образования новых типов из уже имеющихся, причем отдельные элементы составных значений могут иметь любой, в том числе составной, тип.
Таким образом, Паскаль допускает образование структур данных произвольной сложности, позволяя тем самым достичь адекватного представления в программе тех данных, с которыми она оперирует.
 
3.2 Структурный тип данных массив
 
Каждое значение регулярного типа состоит из фиксированного числа элементов одного и того же базового типа. Такой способ образования новых значений (фиксированное число однотипных компонент) позволяет обозначать значения этих типов одним (групповым) именем. Объект регулярного типа часто называют массивом, а групповое имя используется в качестве имени этого массива. Доступ к отдельным элементам массивов организуется посредством указания имени массива и порядкового номера (индекса) необходимого элемента.
Для корректного определения регулярного типа необходимо задать две характеристики: тип элементов массива, а также количество и «способ нумерования» элементов. Последние характеристики задаются посредством указания типа индекса [1, c. 259].
Определение массива имеет следующий общий вид:

Type A = array [T1] of T2;
 
Здесь Array, of – служебные слова; Т1 – тип индекса массива; Т2 – тип компонент массива.
В дальнейшем идентификатор этого типа может быть использован в описании переменных.
В качестве типа индекса может выступать любой дискретный тип, кроме LongInt и ограниченных типов, построенных из типа LongInt, в частности, допустимы ограниченные и перечислимые типы. Элементами массива могут быть переменные любого типа.
Ниже приведены описания различных массивов:
 
Type
M1 = array [1..100] of real;
M2 = array [char] of boolean;
Matrix = array [ 1..10 ] of array[1..20] of integer;
Database = array [1..MaxF] of file of Person;
Var
Vector: M1;
Sym_Table: M2;
Arr1, Arr2: Matrix;
S: array [Red, Yellow, Green] of boolean;
 
Число элементов в массиве всегда должно быть фиксировано. Для задания количества элементов массива используется тип; число элементов определяется количеством возможных значений указанного типа, что отличает язык Паскаль от многих других языков, в которых размер массива задается либо целым числом (или выражением целого типа), либо диапазоном целых чисел. Это придает Паскалю дополнительную гибкость, позволяя «нумеровать» элементы массива не только целыми числами, но и значениями произвольного целого типа.
В качестве элементов массива могут выступать значения любого типа; в частности, ими могут быть значения любых составных типов, например, массивы:
 
Var
V2: array [1..10] of array [1..20] of byte;
 
Такую переменную можно трактовать двояко: как массив, состоящий из нескольких массивов, либо как один двумерный массив (матрицу). Для сокращения записи в подобных случаях можно использовать эквивалентную форму определения регулярных типов, где в квадратных скобках указывается список типов индексов, разделенных запятыми, тот же массив можно описать:
 
Var
V2: array [ 1..10, 1..20 ] of of byte;
 
Число индексов в определении (т.е. размерность массива) в языке не ограничивается.
Паскаль допускает единственное возможное действие над массивом в целом: использование его в операторе присваивания, например, Vect1:=Vect2; причем типы обоих массивов должны быть эквивалентны.
Элемент массива считается переменной; он может получать значения (например, в операторе присваивания), а также участвовать в выражениях, где он представляет значение, помещенное в соответствующий элемент данного массива [2]. Ассортимент операций над элементами массива полностью определяется типом этих элементов (базовым типом массива).

4. Разработка методического обеспечения для работы со структурным типом данных массив
 
4.1 Основные этапы разработки решения задачи
 
Чтобы любую новую задачу решить с применением компьютера, необходимо предварительно создать соответствующую компьютерную программу. Технологический процесс разработки программы решения задачи включает следующие этапы [5]:
1)      построение информационной модели задачи;
2)      разработка алгоритма решения задачи;
3)      написание программы;
4)      отладка программы.
Информационная модель задачи – это совокупность знаний и данных, содержащих всю необходимую информацию об объекте или процессе, в отношении которого эта задача сформулирована. Важнейшей составляющей информационной модели является метод решения, то есть конкретные соотношения, связывающие исходные данные задачи с нужными результатами. Частным случаем информационной модели является математическая модель.
Разработка алгоритма – представление процесса решения задачи в виде последовательности определённых команд, выполнение которых обеспечивает получение нужных результатов.
Написание программы – запись алгоритма на языке программирования.
Отладка программы реализуется после ввода её в компьютер и состоит в обнаружении и устранении в ней синтаксических и семантических ошибок.
Готовая отлаженная программа передаётся пользователю, который в любое удобное для себя время может применить её для решения соответствующей задачи на реальных исходных данных.

4.2 Реализация учебных задач по работе с массивами
 
При решении учебных задач учащимся предстоит научиться выполнять рая наиболее распространенных действий с массивами [9, с. 133]:
1)      описание;
2)      заполнение массива случайными числами;
3)      заполнение массива с клавиатуры;
4)      вывод на экран;
5)      поиск максимального элемента;
6)      вычисление суммы всех элементов массива;
7)      вычисление количества положительных элементов;
8)      удаление элементов из массива;
9)      добавление элементов в массив;
10)    замена элементов в массиве и другие.
Заполнение массива случайными числами и вывод массива на экран. Рассмотрим задачу, в которой требуется с помощью датчика случайных чисел создать одномерный массив и вывести его на экран.
 
Program Massiv1;
Uses Crt;
Const N=10;
Var A: array [1… N] of integer; i: integer;
Begin
Randomize;
For i:=1 to N do A[i]:=Random (100);
ClrScr;
Writeln (‘Введенный массив: ’);
For i:=1 to N do write (A[i]: 4);
Writeln;
Readln;
End.
 
В данном примере мы заполнили массив случайными числами от 0 до 99, что обеспечила нам функция random (100). Если нам нужно получить случайные числа в другом диапазоне, например, не от нуля, расчет нужно сделать такой: функция random (N) выдаст N различных чисел от 0 до N-1. Если нам нужно, чтобы наименьшим числом диапазона было K, необходимо прибавить K к random (N). Наибольшее число, которое будет выдавать в этом случае формула random (N)+K, будет наибольшим числом диапазона.
Функция random без аргумента генерирует случайные вещественные числа на промежутке [0;1). Если случайные вещественные числа должны принадлежать иному промежутку, например, [3;4), то значение элемента задается выражением A[i]:=random+3 [4, с. 29].
Заполнение массива с клавиатуры. Заполним одномерный массив путем ввода с клавиатуры целых чисел и выведем его элементы на экран с противоположным знаком.
 
Program Massiv2;
Uses Crt;
Const N=10;
Type Mas: array [1… N] of integer;
Var Line: Mas; i: integer;
Begin
For i:=1 to N do
Begin
Write (‘Введите элемент с индексом ’, i, ':');
Readln (Line[i])
End;
For i:=1 to N do Write(-Line[i]: 5);
Writeln;
Readln
End.
 
Поиск максимального элемента массива. Поиск максимума – типичная задача для большого количества данных. Например, в списке успеваемости учеников класса найти самого прилежного. Иначе говоря, требуется выбрать наибольшее значение среднего балла и указать фамилию ученика.
 
Program Maximum;
Const N = 10;
Type Mas = array [1… N] of integer;
Var A: Mas; i, Max, Imax: integer;
Begin
Randomize;
For i:= 1 to N do
Begin
A[i]:= -50+Random (101);
Write (A[i]: 5)
End.
Writeln;
Imax:= 1; Max:= A[1];
For i:= 2 to N do
If Max
Max:= A[i]; Imax:=i
End;
Writeln (‘Максимальный элемент в массиве = ’, Max: 5);
WriteLN (‘Его индекс = ’, Imax: 5);
Readln;
End.

Заметим, что в процессе поиска максимума не обязательно хранить обе величины – номер максимума и его значение. Достаточно хранить одну, в зависимости от поставленной задачи. Если индекс максимума не нужно знать, достаточно будет переменной Max. Если нужен только номер – достаточно IMax. Тонкость состоит в том, что если нужно и то и другое, все равно достаточно найти только IMax, ведь значение максимума легко может быть получено по его индексу (A [IMax]).
Вычисление количества положительных элементов. Подсчет суммы элементов, которые удовлетворяют какому-то условию, осуществляется по принципу перебора всех элементов массива (цикл for) и проверки для каждого элемента выполнение условия (оператор if). Если условие выполнено, добавим элемент к сумме (S:= S+A[i]).
 
Program PositivSumm;
Const N = 10;
Type Mas = array [1… N] of integer;
Var A: Mas; i, S: integer;
Begin
Randomize;
For i:= 1 to N do
Begin
A[i]:= -100+random (201);
Write (A[i]: 5)
End;
Writeln;
S = 0;
For i:= 1 to N do
If A[i] > 0 then S:= S+A[i];
Writeln (‘Сумма положительных элементов= ’, S);
Readln
End.
 
Удаление нескольких элементов. Дано число n, ряд из n чисел и число х.Необходимо найти и удалить все элементы со значением х, если такие есть в ряду. Оставшаяся часть сдвигается влево, сохраняя порядок чисел.
 
Program Udalenie;
Var n, i, Sdv, x: integer;
Var A: array [1… 100] of integer;
Begin
Writeln (‘Удалить числа: ’);
Readln (n);
(*Ввод массива A*)
Readln (x);
Sdv:=0; i:=1;
While i
Begin
If A[i]=x then Sdv:=Sdv+1
Else A[i-Sdv]:=A[i];
i:=i+1
End;
n:=n-Sdv;
(*Вывод массива А*)
End.
 
В алгоритме по очереди просматриваются все элементы массива, начиная с первого. Элементы массива делятся на два вида: удаляемые и неудаляемые. Если в очередной клетке массива удаляемый элемент, тогда значение переменной Sdv увеличивается на единицу. Таким образом в переменной Sdv подсчитывается число удаляемых элементов.
Если в рассматриваемой клетке находится неудаляемый элемент, то он сдвигается на Sdv позиций влево, как и определено правилом.
Присоединение массива к массиву. Дано число m и ряд из m чисел. Затем дано число n и два ряда по n чисел. Требуется сформировать единый ряд чисел. Новый ряд получается при дописывании первого ряда в конец второго. Длина ряда увеличивается одной командой сразу на m.
 
Program Prisoedinenie;
Var n, m, i: integer;
Var A, B: array [1… 100] of integer;
Begin
Writeln (‘Объединение рядов: ’);
Readln (m);
(*Ввод массива В из m элементов*)
Readln (n);
(*Ввод массива A*)
i:=1;
While i
Begin
A[i+n]:=B[i];
i:=i+1
End;
n:=n+m;
(*Вывод массива А*)
End.
 
Первый ряд запоминается во вспомогательном массиве В, а длина ряда – в переменной m. Затем в массив А заноситься второй ряд. Теперь достаточно дописать ряд из массива В элемент за элементом в продолжение массива А.
Перестановка соседей. Пусть дано число n и два ряда по n чисел в каждом. Требуется каждый элемент ряда, стоящий на четной позиции, поменять с предыдущим. Исполнение цикла по этому правилу должно начинаться со второго элемента ряда.
 
Program Perestanovka;
Var n, i, Buf: integer;
Var A: array [1… 100] of integer;
Begin
Writeln (‘Обмен чисел: ’);
Readln (n);
(*Ввод массива А*)
i:=2;
While i
Begin
Buf:=A[i];
A[i]:=A[i-1];
A[i-1]:=Buf;
i:=i+2
End;
(*Вывод массива А*)
End.
 
В задаче исходный ряд чисел запоминается в массиве А. Затем числа ряда переставляются в массиве А в соответствии с условием задачи. Когда ряд полностью построен, содержимое массива А выводится на экран.
Слияние двух массивов. Пусть дано число n и два ряда по n чисел в каждом. Необходимо построить ряд, в котором первый элемент равен большему из первых элементов исходных рядов. Второй элемент – большему из вторых элементов исходных рядов и так для всех элементов. Вывести получившийся ряд.
Исходные данные задачи – два ряда чисел. Разместить эти числа можно в двух массивах: в А – первый ряд, а в В – второй ряд. Вычисляя элемент за элементом, будем выводить эти числа на экран [8, c. 67].
 
Program Sliyanie;
Var n, i, Max: integer;
Var A, B: array [1… 100] of integer;
Begin
Writeln (‘Выбор в парах: ’);
Readln (n);
(*Ввод массива А*)
(*Ввод массива В*)
i:=1;
While i
Begin
If A[i]>B[i] then Max:=A[i]
Else Max:=B[i];
Write (Max, ‘’); i:=i+1
End
End.
 
Сортировка выбором. Сортировка выбором упорядочивает ряд из n чисел по возрастанию с использованием поиска наибольшего числа ряда. Среди всех элементов массива от A[1] до A[n] находим наиболший и меняем его местами с последним. Затем точно так же поступаем с рядом от A[1] до A[n-1]. Процесс завершается, когда дойдем до ряда из одного элемента A[1] [8, c. 73].

Program SortVibor;
Var n, i, j, Max, Pos: integer;
Var A: array [1..100] of integer;
Begin
Writeln (‘Сортировка чисел: ’);
Readln (n);
(*Ввод массива А*)
j:=n;
While j>1 do
Begin
If A[i]>Max then
Begin
Max:=A[i]; Pos:=i
End;
i:=i+1;
End;
A[Pos]:=A[j]; A[j]:=Max;
j:=j-1;
End;
(*Вывод массива А*)
End.
 
В программе переменная j указывает на последний элемент еще неотсортированной части ряда. В процессе поиска наибольший элемент среди чисел от A[1] до A[j] запоминается в переменной Max, а номер клетки – в переменной Pos. Затем найденный элемент меняется местами с элементом A[j]. Процесс поиска и обмена выполняется для значений j от n до 2 последовательно, постепенно уменьшая длину неотсортированной части ряда.

4.3 Описание игровых моментов при решении задач
При изучениираздела информатики «Алгоритмизация и программирование» написание рабочейпрограммы является конечной целью применения игровых методов. Так, изучениеструктурного типа данных массив происходит более успешно, если использовать приемпоэтапного усложнения задачи. Например, последовательная разработка алгоритмовдля задач на отыскание максимума (минимума), замену указанного элемента,перестановка всех элементов массива в указанном порядке способствует развитиюалгоритмического мышления и правильного составления алгоритма на основе ужеимеющихся знаний. При этом прохождение каждого этапа написания программысопровождается определенным поощрением или правом перехода к следующему этапу.В процессе работы учащиеся зарабатывают баллы, очки, бонусы, которыесуммируются и находят свое отражение в отметках.
Плодотворностьтруда учащихся на уроке зависит от выбранной формы работы. Следуеткомбинировать самостоятельную и коллективную работу учеников для осуществлениявзаимопомощи и быстроты усвоения материала. Игра должна быть интересна иохватывать всех учащихся.
Игра«Группа разработчиков». Все учащиеся делятся на три группы. Каждая группа получаетзадание написать алгоритм нахождения максимума (минимума), алгоритм,сортирующий элементы массива по возрастанию (по убыванию), алгоритм,суммирующий элементы массива. После написания алгоритмов группы учениковзаменяют одного из своих разработчиков представителем другой группы и совмещаютдва составленных алгоритма. После второго обмена представителями в каждойгруппе должны получиться одинаковые алгоритмы, выполняющие три поставленныеизначально задачи.
Кроме того,принцип работы алгоритма на перестановку элементов массива в порядкевозрастания, поиска максимального (минимального) элемента удобно продемонстрироватьс помощью ролевого исполнения алгоритма, примером которого является игра«Сценка».
Игра«Сценка».Выбирается N количество учащихся в зависимости от количества переменных валгоритме. Каждому ученику раздается соответствующая роль и его начальноезначение: переменная Счетчик (1 ученик), ячейки массива (количество учениковзависит от размерности массива), переменная Максимум (1 ученик), переменнаяМинимум (1 ученик), переменная Сумма (1 ученик), а также ученик, записывающийна доске код программы. Задание: найти сумму максимального и минимальногоэлементов массива. При этом на доске чертится массив из N элементов, отводитсяместо для записи значения переменных. Далее учащиеся проигрывают алгоритм поролям: если переменная счетчик увеличивает свое значение, то ученик, отвечающийза соответствующую ячейку массива, должен сказать значение своей ячейки илисравнить его со значением соседней ячейки и изменить его, если этосоответствует алгоритму решения задачи, который один из учащихся записывает надоске. При этом за каждый правильный шаг начисляется бонус, а за неверныйотнимается.
Немаловажнойсоставляющей успешного решения алгоритмических задач является частичносамостоятельная работа учащихся с возможностью проверить результаты своейдеятельности.
Игра«Улитка».Заранее готовиться плакат с изображением пустого массива в виде спиралиразмерностью N. Учащиеся по очереди бросают кубики, при этом выпавшие числапоследовательно записывают в ячейки массива. Когда массив будет заполнен,учащиеся получают задание отсортировать массив в порядке возрастания (убывания)таким образом, чтобы каждое число повторялось в массиве только один раз. Приэтом после написания каждого элемента программы один из учеников проверяет его,внося при этом нужные коррективы в рисунок на плакате.
Зависимостькачественного результата совместной работы учащихся от эффективного трудакаждого ученика положительно влияет на ответственный подход учеников к решениюалгоритмической задачи.
Игра«Японский рисунок». На доске имеется поле, размерностью N×M клеток. Каждыйучащийся получает многомерный массив, который содержит значения только 1 и 0.Задача каждого ученика заключается в том, чтобы составить верный алгоритмаподсчета количества нулей и единиц в своем массиве, и зарисовать на доскеклетку, координаты которой по горизонтали и по вертикали равны соответственноколичеству нулей и единиц в своем массиве. Если все подсчеты будут выполненыправильно, то из зарисованных клеток на доске сложится определенный рисунок.
Мотивационнуюсоставляющую решения любой алгоритмической задачи определяет правильнопоставленная цель выполнения работы и ее дальнейшее применение.
Игра«Спортлото». Учащиеся получают задание написать алгоритм, который бы обнулял тестоки многомерного массива N×M, которые содержат указанное число. Затемкаждый ученик получает свой лотерейный билет (файл, содержащий многомерныймассив N×M). Учащиеся по очереди вытягивают бочонки с номерами, которыепоследовательно вводят в написанную ранее программу. Таким образом, победителемстанет тот ученик, у которого раньше других будут вычеркнуты все строки еголотерейного билета, т.е. обнуляться все строки многомерного массива.
Разработанныеигры «Группа разработчиков», «Сценка», «Улитка», «Японский рисунок»,«Спортлото» могут применяться при изучении структурного типа данных массив(приложение A).
Такимобразом, применение игровых форм в обучении основам алгоритмизации ипрограммирования способствует повышению эффективности традиционных методовобучения за счет усиления доли исследовательских, информационно-поисковыхметодов работы с информацией, а также стимулирования познавательного интереса итворческой активности учащихся.

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

Списокиспользованных источников
1.    Бочкин, А.И. Методикапреподавания информатики / А.И. Бочкин. – Минск: Выш. школа, 1998. – 431 с.
2.    Воскресная компьютернаяшкола [Электронный ресурс] / Система программиования Pascal ABC. – Режимдоступа: sunschool.math.rsu.ru. – Дата доступа:25.02.2010.
3.    Еремин, О.Ф. Методическоепособие по программированию на языке Pascal ABC / О. Ф. Еремин. – М.: Моздок,2009. – 49 с.
4.    Заборовский, Г.А.Информатика: уч. пособие для 9-го кл. / Г. А. Заборовский, А.И. Лапо, А.Е. Пупцев.– Минск: Нар. Асвета, 2009. – 191 с.
5.    Информационный канал Sub@cribe.ru[Электронный ресурс] / Программирование на Паскале. Новая методикаобучения. – Режим доступа: subscribe.ru. – Дата доступа: 16.03.2010.
6.    Лапчик, М.П. Методикапреподавания информатики / М. П. Лапчик, И.Г. Семакин, Е.К. Хеннер. – М.: Изд.центр «Академия», 2001. – 624 с.
7.    Малев, В.В. Общаяметодика преподавания информатики / В. В. Малев. – Воронеж: ВГПУ, 2005. – 271с.
8.    Миняйлова, Е.Л.Информатика: 9 класс: учебный курс / Е. Л. Миняйлова, Д. А. Вербовиков, Н. Р. Коледа.– Минск: Аверсэв, 2009. – 172 с.
9.    Ушаков, Д.М. Паскаль дляшкольников / Д.М. Ушаков, Т.А. Юркова. – СПб.: Питер, 2010. – 256 с.
10.  Фестиваль педагогическихидей «Открытый урок» [Электронный ресурс] / «Алгоритмизация и программирование»в базовом курсе школы. – Режим доступа: festival.1september.ru.– Дата доступа: 26.02.2010.


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

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.