Розробка уроку

Тема уроку: опрацювання рядків мовою Pascal.

Мета: ознайомити з процедурами й функціями рядкових величин.

По завершенню вивчення учень знає і уміє використовувати засоби мови Pascal для опрацювання рядкових величин.

Обладнання: комп’ютери з встановленими ОС, браузером, середовищем програмування мовою Pascal або стійким сполученням до мережі Інтернет для роботи з online-сервісами, дана інструкція.

Структура уроку

  1. Організаційний етап.
  2. Актуалізація опорних знань.
  3. Вивчення нового матеріалу.
  4. Інструктаж з ТБ.
  5. Вироблення пратичних навичок.
  6. Підбиття підсумків уроку.
  7. Домашнє завдання.

Хід уроку
1. Організаційний етап
Привітання з класом. Перевірка присутності і готовності учнів до уроку.

2. Актуалізація опорних знань

Мова програмування  — це система позначень для опису алгоритмів та структур даних.

Будь-яка мова програмування має такі 3 основні складові: абетку, синтаксис (правила написання) і семантику (правила тлумачення й виконання).

Абетка мови Pascal (Паскаль):

Примітка. Компілятор Pascal не враховує регістр літер.

За допомогою цих символів записують таке.

Операції:
– — віднімання;
+ — додавання;
* — множення;
/ — ділення (з дійсним результатом).

Відношення:
< — менше;
> — більше;
<= — не більше;
>= — не менше;
= — дорівнює;
<> — не дорівнює.

Елементи синтаксису — використання розділових знаків для відокремлення чи вказання:

; — вказівок;
, — елементів списків;
. — цілої частини числа від дробової;
.. — меж неперервного діапазону;
' ' — символів або рядків тексту;
( ) — виразів і списків;
[ ] — індексу чи діапазону індексів масиву;
(* *) або { } — коментарів;
: — міток;
$ — шістнадцяткового коду;
^ — символ керування.

Зарезервовані слова, зміст яких фіксовано мовою і які неможна використовувати як назви сталих, змінних, процедур, функцій чи міток:
and, asm, array, begin, case, const, constructor, destructor, div, do, downto, else, end, exports, file, for, function, goto, if, implementation, in, inherited, inline, interface, label, library, mod, nil, not, object, of, or, packed, procedure, program, record, repeat, set, shl, shr, string, then, to, type, unit, until, uses, var, while, with, xor, absolute, assembler, export, external, far, forward, index, interrupt, near, private, public, resident, virtual.

Використання імен псевдомасивів Port, PortW, Mem, MemW, MemL не викликає помилки, але унеможливлює їх подальше застосування.


В описі мови традиційно використовують такі умовні позначення:
< > — обов'язковий параметр;
[ ] — не обов'язковий параметр.

Опишемо структуру програми мовою Pascal.

Програму зазвичай, але не обов'язково, починають заголовком такого вигляду:

program <назва програми>

Тут назва програми — послідовність символів латиниці, цифр і знака підкреслювання, що не починається з цифри. Змістовна програма має містити опис змінних.
Наявність чи відсутність заголовку ніяк не впливає компіляцію (пере­творення на машинні коди) чи роботу програми.

Описова частина містить опис всього, що буде надалі використано у програмі:

uses <назва1>,<назва2> ...; — приєднання бібліотек та модулів;

label <назва1>,<назва2> ...;— оголошення (перелік) міток;

type
<назва1>=<опис1 через наявні типи>;
<назва2>=<опис2 через наявні типи>
...; — опис типів даних;

const
<назва1>[:тип]=<значення1>;
<назва2>[:тип]=<значення2>
...; — оголошення сталих (величин), значення яких не буде змінено протягом виконання програми. При спробі змінити сталу буде вказано на помилку на етапі компіляції;

var <назва1>, <назва2>... :<тип> — оголошення змінних;

procedure <назва>
[параметри];
[опис локальних змінних]
[вказівки]
— оголошення процедури;

function <назва>
[параметри] : <тип>
[опис локальних змінних]
[вказівки]
— оголошення функцій користувача;

