- •Методические рекомендации по выполнению индивидуальных заданий по дисциплине «теоретические основы информатики» для студентов заочной формы обучения
- •Раздел 1. Основы теории информации
- •Раздел 2. Основы алгоритмизации. Программирование.
- •Вопрос 1. Число X меньше пяти?
- •Вопрос 2. Число X меньше семи?
- •Вопрос 3. Число X меньше шести?
- •Основные понятия алгебры высказываний
- •Логические основы эвм.
- •Раздел 2. Основы алгоритмизации. Программирование.
Чтобы выяснить
состояние этой системы, достаточно
задать один вопрос, например: находится
ли система в состоянии х{!
Ответ «да» или «нет» на этот вопрос
доставляет некоторую информацию,
которая достигает своего максимального
значения 1, когда оба состояния априори
равновероятны: p1=p2=1/2.
Таким образом, максимальная информация,
даваемая ответом «да» или «нет», равна
одной двоичной единице.
Если информация от
какого-то сообщения равна n
двоичным единицам, то она равносильна
информации, даваемой n
ответами «да» или «нет» на вопросы,
поставленные так, что «да» и «нет»
одинаково вероятны.
В некоторых простейших
случаях для выяснения содержания
сообщения действительно удается
поставить несколько вопросов так, чтобы
ответы «да» и «нет» на эти вопросы были
равновероятны. В таких случаях полученная
информация фактически измеряется
числом таких вопросов.
Если же поставить
вопросы точно таким образом не удается,
можно утверждать только, что минимальное
число вопросов, необходимое для выяснения
содержания данного сообщения, не меньше,
чем информация, заключенная в сообщении.
Чтобы число вопросов было минимальным,
нужно формулировать их так, чтобы
вероятности ответов «да» и «нет» были
как можно ближе к 1/2.
3-12.
Некто задумал любое целое число X
от единицы до восьми
<Х<2
^ а нам предлагается угадать его,
поставив минимальное число вопросов,
на каждый из которых дается ответ «да»
или «нет».
Решение:
Определяем информацию, заключенную в
сообщении, какое число задумано. Априори
все значения X
от 1 до 8 одинаково вероятны:
Ответ:
Минимальное число вопросов, которые
нужно поставить для выяснения задуманного
числа, не меньше трех.
В данном случае
можно, действительно, обойтись тремя
вопросами, если сформулировать их так,
чтобы вероятности ответов «да» и «нет»
были равны.
Пусть, например,
задумано число «пять», мы этого не знаем
и задаем вопросы:
Ответ. Нет. (Вывод:
X
- одно из чисел 5, 6, 7, 8.)
Ответ. Да. (Вывод: X
- одно из чисел 5, 6.)
Ответ. Да. (Вывод:
число X
равно пяти.)
12
Вопрос 1. Число X меньше пяти?
Вопрос 2. Число X меньше семи?
Вопрос 3. Число X меньше шести?
Легко убедиться,
что тремя такими (или аналогичными)
вопросами можно установить любое
задуманное число от 1 до 8.
Задания
для самостоятельного выполнения.
Вариант 1.
Какое количество
информации получит второй игрок при
игре в крестики-нолики на поле 8x8,
после первого хода первого игрока,
играющего крестиками?
2. Определите время
(сек.) необходимое для передачи модемом
(со скоростью передачи 28800 бит/с) цветного
растрового изображения размером 640х480
пикселей при условии, что цвет каждого
пикселя кодируется тремя байтами.
Вариант 2.
В рулетке общее
количество лунок равно 128. Какое
количество информации мы получаем в
зрительном сообщения об остановке
шарика в одной из лунок?
Рассчитать
необходимый объем видеопамяти для
графического режима с разрешением
800х600 точек и глубиной цвета 24 бита на
точку.
Вариант 3.
Происходит выбор
одной карты из колоды в 32 карты. Какое
количество информации мы получаем в
зрительном сообщении о выборе
определенной карты?
Сообщение из 50
символов было записано в 8-битной
кодировке Windows-1251. После
вставки в текстовый редактор сообщение
было перекодировано в 16-битный код
Unicode. Определите на
сколько байт увеличился объем памяти,
занимаемый сообщением.
Вариант 4.
Какое количество
информации будет содержать зрительное
сообщение о цвете вынутого шарика,
если в непрозрачном мешочке хранятся:
а) 25 белых, 25 красных,
25 синих и 25 зеленых шариков;
б) 30 белых, 30 красных,
30 синих и 10 зеленых шариков.
Автоматическое
устройство осуществило перекодировку
информационного сообщения, первоначально
записанного в коде Windows-1251,
в кодировку Unicode. При
этом информационное сообщение
увеличилось на 400 бит. Определите длину
сообщения в символах.
Вариант 5.
Какое количество
вопросов достаточно задать вашему
собеседнику, чтобы точно определить
день и месяц его рождения?
Оцените информационный
объем следующего предложения в кодировке
Unicode и ASCII
«Один пуд - около 16,4 килограмм».
13
Вариант 6.
Заполнить пропуски
числами:
а) 5 Кбайт = байт
= бит,
б ) Кбайт = байт =
12288 бит;
в ) Кбайт = байт = 213
бит;
г ) Гбайт =1536 Мбайт
= Кбайт;
д) 512 Кбайт = 2 байт
= 2 бит.
Сканируется цветное
изображение 10х10 см. Разрешающая
способность сканера 600 dpi
и глубина цвета 32 бита. Определите
информационный объем полученного
графического файла.
Вариант 7.
Найти x
из следующих соотношений:
а) 16x
бит = 32 Мбайт;
б) 8х Кбайт =
16 Гбайт.
Для хранения
неупакованного растрового изображения
размером 32х32 пикселя потребовалось
512 байт памяти. Определите максимально
возможное число цветов в палитре
изображения.
Вариант 8.
Какова мощность
алфавита, с помощью которого записано
сообщение, содержащее 2048 символов,
если его объем составляет 1/512 часть
одного мегабайта.
Закодируйте с
помощью кодировочной таблицы ASCII
и представьте в шестнадцатеричной
системе счисления слово «Data».
Вариант 9.
Пользователь
компьютера, хорошо владеющий навыками
ввода информации с клавиатуры, может
вводить в минуту 100 знаков. Мощность
алфавита, используемого в компьютере
равна 256. Какое количество информации
в байтах может ввести пользователь в
компьютер за 1 минуту.
Вычислить объем
видеофайла в Гб длительностью 64 сек,
скоростью смены кадров равной 32
кадров/сек, разрешении 1280х640 точек и
разрядностью цвета 16 бит. Объемом
звуковой составляющей видеоклипа
можно пренебречь.
Вариант 10.
Система оптического
распознавания символов позволяет
преобразовывать отсканированные
изображения страниц документа в
текстовый формат со скоростью 4 страницы
в минуту и использует алфавит мощностью
65536 символов. Какое количество информации
будет нести текстовый документ после
5 минут работы приложения, страницы
которого содержат 40 строк по 50 символов.
Используется
кодовая таблица СР-1251 (Windows
Cyrillic). Файл в простом
текстовом формате, если в тексте 200
страниц, на странице 32 строки, а в строке
в среднем 48 символов, Определите размер
файла в килобайтах.
14
Основание |
Н азвание |
Алфавит |
п= 2 |
Двоичная |
01 |
п = 3 |
Троичная |
012 |
п- 8 |
Восьмеричная |
01234567 |
П= 16 |
|
01234567S9A8CDEF |
Если требуется
указать основание системы, к которой
относится число, то оно приписывается
нижним индексом к этому числу. Например:
15
1011012, 36718, 3B8F16.
В системе счисления
с основанием q
(q-ичная система счисления)
единицами разрядов служат последовательные
степени числа q. q
единиц какого-либо разряда образуют
единицу следующего разряда. Для записи
числа в q-ичной системе
счисления требуется q
различных знаков (цифр), изображающих
числа 0, 1, ..., q-1. Запись
числа q
в q-ичной системе счисления
имеет вид 10.
Развернутая форма
записи числа. Пусть Aq
- число
в системе с основанием q,
а1
- цифры
данной системы счисления, присутствующие
в записи числа A, n+1
- число разрядов целой части числа, m
- число
разрядов дробной части числа:
Развернутой формой
числам называется запись в виде:
Например, для
десятичного числа:
В следующих примерах
приводится развернутая форма
шестнадцатеричного и двоичного чисел:
^
В любой системе
счисления ее основание записывается
как 10.
Если все слагаемые
в развернутой форме недесятичного
числа представить в десятичной системе
и вычислить полученное выражение по
правилам десятичной арифметики, то
получится число в десятичной системе,
равное данному. По этому принципу
производится перевод из недесятичной
системы в десятичную. Например, перевод
в десятичную систему написанных выше
чисел производится так:
Перевод десятичных
чисел в другие системы счисления
Перевод целых чисел.
Целое десятичное число X
требуется перевести в систему с
основанием q: X
= (anan-1
^a1a0)q.
Нужно найти значащие цифры числа: a0,
a1,
...,
an.
Представим число в развернутой форме
и выполним тождественное преобразование:
Отсюда видно, что
a0
есть остаток от деления числа X
на число q.
Выражение в скобках - целое частное от
этого деления. Обозначим его за X1.
Выполняя аналогичные преобразования,
получим:
16
Следовательно, a1
есть остаток от деления X1
на q.
Продолжая деление с остатком, будем
получать последовательность цифр
искомого числа. Цифра an
в этой цепочке делений будет последним
частным, меньшим q.
Сформулируем
полученное правило: для
того чтобы перевести целое десятичное
число в систему счисления с другим
основанием, нужно:
основание новой
системы счисления выразить в десятичной
системе счисления и все последующие
действия производить по правилам
десятичной арифметики;
последовательно
выполнять деление данного числа и
получаемых неполных частных на основание
новой системы счисления до тех пор,
пока не получим неполное частное,
меньшее делителя;
полученные остатки,
являющиеся цифрами числа в новой
системе счисления, привести в соответствие
с алфавитом новой системы счисления;
составить число в
новой системе счисления, записывая
его, начиная с последнего частного.
Пример
1. Перевести
число 37ю в двоичную систему.
Для
обозначения цифр в записи числа
используем символику: О5О4О3О2О1О0
Отсюда:
3710
= l00l0l2
Пример
2. Перевести
десятичное число 315 в восьмеричную и в
шестнадцатеричную системы:
Отсюда
следует: 31510 = 4738
= 13B16. Напомним, что
1110
= B
-46-
Перевод десятичных
дробей. Десятичную дробь X<1
требуется перевести в систему с
основанием q:
X=(0, a-1a-2
... a_m+i
a-m)q.
Нужно найти значащие
цифры числа: a-1,
a-2, ., a-m.
Представим число в развернутой форме
и умножим его на q\
Отсюда видно, что
a-1 есть целая часть
произведения X
на число q.
Обозначим
за XI
дробную часть произведения и умножим
ее на q:
17
Следовательно,
a-2 есть целая
часть произведения X1
на число q.
Продолжая
умножения, будем получать
последовательность цифр. Теперь
сформулируем правило: для
того чтобы перевести десятичную дробь
в систему счисления с другим основанием,
нужно:
последовательно
умножать данное число и получаемые
дробные части произведений на
основание новой системы до тех пор,
пока дробная часть произведения не
станет равной нулю или не будет
достигнута требуемая точность
представления числа в новой системе
счисления;
полученные целые
части произведений, являющиеся
цифрами числа в новой системе
счисления, привести в соответствие
с алфавитом новой системы счисления;
составить дробную
часть числа в новой системе счисления,
начиная с целой части первого
произведения.
Пример
3. Перевести
десятичную дробь 0,1875 в двоичную,
восьмеричную и шестнадцатеричную
системы. |
1875 * 3 |
||
1 |
5000 *3 |
||
4 |
0000 |
||
0 |
1-375 * 2 |
||
0 |
3750 к 2 |
||
0 |
7500 * 2 |
||
1 |
5000 * 2 |
||
1 |
0000 |
||
0 |
1&75 х 15 |
||
3 |
0000 |
||
Здесь
в левом столбце находится целая часть
чисел, а в правом — дробная.
Отсюда:
0,1875ю
=
0,00112
=
0,14s
=
0,3i6
Перевод смешанных
чисел, содержащих целую и дробную части,
осуществляется в два этапа. Целая и
дробная части исходного числа переводятся
отдельно по соответствующим алгоритмам.
В итоговой записи числа в новой системе
счисления целая часть отделяется от
дробной запятой (точкой).
Перевод чисел между
системами счисления 2 - 8 - 16
Представление
информации, хранящейся в компьютерной
памяти в ее истинном двоичном виде,
весьма громоздко из-за большого
количества цифр. Имеется в виду запись
такой информации на бумаге или вывод
ее на экран. Для этих целей принято
использовать смешанные двоично-восьмеричную
или двоично-шестнадцатеричную системы.
Существует простая
связь между двоичным и шестнадцатеричным
представлением числа. При переводе
числа из одной системы в другую одной
шестнадцатеричной цифре соответствует
четырехразрядный двоичный код. Это
соответствие отражено в
двоично-шестнадцатеричной таблице:
Двоично-шестнадцатеричная
таблица
18
16 |
2 |
16 |
2 |
0 |
0000 |
8 |
1000 |
1 |
0001 |
9 |
1001 |
2 |
0010 |
А |
1010 |
3 |
0011 |
В |
1011 |
4 |
0100 |
с |
1100 |
5 |
01 01 |
D |
1101 |
6 |
0110 |
Е |
1110 |
7 |
0111 |
F |
1111 |
Такая
связь основана на том, что 16 = 24
и число различных четырехразрядных
комбинаций из цифр 0 и 1 равно 16: от 0000
до 1111. Поэтому перевод
чисел из шестнадцатеричных в двоичные
и обратно производится путем формальной
перекодировки по двоичношестнадцатеричной
таблице.
Вот пример перевода
32-разрядного двоичного кода в 16-ричную
систему:
1011 1100 0001 0110 1011 1111
0010 1010 -» BC16BF2A
Если дано
шестнадцатеричное представление
внутренней информации, то его легко
перевести в двоичный код. Преимущество
шестнадцатеричного представления
состоит в том, что оно в 4раза короче
двоичного.
В двоично-восьмеричной
системе каждой восьмеричной цифре
соответствует триада двоичных цифр.
Эта система позволяет сократить двоичный
код в 3 раза.
Представление и
обработка в компьютере вещественных
чисел. Формат представления вещественных
чисел в компьютере называется форматом
с плавающей точкой.
Вещественное число R
представляется в виде произведения
мантиссы m
на основание системы счисления n
в некоторой целой степенир, которую
называют порядком: R=m*np.
Представление числа
в форме с плавающей точкой неоднозначно.
Например, для десятичного числа 25,324
справедливы следующие равенства:
25,324 = 2,5324 • 101
= 0,0025324 • 104 = 2532,4 • 10-2 и т.п.
Чтобы не было
неоднозначности, договорились в ЭВМ
использовать нормализованное
представление числа в форме с плавающей
точкой.
Мантисса
в нормализованном представлении должна
удовлетворять условию: 0,1н -
т < \п.
Иначе говоря, мантисса меньше единицы
и первая значащая цифра - не ноль. В
некоторых случаях условие нормализации
принимают следующим: 1н - т
< 10„.
В памяти
компьютера
мантисса представляется
как целое число, содержащее только
значащие цифры
(0 целых и запятая не хранятся).
Следовательно, внутреннее представление
вещественного числа сводится к
представлению пары целых чисел: мантиссы
и порядка.
В разных типах
компьютеров применяются различные
варианты представления чисел в форме
с плавающей точкой. Рассмотрим один из
вариантов внутреннего представления
вещественного числа в четырехбайтовой
ячейке памяти.
В ячейке должна
содержаться следующая информация о
числе: знак числа, порядок и значащие
цифры мантиссы.
19
В старшем бите 1-го
байта хранится знак числа: 0 обозначает
плюс, 1 - минус. Оставшиеся 7 бит первого
байта содержат машинный порядок. В
следующих трех байтах хранятся значащие
цифры мантиссы (24 разряда).
В семи двоичных
разрядах помещаются двоичные числа в
диапазоне от 0000000 до 1111111. Значит, машинный
порядок изменяется в диапазоне от 0 до
127 (в десятичной системе счисления).
Всего 128 значений. Порядок, очевидно,
может быть как положительным, так и
отрицательным. Разумно эти 128 значений
разделить поровну между положительными
и отрицательными значениями порядка:
от -64 до 63.
Машинный
порядок
смещен относительно математического
и имеет только положительные значения.
Смещение выбирается так, чтобы
минимальному математическому значению
порядка соответствовал ноль.
Связь между машинным
порядком (Mp) и математическим
(p) в рассматриваемом
случае выражается формулой: Mp
= p + 64.
Полученная формула
записана в десятичной системе. В двоичной
системе формула имеет вид: Mp2
= p2 + 100 0 0 002.
Для записи внутреннего
представления вещественного числа
необходимо:
перевести модуль
данного числа в двоичную систему
счисления с 24 значащими цифрами,
нормализовать
двоичное число,
найти машинный
порядок в двоичной системе счисления,
учитывая знак
числа, выписать его представление в
четырехбайтовом машинном слове.
Пример.
Записать
внутреннее представление числа 250,1875
в форме с плавающей
точкой.
Решение
Переведем
его в двоичную систему счисления с 24
значащими цифрами: 250,187510 =
11111010,00110000000000002.
Запишем
в форме нормализованного двоичного
числа с плавающей точкой:
0,111110100011000000000000
• 1021000.
Здесь
мантисса, основание системы счисления
(210
= 102) и порядок (810
= 10002) записаны в двоичной системе.
Вычислим
машинный порядок в двоичной системе
счисления:
Mp2
=
1000
+ 100
0000
= 100
1000.
Запишем
представление числа в четырехбайтовой
ячейке памяти с учетом знака числа
20
О 1001000 11111010 00110000 00000000
31 24 23 0
Шестнадцатеричная
форма: 48FA3000.
Диапазон вещественных
чисел значительно шире диапазона целых
чисел. Положительные и отрицательные
числа расположены симметрично
относительно нуля. Следовательно,
максимальное и минимальное числа равны
между собой по модулю.
Наименьшее по
абсолютной величине число равно нулю.
Наибольшее по абсолютной величине
число в форме с плавающей точкой — это
число с самой большой мантиссой и самым
большим
порядком.
Для четырехбайтового
машинного слова таким числом будет:
111111111111111111111111 •
1021111111.
После перевода в
десятичную систему счисления получим:
МАХ = (1 - 2-24) •
263 *
1019.
Если при вычислениях
с вещественными числами результат
выходит за пределы допустимого диапазона,
то выполнение программы прерывается.
Такое происходит, например, при делении
на ноль, или на очень маленькое число,
близкое к нулю.
Вещественные числа,
разрядность мантиссы которых превышает
число разрядов, выделенных под мантиссу
в ячейке памяти, представляются в
компьютере приближенно (с “обрезанной”
мантиссой). Например, рациональное
десятичное число 0,1 в компьютере будет
представлено приближенно (округленно),
поскольку в двоичной системе счисления
его мантисса имеет бесконечное число
цифр. Следствием такой приближенности
является погрешность машинных вычислений
с вещественными числами.
Вычисления с
вещественными числами компьютер
выполняет приближенно. Погрешность
таких вычислений называют погрешностью
машинных округлений.
Множество вещественных
чисел, точно представимых в памяти
компьютера в форме с плавающей точкой,
является ограниченным и дискретным.
Дискретность является следствием
ограниченного числа разрядов мантиссы,
о чем говорилось выше.
Количество
вещественных чисел, точно представимых
в памяти компьютера, можно вычислить
по формуле: N
=2t ■ (U-
L
+1) + 1. Здесь t
- количество двоичных разрядов мантиссы;
U
- максимальное значение математического
порядка; L
- минимальное значение порядка. Для
рассмотренного выше варианта представления
(t =24, U
=63, L
=-64) получается: N
= 2 146 683 548.
Двоичная нумерация.
В таблице кодировки внутренний двоичный
код символа - это его порядковый номер
в двоичной системе счисления. Например,
номер буквы S в таблице
ASCII равен 83. Восьмиразрядный
двоичный код буквы S равен
значению этого числа в двоичной системе
счисления: 01010011.
21
Двоичные вычисления.
Согласно принципу Джона фон Неймана,
компьютер производит вычисления в
двоичной системе счисления. В рамках
базового курса достаточно ограничиться
рассмотрением вычислений с целыми
двоичными числами. Для выполнения
вычислений с многозначными числами
необходимо знать правила сложения и
правила умножения однозначных чисел.
Вот эти правила:
Принцип перестановочности
сложения и умножения работает во всех
системах счисления. Приемы выполнения
вычислений с многозначными числами в
двоичной системе аналогичны десятичной.
Иначе говоря, процедуры сложения,
вычитания и умножения “столбиком” и
деления “уголком” в двоичной системе
производятся так же, как и в десятичной.
Рассмотрим правила
вычитания и деления двоичных чисел.
Операция вычитания является обратной
по отношению к сложению. Из приведенной
выше таблицы сложения следуют правила
вычитания:
- 0 = 0; 1 - 0 = 1; 10 - 1 = 1.
Вот пример вычитания
многозначных чисел:
1001101101
100110110
Полученный результат
можно проверить сложением разности с
вычитаемым. Должно получиться уменьшаемое
число.
Деление - операция
обратная умножению. В любой системе
счисления делить на 0 нельзя. Результат
деления на 1 равен делимому. Деление
двоичного числа на 102 ведет к
перемещению запятой на один разряд
влево, подобно десятичному делению на
десять. Например:
Деление на 100 смещает
запятую на 2 разряда влево и т.д.
Задания
для самостоятельного выполнения
Вариант1.
Переведите десятичные
числа в СС с основаниями 2, 8, 16 и обратно.
545,4610
713,25ю
Представьте
результат вычисления арифметических
операций в указанной СС.
11100,10012+1110,0112
9F3,4516-FF,D216
Вариант 2.
Переведите двоичные
числа в СС с основаниями 8, 10, 16 и обратно.
101010,101012
111001,001012
22
Представьте
результат вычисления арифметических
операций в указанной СС.
416,328 +
255,718
1D0,8216-C8,B216
Вариант 3.
Переведите
шестнадцатеричные числа в СС с
основаниями 2, 10, 8 и обратно.
3E5,6516
814,AF16
Представьте
результат вычисления арифметических
операций в указанной СС.
723,428
+ 136,178
11011,112 -
1011,012 Вариант 4.
Переведите
восьмеричные числа в СС с основаниями
2, 10, 16 и обратно.
312,478
674,358
Представьте
результат вычисления арифметических
операций в указанной СС.
506,F416 +
ABC,6216
11011,112 - 1011,012 Вариант
5.
Переведите
шестнадцатеричные числа в СС с
основаниями 2, 10, 8 и обратно.
A16,F116
23С,9Е16
Представьте
результат вычисления арифметических
операций в указанной СС.
267,458 + 345,28
1111,112 -
1100,1112 Вариант 6.
Переведите
восьмеричные числа в СС с основаниями
2, 10, 16 и обратно.
343,578
713,628
Представьте
результат вычисления арифметических
операций в указанной СС.
101011,1012+1111,01012
C5D,5816-B8E,4616
Вариант 7.
Переведите десятичные
числа в СС с основаниями 2, 8, 16 и обратно.
387,1210
854,3610
23
