11 Класс. Глава 2. Тема 2. Уроки 36-41

advertisement
Урок 36. Тема урока: Строковый тип данных (1 час).
Цель урока: систематизация знаний и навыков учащихся по применению строкового
типа данных.
Общие замечания: при изучении строкового типа данных и решении задач
обработки строк следует придерживаться методики постепенного усложнения заданий с
обязательной отработкой алгоритмов, которые в данной теме можно отнести к
«стандартным»: подсчёт количества символов с заданным свойством, удаление заданных
символов, выделение слов из строки (с одним и несколькими пробелами между словами).
Примерный ход урока:
Урок можно начать с выявления того, как учениками усвоили материал учебника по
вопросам представления строкового типа данных, применения стандартных процедур и
функций их обработки. Целесообразно подготовить небольшой тест или вопросник,
который выполняется учащимися фронтально или индивидуально (затем обсуждается). В
вопроснике следует затронуть особенности представления и обработки строковых
величин. Например:
1. Дано описание: var S: string [7] ;
a) Какой объём памяти будет занимать данная строка?
b) Чему будет равна строка после выполнения команды: S:=’информатика’;?
2. Какого типа должны быть переменные C, D чтобы корректно выполнялись
команды: С:=S[5]; D:=Copy(S,5,1);
3. Будут ли отличаться результаты выполнения команд: S:=S+’*’; и
S:=’*’ +S? Почему?
4. Определите отношения (больше, меньше) между строками: ‘AAAAAAA’ и ‘AC’;
‘DDDD’ и ‘dddd’. Объясните свой ответ.
Затем обсудите решение домашних заданий, особенно №8-10.
1. В задаче №8 (вставка пробела после каждого символа) обратите внимание на
особенность работы цикла с параметром и процедуры insert. Часто
ученики пишут следующий цикл: for i:=1 to length(s) do
insert(' ', s,i+1);, забывая, что при вставке символа часть строки
сдвигается вправо. В данной задаче необходимо использовать цикл Downto
или циклы While или Repeat.
2. К задаче №9 можно показать несколько способов построения алгоритма:
симметричный обмен символов относительно середины строки и
посимвольное накопление новой строки – перевёртыша
из символов
исходной строки.
3. В задаче №10 решений может быть несколько, но, также как в задаче №8,
нельзя использовать следующий цикл с параметром:
For i:=1 to length(s) do if s[i]= ' ' then delete(s,I,1);
так как параметр автоматически увеличивается на 1, и второй из двух подряд
идущих пробелов будет пропущен. Оптимальным является алгоритм:
While pos(' ',s)>0 do delete(s,pos(' ',s),1);
Далее целесообразно выполнить упражнение №11 и обратную к ней задачу. Затем
можно предложить учащимся, используя справочную систему, изучить работу процедур
Val и Str. Составить программы для проверки их работы.
Домашнее задание.
Из практической работы №3.5 выполнить упражнения №1-6, 9 (Примечание:
данные задания направлены на анализ символов строки, подсчет количества
определённых, применение стандартных подпрограмм, применение алгоритмов удаления
и вставки символов).
Урок 37. Тема урока: Строковый тип данных . Выделение слов из строки(1 час).
Цель урока: систематизация знаний и навыков учащихся по применению строкового
типа данных. Освоения алгоритмов выделения слов из строки.
Примерный ход урока: Обсудите домашнее задание, обратите внимание учащихся на
наиболее эффективные алгоритмы. Некоторые комментарии к решениям:
1. В задаче №1 достаточно подсчитать количество пробелов. Число слов на 1 больше
(учитывается последнее слово).
2. В задаче №2 анализируются символы, стоящие после пробелов и самый первый
символ строки.
3. В задаче №5 закрепляются навыки безошибочного удаления символа.
4. В задаче №6 необходимо использовать функцию Pos.
Далее следует решить задачу, алгоритм которой будет использоваться при решении
других: Дана строка, заканчивающаяся точкой. Вывести слова на экран, по одному в
строке. Подсчитать количество слов.
Сначала составьте программу для случая, когда слова в строке отделяются друг от
друга одним пробелом, затем следует обсудить алгоритм с анализом строки, в которой
между словами несколько пробелов.
Приведём фрагменты программ:
Между словами 1 пробел
Между словами несколько пробелов
readln(s); k:= 0;
slovo:='';
for i:=1 to length(s) do
if (s[i]<>' ')and(s[i]<>'.')
then slovo:=slovo+s[i]
else
begin
writeln(slovo);
slovo:='';
inc(k)
end;
readln(s);k:= 0;
slovo:='';
For j:=1 to length(S) Do
If (S[j]<>' ') and (S[j]<>'.')
slovo:= slovo+S[j]
else
begin
if s[j-1] <>' ' then
begin
inc(k);
writeln(Slovo);
end;
slovo:='';
end;
then
В конце занятия можно провести небольшой тест на проверку знаний стандартных
подпрограмм обработки строк и их применение.
Домашнее задание. №7,8,10, 11 из практической работы №3.5 – задания на обработку
слов строки.
Урок 38. Тема урока: Строковый тип данных . Практикум по решению задач. (1 час).
Цель урока: систематизация знаний и навыков учащихся по применению строкового
типа данных. Освоение алгоритма выравнивания текста, решение задач 2 уровня.
Примерный ход урока:
1. Проверка домашнего задания, представление программ учащимися.
2. Обсуждение программы из примера 3 §2.2.13 (выравнивание текста). Учащиеся
самостоятельно работают с текстом учебника, набирают и отлаживают программу.
Следует выяснить, правильно ли ученики поняли суть алгоритма решения задачи: вставка
по 1 пробелу после каждого слова до конца строки, затем снова по 1 пробелу от начала до
конца строки и т.д. до тех пор, пока длина строки не станет равна заданному значению.
Пусть ученики составят комментарии к программе:
j:=1;
While length(S)<L Do
Begin
{как только индекс символа станет равен длине строки, необходимо вернуть его
в начало строки}
j:=j mod length(S); if j=0 then j:=1;
If (S[j]<>' ') and (S[j+1]=' ')
Then
Begin
Insert(' ',S,j+1); {вставка пробела после слова}
j:=j+1
{переход к вставленному пробелу}
End;
j:=j+1
{переход к следующему символу}
End;
Затем учащиеся самостоятельно или в парах решают – по 1 задаче уровня 2
практической работы №3.5 (по вариантам заданий, составленных учителем).
Домашнее задание. Выполнить 2 задачи других вариантов.
Урок 39. Тема урока: Строковый тип данных . Практикум по решению задач. (1 час).
Цель урока: систематизация знаний и навыков учащихся по применению строкового
типа данных. Решение задач 2 уровня.
Примерный ход урока:
Взаимопроверка выполнения домашних индивидуальных заданий.
Цель данной работы: развитие навыков анализа программ, критического мышления,
взаимообучения.
Учащихся можно разбить на группы по 3 человека. В каждой группе учащиеся
представляют друг другу тексты программ к своим индивидуальным заданиям, объясняют
алгоритмы работы, сравнивают решения. Одноклассники оценивают эффективность
программ, в случае необходимости исправляют ошибки.
Затем сдают решения учителю или можно организовать фронтальное обсуждение
решений.
Домашнее задание. Задание 25,26 уровня 3 практической работы №3.5 .
Уроки 40-41. Тема урока: Строковый тип данных. Практикум по решению задач.(2
часа).
Цель урока: систематизация знаний и навыков учащихся по применению строкового
типа данных. Решение задач 3 уровня.
Примерный ход уроков:
Учащиеся демонстрируют решение домашних заданий. Самостоятельно работают
над следующими заданиями из практикума, консультируются с учителем.
Оценивается качество и количество решённых задач, уровень самостоятельности.
В конце сдвоенного занятия можно фронтально обсудить наиболее интересные
задачи.
Download