П'ятниця, 19.04.2024
Творча лабораторія

Навчальні посібники та робочі зошити з інформатики - якісно і дешево


Меню сайту
Реклама
Категорії каталогу
Навчальні посібники [7]
Навчальні посібники для загальноосвітньої школи
Задачник [2]
Педагогічні технології [11]
Міжпредметні зв'язки [1]
Інформатика для вчителів інших предметів
Програми [3]
Програми навчальних курсів
Експертні системи [1]
ДПА [3]
Головна » Статті » Шкільна інформатика » Педагогічні технології

Евристичні дослідження ІКС-файлів на уроках інформатики (продовження)

Нові статті

[19.02.2020] [C#]
Задача про розрізання квадрата (ООП, C#)
[09.02.2020] [Python]
Задача про розрізання квадрата (ООП, Python)
[06.02.2020] [Паскаль]
Задача про розрізання квадрата (ООП, Free Pascal)

Анатолій Бабін, вчитель-методист Жовтневського НВК Конотопського району Сумської області

Евристичні дослідження ІКС-файлів на уроках інформатики

УРОК 1

УРОК 2

ТЕМА УРОКУ: Вказівки і функції опрацювання рядкових величин та їх опис мовою програмування Pascal.

МЕТА УРОКУ: Розглянути особливості рядкового типу даних, відповідні вказівки та функції на мові програмування Pascal.

ТИП УРОКУ: Урок вивчення нового матеріалу.

ТЕХНОЛОГІЯ: Метод евристичних досліджень і поетапне формування понять.

ЗАБЕЗПЕЧЕННЯ УРОКУ: Заздалегідь підготовлена на робочому столі папка UROK9-48 з текстовим файлом string.doc, у якому в стислій формі описаний теоретичний матеріал уроку і сформульовано завдання для самостійних досліджень та шістьма ІКС-ФАЙЛАМИ Flengtht.exe; Fpos.exe; Fconcat.exe; Fcopy.exe; Pdelete.exe; Pinsert.exe. Навчальні х-файли демонструють роботу функцій та процедур з рядковими величинами.

Вчитель: Чи доцільно було б у комп'ютерній обробці текстової інформації обмежитись символьними величинами? Давайте проаналізуємо дане питання.

Учні: Повна інформація міститься не в окремих літерах, а в тексті, який у свою чергу складається із речень, речення - із слів. Слова і навіть речення можуть у тексті повторюватись, тому доцільно було б використовувати окрім літерних величин більш укрупнені одиниці, які відповідали б за цілі слова і словосполучення, - тобто, певну послідовність символів.

Вчитель: В інформатиці такі величини, які відповідають послідовності будь-яких символів, називають рядковими величинами або просто рядком.

Продовжимо наші дослідження ІКС-ФАЙЛІВ у папці UROK9-48. Потрібну початкову інформацію можна одержати у текстовому файлі string.doc. Уважно знайомтесь із його змістом і потім продовжимо роботу.

Зміст файлу string.doc:

Рядковий тип величин (STRING).

1) Рядок - це послідовність символів кодової таблиці.

2) Кожен рядок складається з певної кількості символів. Кількість символів - це і є довжина рядка (Length).

Рядкові константи: 'Урок', 'урок', '?#?', '123', '2abc', 'computer', 'IBM',''

Найдовший рядок має 255 символів,

найкоротший - 0 (нульовий або пустий рядок) - ''.

3) Рядки можуть бути оголошені двома способами:

a) Ім'я: string; {Оголошено рядок довжиною 255 символів}

б) Ім'я: string[ДовжинаРядка]; {Рядок має вказану довжину}

4) Одержати доступ до якогось певного символа рядка можна, вка¬завши його номер у квадратних дужках після імені змінної (рядка). Наприклад, R='Місяць травень'. Тут R[1]='М'; R[3]='ц'; 

5) Функції та процедури для роботи з рядковими величинами: 

Функції: Lengtht; Pos; Сoncat; Copy;

Процедури: Delete; Insert.

Для з'ясування дії цих функцій і процедур використаємо ІКС-ФАЙЛИ з відповідними іменами: Flengtht.exe; Fpos.exe; Fconcat.exe; Fcopy.exe; Pdelete.exe; Pinsert.exe. Як видно, імена файлів, які демонструють дію функцій, починаються з літери F, а файлів, які демонструють дію процедур - з літери P.

Запускайте файли у вказаному порядку. Дослідіть призначення цих функцій для роботи з рядковими величинами за такою схемою:

