Главная / Информатика / Элективный курс «Побитное кодирование информации» профильная подготовка учеников 10-11 классов

Элективный курс «Побитное кодирование информации» профильная подготовка учеников 10-11 классов

Название документа Сурчалова.doc

Элективный курс

для профильной подготовки учеников 11—11 классов

«Побитное кодирование информации»

г. Саратов, 2010 г.

Сурчалова Лариса Владимировна,

учитель информатики МОУ «ЛПН»,

к.п.н., доцент кафедры

информатики СарИПКиПРО

Ножкин Алексей Юрьевич


Пояснительная записка

Творческое название: Программировать интересно!

Количество часов на курс:16

Образовательная область: Информатика и информационные технологии



Тип курса: профильный, предметно-ориентированный курс, направленный на развитие содержания предмета «Информационные технологии» Курс рассчитан на профильное образование в школах, лицеях, гимназиях по информатике и информационным технологиям в 10 11 классах

Идея курса: привить интерес к программированию, научить понимать, как кодируются двоичное представления чисел, символов, пиктограмм, как работает мышь.

Обоснованность курса заключается в том, что умение программировать на хотя бы одном алгоритмическом языке позволяет осваивать самостоятельно любые языки программирования, что готовит учащихся к профессиональной деятельности в информационном обществе. Кроме того, подобные задачи встречаются на олимпиадах по информатике, а умение работать с одним устройством (мышь), поможет понять работу с другими внешними устройствами. Построение пиктограммы позволяет акцентировать знания машинных систем счисления и Алгебры логики.

Особенностью курса является наличие большого количества очень интересных, специально подобранных задач, ранее не рассмотренных в учебной литературе

Состав учебно-методического комплекта

Учебно-методический комплект по Элективному курсу для профильной подготовки учеников 10—11 классов «Побитное кодирование информации» включает в себя учебное пособие (теоретически материал и задания для самостоятельной работы), презентации для лекций, дополнительную литературу. Задания в учебно-методическом комплекте разной сложности, что делает возможным личностно-ориентированный подход к учащимся. Ко всем заданиям даны подробные пояснения.

Текущий контроль усвоения материала можно осуществить по результатам выполнения заданий, а итоговый контроль - по выполнению творческого задания и его защиты. Организация учебного процесса реализуется в виде уроков, большая часть из которых в виде практических работ на компьютере на алгоритмическом языке Паскаль.


Программа курса


  1. Коды ASCII

  2. Регистры букв. Шифрование.

  3. Битовое представление информации и логические операции.

  4. Программирование арифметических действий.

  5. Мышь. Модуль мыши. Пиктограмма

  6. Программирование событий


Примечание

В элективном курсе учитывается ситуация, что учащиеся знают основные алгоритмические структуры и основы языка Паскаль. Курс «Побитное кодирование информации» позволяет глубоко понять основы машинного кодирования для разных видов информации. Поэтому изучение элективного курса в концентрическом аспекте делает возможным успешное усвоение языков программирования.


Требования к знаниям учащихся

После изучения курса учащиеся должны уметь:

  • Выполнять побитную обработку информации.

  • Кодировать пиктограммы машинных системах счисления.

  • Решать задачи шифрования с применением операций Алгебры логики.

  • Работать с модулем мыши, программировать её события.


Тематическое планирование курса

Тема

Теория

Практика

  1. 1

Коды ASCII

Регистры букв

1

2

Битовое представление информации и логические операции. Шифрование

1

2

Программирование арифметических действий


2

Мышь

1

2

Модуль мыши

1

2

Программирование событий

1

4

Пиктограмма

1

2

ИТОГО

6

16

Побитное кодирование информации



Многие сложные вопросы кодирования информации легко понять, решая задачи.

Как кодируются знаки письменности в таблице ASCII и почему любой текст можно представить в виде наборов из 0 и 1?

Чем отличаются при кодировании прописные и строчные буквы?

Зачем нужны логические операции, и какие задачи можно решить с их помощью?

Каким образом зашифровать информацию?

Как получить двоичный код целого числа самым коротким способом?

Почему курсор мыши разный и как его изменить?

В задачах, представленные ниже, можно концентрически рассмотреть при темы «Кодирование информации», «Строки», «Системы счисления», «Графика».


