Юдіна Олександра, ЛогоСвіти та вивчення кодування тексту та чисел, Газета «Інформатика» № 7
У статті подано матеріали базового курсу інформатики — практикум на тему “Двійкове кодування інформації”. У цьому варіанті курсу інформатики знайомство з алгоритмізацією та програмуванням проходить у середовищі ЛогоСвіту. У сьомому класі учні освоюють Лого-графіку, опис та використання процедур (спочатку без параметрів, потім із параметрами), навчаються структурувати програму, виділяючи допоміжні процедури. У восьмому класі освоюють використання команди присвоєння, організацію циклів, рекурсію. Звичайно, на програмування приділяється лише частина навчального часу. Потім навички програмування у середовищі ЛогоМіри можна використовувати щодо двоичного кодування інформації.
Версія середовища - ЛогоСвіт 2.0. Час – 6 уроків.
Лабораторна робота
Кодування тексту. Коди символи. Таблиці кодування
Виконуючи попередні завдання, ви з'ясували, що кожен символ тексту можна закодувати вісьмома двійковими розрядами (байтом). Але людині важко сприймати такий код — довгі послідовності нулів та одиниць. Для полегшення використовується наступний прийом.
Двійковий код будь-якого символу можна як число, порядковий номер у таблиці кодів. Цей номер можна перевести до звичайної десяткової системи числення. Наприклад, буква “Z” має номер 90, а буква “z” – номер 122. Можна записати номер і в іншій системі числення, наприклад, у шістнадцятковій. Вийде шістнадцятковий код символу.
У такому вигляді коди текстових символів виглядають, звичайно, набагато компактнішими.
Символ
Двійковий код
Десятковий номер
Шістнадцятковий номер
01011010
01111010
У цій лабораторнійВи самостійно отримаєте повну таблицю кодів. У цьому вам допоможе середовище ЛогоСвіту, вам потрібно буде написати програму на Лого. У середовищі ЛогоСвіту можна дізнатися за символом його десятковий код і, навпаки, якщо відомий десятковий код, з'ясувати, який символ відповідає. Тобто коди символів у середовищі ЛогоСвіту представлені в десятичному вигляді.
У таблиці ASCII перші 32 коди, з 0-го по 31-й, відведені під спеціальні символи, що управляють. Наприклад, символ кінця абзацу, який ми отримуємо в тексті, натискаючи клавішу , має код 13. Найперший текстовий символ, з кодом 32, - це пробіл.
I. Отримання десяткових кодів всім символів
У середовищі ЛогоСвіту є функція ASCII повернення коду зазначеного символу (від слівAmericanStandartCode forInformationalInterchange) та зворотна функція CHAR повернення символу за вказаним кодом (від словаcharacter- символ).
Щоб познайомитися з цими функціями, запустіть ЛогоСвіти, створіть текстове вікно на аркуші та напишіть у поле команд:
У текстовому вікні ви побачите десятковий код – 90.
Спробуйте зворотну функцію, напишіть у полі команд
У текстовому вікні потрібно побачити букву Z.
Ваша мета при виконанні першої частини лабораторної роботи – отримати та помістити до звіту десяткові коди для всіх текстових символів.
1. Отримайте код першої літери вашого імені. З'ясуйте, який символ відповідає коду 63.
2. Напишіть програму, яка виводить на екран усі десяткові коди та відповідні символи.
Не забудьте, що код першого текстового символу – 32.
Підказки щодо програмування на Логотип (до пункту 2)
- Напишіть програму для виведення на екран натуральних чисел від 32 до255.
- Додайте після виведення числа вивід відповідного символу (PRINT CHAR: N).
- Потім змініть програму так, щоб усі символи та їх коди компактно вміщалися у текстовому вікні (замініть команди PRINT на команди INSERT ).
- Додайте пробіли ( INSERT CHAR 32 ) та/або інші розділові знаки, щоб зручніше було знаходити символи та їх коди.
3. Відкрийте новий документ MS Word. На цей лист ви будете надалі поміщати результати виконання завдань. На момент завершення лабораторної роботи цей документ має перетворитися на акуратно оформлений звіт. До кожного пункту лабораторної роботи розміщуйте формулювання завдання (або заголовок), отриманий вами результат та короткий опис того, як ви цей результат отримали (проміжні розрахунки, текст програми тощо).
Вставте у звіт отриману послідовність пар - всіх текстових символів та їх кодів.
4. Покладіть таблицю у звіт. У осередки першого стовпця внесіть літери вашого прізвища. У другий стовпець впишіть коди літер прізвища, ви знайдете їх у отриманої вами послідовності пар символів та його кодів. Перша літера має бути великою, інші — малі.
У третьому стовпці запишіть двійкові коди літер — переведіть десяткові числа до двійкової системи числення. Не забудьте додати, де треба, незначні нулі – двійковий код будь-якого символу має складатися з восьми біт.
У четвертому стовпчику запишіть шістнадцяткові коди букв (переведіть номери букв у шістнадцяткову систему).
ІІ. Отримання шістнадцяткової кодової таблиці для Windows
Отриманий вами в першій частині результат - послідовність (довгий рядок) пар "символ-код". Для кодування (або розкодування) значно зручніше скористатися таблицями. Згадайте, наприклад,як вказують потрібну клітинку у грі “Морський бій” (таблиця 10 ґ 10) або на шахівниці (таблиця 8 ґ 8).
Ваше завдання у другій частині лабораторної роботи – отримати впорядковану таблицю символів, розміщених у рядки по 16 символів у кожному рядку.
Така таблиця дасть можливість швидко, без розрахунків дізнаватися шістнадцятковий код будь-якого текстового символу.
1. Відкрийте файл Логосвітів. Напишіть процедуру, яка виводить у рядок 16 символів з пробілами між ними. Код першого символу – 80, другого – 81, третього – 82 тощо. Потрібні лише символи, без кодів!
2. Змініть отриману процедуру так, щоб вона друкувала рядок із 16 символів, починаючи з будь-якого заданого номера (коду). Це має бути процедура з параметром (кодом першого символу).
3. Напишіть процедуру, яка виводить усі символи по порядку рядками по 16 символів у кожній. Не забудьте, що код першого текстового символу — 32, а попередні коди, з 0 по 31, зайняті спецсимволами. Ваша процедура повинна використовувати процедуру з попереднього завдання як допоміжну.
Підказки з програмування на Логотип (до пункту 3)
Один із варіантів програми.
Спочатку треба завести змінну (для коду) і надати їй початкове значення - 32. Нехай ім'я змінної -N.
Потім повторити 14 разів три наступні дії:
- виклик процедури друку рядка з параметромN;
- Збільшення параметра на 16.
Команда для переведення курсору на наступний рядок PR [] (надрукувати порожній рядок).
Якщо серед отриманих у текстовому вікні символів ви не бачите українських літер, то виділіть весь текст, відкрийте менюТекст/Шрифт, у вікніНабір символіввиберіть рядокКирилиця.
Якщо такого рядка немає, то цьому шрифті немає кирилиць і його треба поміняти.
Порада: встановіть будь-якиймоношириннийшрифт, наприклад, “Courier” (у моноширинних гарнітурах зображення всіх знаків мають одну й ту саму ширину).
Перевірте результат: перший символ в останньому рядку - буква "р".
Не забувайте поміщати програми у звіт!
4. Виділіть ваші результати, 14 рядків по 16 символів у кожному (весь текст у текстовому вікні), та скопіюйте у звіт.
Примітка. Іноді при перенесенні тексту через буфер обміну із середовища ЛогоСвіту у MS Word відбувається збій. У цьому випадку використовуйте додатковий "ступінь": перенесіть спочатку в Блокнот, а з нього вже в MS Word.
5. Тепер потрібно помістити текстові символи в таблицю, кожен символ - в окрему комірку. Як? Невже переносити всі символи по одному? Ні, MS Word вміє автоматично перетворювати текст на таблицю (і навпаки) за потреби. Іноді це дуже корисно.
Потрібно лише коректно вказати, за якими ознаками відокремлювати рядок від рядка, стовпець від стовпця.
Виділіть перенесені 14 рядків і в менюТаблицявиберітьПеретворити в таблицю. У діалоговому вікні в полі вибору роздільника увімкніть кнопкуІнші, а в вікно, що знаходиться поруч, внесіть пробіл. Після цього MS Word вважатиме прогалину роздільником між осередками (стовпцями).
У таблиці виявиться один зайвий осередок (верхній лівий, там, де символ "пробіл") і два зайві стовпці. Видаліть їх (пункт менюТаблиця, командаВидалити.).
Перевірте отриману таблицю. У ній має бути 16 стовпців, 14 рядків. Перший рядок повинен починатися з пробілу, а останній з літери “р” (української).
6. Додайте до таблиці рядок та стовпець та впишіть шістнадцяткові номери стовпців та рядків.
Ви отримали кодову таблицю CP 1251. Перевірте її за кодами букв “Z” та “z” (див. таблицю перед першим завданням).
7. Покладіть таблицю з трьох стовпців у звіт. До осередків першого стовпця занесіть літери свого імені (українські). Перша літера — велика, решта — малі.
Визначте за отриманою кодовою таблицею та запишіть у другий стовпець шістнадцяткові коди букв.
Жодні обчислення тепер вам робити не доводиться.
8. Вміст будь-якого файлу - не тільки текстового, але і з графікою, звуком, числовими даними, файлів-програм - це завжди найдовший ланцюжок нулів і одиниць. Для людського сприйняття двійковий код – дуже незручна форма запису. Тому в "комп'ютерному світі" широко використовуються два способи більш придатного для людини уявлення двійкового коду. Перший - переведення двійкового коду в шістнадцятковий (HEX-код).
Отриманий вами за таблицею шістнадцятковий код — це скорочений запис двійкового коду. Двійковий код можна швидко одержати, записавши кожну шістнадцяткову цифру чотирма двійковими. Запишіть у комірки третього стовпця двійкові коди букв.
Жодних обчислень, тільки підстановки. Швидкий переведення двійкового числа в шістнадцяткове широко використовується для компактного запису будь-якого двійкового коду. Адже запис виходить у чотири рази коротшим!
ІІІ. Перегляд кодів у файловому менеджері Far
У цій частині лабораторної роботи ви перевірите результати, отримані у першій та другій частинах.
Підрахуйте, скільки символів у тексті та який має бути розмір файлу.
Якщо ви побачите приблизно таку картину, змініть кодування (натисніть клавішу F8).
Зробіть знімок частиниекрану з кодом, розмістіть у звіті. Запишіть скільки байт ви бачите на знімку. Порівняйте код із результатами в таблицях.
3. Розшифруйте двійковий код (слово):
Запишіть двійковий код слова шістнадцятковими знаками. Розшифруйте за таблицею.
Перегляньте HEX-код файлу в Far. Покладіть знімок у звіт. Порівняйте з отриманим кодом.
4. Знайдіть на доступних вам дисках три файли: графічний (із зображенням), звуковий та файл із програмою (у нього має бути розширення EXE). Перегляньте HEX-коди файлів у Far. Покладіть знімки першого рядка коду кожного файлу у звіт. Під знімками напишіть перші 4 байти кожного файлу в двійковому коді.
Який висновок ви можете зробити?
Приклад оформленого звіту.
Звіт з лабораторної роботи
Кодування тексту. Коди символи. Таблиці кодування
I. Отримання десяткових кодів всім символів
1. Код першої літери мого імені (С) - 209. Коду 63 відповідає знак "?" (знак запитання).
2. Програма, що виводить на екран усі десяткові коди та відповідні символи. Рішення:
repeat 224 [insert :z insert
insert char 32 make "z:z + 1]
3. Результат виконання програми - послідовність пар код-символ:
32-33-! 34-» 35-# 36-$ 37-% 38-& 39-' 40-( 41-) 42-* 43-+ 44-, 45-- 46-. 47-/ 48-0 49-1 50-2 51-3 52-4 53-5 54-6 55-7 56-8 57-9 58-: 59-; 60-63-? 64-@ 65-A 66-B 67-C 68-D 69-E 70-F 71-G 72-H 73-I 74-J 75-K 76-L 77-M 78-N 79-O 80- P 81-Q 82-R 83-S 84-T 85-U 86-V 87-W 88-X 89-Y 90-Z 91-[ 92-\ 93-] 94-^ 95-_ 96-` 97 -a 98-b 99-c 100-d 101-e 102-f 103-g 104-h 105-i 106-j 107-k 108-l 109-m 110-n 111-o 112-p 113-q 114-r 115-s 116-t 117-u 118-v 119-w 120-x 121-y 122-z 123- < 124-125-126-
4. Таблиця з літерами такодами мого прізвища.