а) призначення (дія) функції або процедури;

б) який синтаксис запису функції або процедури;

в) яка величина є аргументом даної функції;

г) які параметри використовують поряд з аргументом;

д) що є результатом дії функції, до якого типу величин належить.

Зробіть висновки. Успіхів у "розшифруванні" Х-ФАЙЛІВ!

Зміст ІКС-ФАЙЛІВ:

(Після кожного лістингу наведено висновки, які потрібно зробити з їх дослідження)

1

Program Flenght; {Дія функції Length (довжина рядка)}

var R: string[80];

n: integer;

begin

writeln('Введіть довільний рядок R');
readln(R);
n:=Length(R);
writeln('Рядок складається з N=',n,' символів');
readln;

end.

Висновок: Функція Length(R) - визначає довжину рядка, який міститься у змінній R (кількість символів, включаючи проміжки)

2

Program Fpos; {Дія функції Pos - номер позиції першого входження слова в рядку}

var R,word:string;

    p: integer;

begin

writeln('Введіть довільний рядок R');
readln(R);
writeln('Введіть довільний підрядок WORD даного рядка');
readln(word);
p:=pos(word,R);
writeln('В рядку R підрядок WORD починається ', 'з позиції Р =',p);
readln;

end.

Висновок: Функція Pos(word,R) визначає номер позиції першого входження заданого підрядка WORD у рядку R.

3

Program Fconcat; {Демонструє конкатенацію (склеювання) рядків}

var R: string[35];

R1: string[35];
R2: string[35];
R3: string[35];

begin

writeln('Введіть рядок R1 з пробілом в кінці , <Enter>');
readln(R1);

writeln('Введіть рядок R2 з пробілом в кінці , <Enter>');
readln(R2);

writeln('Введіть рядок R3 , <Enter>');
readln(R3);

R:=concat(R1,R2,R3);

writeln(('R=R1+R2+R3 = ',R);

end.

Висновок: Функція Сoncat(R1,R2,…,Rn) виконує об’єднання (конкатенацію або склеювання) рядків.

Учитель: Розгляньте ще один приклад за наведеним лістингом і зробіть висновок. Перевірте роботу програми, запустивши файл Fconcat1.ехе, проаналізуйте результати її виконання та зробіть висновки.

4

Program Fconcat1; {Конкатенація (склеювання) рядків, які задані як рядкові константи}

Const R1=' Мова ';

    R2='програмування ';
    R3='Turbo Pascal.';

var R: string[35];

begin

    R:=R1+R2+R3;
    writeln(R);

end.

ЗАВДАННЯ 1. Що буде результатом виконання програми?

ЗАВДАННЯ 2. Порівняйте спосіб "склеювання" рядків у двох попередніх программах і сформулюйте висновки.

Висновки:

Замість функції concat, яка виконує конкатенацію (склеювання) рядків, можна в програмах на Pascal записувати суму рядків, використовуючи знак „+”, тобто, є два способи опису об’єднання дядків:

Синтаксис 1: concat(A,B,C,...,D)

Синтаксис 2: A+B+C+...+D

ЗАВДАННЯ 3. Дано два рядки: А='абра', D='кадабра'. Який буде результат дії функції concat(D,A)?

5

Program FCopy; {Дія функції Copy - копіювання фрагменту рядка}

var R, word: string[80];

poz,n: integer;

begin

writeln('Введіть довільний рядок R');
readln(R);

writeln('Введіть номер символа POS, ', 'з якого починати копіювати'); readln(poz);
writeln('Скільки символів N, треба копіювати');
readln(n);

word:=copy(R,poz,n);

writeln(word);

readln;

end.

Висновок: функція copy(R,Poz,N) копіює (вирізає) частину (фрагмент) рядка R з позиції Poz N символів.

ЗАВДАННЯ 4. Нехай рядок R='Севастополь'. Який результат буде після виконання функції copy(R,5,4)? copy(R,1,4)? copy(R,6,6)? copy(R,5,3)?

6

Program Pdelete; {Процедура Delete - вилучає слово довжиною N у рядку R з позиції Poz} 

var R: string[80]; 

Poz,N: integer; 

begin 

writeln ('Введіть довільний рядок R');
readln(R);

writeln('Введіть позицію Pos, з якої хочете ', ' вилучити якийсь підрядок слово)');
readln(poz);

writeln('Введіть довжину слова N для вилучення з рядка');
readln(n);

delete(R,Poz,n);

writeln(R);

readln;

end. 

Висновок: Процедура Delete - вилучає слово довжиною N у рядку R з позиції Poz.

ЗАВДАННЯ 5. Нехай рядок R='Календарний'. Який результат буде після виконання функції delete(R,3,5)? delete(R,1,5)? delete(R,3,10)? 

7

Program Pinsert; {Процедура Insert - вставляє слово WORD у рядок R, починаючи з позиції POZ} 

var R,word:string[80]; 

Poz: integer; 

begin 

writeln('Введіть довільний рядок R');
readln(R); 

writeln('Введіть підрядок (слово) WORD',' для вставки у рядок');
readln(word); 

writeln('Введіть позицію POZ, куди вставити слово');
readln(poz); 

insert(word,R,Poz);

writeln(R);

readln;

end. 

Висновок: Процедура Insert(word,R,Poz) вставляє слово WORD у рядок R з позиції Poz. 

ЗАВДАННЯ 6. Нехай рядок R='карати, милувати ', рядок word = ' не можна '. Який результат буде після виконання функції: insert(word,R,1); insert(word,R,7); insert(word,R,8); insert(word,R,17).

Відповідь: 1) ' не можна карати, милувати'; 2) 'карати не можна, милувати'; 3) 'карати, не можна милувати'. 4) 'карати, милувати не можна'; 