Коды ASCII


Задача 1. Распечатаем таблицу кодов ASCII, исключая управляющие символы с кодами

7-10 и 13. Например, в этой таблице шестнадцатиричный код символа 'N' - 4E,

а 'я' - EF.


Решение задачи

program ascii;

var i,j:integer; {параметры цикла}

const stroka:string='0123456789ABCDEF'; {цифры шестнадцатиричной системы}

begin

write('':1);

for i:=1 to length(stroka) do write(stroka[i]:3);{номера столбцов}

for i:=0 to 15 do

begin

writeln;

write (stroka[i+1]); {номера строк}

for j:=0 to 15 do

if (i*16+j<>10) and (i*16+j<>13) and (i*16+j<>9)

and (i*16+j<>8) and (i*16+j<>7)

{исключяем управляющие символы}

then write(chr(i*16+j):3)

else write(' ')

end;

end

Задания для самостоятельной работы:

1. Закодировать свое имя в шестнадцатиричном и двоичном коде.

2. Определить двоичный код латинских букв 'D','d','E','e'.

3. Определить, в каком бите двоичного представления различаются

заглавные и строчные буквы латинского алфавита.

4. Определить, в каких битах двоичного представления различаются буквы русского алфавита.

.5. Вывести таблицу кодов с 16-ричной нумерацией строк и столбцов


Регистр латинских букв


Преобразуем прописные латинские буквы в строчные и обратно путем инвертирования 6-го бита в ASCII-коде буквы.

В данной программе применяется операция XOR, поэтому приведем таблицу истинности, из которой видно, что единицей бит инвертируется:

(i XOR 1) = NOT (i),

а двукратное преобразование бита единицей возвращает его в исходное значение.


A B A XOR B (A XOR B) XOR B

0 0 0 0

0 1 1 0

1 0 1 1

1 1 0 1


Напомним что, 2^n=exp(n*ln(2)), а в двоичном представлении - одна единица и n нулей, например 32=2^5=100000. Биты в байте нумеруются справа налево от 0 до 7, например, двоичный код буквы N в таблице ASCII:


0 1 0 0 1 1 1 0 двоичный код буквы N

7 6 5 4 3 2 1 0 нумерация битов в байте



Решение задачи


program registr;

var s:string;

c:char;

i,j:integer;

{функция инвертирования n-го бита в байте ASCII-кода буквы}

function caps(c:char;n:integer):char;

begin

caps:= chr(ord(c) xor round(exp(n*ln(2))) );

end;

begin

writeln('введите строку');

readln(s);

for i:=1 to length(s) do {цикл замены регистра всех букв в строке}

s[i]:=caps(s[i],5);

writeln(s);

end.


Результат исполнения


Question

qUESTION


Задание для самостоятельной работы:

5. Рассмотреть инвертирование 0-го бита в символах 'B' и 'C' таблицы ASCII.

6. Рассмотреть инвертирование 0-го бита в символах 'Ж' и 'З' таблицы ASCII.


Шифрование


В предыдущей задаче инвертировался один шестой бит, а здесь мы рассмотрим

шифрование строки путем инвертирования k младших битов в ASCII-коде символа.


Решение задачи


program code_k;

const k=4;

var s:string;

c:char;

i,j:integer;

{функция инвертирования n-го бита в байте ASCII-кода буквы}

function caps(c:char;n:integer):char;

begin

caps:= chr(ord(c) xor round(exp(n*ln(2))));

end;

begin

writeln('введите строку');

readln(s);

for j:=0 to k do {инвертирование j-го бита}

begin

for i:=1 to length(s) do {изменение каждого символа в строке}

s[i]:=caps(s[i],j);

writeln(s);

end;

for j:=k downto 0 do {инвертирование j-го бита}

begin

writeln(s);

for i:=1 to length(s) do {изменение каждого символа в строке}

s[i]:=caps(s[i],j);

end;

writeln(s);

end.


Результат исполнения


введите строку

Question { исходная строка }

Ptdruhno { инвертируется 0-й бит }

Rvfpwjlm { инвертируется 1-й бит }

Vrbtsnhi { инвертируется 2-й бит }

