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

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

Нові статті

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

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

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

Скачати пакет файлів для реалізації технології

Технологія навчання за допомогою ІКС-файлів використовує евристичні дослідження, у ході яких учні виконують цільові дидактичні завдання, спілкуються в парах або малих групах, обговорюючи результати їх виконання, самостійно роблять висновки щодо нових знань, які вони одержали у ході досліджень. При необхідності пари (малі групи) розширюють коло співрозмовників, підключаючи до взаємодії інші групи учнів, обмінюються між собою необхідною інформацією, спільно формулюють висновки.

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

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

УРОК 1

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

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

ТИП УРОКУ: Урок засвоєння знань.

ТЕХНОЛОГІЯ: Інтерактивна евристика з поетапним формуванням понять.

ФОРМА ОРГАНІЗАЦІЇ УРОКУ: Інтерактивне дослідження методом „секретних” ікс-файлів.

ЗАБЕЗПЕЧЕННЯ УРОКУ: Заздалегідь підготовлена на робочому столі папка UROK9-47 з текстовим файлом char.doc (char.txt), у якому в стислій формі описаний теоретичний матеріал уроку і сформульовано завдання для самостійних досліджень та п'ятьма ІКС-ФАЙЛАМИ: навчальними файлами f_ord.exe; f_chr.exe; f_succ.exe; f_pred.exe; f_upcase.exe, кожен з яких демонструює дію відповідної функції опрацювання символьних величин.

Учитель: Сьогодні ми вивчаємо новий матеріал за допомогою „секретних” ІКС-ФАЙЛІВ. Ви самостійно будете вивчати питання, аналізувати, досліджувати, робити висновки.

1-е ЗАВДАННЯ ДЛЯ ДОСЛІДЖЕНЬ: розкрийте папку UROK9-47. У папці є файл char.doc прочитайте його (в редакторі Word).

Спочатку учні опрацьовують зміст текстового файлу.

Зміст текстового файлу:

Символьний (літерний) тип величин (CHAR).

Окрім числових даних комп'ютер може опрацьовувати символьні (знакові, літерні, буквенні) величини.

Всі символи - це літерні константи: 'a', 'L', 'Ф', '1', '2', '%', '&',';' та інші знаки, які відображуються на екрані комп'ютера, включаючи "пропуск".

Комп'ютер може опрацьовувати також змінні символьні (літерні) величини, які у Pascal-програмі описуються у розділі змінних var ідентифікатором char.

Про символьні величини відомо:

1. Кожен символ займає в пам'яті комп'ютера 1 байт.

2. Кожному символу відповідає певне число - код символа (порядковий номер у таблиці кодів): 'A'- 65; '0'- 48; "пробіл"- 32 і т.д.

3. Для опрацювання символьних величин є такі функції TURBOPASCAL:

1) ORD(SIM) – у дужках міститься аргумент – символ (SIM).
2) CHR(COD) – аргумент – ціле число (COD).
3) SUCC(SIM) – аргумент – символ (SIM).
4) PRED(SIM) – аргумент – символ (SIM).
5) UPCASE(SIM) - аргумент символ (SIM).

Хочете дізнатись, для чого призначена кожна з цих функцій і як вони працюють у програмах на TURBOPASCAL?
Тоді приступайте до виконання завдань для досліджень, – крок за кроком. Працюйте в парі, обговорюючи з товаришем наслідки опрацювання кожної порції інформації.

ЗАВДАННЯ ДЛЯ ДОСЛІДЖЕНЬ: Для вивчення дії цих 5 функцій по черзі запустіть "секретні" ІКС-ФАЙЛИ з відповідними іменами f_ord.exe; f_chr.exe; f_succ.exe; f_pred.exe; f_upcase.exe. (Зверніть увагу, що кожному імені файлу відповідає відповідна функція опрацювання символьних величин!)

Постарайтесь розгадити "секрет" кожного з них.

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

а) призначення (дія) функції;
б) яка величина є аргументом даної функції;
в) що є результатом дії функції, до якого типу величин належить. Зробіть висновки.
г) додаткове завдання (для бажаючих): відтворити у загальних рисах кожну програму на Паскалі або створити свою власну.

Отже, відправляйтесь у подорож по Х-ФАЙЛАХ: запускайте їх по черзі, а як зрозумієте призначення функції – робіть висновок (згідно пунктів а),б),в))

і приступайте до наступного кроку. Успіхів!

Зміст „секретних” exe-файлів - програм для дослідження дії функцій опрацювання символьних величин:

1