ОПОРНИЙ КОНСПЕКТ з теми "Опрацювання рядкових величин"

Рядковий тип величин (STRING). 

1) Рядок - це послідовність символів кодової таблиці. 

2) Кожен рядок складається з певної кількості символів. Довжина рядка (Length) - це кількість символів, з яких він складається. Рядкові константи: 'Урок', 'Turbo Pascal', '?#?', '123', '2abc', 'computer', 'IBM','' Найдовший рядок має 255 символів, найкоротший - 0 (нульовий або пустий рядок) - '' 

3) Рядки можуть бути оголошені двома способами: a) Ім'я: string; {Оголошено рядок довжиною 255 символів} б) Ім'я: string[ДовжинаРядка]; {Рядок має вказану довжину} 

4) Одержати доступ до якогось певного символа рядка можна, вказавши його номер у квадратних дужках після імені змінної (рядка). Наприклад, R='Місяць травень'. Тут R[1]='М'; R[3]='ц'; 

5) Функції та процедури для роботи з рядковими величинами: 

- Функція Length(R) - визначає довжину рядка, який міститься у змінній R (кількість символів, включаючи проміжки). Формат: Length(R): integer; R: string. 

- Функція Pos визначає номер позиції першого входження заданого підрядка WORD у рядку R. Формат: Pos(R,word):byte; рядок R:string; підрядок word: string 

- Функція Сoncat виконує конкатенацію (склеювання) рядків у тому порядку, в якому вони записані. Інакше можна А+І+С+...+Z. Формат: Сoncat(A,B,..,Z): string; A,B,..,Z: string; 

- Функція Copy копіює (вирізає) частину (фрагмент) рядка R з позиції Poz N символів. Формат: copy(R,Poz,N):string; Poz: integer; N: integer. 

- Процедура Delete вилучає слово довжиною N у рядку R з позиції Poz. Формат: delete(R,Poz,N): string; Poz: integer; N: integer. 

- Процедура Insert - вставляє слово word у рядок R, починаючи з позиції Poz. Формат: insert(word,R,Poz): string; word: string; R: string; Poz:integer. 

ПРАКТИЧНЕ ЗАВДАННЯ 1

Дано рядкову константу R='Turbo Pascal'; Виконати вирізку з рядка R, щоб одержати рядок 'Pascal'. 

Розв'язання 

Позначимо фрагмент, який копіюється, іменем word. У даному рядку його позиція Poz=7; і він має довжину N=6. Складаємо програму: 

1

Program PZ_1; 

Const R='Turbo Pascal'; 

var word: string[6]; 

    poz,n: integer; 

begin 

poz:=7;
n:=6;

word:=copy(R,poz,n); 

writeln(word); 

readln; 

end. 

ПРАКТИЧНЕ ЗАВДАННЯ 2

Дано рядок R='Turbo Pascal'; одержати рядок 'Pascal', використовуючи функцію delete. 

Розв'язання

У даному рядку треба вилучити слово Turbo його позиція Poz=1; і він має довжину N=6. Дія вилучення матиме вигляд delete(R,Poz,n); 

