Системы счисления, кодирование

advertisement
И.Сильванович
МОДЕЛИРОВАНИЕ.
СИСТЕМЫ СЧИСЛЕНИЯ.
ОСНОВЫ ФОРМАЛЬНОЙ ЛОГИКИ
ПРЕДСТАВЛЕНИЕ ИНФОРМАЦИИ.
1. Основы моделирования
Модель - это отражение наиболее важных свойств и отношений явлений, объектов или
процессов. Модель – как правило искусственно созданный объект в виде схем,
математических формул, физической конструкции, наборов данных и алгоритмов их
обработки и т.п. Например: рисунок - модель внешнего вида объекта, чертёж или схема модель его внутреннего устройства. Исследуемый объект, по отношению к которому
изготавливается модель, называется оригиналом, образцом, прототипом. Моделирование
является важнейшим средством при исследовании различных объектов. Модель замещает в
процессе изучения оригинал, сохраняя те его черты, которые существенны для целей
исследования. Модель обладает свойствами, характеризующими её – адекватность (степень
соответствия модели объекту), подробность, ценность.
В моделировании принято различать статические и динамические объекты и модели.
Объект относят к статическим или динамическим в зависимости от того, изменяется ли он во
времени или нет.
Существует 4 вида модельных представлений:
1. Словесная (описательная) модель - в виде набора предложений. Например:
расписание уроков – словесная модель учебного процесса в школе.
2. Натурная модель – макет, физическая модель и т.п. Например: теллурий – натурная
модель системы «Земля – Солнце».
3. Графическая модель – в виде чертежей, рисунков.
4. Знаковая (математическая) модель – формулы, таблицы, графики. Например:
математическая модель 2-го закона Ньютона - F=m*a
Информационные модели так же относятся к знаковым моделям. В информатике
информационной моделью называют набор величин, содержащий необходимую информацию
об объектах, процессах, ситуациях и т.п. Информационная модель содержит не всю
информацию об объекте, а только ту, которая нужна для решения рассматриваемых задач.
Примером информационной модели может служить компьютерная база данных.
2. Этапы решения задачи на компьютере. Формализация
Решение любой задачи на компьютере включает в себя следующие этапы:
1. Математическая (формальная) постановка задачи.
Решение любой задачи начинается с анализа её условий. Результатом анализа должна
стать формальная постановка задачи, в которой даны ответы на вопросы: Что дано? Что
требуется? Какие исходные данные допустимы? Какие результаты могут считаться
И.Сильванович “Моделирование. Представление информации. Системы счисления и основы формальной логики”.
2
правильными? и представленная в математическом виде связь между итоговыми и
исходными данными (в виде формул или систем уравнений).
В качестве примера рассмотрим этапы решения на компьютере квадратного уравнения
вида ax2+bx+c=0. Исходными данными являются коэффициенты а, в и с, причём а не может
быть равно нулю; итоговые данные – корни х1 и х2,, они могут иметь любые значения.
2. Определение способа решения задачи.
Вначале мы подсчитаем дискриминант d по формуле b2-4ac. Если он окажется
отрицательным, то уравнение корней не имеет. Если дискриминант – неотрицательное
число, то корни подсчитываются как
3. Определение порядка работы с компьютером. Необходимо продумать порядок ввода в
компьютер исходных данных, форму представления итоговых результатов, реакцию
компьютера на вводимые данные, графику и звуковое сопровождение. В программировании
это называется “создание программного интерфейса”.
Значения коэффициентов будем вводить с клавиатуры; следует предусмотреть вариант,
когда значение коэффициента а окажется равным нулю. Значение корней выведем на экран.
4. Конструирование алгоритма по выбранному способу решения.
Записываем алгоритм в виде блок-схемы
И.Сильванович “Моделирование. Представление информации. Системы счисления и основы формальной логики”.
3
5. Перевод алгоритма в программу.
Переводим нашу блок-схему в программу:
R: INPUT “Введите первый коэффициент”; A
IF A=0 THEN GOTO R
INPUT “Введите второй коэффициент”; B
INPUT “Введите третий коэффициент”; C
D=B*В-4*A*C
IF D<0 THEN GOTO K
XI=(-B+SQR(D))/(2*A)
XII=(-B-SQR(D))/(2*A)
PRINT “Первый корень равен ”; XI
PRINT “Второй корень равен ”; XII
GOTO N
K: PRINT “Корней нет”
N: END
6. Ввод и отладка программы. Отладка - это многократное выполнение программы, при
котором обнаруживаются и устраняются ошибки и недочёты в программе.
Вводим программу; выполняем её при различных значениях коэффициентов, в том числе,
когда а=0.
7. Получение результатов решения.
Выполняем нашу программу с требуемыми значениями коэффициентов. Получаем
результат.
3. Системы счисления. Правила перевода
Большинство существующих систем счисления построено по позиционному принципу,
который означает: цифру многозначного числа надо умнoжить на основание системы,
возведенное в степень, равную номеру цифры в этом числе 235=2х102+3х101+5х100
Если использовать принцип позиционности, можно образовать бесконечно много систем
счисления - двоичную, троичную, четверичную и т.д.
Десятичная система Двоичная
Троичная
Четверичная
(0,1,2,3,4,5,6,7,8,9)
система (0,1) система (0,1,2) система (0,1,2,3)
0
0
0
0
1
1
1
1
2
10
2
2
3
11
10
3
4
100
11
10
5
101
12
11
6
110
20
12
7
111
21
13
8
1000
22
20
9
1001
100
21
10
1010
101
22
11
1011
102
23
12
1100
110
30
13
1101
111
31
14
1110
112
32
15
1111
120
33
И.Сильванович “Моделирование. Представление информации. Системы счисления и основы формальной логики”.
4
Из всех возможных систем счисления применение нашли лишь некоторые: десятичная,
используемая в повседневной жизни, двоичная, восьмеричная и шестнадцатиричная,
используемые в компьютерной технике.
Существуют специальные правила, позволяющие переводить числа из любой системы в
любую. Эта процедура состоит из двух этапов - с промежуточным переводом числа в
десятичную систему.
Чтобы перевести число из любой системы в десятичную надо:
1. Пронумеровать цифры числа справа налево начиная с нуля;
2. Подсчитать сумму произведений цифр числа на основание системы, возведенное в
степень, равную номеру этого числа.
Пример 1: 1111(2)=1*23+1*22+1*21+1*20=15(10)
Пример 2: 120(3)=1*32+2*31+0*30=15(10)
Чтобы перевести число из десятичной системы в любую надо:
1. Последовательно разделить число на основание ситемы, запоминая остатки (если
основание системы - N, то остатки могут быть равны 0, 1, 2, ... N-1);
2. Число, составленное из остатков надо прочитать справа налево.
Пример 1: 15(10)=120(3)
Пример 2: 15(10)=33(4)
15[3
15[4
0 5[3
3 3[4
2 1[3
3 0
1 0
В шестнадцатиричной системе 16 знаков. Первые 10 из них - цифры десятичной системы.
Оставшиеся шесть обозначаются буквами латинского алфавита: A-10 B-11 C-12 D-13 E-14 F15.
Примеры перевода:
7D = 13x160+7x161=13+112=125(10)
125[16
13 7[16
7
0
=7D(16)
Домашнее задание:
1. 1011(2) = (10)
2. 1202(4) = (10)
3. 1122(3) = (10)
4. 234(10) = (2)
5. 318(10) = (3)
6. 1248(10) =(4)
4. Двоичная арифметика
Поскольку двоичная система напрямую связана с изучаемой компьютерной
техникой, следует знать основы арифметики двоичных чисел.
Правила двоичного сложения: 0+0=0; 0+1=1; 1+1=0 и 1 (единица,
добавляемая в более старший разряд)
Примеры:
101010
1110
+111
+1101
110001
11011
И.Сильванович “Моделирование. Представление информации. Системы счисления и основы
формальной логики”.
5
Правила двоичного вычитания: 0-0=0; 1-0=1; 1-1=0; 0-1=1 и 1 (единица,
вычитаемая из более старшего разряда)
Примеры:
1100100
10011
-1010
-1101
1011010
00110
Правила двоичного умножения: 0*0=0; 0*1=0; 1*1=1
Пример:
1011
* 1011
1011
1011
+0000
1011
1111001
Домашнее задание:
1. 1011+1111=
4. 10001-1111=
2. 11111+11011=
5. 101*110=
3. 11111-10111=
6.111*101=
5. Основы формальной логики. Высказывания. Виды связок
Алгебра логики (или, как еще ее называют, Алгебра Д.Буля - по имени
основателя данной науки) рассматривает высказывания и логические операции
между ними.
Элементарное высказование - это предложение, относительно которого
можно совершенно точно сказать - истинно оно или ложно. Примерами
элементарных высказываний могут служить такие предложения как “5>3”, “6
делится на 4 без остатка” или “Сегодня - дождливая погода”.
Сложное высказывание - это высказывание, составленное из нескольких
элементарных, связанных между собой логическими операциями (по аналогии с
алгеброй, где арифметическое выражение состоит из чисел и операций между
ними). Логические операции обычно называют связками. Высказывания
обозначают латинскими буквами, а связки - специальными знаками.
Существует большое количество разных связок, но мы рассмотрим лишь
часть из них - конъюнкцию, дизъюнкцию, инверсию и импликацию.
Возьмем два элементарных высказывания А и В. Пусть высказывание А “Сегодня - холодно”, а высказывание В - “Сегодня - дождь”. Свяжем эти
высказывания связкой-конъюнкцией. Эта связка в русском языке равнозначна
слову “и”. В результате получится сложное высказывание С - “Сегодня холодно и дождь”. Конъюнкция обозначается знаком “^”, поэтому
высказывание С можно обозначить как С=А^В.
Ясно, что как высказывание А, так и высказывание В могут оказаться и
истинными и ложными. А каким же окажется высказывание С, во всех этих
случаях? Из примера ясно, что если и А и В - истинны (сегодня - действительно
и холодно и идет дождь), то высказывание С будет также истинным, а вот если
хотя бы одно из состовляющих его высказываний (и уж тем более - оба) ложно, то высказывание С - так же ложь.
Представим возможные варианты в таблице:
И.Сильванович “Моделирование. Представление информации. Системы счисления и основы
формальной логики”.
6
А
В
С
истина
истина
истина
истина
ложь
ложь
ложь
истина
ложь
ложь
ложь
ложь
В алгебре логики обычно пользуются обозначением: ложь - 0, а истина -1.
Тогда таблица примет вид:
А В
С
Эту
таблицу
называют
таблицей
истинности
1
1
1
высказывания
С,
поскольку
она
показывает,
в каких
1
0
0
случаях С - истинно, а в каких – ложно.
0
1
0
0
0
0
Связка-дизъюнкция обозначается знаком “v” и в русском
языке эквивалентна слову “или”. Высказывание С=AvB в этом
случае получится как “Сегодня - холодно или идет дождь”, и
ему будет соответствовать следующая таблица истинности:
Довольно
сложна
для
понимания
А
1
1
0
0
В
1
0
1
0
С
1
1
1
0
А
1
1
0
0
В
1
0
1
0
С
1
0
1
1
связка-импликация,
обозначающаяся знаком ”→”, и эквивалентная выражению
“Если ... , то ...”. В качестве примера можно взять элементарные
высказывания А - “Солнце садится в тучу” и В - “Наутро идет
дождь” и получить из них народную примету: С=A→B - “Если
солнце садится в тучу, то наутро идет дождь”.
Следует запомнить. что высказывание С будет ложным лишь в одном случае кода причина не влечет за собой следствие (но не наоборот!).
Самой простой является связка-инверсия или отрицание.
Обозначается она как “____”, и равнозначна приставке “не”.
Высказывание С, таким образом, состоит из одного
единственного высказывания А, вернее - его отрицания
А
1
0
С
0
1
И если А обозначает - “Сейчас - день”, то С=A - “Сейчас - не день”. Ясно,
что если первое будет истинным, то второе - ложным, и наоборот.
6. Построение таблиц истинности сложных высказываний
В задачах по логике обычно требуется определить в каких случаях высказывание
истинно, а в каких - ложно. Построение таблиц истинности состоит из следующих этапов:
1. Определяем число возможных вариантов в будущей таблице истинности (число ее
строк). Это число расчитывается как 2N, где N - число элементарных высказываний,
составляющих данное.
2. Определяем порядок обработки высказывания. Для этого надо мысленно заменить
инверсию возведением в степень, а все остальные операции - умножением. Порядок
И.Сильванович “Моделирование. Представление информации. Системы счисления и основы формальной
7
логики”.
обработки в этом случае будет полностью совпадать с последовательностью решения
аналогичного алгебраического примера.
3. Строим таблицу истинности.
Пример1. W= A ^ B. Это высказывание состоит из двух элементарных, поэтому в
таблице истинности будут 22=4 строки. Строим таблицу истинности:
A
1
1
0
0
B
1
0
1
0
Пример 2. S=(A
A
1
1
1
1
0
0
0
0
B
0
1
0
1
A^B=W
0
1
0
0
v B) → C. Число вариантов 23=8. Таблица истинности:
B
1
1
0
0
1
1
0
0
C
1
0
1
0
1
0
1
0
AvB
1
1
1
1
1
1
0
0
AvB
0
0
0
0
0
0
1
1
(AvB)→C=S
1
1
1
1
1
1
1
0
Домашнее задание:
1. D=A v B
4. D=(A^B)→C
2. E=A v B
5. F=A→( B v C)
3. F= A ^ B
6. E= (A ^ B )→C
7. Законы алгебры логики
В алгебре логики существую законы, позволяющие упростить сложные высказывания.
И.Сильванович “Моделирование. Представление информации. Системы счисления и основы формальной
логики”.
Дополнительные законы:
8
И.Сильванович “Моделирование. Представление информации. Системы счисления и основы формальной
логики”.
Зная законы логики можно упрощать сложные высказывания.
9
И.Сильванович “Моделирование. Представление информации. Системы счисления и основы формальной
10
логики”.
8. Представление информации в двоичном виде. Единицы измерения информации
Как известно, компьютер “понимает” лишь один единственный язык - язык двоичных
чисел. Применение в компьютере такой системы обусловлено чисто технологическими
соображениями: ведь числа в компьютере - это электрические сигналы. В двоичной системе
- два знака, следовательно требуется только два разных электрических сигнала. В случае
использования десятичной системы потребовалость бы десять различных электрических
сигналов, что в конечном итоге привело бы к сильному усложнению конструкции
компьютера. Итак, любую информацию можно превести в двоичный (цифровой) вид и
только в таком виде количество информации можно измерить.
Любой двоичный знак - 0 или 1 - содержит в себе 1 Бит информации (Bit - Binary Digit).
Последовательность из 8-ми любых двоичных знаков, т.е. 8 Бит называют словом Байт
(Byte). Применительно к вычислительной технике обычно подразумевают большие объемы
данных. 210 Байт или, что то же самое, 1024 Байт называют 1 Кбайт. Следует сразу
заметить, что приставка “кило”, заимствованная из системы СИ, обозначает здесь вовсе не
103=1000, а 210=1024. Эта приставка была использована просто в силу схожести своего
значения в СИ с числом 1024. Аналогично 1024 Кбайт - это 1 Мбайт, хотя приставка
“мега”, вновь имеет значение не 103, а 210.
Итак:





любой двоичные знак (0 или 1) содержит 1 Бит информации.
8 Бит = 1 Байт.
1024 Байт = 210 Байт = 1 Кбайт.
1024 Кбайт = 210 Кбайт = 1 Мбайт.
1024 Мбайт = 210 Мбайт = 1 ГБайт.
Преобразование информации в двоичный вид зависит от типа информации.
Текст. Любой знак, будь то буква, цифра или специальный символ, представлен в
компьютере в виде комбинации из восьми двоичных цифр (двоичный код).
Почему восемь? Всего символов - 256. Если первый из них мы обозначим - 0, второй 1, третий - 10 (двоичная двойка), четвёртый - 11... Последний, 256-й символ обозначим
числом 11111111 (255 в двоичном виде). Число 11111111- 8-ми разрядное.
Совокупность всех используемых знаков и соответствующих им кодов называется
кодовой таблицей. Для каждой из систем компьютеров (MS-DOS, Windows, Macintosh,
Unicode) существует своя кодовая таблица. Часть кодовой таблицы с латинскими
символами и их кодами одинакова для всех систем компьютеров. В разных системах
отличаются лишь части таблицы с русскими символами.
Итак, 1 символ содержит 8 Бит или 1 Байт информации.
Рисунок. Цвет любой точки на экране монитора представлен в компьютере в виде
комбинации нулей и единиц. Их количество зависит от количества цветов, используемых в
рисунке. Графические форматы могут содержать строго определённое количество цветов: 2,
16, 256 и 65 536 и 4 294 967 296.
1 точка содержит информации:
1 бит если рисунок чёрно-белый (2 цвета),
4 бита если в рисунке используется 16 цветов,
8 бит если используется 256 цветов,
16 бит, если используется 65 536 цветов,
32 бита, если используется 4 294 967 296 цветов.
И.Сильванович “Моделирование. Представление информации. Системы счисления и основы формальной
11
логики”.
Задача1. Сколько информации (бит, кБайт) содержат 3 страницы книги, на каждой их
которых 50 строк по 80 знаков в каждой?
Задача 2. 16-ти цветный рисунок имеет объём 800 байт. Из скольких точек он состоит?
Задача 3. В процессе преобразования графического изображения из одного формата в
другой количество точек, из которых оно состоит, не изменилось, а количество цветов
уменьшилось с 256 до 16. Во сколько раз уменьшился информационный объем файла?
Задача 4. Сколько информации содержится в каждом сообщении о том, что было
угадано число в диапазоне целых чисел от 20 до 83 включительно?
Задача 5. (ЕГЭ 07) Метеостанция ведёт наблюдение за влажностью воздуха.
Результатом измерения является чсило от 1 до 100 процентов, которое записывается при
помощи минимально возможного количества бит. Станция сделала 80 измерений.
Определить информационный объём результатов наблюдений (байт).
И.Сильванович “Моделирование. Представление информации. Системы счисления и основы формальной
12
логики”.
Домашнее задание:
1. Сколько целых страниц можно записать на одну дискету ёмкостью 1,4 мБайт, если
каждая страница содержит 60 строк по 50 знаков в каждой?
2. Оценить объём (бит, байт, кБайт) рисунка 40*40 точек, 256 цветов.
3. В процессе преобразования графического изображения из одного формата в другой
количество пикселов (точек), из которых оно состоит, не изменилось, а количество цветов
уменьшилось с 16 до 2. Во сколько раз уменьшился информационный объем файла?
4.Сколько двоичных знаков необходимо и достаточно для того, чтобы закодировать
одну школьную оценку?
5. (ЕГЭ 08) Световое табло состоит из лампочек. Каждая лампочка может находиться в
одном из трёх состояний: выключено, включено, мигает. Какое наименьшее количество
лампочек должно находиться на табло, чтобы с его помощью можно было передать 18
различных сигналов?
UpDate 2009
Download