Program F_ord; {Виведення на екран монітора коду введеного за допомогою клавіатури символу з циклічним запитом про закінчення виконання програми}

var

    s: char;
    lit: char;

begin

    s:='y';
    while ((s='y') or (s='Y')) do
    begin
        writeln('Введіть довільний символ');
        readln(lit);
        writeln(lit,'-',ord(lit));
        writeln('Для продовження введіть y(Y), <Enter>');
        writeln('для закінчення двічі натисніть <Enter> ');
        readln(s); writeln(' ')
    end;

end.

2

Program F_chr; {Виведення на екран символу за його кодом}

var
    s: char;
    cod: integer;
begin

s:='y';
while ((s='y') or (s='Y')) do
begin

writeln('Введіть ціле число від 0 до 255');
readln(cod);
writeln(cod,'-',''',chr(cod),''');
writeln('Для продовження введіть y(Y), <Enter>');
writeln('для закінчення двічі натисніть <Enter>');
readln(s);
writeln(' ')

end;

end.

3

Program F_succ; {Виведення символу, наступного у кодовій таблиці після символу, введеного з клавіатури}

var

    s: char;
    lit: char;1

begin

     s:='y';
     while ((s='y') or (s='Y')) do
     begin

writeln('Введіть довільний символ');
readln(lit);
writeln(lit,' - наступний - ',succ(lit));
writeln('Для продовження введіть y(Y), <Enter>');
writeln('для закінчення двічі натисніть <Enter>');
readln(s);
writeln(' ')

end;

end.

4

Program F_pred; {Виведення символа, який передує у кодовій таблиці символу, введеному з клавіатури}

var

    s: char;
    lit: char;

begin

    s:='y';

    while ((s='y') or (s='Y')) do
    begin

        writeln('Введіть довільний символ');
        readln(lit);
        writeln(lit,' - попередній - ',pred(lit));
        writeln('Для продовження введіть y(Y), <Enter>');
        writeln('для закінчення двічі натисніть <Enter>');
        readln(s);
        writeln(' ')

    end;

end.

5

Program F_upcase; {Перетворення малої англійської літери, введеної з клавіатури, до верхнього регістру}

var

    s: char;
    lit: char;

begin

    s:='y';

    while ((s='y') or (s='Y')) do
    begin
        writeln('Введіть довільну малу латинську літеру ');
        writeln(' і натисніть <Enter>');
        readln(lit);
        lit:=upcase(lit));
        writeln(lit);
        writeln('для закінчення двічі натисніть <Enter> '); readln(s); writeln(' ')
    end;

end.

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

1) ORD(SIM) - визначає код (порядковий номер) символу SIM із даної кодової таблиці; результат даної функції належить до цілого типу.

2) CHR(COD) - визначає символ за його кодом COD. Результатом такої функції є символ.

3) SUCC(SIM) - визначає символ, який знаходиться після символу SIM у даній кодовій таблиці.

4) PRED(SIM) - визначає символ, який знаходиться перед символом SIM у даній кодовій таблиці.

5) UPCASE(SIM) - перетворює малі літери англійського алфавіту (і тільки англійського) у великі.

Учитель: Ви всі виконали хорошу дослідницьку роботу, вірно зробили висновки, і тепер залишається лише оформити отримані результати у вигляді ОПОРНОГО КОНСПЕКТУ.

Для кращого запам'ятання вивченого на уроці можна запропонувати такий варіант ОПОРНОГО КОНСПЕКТУ:

СИМВОЛЬНИЙ (ЛІТЕРНИЙ) ТИП ВЕЛИЧИН (CHAR)

Комп'ютер може опрацьовувати символьні (знакові, літерні, буквенні) величини.

Символи - це літерні константи: 'a', '+','Д', '7', '&',';' та інші знаки, які відображуються на екрані комп'ютера, включаючи "пропуск".

Змінні символьні (літерні) величини, у Pascal-програмі описуються так: ІМ'Я: char;

Про символьні величини відомо:

1. Кожен символ займає в пам'яті комп'ютера 1 байт.

2. Кожному символу відповідає певне число - код символа (порядковий номер у таблиці кодів):

'A'- 65; 'a' - 97; '0'- 48; "пробіл"- 32 і т.д.

3. Для опрацювання символьних величин є такі функції TURBOPASCAL:

СИНТАКСИСАРГУМЕНТРЕЗУЛЬТАТ
1) ORD(SIM)CharЦіле число [0..255]
2) CHR(COD) Ціле число [0..255] Char
3) SUC(SIM)CharChar
4) PRED(SIM)CharChar
5) UPCASE(SIM)Char[a..z]char [A..Z]
  

