КЛАС: 9 ПРЕДМЕТ: Інформатика
Тема 1. Алгоритми та програми
Тема уроку: Вставлення, видалення та заміна фрагментів тексту у рядку.
ЦІЛІ:
навчальна - вивчити процедури вставлення та видалення фрагментів тексту у рядку; сформувати вміння використання цих процедур, складати, виконувати, змінювати алгоритми з рядками.
розвиваюча - розвивати логічне мислення та креативність; домогтися від учнів розуміння того, що вони вивчають.
виховна - виховувати необхідність регулярного вивчення уроків інформатики. Виховання самостійності, самоконтролю та відповідальності.
ЗАДАЧІ:
ОЧІКУВАНІ РЕЗУЛЬТАТИ:
Знати: правила запису процедур вставлення та видалення фрагментів тексту у рядку в середовищі програмування.
Вміти: складати програми з використанням процедур вставлення та видалення.
Тип уроку: засвоєння нових знань.
Форми роботи учнів: фронтальна бесіда, індивідуальна з елементами тренінгу.
Обладнання: комп’ютер з доступом до мережі інтернет, проектор, екран, презентації: «Рядкові величини», «Рядкові величини 3 - завдання».
СТРУКТУРА УРОКУ
ХІД УРОКУ
Вітання. Учні займають свої місця. Учитель перевіряє відсутніх на уроці, готовність присутніх до уроку: зовнішній вигляд (чисті та сухі руки), наявність щоденників.
Учитель: Сьогодні у нас чергове заняття з "опрацювання рядкових величин". Тема урока: Вставлення, видалення та заміна фрагментів тексту у рядку.
На попередньому уроці, ви перевіряли свої навики чарівників тексту. Навіть якщо у когось щось не вийшло, сьогодні ви повинні сказати собі "я зможу", тому що я хочу бути успішною людиною. Треба тільки більше уваги і старання і все вийде!
Давайте згадаємо за допомогою яких операцій чи функцій можна виділити будь-які фрагменти тексту? (учні відповідають)
Також давайте згадаємо яким чином здійснюється повторення будь-яких дій у програмі, наприклад пошук потрібного фрагмента (кілька разів)?
За допомогою циклічної структури: цикли While … do, For … do, Repeat … Until.
Стандартні рядкові процедури мови Pascal. (слайди 13-15)
Процедури в програмі є самостійними командами у вигляді оператора з назвою самої процедури.
a := ’74’;
Val (a, x, z);
Val (‘143’, y, p);
Змінна x набуде значення 74, змінна у – значення 143, а змінні z і p – значення 0.
STR(74, S); Змінна S набуде значення ‘74’.
Var Poz: integer; R, WORD: string;
begin
R := 'Мова програмування Pascal';
word:= 'Turbo';
insert (WORD, R, 20);
writeln (R);
end.
На екрані дисплея буде надруковано: Мова програмування TurboPascal
Var R: string; N, Poz: integer;
begin
R := 'Мова програмування Turbo Pascal';
delete(R, 1, 19);
writeln(R);
end.
На екрані дисплея буде надруковано: TurboPascal
Все зрозуміло чи ні? У когось є питання?
Алгоритми опрацювання рядка (слайди 16-17)
Наприклад, розглянемо рядок AAAABCCCCCDDDD. Символи, що повторюються, можуть бути видалені і замінені числами, що визначають кількість повторень (якщо символ повторюється один раз, цифра не пишеться). Таким чином, цей рядок може бути представлений як 4AB5C4D.
Візьмемо перший символ рядка Z, збережемо його як змінну В і його порівнюватимемо з іншими до тих пір, поки не закінчиться рядок (k<length(z)). Поки символи співпадають, рахуємо їх кількість К. Коли символи не співпадають, перевіряємо кількість однакових символів; якщо К > 1, то за допомогою процедури STR(K, C) перетворюємо число K в рядок C і формуємо новий упакований рядок S, додаванням фрагмента С і нашого першого символу В, якщо К = 1, то додаємо тільки символ В. Потім видаляємо перевірений фрагмент з даного рядка і повторюємо дії для наступного символу, доки не закінчиться рядок (length(z)>0).
var s,z,b,c: string; k:integer;
begin
Readln (z);
S := '';
while length(z)>0 do begin
b := z[1];
k := 1;
while (k<length(z)) and (z[k+1]=b) do k := k+1;
if k>1 then begin
str(k, c);
s := s + c + b;
end
else s := s + b;
delete(z,1,k);
end;
Writeln(s);
end.
Написати програму для заміни символів рядка. (слайд 18)
Дан текст, у якому є коми. Замінити коми, комою з крапкою.
Ідея рішення. Треба розшукати у тексті послідовно усі коми. Для цього будемо зрівнювати і‑ий символ з комою і у випадку співпадання, замінити.
var t:string; i:integer;
begin
readln(t);
for i:=1 to length(t) do
if t[i] = ',' then t[i]:= ';';
writeln(t);
end.
Замінити у тексті слово велосипед словом мотоцикл.
var t: string; i: integer;
begin
readln(t);
repeat
i := Pos('велосипед',t);
If i<>0
Then begin
delete(t, i, 9);
insert('мотоцикл', t, i);
end;
until i = 0;
writeln(t);
end.
Зараз я пропоную вам скласти самостійно програми на розглянуті алгоритми.
Учні виконують завдання по варіантах:
1 вар) Розпаковка рядка (наприклад: 4А стає AAAA).
2 вар) Упаковка рядка, що складається з одного символу (наприклад: AAAA стає 4А).
Учитель: «Три учні, які впораються раніше усіх, отримують відмінну оцінку»
Учитель: сьогодні ми з вами розглянули останні рядкові процедури та алгоритми опрацювання цих величин з використанням цих процедур. На наступному уроці буде самостійна практична робота, в якої будуть завдання подібні розглянутим. Тому, якщо у когось ще залишилися питання, запитуйте.
Учні висловлюються одним реченням, обираючи початок фрази на екрані:
Опрацювати Презентацію «Рядкові величини» (13 - 19 слайди). Написати програму для заміни у тексті перших маленьких літер в кличках тварин на заголовні.