Виконувана частина розпочинається службовим словом begin, а завершується словом end з крапкою. Між цими службовими словами записують вказівки щодо дій з об`єктами програми, оголошеними в розділі описів. Вказівки відокремлюють одну від одної крапкою з комою.

begin <вказівка1>; <вказівка2>... end.

Розгалуження

if <умова> then <вказівка> else <вказівка>
— повна форма умовного оператора.

if <умова> then <вказівка>
— неповна форма умовного оператора.

goto <мітка> — перехід до мітки.

case <вираз> of
 <значення1>: <дія1>;
 <значення2>: <дія2>; …
 else <дія>
end

— виконання дії залежно від значення виразу. Замість значень можна записувати діапазон у такому вигляді:
<найменше значення>..<найбільше значення>.

begin [<вказівки>] end — об'єднання кількох вказівок в одну.

Цикли

for j:=1     to n do <вказівка>
for j:=n downto 1 do <вказівка>

— цикли з відомим діапазоном зміни індекса. У першому випадку змінна цілого типу j буде зростати від 1 до n, у другому — спадати від n до 1. Замість меж зміни (1 й n) можна записати довільні вирази, що набувають цілих значень, замість j — довільну допустиму назву змінної цілого типу.

while <умова> do <вказівка>
— з попередньою перевіркою умови.

repeat <вказівки> until <умов>>
— до справдження умови.

break — вихід з циклу.

halt [код виходу] — припинення виконання програми.

3. Вивчення нового матеріалу

Довільні дані можна зчитати як рядки тексту. Тому уміння опрацювати рядок необхідне при спробі уникнути аварійного завершення програми на етапі введення даних (з текстових файлів).

Рядок (тексту), тип strings — величина для збереження послідовності символів.

Цей структурований тип даних є стандартним для мови Pascal. Значення рядків (послідовність символів) записують в одинарних лапках (апострофах). Рядок може містити й одинарну лапку. Для того, щоб записати одинарну лапку в рядок, потрібно написати дві послідовно розташовані одинарні лапки.

В описі змінної (типу) можна вказати максимальну довжину рядка у квадратних дужках після службового слова string. Наприклад, таким чином:

var s: string[33];

Це зазвичай роблять з метою економії пам'яті. Інакше максимальна довжина рядка складе 255 символів (Borland Pascal, Turbo Pascal). У Free Pascal и Delphi не обмежена змінна string має насправді тип AnsiString, який може займати у пам'яті до 2 Гб (2147483646 символів). У ранніх версіях мови Pascal поточну довжину рядка зберігали у нульовій комірці рядка. На кшталт s[0], що іноді можна побачити у програмах. В сучасних версіях це не так, тому потрібно користуватися функцією Length (див. далі).

На кожний символ відведено по 1 байту. Перший байт змінної містить довжину рядка, наступні — коди символів. І все вони — цілі числа у межах від 0 до 255 включно.

Рядкові величини можна опрацьовувати і як єдине ціле, і поелементно. При опрацюванні рядка поелементно дії такі самі, як з одновимірним масивом з типом індексу byte і типом елементів char (символ).

Введення даних. Рядкові величини можна вводити з клавіатури або з файлів. Для цього можна використати стандартну вказівку введення read. Але у цьому випадку необхідно ввести стільки символів, скільки було оголошено при визначенні цієї величини. Для величини з типом string[10] необхідно ввести 10 символів. Якщо їхня кількість менша, то вільні місця необхідно заповнити пробілами. Для типу string загальна кількість символів дорівнює 255. Щоб позбавитись потреби вводити пробіли використовують вказівку readln.

Операції з рядками

Функції рядків

Процедури опрацювання рядків

4. Інструктаж з ТБ
5. Вироблення практичних навичок


У наступних завданнях потрібно написати програму для виконання проголошеного завдання. Змістовну частину потрібно виділити як функцію чи процедуру. Вважати, що рядок-аргумент містить слова, розділені пробілом, якого немає на початку тексту і наприкінці тексту. Розв'язання записати у файли з назвою Ваше_прізвище_№_завдання.pas у теку, вказану вчителем.

Завдання 1. Знайти кількість слів у рядку тексту.
Завдання 2. Надрукувати окремо з нового рядка кожне слово рядка тексту.
Завдання 3. Знайти й надрукувати перше найдовше слово рядка тексту.
Завдання 4. Порівняти створене з демонстраційними розв'язаннями: 1, 2, 3.

6. Підбиття підсумків уроку

  1. Що таке рядок?
  2. Назвіть вбудовані операції з рядками.
  3. Назвіть вбудовані функції опрацювання рядків.
  4. Назвіть вбудовані процедури опрацювання рядків.
  5. Чого навчилися?
  6. Що виникало труднощі?

Виставлення оцінок.

7. Домашнє завдання

Завдання 5. Перевірити чи слова, що записані латиницею у рядку, розташовано у алфавітному порядку.

Вказівки до розв'язання

  1. Розбити рядок на слова.

  2. Використати порівняння рядків для пошуку пари слів, з яких попереднє має стояти після наступного в алфавітному порядку.

  3. Якщо таку пару знайдено, вивести повідомлення про неупорядкованість, інакше — повідомлення про упорядкованість.

Протестувати програму для рядка з використанням кирилиці, у тому числі українських літер, яких немає у російській абетці. Поміркувати, як потрібно змінити програму, щоб отримувати правильну відповідь і в цьому випадку.

Завдання 6. Проаналізувати код програми для отримання нормальної диз'юнктивної форми булевої фукції.


Текст упорядкувала Мороз Оксана Миколаївна, учитель інформатики спеціалізованої школи І-ІІІ ступенів № 251 імені Хо Ши Міна з поглибленим вивченням англійської мови Деснянського району міста Києва, під час виконання випускної роботи на курсах підвищення кваліфікації з 29.10.2018 по 02.11.2018.