Програма:

2

Program PZ_2; 

var R: string[15]; 

Poz,N: integer; 

begin 

R:='Pascal';
Poz:=1;
N:=6; 

writeln(R); {Щоб було видно початковий рядок} 

delete(R,Poz,n); 

writeln(R); {Кінцевий рядок} 

readln; 

end. 

ПРАКТИЧНЕ ЗАВДАННЯ 3

Дано рядок R='Мова програмування Pascal'; одержати рядок 'Мова програмування Turbo Pascal'; Розв'язання Слово Turbo потрібно вставити з 20-ї позиції. Отже, Poz=20; 

Програма: 

3

Program PZ_3; 

var R,word:string[35]; 

Poz: integer; 

begin 

Poz:=20;
R:='Мова програмування Pascal';
word:= 'Turbo '; 

insert(word,R,Poz); 

writeln(R); 

readln; 

end. 

ПРАКТИЧНЕ ЗАВДАННЯ 4

Дано рядок R='Мова програмування Turbo Pascal'; визначити позицію підрядка 'Pascal' у даному рядку; 

Розв'язання 

4

Program PZ_4; 

Const R='Мова програмування Turbo Pascal'; 

word='Pascal'; 

var p: integer; 

begin 

p:=pos(word,R);
writeln('Позиція Р =',p); 

readln; 

end. 

Вчитель: Розглянемо випадок опрацювання рядкових величин із записом у файл та зчитуванням з файлу. Спочатку програму зчитування готових файлів: 

5

Program Fread1;{Зчитування даних з файла} 

type CHILDERN=string[15]; 

var class: file of CHILDERN; 

Surname: CHILDERN; 

begin 

assign(class,'school.dat');
reset(class); 

read(class,surname);
write('Прізвище учня: '); 
writeln(surname); 

close(class); 

end. 

 Вчитель: проаналізуємо роботу другої програми, яка крім зчитування готових файлів сама може їх створювати. 

6

Program Fwrite1;{Запис і зчитування даних з файла} 

type CHILDERN=string[15]; 

var class: file of CHILDERN; 

Surname: CHILDERN; 

begin 

assign(class,'school.dat');
rewrite(class); 

write('Введіть прізвище учня: ');
readln(surname); 

write(class,surname); 

close(class); 

end. 

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

ДОМАШНЄ ЗАВДАННЯ

Обов’язкове. Опрацювати п.2.13 ("Інформатика". Верлань А.Ф.) cт.180-185, опорний конспект Повторити ст.175-189. Завдання 4-6 (cт. 185) 

Додатково - завдання 10-18 із переліку завдань до заліку на вибір 

ЗАВДАННЯ ДО ЗАЛІКУ (ІI частина - STRING) 

(19-23 - обов'язкові. Вибрати довільне одне. Решта - додатково) Скласти програми, які виконували б такі завдання: 

19) Перетворення символів рядка до верхнього регістру.

20) Вилучення початкових пробілів рядка.

21) Обчислює алгебраїчну суму одноцифрових чисел, введених з клавіатури у вигляді виразу.

22) Почергове вилучення з рядка літер справа наліво до утворення пустого рядка.

23) Почергове вилучення з рядка літер по одній справа і зліва до утворення пустого рядка.

24) Чи є введений з клавіатури рядок цілим числом.

25) Чи є введений з клавіатури рядок шістнадцятковим числом.

26) Чи є введений з клавіатури рядок шістнадцятковим числом. 

27) Чи є введений рядок дробовим числом без знака.

28) Перетворює введене двійкове число в десяткове.

29) Перетворює введене дворозрядне шістнадцяткове число в десяткове.

30) Перетворює введене десяткове число у вказану кристувачем систему числення.

31) Почергове вилучення з рядка літер, які стрічаються найчастіше, до утворення пустого рядка.

32) Упорядкування списку за алфавітом.

УРОК 3,4



Интернет реклама
Категорія: Педагогічні технології | Додав: teachlab (21.06.2009)
Переглядів: 2852 | Рейтинг: 0.0/0
Всього коментарів: 0
Додавати коментарі можуть тільки зареєстровані користувачі.
[ Реєстрація | Вхід ]
Форма входу
Пошук
Друзі сайту

Підтримка

Система Orphus

Маєте свій сайт?
Заробіть на ньому грошей!


Не маєте власного сайту?
Заробіть на обміні файлами!
Статистика
Copyright Пилипчук О.П. © 2024
div id=