Методическое и дидактическое обеспечение преподавания раздела «Алгоритмы и программы» в 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.
Затем 1-2 урока посвящаем исполнителю Robot. Решаем очень простые задачи, но сразу настраиваемся на продолжение. Этот исполнитель поможет нам при подготовке к ЕГЭ. (Задание А-18)
Если бы в 8 классе было бы хотя бы 2 урока в неделю, то на этой теме можно было бы задержаться подольше. В ней огромный потенциал.
( К содержанию)
5. 9 класс
В 9 классе тема «Алгоритмы. Программы. Язык программирования QBASIC» начинается с повторения. Технология повторения обычно такая: сначала вспоминаем определения, операторы и на основании уже готовой программы (из тетради 8 класса)
1) линейные программы типа .
2) Рисунки c применением циклических конструкций (операторы графики LINE, CIRCLE, PSET, PAINT). При повторении этой темы к ранее изученным операторам добавляем оператор DRAW, который довольно легко усваивается и применяется учащимися. И у меня сложилось мнение, что этот оператор надо изучать раньше, в классе 7-8.
Для начала я даю первичную программу:
CLS : ‘Звезда
SCREEN 12 :
DRAW "BL100 BU50 P15,4 C4"
DRAW "R200 TA-144 R200 ta-288 R200"
DRAW "TA-72 R200 TA-216 R200"
END
После построения её на машинах работаем со справочником, в котором выясняем назначение всех букв, применяемых в операторе DRAW. Затем строим таблицу основных параметров в тетради. Далее строим самостоятельно такая фигуру:
Я даю только направления, а буквы и расшифровку букв дают дети.
D(Down) – вниз, R(Right) - вправо, U(Up – вверх), L (Left) – влево. Мнемоника здесь простая,
E - вправо-вверх, F - вправо-вниз, G - влево-вниз, H - влево-вверх, а здесь в алфавитном порядке, пропуская 4 буквы A, B, C, D (они уже использованы) - E, F, G, H. В результате этот материал усваивается достаточно прочно. Программы обычно получаются интересными. Кроме рисунков, строим буквы, цифры.
3) Для более качественного повторения символьных переменных мы строим программу Билет, в которой встречаются почти все операторы работы с символьными переменными: MID$, RIGHT$, LEFT$, VAL, STR$.
CLS ‘Билет
INPUT “Введите 4-значное число”; N
A = VAL(LEFT$(STR$(N),1))
B = VAL(MID$(STR$(N),2,1))
C = VAL(MID$(STR$(N),3,1))
A = VAL(RIGHT$(STR$(N),1))
IF A + B + C + D THEN ? ”Билет счастливый“ ELSE? ”Билет несчастливый“
Следующую часть программы учащиеся пишут уже сами:
INPUT “Повторим 1/0”; Z
IF Z = 1 THEN 10
? “Спасибо за работу!”
END
Далее остаётся только менять условия для самостоятельной работы. Например, числа 6-значные, 8-значные; проверять суммы чётных и нечётных цифр и т.п.
Очень коротко повторяем логические переменные. Решаем некоторые логические задачи, тем самым знакомимся с основными видами нечисленных алгоритмов.
Одна из задач из 10 класса, которая может быть решена в 9-ом:
Дано логическое выражение (по логической схеме двоичного сумматора):
S = (А ИЛИ В) И (НЕ(А И В)).
Формализуем выражение для исполнителя QBasic:
S = (А OR В) AND (NOT(А AND В)).
Строим программу Сумматор:
CLS ‘Сумматор
?” A | B | S”
?”--------------“
FOR A = 0 TO 1
FOR B = 0 TO 1
S = (А OR В) AND (NOT(А AND В))
? A; “| “; B; “| “; S
NEXT B
NEXT A
?”--------------“
В десятом классе будем строить логические схемы и вновь вернёмся к этой программе, тем самым сократим время на построение.
Далее остаётся только менять условия. В девятом классе не все могут сознательно придумать логическое выражение, поэтому учителю нужно заранее подготовить необходимое количество выражений.
Тема «Рекуррентные отношения» начинается с повторения задачи об улитке (8 класс). Задач на рекурсию существует множество. Я всегда решаю задачу про Незнайку и про дядюшку, т.к. они достаточно сложны и полезны для построения программ решения последовательностей в 11 классе:
Ежедневно Незнайка учит половину от суммы выученных за два предыдущих дня иностранных слов и ещё два слова. Знайка считает, что силы Незнайки иссякнут, когда нужно будет выучить 50 слов в день. Написать программу, определяющую, через сколько дней иссякнут силы у Незнайки, если в первые два дня он выучил по одному слову.
Рекурсивная формула - C = (A + B)/2 + 2 обязательно обсуждается.
CLS ‘Незнайка
A = 1 : B : =1 ‘Число слов, выученных в первый (А) и второй (В) день
C = 2 ‘Число слов, выученных за первые два дня
N = 3 ‘Начинаем с 3 дня
WHILE C < 50
C = (A + B)/2 + 2 ‘Количество слов, выученных за N-ый день
B = C : A = B ‘Обмен данными для следующего цикла
N = N + 1 ‘Счётчик количества дней
WEND
? “Силы Незнайки иссякнут через “; N; “дней.”
? “Незнайка выучил ”; C; “слов за”; N; ”дней.”
Мой богатый дядюшка подарил мне один доллар в мой первый день рождения. В каждый следующий день рождения он удваивал свой подарок и прибавлял к нему несколько долларов, сколько лет мне исполнилось. Написать программу, подсчитывающую общую сумму денег, подаренных к N-му дню рождения и указывающую, к какому дню рождения сумма подарка превысит 100$.
Рекурсивная формула - S = S + 2 * S + I обязательно обсуждается.
CLS 'Дядюшка
S = 1 ‘Сумма на 1 день
INPUT "Введите номер дня рождения"; n
FOR i = 2 TO n ‘Начинаем со второго дня
S = S + 2 * S + i ‘Общая сумма подарков на i-ый день рождения
NEXT i
? "На"; n; "день рождения сумма подарка ="; S
Вторая часть задачи:
S = 1 : d = 1
WHILE S < 50
d = d + 1 ‘Счётчик дней
S = 2 * S + d ‘Сумма, подаренная в d-ый день рождения
WEND
? "На"; d; "день рождения сумма подарка превысит $50"
Следующая тема “ Вспомогательные алгоритмы. Метод пошаговой детализации” начинаем с повторения понятие подпрограммы. Структурное программирование – одну из самых перспективных тем в программировании я начинаю с задачи построения букв и цифр
При решении этих задач можно показать метод нисходящего программирования, познакомиться с формальными и фактическими параметрами.
Вводим операторы DECLARE FUNCTION, SUB, CALL.
‘Программа Буква П
DECLARE SUB gorizont () ‘Объявление процедуры gorizont
DECLARE SUB dvevertikal () ‘Объявление процедуры dvevertikal
SCREEN 12
FOR I = 1 TO 2
CALL gorizont ‘Вызов процедуры gorizont
NEXT I
FOR I = 1 TO 18
CALL dvevertikal ‘Вызов процедуры dvevertikal
NEXT I
END
SUB dvevertikal ‘Процедура два вертикальных столбика
? TAB(25); "***"; TAB(52); "***"
END SUB
SUB gorizont ‘Процедура горизонтальная черта
? TAB(25); STRING$(30, "*")
END SUB
На примере построения этих программ легко показать и научить применять отладку программ.
Далее переходим к теме «Массивы». Даём определение массива, выясняем правила обращения к нему. Составление простейших алгоритмов и построение программ работы с массивами невозможно себе представить без применения циклических программ. Повторяем все циклические операторы (“До”, “Пока”, “С параметром”), строим 1-2 блок-схемы, выполняем в тетради сортировку, одну из самых типичных программ. Далее переходим к созданию массивов тремя способами:
CLS ‘Создание массива ввод с клавиатуры №1
INPUT “Сколько будет элементов”; N
DIM A(N) ‘Объявление массива на N элементов
FOR I = 1 TO N
INPUT”Введите”; I; ”-ый элемент - ”; A(I) ‘Ввод массива поэлементно
NEXT I
FOR I = 1 TO N
?”A(”; I; ”)= ”; A(I) ‘Вывод массива на экран
NEXT I
END
CLS ‘Создание массива случайным образом №2
INPUT “Сколько будет элементов”; N
DIM A(N) ‘Объявление массива на N элементов
RANDOMIZE TIMER ‘Включение генератора случайных чисел
FOR I = 1 TO N
A(I) = INT(RND*100 ‘Заполнение массива случайными двузначными (*100) целыми (INT) числами
NEXT I
… ‘Вывод массива на экран
END
CLS ‘Создание массива из «внутреннего файла» №3
DATA январь, февраль, март, апрель, май, июнь, июль, август, сентябрь …
DIM A$(12) ‘Объявление массива названий месяцев на 12 элементов
FOR I = 1 TO N
READ A$(I) ‘Чтение элементов массива из «файла» DATA
NEXT I
… ‘Вывод массива на экран
END
Далее вычисляем сумму и среднее арифметическое:
CLS ‘Сумма (Для произведения нужно быть осторожно с памятью)
… ‘Создание числового массива любым способом
S = 0 ‘Для произведения P=1
FOR I = 1 TO N
S = S + A(I) ‘Суммирование элементов массива ‘P=P*1 - произведение
NEXT I
? “Сумма = ”; S ‘Вывод суммы на экран
? “Среднее арифметическое =”; S/N ‘Нахождение и вывод на экран среднего
END
Организуем поиск максимального и минимального элементов массива.
CLS ‘ Поиск MAX (MIN) К - адрес
… ‘Создание числового массива любым способом
MAX = A(1) : K = 1 ‘Для начала определяем, что 1-ый элемент - МАХ
FOR I = 2 TO N ‘Начинаем сравнение со второго
IF MAX <= A(I) THEN MAX = A(I) : K=I ‘Сравнение и смена МАХ и К
NEXT I
? “Максимальный элемент массива -”; MAX; “находится по адресу –“; K
END
Задачу нахождения MIN учащиеся решают самостоятельно. Догадаться легко: нужно изменить знак «меньше» на знак «больше» и заменить MAX на MIN.
Поиск в массиве (чисел, символов) осуществляем с помощью программ:
CLS ‘ Поиск символа
… ‘Создание строкового массива любым способом
INPUT “Что ищем”; B$ : K = 0 ‘Определяем искомый элемент и обнуляем адрес
FOR I = 1 TO N ‘Начинаем поиск с 1-го
IF B$ = A$(I) THEN ? “Нашли ”; B$; “по адресу -”; K ‘Поиск и вывод на экран
NEXT I
IF K=0 THEN ? “Вашего “; B$; “в этом массиве нет! Поищите в другом месте.»
END
Далее знакомимся с методами сортировки (см. Методы сортировки) в массиве (одномерном). Для демонстрации одного из способов сортировки я придумал программу SORTRUSH.BAS реализующую метод сортировки выбором
CLS ‘Ручная сортировка выбором
SCREEN 8 : COLOR 2
INPUT "Сколько будет элементов"; N : DIM A$(N)
?"Вводите элементы массива по одному:"
FOR I = 1 TO N : INPUT A$(I) : NEXT
GOSUB 100 : PRINT "Начинаем сортировку"
40 INPUT "Какой элемент убираем в запасную ячейку"; K : R$ = A$(K)
50 INPUT "Какой элемент переставляем"; L
INPUT "Куда"; M : A$(M) = A$(L)
GOSUB 100
INPUT "Продолжаем сортировку д/н"; D$
IF D$ = "D" OR D$ = "d" OR D$ = "Д" OR D$ = "д" THEN 50
INPUT "Куда ставим элемент из запасной ячейки"; P
A$(P) = R$ : GOSUB 100
INPUT "Будем ещё сортировать д/н"; Z$
IF Z$ = "D" OR Z$ = "d" OR Z$ = "Д" OR Z$ = "д" THEN 40 ELSE END
100 FOR I = 1 TO N : ? "A$("; I; ")="; A$(I) : NEXT : RETURN
Программу, конечно же, можно модифицировать, даже нужно, но для ручной работы и для демонстрации сортировки, а, следовательно, лучшего понимания процесса этого достаточно. При работе с этой программой, на мой взгляд, необходимо вести протокол экрана (т.е. фиксировать в тетради все изменения в массиве).
( К содержанию)
II. Методическое и дидактическое обеспечение преподавания раздела «Алгоритмы и программы» в 10-11 кл.
6. 10 класс
Программирование на языке программирования TurboPascal
В 10 классе мы переходим к изучению языка Pascal. После того, как достаточно глубоко погрузились в язык QBasic, нелегко начинать изучать новый язык. Но после некоторого количества уроков и достаточно назойливого моего давления на то, что язык Pascal – это путь в будущее, это ключ к информатике ВУЗовской, ребята начинают относиться к этому разделу информатики более серьёзно, а к концу 10 класса высказываются мнения, что зря мы не начали этот язык изучать раньше. Видимо, в будущем так и будем делать, а пока день сегодняшний. Итак – Pascal.