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

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



Смотрите также:
Пояснительная записка Количество учебных часов: 68 ч. Образовательная область: информатика...
Элективный курс «технология создания сайтов» Пояснительная записка Количество учебных часов: 17...
Пояснительная записка Целью курса «Информационные технологии в науке и образовании»...
Пояснительная записка. Образовательная область, в которую входит предмет «Естествознание»...
Пояснительная записка информатика наука о закономерностях протекания информационных процессов в...
Название Предмет Направление...
Программа вступительного испытания по предмету «Информационные технологии»...
Курс «Информатика...
Пояснительная записка Классы: 10, 11 Количество часов в неделю...
Курс повышения квалификации: «методические основы обучения информатике в средней школе...
Рабочая программа по дисциплине «Компьютерные информационные технологии в документационном...
Программа курса «Информатика и икт» (базовый уровень) для 10-11 классов...



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

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






Скачать 140,21 Kb.
оставить комментарий
Дата30.09.2011
Размер140,21 Kb.
ТипПояснительная записка, Образовательные материалы
Добавить документ в свой блог или на сайт

плохо
  1
Ваша оценка:
Разместите кнопку на своём сайте или блоге:
rudocs.exdat.com

Загрузка...
База данных защищена авторским правом ©exdat 2000-2017
При копировании материала укажите ссылку
обратиться к администрации
Анализ
Справочники
Сценарии
Рефераты
Курсовые работы
Авторефераты
Программы
Методички
Документы
Понятия

опубликовать
Документы

наверх