Главная страница
Навигация по странице:

  • Идея курса

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

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

  • Тема Теория Практика

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

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

  • Элективный курс профильный Побитное кодирование информации. Элективный курс для профильной подготовки учеников 1111 классов Побитное кодирование информации


    Скачать 92.5 Kb.
    НазваниеЭлективный курс для профильной подготовки учеников 1111 классов Побитное кодирование информации
    АнкорЭлективный курс профильный Побитное кодирование информации
    Дата27.03.2022
    Размер92.5 Kb.
    Формат файлаdoc
    Имя файлаЭлективный курс профильный Побитное кодирование информации.doc
    ТипЭлективный курс
    #419620

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

    для профильной подготовки учеников 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



    написать администратору сайта