Методическое и дидактическое обеспечение преподавания раздела «Алгоритмы и программы» в 5-11 кл. Исполнитель
Вид материала | Реферат |
- Дидактическое обеспечение образовательной программы, 134.88kb.
- Методическое и дидактическое обеспечение программы. Педагогическое обеспечение. Работа, 462.32kb.
- Методическое и дидактическое обеспечение, 101.36kb.
- Методическое и дидактическое обеспечение программы № п/п Наименование предмета (курса,, 201.07kb.
- Образовательной программы Дороновой Т. Н. «Радуга» № п/п Наименование объектов и средств, 208.35kb.
- Методика преподавания дисциплины «Аудит», 41.52kb.
- Использование программы Power Point для создания учебного проекта «История развития, 85.11kb.
- Отчет по проекту №38: Разработка рекомендаций по реализации Болонского процесса в российской, 1485.06kb.
- «Причастие», 422.68kb.
- Лекция 4 Обеспечивающие подсистемы асу. Математическое, программное, лингвистическое,, 59.3kb.
program risunok; {Шутова Света 2005 г.}
uses crt, Graph;
var i,x,y,gd,gm : integer;
begin
x:=200; y:=300;
gd:=Detect; initgraph (gd,gm,’’);
Setcolor (4);
SetFillStyle (1,11);
Bar (140,70,390,350);
MoveTo(x,y); LineRel(25,0); LineRel(0,-60);
MoveTo(x+50,y); LineRel(25,0);
MoveTo(x+50,y); LineRel(0,-60);
Ellipse(x+38,y-98,0,360,30,40); SetFillStyle (7,5); FloodFill(x+38,y-98,4);
MoveTo(x+7,y-95); LineTo(x-15,y-45);
MoveTo(x+68,y-95); LineTo(x+78,y-45);
MoveTo(x+50,y-100);
Circle(x+40,y-164,25); SetFillStyle (1,12); FloodFill(x+40,y-164,4);
MoveTo(x+35,y-370);
Arc(x+40,y-205,160,20,17);
Ellipse(x+29,y-174,0,360,4,5);
Ellipse(x+45,y-174,0,360,4,5);
for i:=1 to 10 do begin {Начало цикла изменения улыбки чёртика}
SetColor(4); Arc(x+38,y-143,20,160,13);
Delay(50000); {Задержка для создания иллюзии движения}
SetColor(12); Arc(x+38,y-143,20,160,13);
SetColor(4); Arc(x+38,y-154,160,10,13);
Delay(50000);
SetColor(12); Arc(x+38,y-154,160,10,13);
end;
SetColor(12); Arc(x+38,y-143,20,160,13);
Arc(x+116,y-85,199,0,65);
Circle(x+180,y-90,5);
SetTextStyle(DefaultFont,HorizDir,3);
OutTextXY(10,350,'Привет из горячей точки');
readln;
CloseGraph {Именно так – readln; затем CloseGraph, иначе графику не увидеть}
end.
В конце урока все вместе проверяем работы. Это занимает 4-5 минут, но польза от этого, несомненно, большая. Это моё, это я сделал! Такие уроки запоминаются надолго. Особо отмечаются те, кто в программах использовал операторы цикла, ветвления, динамику. После проверки и выявления лучшего художника все получают листинги программ, сделанных предшественниками, одиннадцатиклассниками. Все получают огромное удовольствие : 10-й класс ищет ошибки и любуется картинками 11-го класса, а 11-й класс млеет от того, что десятиклассники не нашли ошибок и что их имена попали в историю программистского движения.
Напоследок я предлагаю листинг программы (код) « Точки» (журнал «Информатика и образование»). См. Приложение №3. После подробного разбора каждой! строчки учащиеся набирают эту программу и получают индивидуальные задания. Например:
- Найти наибольшее расстояние между точками, вывести это значение и номера точек на экран и соединить эти точки прямой жёлтого цвета.
- Найти максимальную (минимальную) координату по оси Ох (Оу) и провести через неё прямую, параллельную перпендикулярную Ох (Оу).
- Соединить первую точку с последней (все подряд, через одну и т.п.)
После этой работы я провожу самостоятельную работу по комментированию каждой! строчки этой же программы, а «выдающимся» даю программу «Треугольники», которую выполняем уже в 11 классе. Результаты всегда интересные. Большинство комментируют 80-90% кода.
Затем все получают творческое задание: Создать что-нибудь этакое, что вошло бы в анналы истории.
Эта тема обычно легко идёт в 10 классе. Для учащихся не представляет большой трудности перевести с уже хорошо известного языка Qbasic графические операторы.
Картины (назовём их так торжественно) получаются достаточно интересными, т.к. дети, имея опыт, стараются украсить свою картинку динамикой. Например, банальная ёлка превращается в произведение искусства (не побоюсь этого слова), если огни на ней будут переливаться, а игрушки на ней будут улыбаться, возни, конечно, больше, но, когда на карту поставлена великая дидактическая задача – учение с увлечением, то все затраты окупятся хорошим настроением и учителя и, особенно, детей. Они с азартом начинают придумывать «оживляшки», так что, когда придёт пора работать с макросами в приложениях Windows, в Visual Basic, Delphi, то уговаривать сделать красивую программу не надо. (См. Приложение 3-8). На этом заканчивается изучение темы в 10 классе. Следующая глава посвящена программированию в 11 классе.
( К содержанию)
7. 11 класс
Изучение программирования в 11 классе начинаем с работы над числовыми последовательностями. Учимся выводить на экран всю последовательность, n-ый элемент, рассчитывать сумму, находить максимальные и минимальные элементы последовательности. Этот материал служит хорошей подготовкой к работе с массивами (матрицами). В курсе алгебры этот материал прорабатывается очень слабо, и я решил чуть помочь математикам в работе над последовательностями.
Вот пример первой программы, которую мы создаём на уроке:
program posled1;
uses crt;
var m,n,x,y,i : integer;
s: real;
begin clrscr;
x:= 5;y:=4;s:=0;textcolor(2);
writeln ('дана последовательность:'); textcolor(14);
writeln ('{5/4, 4/1, 3/-2, 2/-5, 1/-8}');
writeln;
textcolor(2);writeln('выводим её на экран в том же виде и считаем сумму:');
textcolor(14);write(' ');
for i:= 1 to 5 do begin
write(x,'/',y,', '); x:= x-1; y:= y-3;s:=s+x/y;
end;
writeln; x:= 5;y:=4; writeln;
textcolor(2);writeln('выводим на экран в виде десятичной дроби');
textcolor(14);
for i:= 1 to 5 do begin
write (x/y:4:2,', '); x:= x-1; y:= y-3;
end;
writeln; writeln; textcolor(2); writeln('выводим сумму на экран:');
textcolor(14); writeln('сумма = ',s:4:2);
readln
end.
После этой программы уже самостоятельно каждый учащийся может выполнить зачётное задание типа:
program posled2;
uses crt;
var n1,n,m: integer;
s,sa: real;
begin clrscr;
writeln('2/2; 3/4; 4/6; 5/8; 6/10; 7/12; 8/14; 9/16; ...; ');
textcolor(2);
write('с какого элемента начинаем - ');readln (n1);
write('сколько элементов обрабатываем - ');readln (m);
textcolor(14);
for n:=n1 to m do
write(n+1,'/',n*2,'; ');
writeln;
for n:=n1 to m do
write((n+1)/(2*n):7:5,'; ');
for n:=n1 to m do
s:=s+(n+1)/(2*n);
sa:=s/(m);
writeln; textcolor(2);
writeln ('сумма ряда = ',s:7:5,'; ','среднее арифметическое ряда = ',sa:7:5,';');
readln
end.
После ознакомления с последовательностями переходим к одномерным массивам. Учимся выводить на экран весь массив, его часть, рассчитываем сумму, ищем MAX и MIN - элементы, среднее значение массива, его части.
Эта тема хорошо проработана во всех учебниках. Я бы хотел только привести здесь одну из наших программ, где мы выводим массив на экран и обрабатываем его:
program massiv1;
uses crt;
var k,l,s,i,n,min,max:integer;
sa: real;
a: array[1..20] of integer;
begin clrscr;
randomize; textcolor(2);
write('Cколько элементов будет в массиве?');readln(n);textcolor(14);
for i:=1 to n do begin
a[i]:=round(random(99));
writeln('a[',i,']=',a[i]);
end;
textcolor(2); max:=a[1];min:=a[1];s:=0;k:=1;l:=1;
for i:=1 to n do begin
s:=s+a[i];
if a[i]
if a[i]>max then begin max:=a[i];k:=i; end;
end;
writeln('Сумма всех элементов = ',s);
writeln('Максимальный элемент = ',max,'. Он находится по адресу - ',k);
writeln('Минимальный элемент = ',min,'. Он находится по адресу - ',l);
readln;
end.
Особое внимание я хотел бы уделить изучению темы «Двумерные массивы. Матрицы». Хотя этот материал изучают в ВУЗах, мне удаётся заинтересовать ребят этой темой, т.к. она очень красива и понятна, если начать с программ вывода на экран и матриц. Обработку матриц дети лучше понимают, если в программе предусмотрена демонстрация всех этапов обработки. Вот пример программы, которую выполняют учащиеся при завершении темы «Матрицы»:
program massiv2;
uses crt;
var massiv: array [1..10,1..10] of byte;
i,j,m,n: byte;
begin
clrscr; textcolor(2); randomize;
for j:=1 to 10 do begin
for i:=1 TO 10 do begin
massiv[i,j]:=random(99);delay(100); gotoxy(i*3,j);write(massiv[i,j]);
end;
end;
writeln; textcolor(14);
Write('Какой столбец красим - ');Readln(m);
for j:=1 to 10 do begin
for i:=1 TO 10 do begin
if i=m then begin
textcolor(4);gotoxy(i*3,j);write(massiv[i,j]);
end
else begin
textcolor(2);gotoxy(i*3,j);write(massiv[i,j]);
end;
end;
end;
writeln; textcolor(14);gotoxy(12*3,11);
Write('Какую строчку красим - ');Readln(n);
for j:=1 to 10 do begin
for i:=1 to 10 do begin;
if j=n then begin
textcolor(4);gotoxy(i*3+40,j);write(massiv[i,j]);
end
else begin
textcolor(2);gotoxy(i*3+40,j);write(massiv[i,j]);
end;
end;
end;
Writeln;Writeln; textcolor(14); Writeln;
Writeln('Красим главную диагональ (i=j):');
for j:=1 to 10 do begin
for i:=1 to 10 do begin;
if j=i then begin
textcolor(4);gotoxy(i*3,j+13);write(massiv[i,j]);
end
else begin
textcolor(2);gotoxy(i*3,j+13);write(massiv[i,j]);
end;
end;
end;
textcolor(14); gotoxy(40,13);
Writeln('Красим побочную диагональ (j=11-i):');
for j:=1 to 10 do begin
for i:=1 to 10 do begin
if j=11-i then begin
textcolor(4);gotoxy(i*3+40,j+13);write(massiv[i,j]);
end
else begin
textcolor(2);gotoxy(i*3+40,j+13);write(massiv[i,j]);
end;
end;
end;
readln
end.
К этой программе легко добавить подсчёт суммы, среднего арифметического, поиск чётных и нечётных элементов в любой строке, столбце, диагонали. Можно обменивать, заменять и т.д., т.к. усвоен главный принцип: что хотим, то и делаем, куда хотим, туда и выводим.
При подготовке к ЕГЭ для формирования устойчивых навыков по обработке матриц я провожу сдвоенный урок. Ниже привожу конспект этого урока.
Место урока в системе уроков: Данный сдвоенный урок находится под номерами 89 и 90 в 4-х часовой программе профильного курса «Информатика и информационно-коммуникационные технологии» 10 класса.
Цели:
- Сформировать представление о двумерном массиве;
- отработать навыки работы с элементами двумерного массива,
- научиться выводить зависимость между номером строки и номером столбца;
- научиться заполнять двумерные массивы по заданному правилу,
- развивать логическое мышление учащихся.
Оборудование: PC – 12 шт., мультимедиапроектор, ноутбук, экран-доска.
ПО (Программное Обеспечение): презентации «Матрицы. Столбцы и строки. Урок 1.ppt» и «Матрицы. Диагонали. Урок 2.ppt», файл «c:/PABCWork/Двумерные массивы», система программирования PascalABC, задания №№ 1-12 в файлах (c:/PABCWork/Заполнение матриц по правилу_1.doc и c:/PABCWork/Заполнение матриц по правилу_2.doc) на рабочих местах.
Файлы на Pascal: Пример1.pas, Пример2.pas, Над_под_главной.pas, Над_под_побочной.pas
Раздаточный материал: индивидуальные карточки-задания «Заполнение матриц по правилу_1» №№ 13-24 и «Заполнение матриц по правилу_2» №№ 13-24.
Ход занятия (1 урок)
На доске шаблон для матрицы (слайд 1)
1. Актуализация знаний (7-8 мин)
1) Что такое одномерный массив? (Массив — это пронумерованная последовательность величин одинакового типа, обозначаемая одним именем. Элементы массива располагаются в последовательных ячейках памяти, обозначаются именем массива и индексом. Каждое из значений, составляющих массив, называется его компонентой или элементом массива).
2) Размерность массива. (const n=10; или вручную)
3) Объявление (декларирование) массива. (var a:array[1..n] of {тип})
4) Формирование, ввод, заполнение массива:
- ввод с клавиатуры; for i:= 1 to n write(‘Введите очередной элемент – ‘); readln(a[i]);)
- с помощью генератора случайных чисел - randomize и функции Random;
- по заданному правилу; (формирование числовых последовательностей)
- или с помощью файла. (11 класс).
2. Изучение нового материала (20-22 мин).
1) Объявление темы урока. Работа с файлами на рабочих местах и распечатками файла («c:/PABCWork/Двумерные массивы»). Конспектирование определений: двумерный массив, матрица, размерность двумерного массива. Обращение к элементу матрицы (A[i,j]). Объявление, декларирование матрицы. Порядок матрицы (число строк (столбцов)).
Создание матрицы А(5*6) |
{1 способ (ручной c помощью клавиатуры)} Const M= 5; N=6; Var A: Array [1..M, 1..N] Of Integer ; Begin For i := 1 to m do For j := 1 to n do Begin Write(‘Введите очередной элемент массива: ’,i,’-я строка, ‘,j,’-ый столбец – ‘); Readln(a[i,j]; End; End. |
Слайд №1 |
Для того, чтобы массив можно было вывести на экран, к программе добавляем цикл распечатки по строкам, обращаем внимание на необходимость ввода пустой строки и перехода на новую (Writeln;) и процедуру модуля Crt Delay (N:integer) для задержки вывода отдельных элементов. Так лучше наблюдать за технологией вывода массива на экран по строкам:
For i := 1 to m do Begin
For j := 1 to n do write(A[i,j]:4);
Writeln; delay(1000);
End;
Для закрепления представления о создании и выводе матрицы на экран несколько раз запускаем программу на исполнение, меняя M и N.
Создание матрицы А(5*6) |
{2 способ (c помощью функции случайных чисел)} Const M= 5; N=6; Var A: Array [1..M, 1..N] Of Integer ; Begin For i := 1 to m do Begin For j := 1 to n do Begin A[i,j] := random(100); write(A[i,j]:4); End; Writeln; delay(1000); End; End. |
Слайд №2 |
3) Слайд №2. Создаём массив по образцу на слайде и сохраняем с именем «Массив 2.pas». Здесь сразу отмечаем, что для более компактной программы будет разумным введение в цикл создания массива процедур распечатки и задержки. Программа становится меньше в объёме и тут уместно будет вспомнить расхожее выражение времён начала программирования: Хороша верёвка длинная, а программа – короткая .
Свойства матрицы | ||||||
| | j - столбцы | ||||
| | 1 | 2 | 3 | 4 | 5 |
i – строки | 1 | 1,1 | 1,2 | 1,3 | 1,4 | 1,5 |
2 | 2,1 | 2,2 | 2,3 | 2,4 | 2,5 | |
3 | 3,1 | 3,2 | 3,3 | 3,4 | 3,5 | |
4 | 4,1 | 4,2 | 4,3 | 4,4 | 4,5 | |
5 | 5,1 | 5,2 | 5,3 | 5,4 | 5,5 | |
Слайд №3 |