Пояснительная записка Творческое название: Программировать интересно! Количество часов на курс: 16



Скачать 119.37 Kb.
Дата11.07.2014
Размер119.37 Kb.
ТипПояснительная записка
«Побитное кодирование информации»

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

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

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

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

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

Ножкин Алексей Юрьевич
Пояснительная записка

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

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

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



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

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

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

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

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

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

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


  1. Коды ASCII

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

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

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

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


Примечание.

В элективном курсе учитывается ситуация, что учащиеся знают основные алгоритмические структуры и основы языка Паскаль.

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


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

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



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

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

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

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


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



Тема

Теория

Практика

  1. 1

Коды ASCII

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

1

2



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

1

2



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




2



Мышь

1

2



Модуль мыши




2



Пиктограмма

1

2



ИТОГО

4

12

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

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

Как кодируются знаки письменности в таблице 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. Определить, в каких битах двоичного представления различаются

буквы русского алфавита.

Регистр латинских букв
Преобразуем прописные латинские буквы в строчные и обратно путем

инвертирования 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. Андреева Е., Фалина И. Информатика: Системы счисления и компьютерная арифметика. М.: Лаборатория базовых знаний, 1999. – 256 с.

  2. Бауэр Ф.Л., Гооз Г. Информатика. Вводный курс: В 2-х ч. Ч.1. Пер. с нем. – М.: Мир, 1990.

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

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

Приложение




Таблица кодовASSCII

Похожие:

Пояснительная записка Творческое название: Программировать интересно! Количество часов на курс: 16 iconПояснительная записка Творческое название: Программировать интересно! Количество часов на курс: 16
Сурчалова Лариса Владимировна, учитель информатики моу «лпн», Ножкин Алексей Юрьевич, к п н., доцент кафедры информатики гоу дпо...
Пояснительная записка Творческое название: Программировать интересно! Количество часов на курс: 16 iconПояснительная записка количество недельных часов 2 Количество часов в год
Изучение математики в старшей школе на базовом уровне направлено на достижение следующих целей
Пояснительная записка Творческое название: Программировать интересно! Количество часов на курс: 16 iconПояснительная записка. Курс предназначен для предпрофильной подготовки учащихся 9-х классов
Тема курса «Величие графиков уравнений с модулями». В основной школе на изучение данной темы отводится незначительное количество...
Пояснительная записка Творческое название: Программировать интересно! Количество часов на курс: 16 iconПояснительная записка требования к уровню подготовки воспитанников
Охватывает 4 блока: шахматная доска, шахматные фигуры, начальная расстановка фигур, ходы и взятие фигур. Каждый блок рассчитан на...
Пояснительная записка Творческое название: Программировать интересно! Количество часов на курс: 16 iconПояснительная записка Курс «Строение молекул с основами квантовой химии»
Курс «Строение молекул с основами квантовой химии» преподается в течение 10 семестра, предназначен для магистрантов, обучающихся...
Пояснительная записка Творческое название: Программировать интересно! Количество часов на курс: 16 iconПояснительная записка Курс рассчитан на 17 часов
Для успешного решения геометрических задач необходимо свободно владеть всем теоретическим материалом. Но и при хорошем знании теории...
Пояснительная записка Творческое название: Программировать интересно! Количество часов на курс: 16 iconПояснительная записка Курс «Отечественная история»

Пояснительная записка Творческое название: Программировать интересно! Количество часов на курс: 16 iconПояснительная записка к курсу «Математика»
Рабочая программа учителя по курсу математики для учащихся 2-го класса рассчитана на 170 часов (5 часов в неделю, 34 учебные недели)...
Пояснительная записка Творческое название: Программировать интересно! Количество часов на курс: 16 iconПояснительная записка Посылаем материал на конкурс "Дистанционный урок"
...
Пояснительная записка Творческое название: Программировать интересно! Количество часов на курс: 16 iconПояснительная записка. Курс «Птицы мира» и«Моделирование планеров»

Разместите кнопку на своём сайте:
ru.convdocs.org


База данных защищена авторским правом ©ru.convdocs.org 2016
обратиться к администрации
ru.convdocs.org