====== Количественные параметры информационных объектов ====== В данном разделе одновременно представлены две задачи **1** и **15**, опубликованные в контрольных измерительных материалах 2012 года по информатике * [[http://www.fipi.ru/view/sections/223/docs/579.html|ФИПИ КИМ-2012]]; * [[http://www.fipi.ru/binaries/1161/infGIA-2012.zip|ИНФОРМАТИКА и ИКТ (ZIP archive, 633.5Kb)]] Данные задачи рассматриваются вместе не случайно, т.к. понимание принципов решения первой задачи является залогом успешного решения второй. Для выполнения задания, необходимо понимать следующее: * **Бит** (англ. binary digit; также игра слов: англ. bit — немного) (один двоичный разряд в двоичной системе счисления) См. [[http://ru.wikipedia.org/wiki/Бит]] * **Байт** (англ. byte) — единица хранения и обработки цифровой информации. **В современных вычислительных системах байт считается равным восьми битам**, в этом случае он может принимать одно из 256 (28) различных значений. См. [[http://ru.wikipedia.org/wiki/Байт]] Информация, приведенная в Википедии (свободной энциклопедии) на стадии начального изучения информатики может оказаться (и это вполне нормальный факт) сложной, поэтому предлагаю адаптированную для начального изучения статью : [[https://docs.google.com/document/d/1l05Xd8pxYuncY1WoJjztJ-T3S2bDKusut792bw09DO0/edit|Биты и байты]] ==== Кодирование текста ==== Для кодирования букв и других символов, используемых в печатных документах, необходимо закрепить за каждым символом числовой номер – код.\\ В **7-разрядной** кодовой таблице (ASCII - American Standard Code for Information Interchange, опубликованной как стандарт в 1963 г. американской организацией по стандартизации) для кодировки одного символа используют **7 бит**.\\ В **8-битной** кодовой таблице для кодировки одного символа используют 8 бит или один байт.\\ Стандарт кодирования символов **Unicode** становится доминирующим в интернациональных программных многоязычных средах. Для кодирования символов в данной кодировке используется **16-битная** кодовая таблица. === Практикум === Чтобы проще было понять рассматриваемую тему, советую выполнить очень простое практическое (мини) занятие: Исследуйте как происходит кодирование текстовой информации в 7-разрядной (битной) кодовой таблице . Для этого зайдите на сайт [[http://asciito.com/#]] и введите в текстовое поле с надписью ASCII фразу: Hello, world! (Внимание! кириллица данной таблицей не поддерживается). Особенное внимание обратите на то, что [[http://ru.wikipedia.org/wiki/Пробел|пробелу]] соответствует свой числовой код (иногда ученики упускают это из виду)! ===== Методы решения задач ===== ==== Задача №1 ==== {{:gia:1.png|Задача №1}} На первый взгляд самое простое решение, которое приходит в голову,- перемножить все данные числа, а затем разделить на 8, если требуется перевести результат в **байты** и на 1024, если в **килобайты**. **40*64*16 = 40960** **40960/1024 = 40 КБ (кибибайт)** Однако если учесть, что на экзамене не разрешается пользоваться калькуляторами, то данное решение оказывается не столь производительным. **Рассмотрим альтернативное решение.** Известно, что **1 Кб (килобайт) = 210 байт = 1024 байта** Известно, что **26 * 24 = 26 + 4 = 210** Воспользуемся таблицей, которую желательно до 210 знать наизусть: {{:gia:2_12.png|}} Возвращаемся к условию задачи **64 * 16 * 8 * 40 = 24 * 26 * 8 * 40 = 210 * 8 * 40 = 1024 * 8 * 40** бит Разделив получившийся результат на **8** мы получим результат в байтах, а разделив на **1024** - в килобайтах. **40 КБ (килобайт)** ==== Задача №1 (другой вариант исполнения) ==== Считая, что каждый символ кодируется 16-ю битами, оцените информационный объем следующей пушкинской фразы в кодировке Unicode: **Привычка свыше нам дана: Замена счастию она.** - 44 бита - 44 байта - 704 бита - 704 байта **Решение:** Один символ (в кодировке Unicode) 16 бит или 2 байта (8 бит - 1 байт) Для оценки информационного объема фразы следует подсчитать количество символов в составе фразы (учитывая пробелы и знаки препинания, так как на них также расходуется память). Фраза содержит 44 символа, следовательно информационный объем может быть: 44 * 2 = 88 байт 44 * 16 = 704 бит (значится в списке ответов) Ответ: **3** ==== Задача №15 ==== {{:gia:15.png|}} Давайте рассуждать: Если известна скорость передачи, например 2 бита в секунду, то очевидно, что за 2 секунды можно передать 4 бита, а за N секунд, - 2*N бит. Следовательно, если известно сколько бит передано и какова скорость передачи, то легко определить время передачи: t = S/v, где S - количество переданной информации, v - скорость передачи. Если нам известно время, требуемое для передачи и скорость передачи, то мы легко можем найти количество информации, которое будет передано за данное время. Вся сложность данной задачи сводится к умению привести единицы измерения информации к единой размерности (битам или байтам). **Первое действие:** Найдем время в секундах, за которое можно передать файл размером 8 Кбайт со скоростью передачи 4096 бит в секунду: Чтобы привести размерность к байтам, следует 8 Кбайт умножить на 1024 (запишем действие, но перемножать не будем) **8*1024 байт** Чтобы привести размерность к битам, получившееся значение необходимо умножить на 8 (1 байт = 8 бит) (запишем действие, но перемножать не будем) **8*8*1024 бита** передается со скоростью 4096 бит в секунду (мы привели значения к одной размерности не тратя умственную энергию на умножение или деление) Посмотрите на таблицу вверху (подобная таблица 2n на черновике строится за секунды) **8*8*1024 = 23 * 23 * 210 = 216** **4096 = 212** **216 / 212 = 24 = 16 секунд** требуется для передачи данного объема информации **Второе действие:** Известно, что скорость передачи во втором случае 256 бит в секунду, время передачи - 16 секунд. Определите размер файла (**в байтах**), который можно передать за данное время (16 секунд). Так как ответ необходимо представить в байтах, то и теперь сложность данной задачи сводится к умению привести единицы измерения информации к единой размерности (байтам). **256/8 = 28/23 = 25 байт в секунду** - скорость в байтах Таким образом за 16 секунд, (заметим, что рационально было бы не вычислять **24 = 16**) мы передадим файл размером **25 * 24 = 29 = 512 (байт)** - число, которое и следует записать в ответ! Как видим, используя таблицу, практически все вычисления, требующие умножения и деления мы заменяем сложением и вычитанием степеней числа 2!