Урок 36. Тема урока: Строковый тип данных (1 час).

Цель урока: систематизация знаний и навыков учащихся по применению строкового типа данных.

Общие замечания: при изучении строкового типа данных и решении задач обработки строк следует придерживаться методики постепенного усложнения заданий с обязательной отработкой алгоритмов, которые в данной теме можно отнести к «стандартным»: подсчёт количества символов с заданным свойством, удаление заданных символов, выделение слов из строки (с одним и несколькими пробелами между словами).

Примерный ход урока:

Урок можно начать с выявления того, как учениками усвоили материал учебника по вопросам представления строкового типа данных, применения стандартных процедур и функций их обработки. Целесообразно подготовить небольшой тест или вопросник, который выполняется учащимися фронтально или индивидуально (затем обсуждается). В вопроснике следует затронуть особенности представления и обработки строковых величин. Например:

Дано описание: var S: string [7] ;

a)  Какой объём памяти будет занимать данная строка?

b)  Чему будет равна строка после выполнения команды: S:=’информатика’;?

Какого типа должны быть переменные C, D чтобы корректно выполнялись команды: С:=S[5]; D:=Copy(S,5,1); Будут ли отличаться результаты выполнения команд: S:=S+’*’; и
S:=’*’ +S? Почему? Определите отношения (больше, меньше) между строками: ‘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 больше (учитывается последнее слово). В задаче №2 анализируются символы, стоящие после пробелов и самый первый символ строки. В задаче №5 закрепляются навыки безошибочного удаления символа. В задаче №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]<>'.') then slovo:= slovo+S[j]

else

begin

if s[j-1] <>' ' then

begin

inc(k);

writeln(Slovo);

end;

slovo:='';

end;

В конце занятия можно провести небольшой тест на проверку знаний стандартных подпрограмм обработки строк и их применение.

Домашнее задание. №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 уровня.

Примерный ход уроков:

Учащиеся демонстрируют решение домашних заданий. Самостоятельно работают над следующими заданиями из практикума, консультируются с учителем.

Оценивается качество и количество решённых задач, уровень самостоятельности.

В конце сдвоенного занятия можно фронтально обсудить наиболее интересные задачи.