Учитель: А тепер дайте відповідь на таке питання:

Чи є множина символів, яку використовує комп'ютер, упорядкованою?

Як це можна довести?

Учні: (передбачуваний варіант відповіді): Множина символів, які використовує комп'ютер, є упорядкованою, тому що кожному символу відповідає певний порядковий номер (код) - від 0 до 255 у таблиці кодів комп'ютера і навпаки: кожному коду відповідає 1 символ.

Вчитель: Розглянемо роботу програми, яка підтверджує дане твердження. Програма Tab_sim.exe виводить на екран всю кодову таблицю.

Зміст програми:

6

Program Tab_sim; {Виведення на екран кодової таблиці символів}

var

    stop, ch: char; {символ}
    cod: integer; {десятковий код символа}
    i,j,n: integer;

begin

    stop:='y';

    while (stop='y') or (stop='Y') do
    begin
      writeln('Виведення на екран кодової таблиці символів');
      writeln('Для символів основної таблиці (коди 0-127) ввести 0, ');
      writeln('Для додаткових символів (коди 128-255) ввести 128, ');
      readln(n);
      cod:=0;

     for i:=0 to 15 do {16 рядків}
      begin

      cod:=i+n; {Для символів з кодами 128-255 dec:=i+128}
      for j:=1 to 8 do {8 колонок}
      begin
          if (cod=14) and (cod<>26)
          then
              write(cod:4,'-',' ',chr(cod):1,chr(179))
          else
              write(cod:4,'- ',chr(179));
cod:=cod+16;
      end;
      writeln; {Перехід до нового екранного рядка}
 end;
 writeln('Для продовження введіть <Y>, <Enter>');
 writeln ('Для виходу з програми двічі натисніть <Enter>');
 readln(stop); writeln(' ');

    end;

end.


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

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

Скласти алгоритм і програму, яка виводить на екран всі малі літери латинського алфавіту, використовуючи факт упорядкованості символів у кодовій таблиці комп'ютера.

1

алг алфавіт

арг. буква (літ)

рез. буква (літ)

поч

    від буква="a" до "z" виконати

    п.ц.

       виведення букви

    к.ц.

кін.


Вчитель: Реалізуємо цей алгоритм на мові програмування TurboPascal (самостійно). Перейдіть у систему TURBOPASCAL

2

Program Alphabet; {Послідовне виведення букв латинського алфавіту}

var c:char;

begin

    writeln ('Виведення на екран алфавіту');

    for c:='a' to 'z' do
    begin
        write(c)
    end;

    readln

end.

Вчитель: Тепер пригадаємо, для чого потрібні букви? Для чого потрібні цифри?

Учні: Із букв складаються слова; з цифр - числа.

Вчитель: Всяке слово, речення, текст - це послідовність символів.

Чи є така послідовність упорядкованою?

Учні: Так, тому що кожен символ (буква, цифра, знак) у слові, реченні має своє місце, свій порядковий номер.

Вчитель: Який висновок можна зробити з цього?

Учні: Слово, число, речення, текст можна розглядати як лінійну таблицю (одномірний масив), елементами якої є символи.

Вчитель: Такі масиви називаються літерними або символьними. При роботі з символьними масивами використовуються такі самі алгоритми, як і з числовими. Пригадайте, які саме алгоритми з масивами ви опрацьовували.

Учні:

  • Формування масиву;
  • пошук заданого елемента масиву;
  • підрахунок кількості елементів у масиві, рівних заданому;
  • сортування елементів масиву у зростаючому або спадному порядку;
  • виконання різних операцій і функцій з елементами масивів.

Вчитель: Подібні алгоритми можна використовувати і з символьними масивами. Розглянемо використання кількох з них у такому прикладі:

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

Скласти програму, яка введене з клавіатури слово виводить на екран у зворотньому порядку.

3

Program Ob_Slovo; {Програма обернення слова}

const n=15;

var a,b:array[1..n] of char;{Два масиви – прямого і оберненого слова}
    i:integer;

begin

    writeln('Введіть слово або фразу з ',n,' літер');
    writeln('Незаповнені місця заповнити пробілами');

    for i:=1 to n do {Заповнення масиву a в циклі}
    begin
        read(a[i]);
        b[n-i+1]:=a[i]; {"Обернення" індексів масиву b}
    end;

    writeln;

    for i:=1 to n do
        write(b[i]);

end.

Вчитель: символьні величини описують одиночні символи, але якщо комп'ютеру дати змогу використати стандартну функцію EOLN,яка приймає значення TRUE (істина) лише при досягненні кінця рядка, то можна в циклі дати команду читати символи до тих пір, поки не буде досягнутий кінець рядка і виконувати з прочитаними символами відповідні дії. Ось характерний приклад.

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