^zj|{f`a { инвертируется 3-й бит }

Njzlkvpq { инвертируется 4-й бит }

Njzlkvpq { результат }

^zj|{f`a { инвертируется 4-й бит }

Vrbtsnhi { инвертируется 3-й бит }

Rvfpwjlm { инвертируется 2-й бит }

Ptdruhno { инвертируется 1-й бит }

Question { инвертируется 0-й бит }


Операции сдвига


Программа демонстрирует действие функции «SHL - сдвиг влево» на i позиций, что

соответствует умножению на 2^i и «SHR - сдвиг вправо» на i позиций, что соответствует целочисленному делению на 2^i.


Решение задачи


program shr_shl;

var i:byte;

begin

for i:=0 to 5 do

writeln(i,34:3,34 shl i:5,34 shr i:5);

end.


Результат исполнения для числа 34


I 34 shl shr


0 34 34 34

1 34 68 17

2 34 136 8

3 34 272 4

4 34 544 2

5 34 1088 1


Задание для самостоятельной работы:

7. Составить программу, которая демонстрирует действия логических операций

AND, OR, XOR, NOT над целыми числами.

8. Получить результат действия логических функций над целыми числами 17 и 16

в двоичном представлении и объяснить результат.



Двоичное умножение


В программе демонстрируется умножение десятичных чисел типа байт без

применения операции умножения.


Решение задачи


program mult1;

var b1,b2:byte;

w1:word;

i:integer;

begin

writeln('введите числа меньшие 256');

readln(b1,b2);

w1:=0;

for i:= 0 to 7 do

if ((b2 and (1 shl i))<>0) then

{провека i-го бита сомножителя на равенство единице}

w1:=w1+(b1 shl i);{прибавляем к сумме множимое, увеличенное в 2^i раз}

writeln(w1);

end.



Результат исполнения


45

2

90


Задание для самостоятельной работы:

9. Выполнить умножение столбиком для чисел 45 и 2 в двоичном представлении.

Что проще: умножить 45 на 2 или 2 на 45?

10. Как перевести целое число в двоичное с помощью логических операций?


Умножение столбиком


Умножение десятичных чисел типа байт без применения операции умножения c

демонстрацией двоичных кодов.


Решение задачи


program mult2;

var b1,b2:byte;

w1:word;

i,j:integer;

procedure binprint(b:word;d:byte);{вывод числа в двоичном формате}

var i:integer;

begin

for i:=d-1 downto 0 do

if (b and (1 shl i))<>0 then write('1') else write('0');

writeln;

end;

begin

write('введите множимое b1=');readln(b1);

write('введите множитель b2=');readln(b2);

w1:=0;

write('':8);

binprint(b1,8); {вывод множимого в двоичном формате}

write('':8);

binprint(b2,8); {вывод множителя в двоичном формате}

write('':8);

writeln('--------'); {подведем черту для умножения столбиком}

for i:= 0 to 7 do {цикл по каждому биту множителя}

begin

if ((b2 and (1 shl i))<>0) then

begin

w1:=w1+(b1 shl i); {формируем произведение}

for j:=1 to 8-i do write(' ');

binprint(b1,8);

{очередное слагаемое, из которого составлено произведение}

end;

end;

writeln('----------------');

binprint(w1,16); {результат в двоичном формате}

writeln(w1); {результат в десятичном формате}

end.


Результат исполнения


введите множимое b1=13

введите множитель b2=5

00001101 13

00000101 5

--------

00001101 13*1=13

00001101 13*4=42

----------------

0000000001000001 65



"Мышь"


Программа прорисовывает побитно закодированную пиктограмму с курсором мыши

16х16 пикселей и управляет его перемещением. В программе применяется модуль

мыши, описанный ниже.


Решение задачи


program mouse;

uses mouse_n,graph;

{шестнадцатеричный код пиктограммы}

const a:array [1..16]of word=(0,$0180,$018,$1A58,$2424,$2424,$1A58,

$0240,$0420,$0420,$0810,$0810,$0810,$0660,$0188,$00f0);

var

b,x,y:word;

i,j,grDriver,grMode,ErrCode: Integer;

function point (x,y:integer):word;

begin

if getpixel(x,y)=0 then point:=1 { если цвет точки - черный то 1 }

else point:=0; { иначе 0 }

end;

procedure draw_mice(x,y:word); { рисует по пикселам курсор мыши}

begin { без следа }

for i:=1 to 16 do

for j:=1 to 16 do

begin

if (a[i]shr (j-1) and point(j+x,i+y))=1 then putpixel(j+x,i+y,5)

else putpixel(j+x,i+y,0);

end;

end;

begin

grDriver := Detect;

InitGraph(grDriver, grMode,'');

ErrCode := GraphResult;

if ErrCode = grOk then

begin

resetmouse(b); { инициализируем мышь }

b:=0;

x:=320; { центр экрана}

y:=240;

while b<>1 do { пока не нажата левая кнопка мыши }

begin

draw_mice(x,y); { нарисовать курсор мыши }

delay(20);

draw_mice(x,y); { стереть курсор мыши (нарисовать черным цветом)}

mousestate(x,y,b); { возвращает состояние мыши }

end;

end

else

Writeln('Graphics error:', GraphErrorMsg(ErrCode));

end.


Задание для самостоятельной работы:


11. Изменить цвет фона в программе.

12. Изменить программу так, чтобы мышь оставляла след.

13. Закодировать пиктограмму для курсора мыши.



Модуль функций мыши


В данном модуле запрограммированы две функции мыши, которые используются в предыдущей задаче .


Решение задачи


unit mouse_n;


interface


procedure mousestate(var x,y,b:word); {положение курсора на экране}

procedure resetmouse(var result:word); {инициализация мыши}


implementation


procedure mousestate(var x,y,b:word);

{x,y - координаты, b - состояние кнопок мыши}

var x1,y1,b1:word;

begin

asm

mov ax,3 {в регистр ax помещаем номер функции драйвера мыши}

int 33h {передача управления драйверу мыши}

mov x1,cx {получение координат и состояние мыши}

mov y1,dx

mov b1,bx

end;

x:=x1;y:=y1;b:=b1;

end;


procedure resetmouse(var result:word);

var result1:word;

begin

asm

xor ax,ax {обнуляем регистр ax}

int 33h {передача управления драйверу мыши}

mov Result1,ax {результат инициализации}

end;

result:=result1;

end;


end.


Пиктограмма


С помощью 0 и 1 нарисуем картинку 16х16 знаков и закодируем пиктограмму в шестнадцатиричном коде, каждой тетраде двоичных цифр ставя в соответствие шестнадцатиричную цифру.



Решение задачи


0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 $0000

0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 $0180

0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 $0180

0 0 0 1 1 0 1 0 0 1 0 1 1 0 0 0 $1A58

0 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 $2424

0 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 $2424

0 0 0 1 1 0 1 0 0 1 0 1 1 0 0 0 $1A58

0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 $0420

0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 $0420

0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 $0810

0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 $0810

0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 $0810

0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 $0660

0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 $0188

0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 $00F0


Варианты творческих работ

  1. Составить набор двоичных и шестнадцатеричных чисел для пиктограммы 16x16 в виде некоторой буквы .

  2. Составить набор двоичных и шестнадцатеричных чисел для пиктограммы 16x16 в виде рисунка.

  3. С помощью мыши построить простейшие графические примитивы: (линия, прямоугольник), то есть построить простейший графический редактор.

ЛИТЕРАТУРА

  1. Шауцукова Л.З. Информатика: 3-е изд. – М. Просвещение, 2003.

  2. Игошин В.И. Математическая логика и теория алгоритмов.-Саратов: Изд-во Сарат. ун-та, 1991


Приложение



Таблица кодовA SSCII







hello_html_cda819c.png

Название документа автор.doc

    • ФИО полностью полностью  Сурчалова Лариса Владимировна

    • должность учитель информитики

    • квалификациионная категория высшая

    • место работы (образовательное учреждение), МОУ «Лицей прикладных наук»

    • Республика/край, город/поселение, г. Саратов

    • контактный для пользователей e-mail, surchalovalv@mail.ru

адрес сайта личного или сайта ОУ (если есть),

    • тема урока, Элективный курс «Побитное кодирование информации»

    • предмет, Информатика

    • класс/группа, 9-11

    • использованные источники и литература   Шауцукова Л.З. Информатика: 3-е изд. - М. Просвещение, 2003.

    • ключевые слова или опорные понятия через запятую,  информатика, кодирование, программирование, логические операции

    • ФИО полностью полностью  Ножкин Алексей Юрьевич

    • должность программист

    • квалификациионная категория нет

    • место работы (образовательное учреждение),

    • Республика/край, город/поселение, г. Саратов

    • контактный для пользователей e-mail, surchalovalv@mail.ru

  •  адрес сайта личного или сайта ОУ (если есть),

    • тема урока, Элективный курс «Побитное кодирование информации»

    • предмет, Информатика

    • класс/группа, 9-11

    • использованные источники и литература   Шауцукова Л.З. Информатика: 3-е изд. - М. Просвещение, 2003.

    • ключевые слова или опорные понятия через запятую,  информатика, кодирование, программирование, логические операции


Элективный курс «Побитное кодирование информации» профильная подготовка учеников 10-11 классов
  • Информатика
Описание:

Пояснительная записка

Творческое название: Программировать интересно!
Количество часов на курс:16
Образовательная область: Информатика и информационные технологии

Тип курса: профильный, предметно-ориентированный курс, направленный на развитие содержания предмета «Информационные технологии» Курс рассчитан на  профильное образование в школах, лицеях, гимназиях по информатике и информационным технологиям  в 10-11 классах.
Идея курса: привить интерес к программированию, научить понимать, как кодируются двоичное представления чисел, символов, пиктограмм, как работает мышь.
Обоснованность курса заключается в том, что умение программировать на хотя бы одном алгоритмическом языке позволяет осваивать самостоятельно любые языки программирования, что готовит учащихся к профессиональной деятельности в информационном обществе. Кроме того, подобные задачи  встречаются на олимпиадах по информатике, а умение работать с одним устройством (мышь), поможет понять работу с другими внешними устройствами. Построение пиктограммы позволяет акцентировать знания машинных систем счисления и Алгебры логики.
Особенностью курса является  наличие большого количества очень интересных, специально подобранных задач, ранее не рассмотренных в учебной литературе
Состав учебно-методического комплекта
Учебно-методический  комплект по Элективному курсу для профильной подготовки учеников 10—11 классов «Побитное кодирование информации» включает в себя учебное пособие (теоретически материал и задания для самостоятельной работы), презентации для лекций, дополнительную литературу. Задания в учебно-методическом  комплекте разной сложности, что делает возможным личностно-ориентированный подход к учащимся. Ко всем заданиям даны подробные пояснения.
Текущий контроль усвоения материала можно осуществить по результатам выполнения заданий, а итоговый контроль - по выполнению творческого задания и его защиты. Организация учебного процесса реализуется в виде уроков, большая часть из которых в виде практических работ на компьютере на алгоритмическом языке Паскаль.

Программа курса

  • ASCII
  • Регистры букв. Шифрование
  • Битовое представление информации и логические операции
  • Программирование арифметических действий
  • Мышь. Модуль мыши. Пиктограмма
  • Программирование событий

Примечание
В элективном курсе учитывается ситуация, что учащиеся знают  основные алгоритмические структуры и основы языка Паскаль.  Курс «Побитное кодирование информации» позволяет глубоко понять основы машинного кодирования для разных видов  информации. Поэтому изучение элективного курса  в концентрическом аспекте делает возможным успешное усвоение языков программирования.

Требования к знаниям учащихся
После изучения курса учащиеся должны уметь:

  • Выполнять побитную обработку информации.
  • Кодировать пиктограммы машинных системах счисления.
  • Решать задачи шифрования с применением операций Алгебры логики.
  • Работать с модулем мыши, программировать её события.

Тематическое планирование курса

Тема

Теория

Практика

1

ASCII

1

2

2

Битовое представление информации и логические операции. Шифрование

1

2

3

Программирование арифметических действий

 

2

4

Мышь

1

2

5

Модуль мыши

1

2

6

Программирование событий

1

4

7

Пиктограмма

1

2

 

ИТОГО

6

16

Автор Сурчалова Лариса Владимировна
Дата добавления 11.02.2011
Раздел Информатика
Подраздел
Просмотров 1383
Номер материала 43
Скачать свидетельство о публикации

Оставьте свой комментарий:

Введите символы, которые изображены на картинке:

Получить новый код
* Обязательные для заполнения.


Комментарии:

↓ Показать еще коментарии ↓