КЛАС: 9 ПРЕДМЕТ: Інформатика
Тема 1. Алгоритми та програми (урок 15)
Тема уроку: Рядкові величини. Операції і функції для рядкових величин.
ЦІЛІ:
навчальна - сформувати поняття Рядкової величини; вивчити різні типи рядкових величин; розглянути приклади використання функцій та операцій над рядками.
розвиваюча - розвивати логічне мислення та креативність; домогтися від учнів розуміння того, що вони вивчають.
виховна - виховувати необхідність регулярного вивчення уроків інформатики. Виховання самостійності, самоконтролю та відповідальності.
ЗАДАЧІ:
ОЧІКУВАНІ РЕЗУЛЬТАТИ:
Знати: правила опису рядкових величин та запису команд обробки рядків в середовищі програмування.
Вміти: записувати команди з використанням функцій та операцій для рядків.
Тип уроку: засвоєння нових знань.
Форми роботи учнів: фронтальна бесіда, індивідуальна з елементами тренінгу.
Обладнання: комп’ютер з доступом до мережі інтернет, проектор, екран, презентації: «Рядкові величини», «Рядкові величини - завдання»; плакати: «Типи даних», «Операції».
СТРУКТУРА УРОКУ
ХІД УРОКУ
Вітання. Учні займають свої місця. Учитель перевіряє відсутніх на уроці, готовність присутніх до уроку: зовнішній вигляд (чисті та сухі руки), наявність щоденників.
Учитель: Сьогодні у нас чергове заняття з "гімнастики для мізків". Тема урока: Рядкові величини. Операції і функції для рядкових величин. (слайд 1)
Я вам обіцяю, якщо ви працюватимете сьогодні не лише тому, що це потрібно для складання і реалізації програм обробки літерних величин., а тому що "я хочу бути успішним", до кінця уроку ви доб'єтеся успіху у вивченні цієї теми. Перевіримо?!
(Слайд 3) Значення величин цього типу має вигляд будь-якого символу з розширеної таблиці ASCII, узятого в апострофи. Наприклад, 'М', 'g', '=', '5'. Виключенням є сам символ "апостроф", який можна вказати лише парою апострофів: ‘"’. Змінні величини символьного типу можна описати за допомогою стандартного типу Char в розділі опису змінних:
Var <ідентифікатор>: Char;
Приклад. Var x, у: Char;
Символи можуть об'єднуватися в масиви, аналогічно числовим масивам:
Приклад. Var А: аrrау[1..30] of Char;
При роботі з символьними масивами використовуються такі самі алгоритми, як і при роботі з числовими.
Стандартні функції: (слайд 4)
- символьна функція Chr (x); дає значення символу ASCII за його кодом х;
- функція, яка дає результат числового типу - Ord (x) : Longint; повертає значення коду у таблиці ASCII величини х символьного типу.
Символьний масив тобто декілька символів, записаних підряд, утворюють рядок. Рядок - це послідовність символів кодової таблиці ЕОМ. При використанні у виразах рядок охоплюється з двох сторін апострофами. Кількість символів в рядку (максимальна довжина рядка) може змінюватися від 0 до 255.
(Слайд 5) Для опису рядкових величин використовують тип string, після якого в квадратних дужках записується максимальне значення довжини рядка для цієї величини.
Var <ідентифікатор>:strіng[максимальна довжина рядка];
Приклад. Var Rl:string[10]; R2:string[4];
Максимальна довжина рядка для змінної R1 дорівнює 10, а для R2 - 4. Якщо довжина рядка не вказана, то вона автоматично набуває значення 255 байт.
У сучасному компіляторі FreePascal для рядка довжиною більше 255 символів використовується тип AnsiString.
Var <ідентифікатор>:AnsiStrіng;
(Слайд 6) Строкові величини можна використати в програмі і у вигляді констант. Наприклад. const NAME='інформатика'; До будь-якого символу рядка можна звернутися по його номеру (наприклад, NAME[5] – звернення до 5-го символу рядка) - аналогічно зверненню до елементу одновимірного масиву.
Учитель звертається до учнів: «У кого є питання?»
Ну що ж раз питань більше нема розглянемо які дії можна застосовувати до рядків.
Над рядками можливі такі прості операції, які дають можливість складати строкові вирази. (Слайд 7) Передусім, це операція додавання (чи конкатенація), яка об'єднує два рядки без пропуску. Наприклад, вираження 'З Днем народження, '+'Олена!' повертатиме текст З Днем народження, Олена!
Іншими операціями над рядками є операції відносин (=, <, >, <=, >= ), які порівнюють два рядки тексту. Порівняння символів виконується зліва направо до першого символу, який не співпадає. Більшим вважається те значення, в якому перший неспівпадаючий символ має більший номер в алфавіті. Наприклад, вирази: 'рука' < 'рукав'; 'пара' > 'пава' - мають значення True. Якщо при порівнянні двох рядків різної довжини виявляється, що усі символи короткого рядка співпадають з початковою частиною довшого рядка, то більше значення має довгий рядок.
Присвоєння значення строковій змінній можна виконати за допомогою оператора присвоювання : S1:='Іванов Олег'; S2:= S1+' любить інформатику'; У одному вираженні можна записувати змінні як строкового типу, так і символьного.
Стандартні рядкові функції мови Pascal. (Слайд 8)
Program Fpos;
Const Р='Севастополь';
WORD='cтo';
Var P: integer;
begin
P:=Pos(WORD,R);
writeln('P=',P);
end.
Як ви вважаєте, що на екрані дисплея буде надруковано? (Р=5)
2) (Слайд 9) Функція Copy (R, Poz, N); - копіює фрагмент довжиною N символів рядка R, починаючи з позиції Poz. Наприклад:
Program Fcopy;
const R = 'Turbo Pascal';
var WORD : string[6];
Poz, N : integer;
begin
Poz := 7;
N := 6;
WORD := Copy(R,Poz,N);
writeln (WORD);
end.
Як ви вважаєте, що на екрані дисплея буде надруковано? (слово: Pascal.).
Var N: integer; x: string;
Begin
X := ‘Сьогодні гарна погода’;
N := Length(x);
end.
Змінна N набуде значення 21, оскільки у змінній х міститься 21 символ.
Розглянемо приклад складання нових слів (кіно і фірма) з літер слова ‘інформатика’. Треба шукати якомога більшу послідовність символів у слові інформатика, яка зустрічається у новому слові і копіювати за допомогою функції Copy (S, Poz, N); якщо потрібно взяти один символ, то використовуємо звернення до символу S[i] і з’єднуємо фрагменти конкатенацією. (Слайд 11)
кіно = к (10-й символ) + ін (фрагмент з двох символів, починаючи з першої позиції) + о (4-й).
фірма = ф (3-й символ) + і (1-й символ) + рма (3 символа, починаючи з 5 позиції).
Var s1, s2: string;
Const s = ‘інформатика’;
Begin
S1 := s[10] + copy(s, 1, 2) + s[4];
S2 := s[3] + s[1] + copy(s, 5, 3);
Writeln (s1,’, ‘, s2);
End.
Все зрозуміло чи ні? У когось є питання?
Алгоритми опрацювання рядка (слайд 12)
Згадаємо, якщо необхідно перебрати яку-небудь безліч значень і виконати з кожним значенням однакові дії, використовується циклічна схема алгоритму. Якщо кількість повторень відома і параметр циклу змінюється на 1, то використовується цикл з параметром “For”, в інших випадках використовується цикл “While” або “Repeat”.
Розберемо задачі, для вирішення яких, знадобляться відомі нам процедури і функції.
Треба узяти послідовно по-одному символу слова (використовуватимемо цикл FOR) і приєднувати їх зліва до отримуваного слова. Перший символ потрібно приєднати до порожнього символу.
var x, y: string; i: integer;
begin
readln(x);
y := ‘’;
for i := 1 to length(x) do y := x[i] +y;
writeln(y);
end.
Отже питань немає. Чи дійсно це так, ви дізнаєтеся, виконавши завдання.
Учитель: «Перші три учні, які впораються з завданням і виконають додаткове завдання отримують відмінну оцінку» (додаткове завдання ви отримуєте, після перевірки першого завдання. («Рядкові величини - завдання» слайд 1)
Подвоїти кожну букву в поданому слові.
Додаткове завдання: Дано слово інформатика, написати програму для отримання з цього слова наступних слів: форма, аромат, картина.
Після закінчення часу, демонструються та обговорюються правильні рішення – (слайди 4, 5)
Учитель: Ми з вами з'ясували, що рядкові величині - це величини… (відповідають учні) … значення яких охоплюється з двох сторін апострофами. Існує два основних типа: char – символьний, та string – рядок не більше 255 символів. Також ми з вами розглянули деякі операції і функції та алгоритми обробки рядків.
Учні висловлюються одним реченням, обираючи початок фрази на екрані:
Опрацювати Презентацію «Рядкові величини» (2 - 12 слайди).