Скласти програму, яка б у введеному з клавіатури тексті "відмовлялася" б виводити на екран великі латинські літери.

Роз'язання

1. Складемо алгоритм методом покрокової деталізації.

Доцільно вести опрацювання тексту по рядках у порядку зростання їх номерів, при досягненні кінця рядка збільшувати його номер на 1, аж поки не буде опрацьовано останній рядок.

Загальна схема фрагменту алгоритму:

для і від 1 до N

п.ц.

    опрацювати і-ий рядок

к.ц.

Уточнюємо, що означає опрацювати і-ий рядок деталізацією команд: поки не досягнутий кінець рядка

п.ц.

    читати символ

    якщо символ не є великою літерою лат. алфавіту

    то вивести літеру на екран

    все

к.ц.

перейти до нового рядка

Перекладаємо алгоритм на мову Pascal.

Program No_Caps;{Програма пропускає друкування усіх великих латинських букв}

var lit:char;

begin

    writeln ('Введіть текст і переконайтесь,', ' що великі латинські літери відсутні');

    while not EOLN do
    begin
        read(lit);
        if not ((lit>='A') and (lit<='Z'))
        then
           write(lit);
    end;

    writeln;

    readln;

end.

ПІДСУМКИ УРОКУ:

Учні: називають вивчені на уроці поняття, посилаючись при потребі опорний конспект.

Учитель: Зауважує, що це лиш найважливіші поняття, що стосуються літерних величин.

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

Опрацювати п.2.13 ("Інформатика". Верлань А.Ф.) cт.175-178. Завдання 1-3 (cт. 185)

1) (Обов’язкове) Скласти програму, яка б виводила на екран кириличний алфавіт у зворотньому порядку.

2) (Додаткове – на вибір):

    а) Виведення букв латинського алфавіту з затримкою 0.2 секунди.

    б) Виведення букв кирилиці у зворотньому порядку в 1 рядок.

    в) Фокус із буквами. Відгадування задуманих комп'ютером букв за кількість спроб, які вибирає гравець.

3) До заліку з теми виконайте такі завдання:

(кожен вибирає з наведеного переліку обов'язкові завдання, бажаючі - додатково завдання 3-го рівня)

ЗАВДАННЯ ДО ЗАЛІКУ (І розділ - СHAR)

(1-9 - обов'язкові. Вибрати довільні два. 10-18 - додатково)

Скласти програми, які виконували б такі завдання:

1) Визначає пору року за назвою місяця, введеного з клавіатури.

2) Виведення букв латинського алфавіту з затримкою 0.2 секунди.

3) Виведення букв кирилиці у зворотньому порядку в 1 рядок.

4) Визначає, мала чи велика латинська літера введена з клавіатури.

5) Організовує простий діалог з користувачем: вітається, знайомиться, запитує, відповідає.

6) Читання N рядків тексту і друкування лише великих латинських букв.

7) Підраховує кількість літер 'a', які передують крапці '.' в рядку символів.

8) Підраховує кількість вибраних користувачем знаків, які передують знаку / в рядку символів.

9) Замінює одні символи на інші у рядку, введеному з клавіатури.

10) Дано послідовність символів s1,s2,..,s30; потрібно визначити,чи співпадає перша половина s1,s2,..,s15 з другою половиною s16,s17,..,s30.

11) Дано послідовність символів a1,a2,..,aN,; потрібно вивести кожний символ 1 раз і вказати, скільки разів він зустрічається у масиві.

12) Фокус із буквами. Відгадування задуманих комп'ютером букв за кількість спроб, які вибирає гравець.

13) Визначає частоту входження символів у заданий текст (у процентах).

14) Програма пропускає всі цифри у введеному тексті.

15) Шифрування тексту. Змінює всі слов’янські літери у введеному тексті на нові з кодами, на 1 більшими.

16) Пошук у масиві методом перебору його елементів. Програма повинна видавати на екран найменший індекс елемента масиву, який вперше співпадає із заданим.

17) Підрахунок кількості елементів масиву, які співпадають з даним символом (методом послідовного перебору його елементів).

18) Підрахунок кількості елементів масиву, які співпадають з даним символом методом послідовного перебору його елементів. Програма повинна також указувати індекси тих елементів масиву, які співпали з заданим для пошуку.

УРОК 2

УРОК 3,4


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

Підтримка


Статистика
Copyright Пилипчук О.П. © 2024
div id=