Книга 1 Информатика: введение в предмет Принципы работы компьютера и его устройство Введение в программирование - shikardos.ru o_O
Главная
Поиск по ключевым словам:
страница 1страница 2
Похожие работы
Книга 1 Информатика: введение в предмет Принципы работы компьютера и его устройство - страница №1/2

Т.В. Гурьянова
Программирование:

быстрый старт




КНИГА 1



  • Информатика: введение в предмет

  • Принципы работы компьютера и его устройство

  • Введение в программирование

  • Написание несложных программ

на языке Паскаль

Минск 2014




Содержание
Предисловие 3

Введение 4

Часть I. Метаморфозы: появление программы 17

Глава 1. Принципы работы компьютера и его устройство

1.1. Электрические переключательные схемы 18

1.2. Факты из истории: механические, релейные, электронно-цифровые 22


23

24

25
компьютеры, булева алгебра

1.3. Принципы фон Неймана

1.4. Принцип хранения данных и программ в памяти компьютера

1.5. Память компьютера



Предисловие
Основу этой книги составил курс по основам программирования и языку программирования Паскаль, читающийся учащимся физико-математических классов средней школы N 41 г. Минска.

Название книги «Программирование: быстрый старт» отражает стремление автора помочь читателю не столько стать профессиональным программистом (на это нужны годы), сколько, не увязнув в деталях, получить представление о том, что такое программирование. Данная книга — своего рода мост, перекинутый программисту-новичку к обширной литературе по программированию.

Даже, если вы не собираетесь стать программистом, но разберете и выполните большую часть упражнений, то, надеемся, что полученные навыки помогут вам самостоя-тельно автоматизировать часть своей работы — написать ряд программ и процедур (конечно, не «на продажу», а так, для себя, без сногсшибательных интерфейсов).

Научить писать простые программы на Паскале не так уж сложно. Труднее сформировать культуру программирования. Писать коды программ можно научить любого, а вот понять из условия задачи, что нужно сделать и как это сделать, имея в распоряжении лишь ограниченный набор инструментов — допустимых компьютерных команд, — могут не все. Большое количество задач помогут читателю постепенно понять и принять правила программирования.

В книге приведены интересные факты из истории вычислительных устройств, в популярной форме описаны принципы работы PC (персонального компьютера). Эта часть книги — своего рода удар по отношению к компьютеру, как к некоему мистическому объекту. Автору приходилось отвечать, например, на вопрос: «Может ли компьютер отгадывать загадки?»

Итак, кому может быть интересна эта книга? Школьникам 7–11 класса, которым проще прочитать книгу, чем высидеть урок. Учителям и родителям учащихся 4–10 классов, предпочитающих книгам объяснения взрослых. Всем тем, кто хочет узнать что-нибудь новое о вещах, связанных с компьютером и программированием, но профессионально не связан с этими областями,…

Поскольку «... составление той или иной поучительной задачи зачастую является весьма творческим процессом с некоторой долей везения» (М. Хил, предисловие к [1]), многие задачи перекочевывают из учебника в учебник. Эта книга — не исключение. Ссылки на использованную литературу приведены в конце книги. Хочется особенно отметить книгу, написанную сотрудниками харьковского Компьютерного Лицея ([2]), и «Начала программирования» Г. Григаса ([3]).

Большую помощь в подготовке этой книги оказали: Юрий Петрович Антоник, скру-пулезно разобравшийся во всех нюансах написанного и давший много полезных советов, Григорий Лазаревич Литвинов, который помог упорядочить материал и придать некоторую глубину отдельным частям, Игорь Анатольевич Волков, нашедший кучу опечаток и несуразностей уже после того, как были внесены "окончательные" изменения. Все эти люди помогли сделать книгу значительно лучшей, чем она могла бы быть.

Автор также очень признателен своему другу, Антону Лысаковскому, который поддержал идею написания этой книги, помог «взять разгон» в работе и не дал ее бросить. Хотя все-таки самым мощным стимулом в написании этой книги были учащиеся.

Желаю удачи! Автор


Информатика
Слово информатика образовано слиянием двух французских слов «информация» (informa-tion) и «автоматика» (automatique). Так в 60-х гг. XX века во Франции называли область человеческой деятельности, занимающейся обработкой информации с помощью ЭВМ — Электронной Вычислительной Машины — так раньше называли компьютеры, поскольку основная их обязанность была вычислять. Сегодня помимо расчетов на компьютеры возло-жены и многие другие обязанности. Поэтому не будем выделять вычисления, а говорить, что компьютеры обрабатывают информацию.

«Информатикой» в Беларуси, России, Франции, Германии и ряде других стран называют дисциплину, связанную с изучением всего, что имеет отношение к компьютерам. В США, Англии и ряде других стран используется термин «Computer Sciences» — компьютерная (вычислительная) наука.


Информация
Определить то или иное понятие — означает разъяснить его с помощью уже известных слов. Неплохо бы к тому же убедиться, что под «известными словами» собеседники понимают одно и то же.

Упражнение. Каково, по-вашему, значение слова «информация»? Напишите несколько предложений на эту тему или придумайте несколько синонимов (слов, близких по значению) к слову «информация».

Разумно, при выполнении этого упражнения, проверить себя, обратившись к толковому словарю. Как там трактуется слово «информация»?


В толковом словаре C.И. Ожегова и Н.Ю. Шведовой ([4]) информация определяется как:

  • сведения об окружающем мире и протекающих в нем процессах, воспринимаемые человеком или специальным устройством,

  • сообщения, осведомляющие о положении дел, о состоянии чего-нибудь.

Но если попросить вас, как в упражнении, попробовать определить, что такое «сведения» или «сообщения», то мнений будет много и они будут отличаться одно от другого.

Представьте, что вам надо объяснять кому-нибудь, что такое ложка, собака, стол (например, вы учите иностранца русскому языку). В этом случае проще всего принести настоящую ложку, ткнуть пальцем в стол, позвать либо нарисовать собаку... А вот как быть с информацией, свéдением, сообщением? Их нарисовать или позвать нельзя.

Попробуем еще раз обратиться к толковому словарю и посмотреть там, что означают слова «сведение» и «сообщение». Если и там будут не совсем знакомые нам слова, то посмотрим и их значение,… Возможно, когда-нибудь мы обязательно найдем такое опре-деление, все определяющие слова которого будут нам абсолютно понятны.

Разочарую вас. Слово «сведение» определяется через слова «знание», «представле-ние», «известие», «сообщение» (?!), «сообщение» — через «известие»; «знание» через «сведение», «представление» через «знание», «известие» через «сообщение» — круг замкнулся. Схематически это можно записать так (стрелки заменяют слова «определяется»):





Упражнение. Составьте подобную схему со словом «информация».
Пытаясь точно определить значение слова «информация», мы на каждом этапе сталкиваемся со словами, смысл которых мы представляем лишь примерно, в общих чертах, на интуитивном уровне. Мы не можем передать их значение абсолютно точно, используя слова, смысл которых был бы нам предельно ясен (так как нам ясен, например, смысл слов «стол», «ложка», «собака»...).

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

Мы в жизни используем достаточно много неопределяемых понятий. К таким понятиям относятся, например, геометрические понятия точки, прямой, плоскости. Вы удивлены? Геометрическое понятие точки отличается от обычной точки, которую мы ставим в конце предложения. Точное геометрическое понятие точки нельзя нарисовать. Геометрическая точка не имеет площади, поэтому, поставив точку, даже самым острым карандашом, мы можем дать лишь приблизительное изображение: у такой точки хоть очень маленькая площадь да будет. Евклид, например, определял более 23 веков назад геометрическую точку следующим образом: «Точка есть то, что не имеет частей». (Здесь, однако, не совсем понятно, какой смысл имеет слово «то» и что такое «часть», «иметь часть».) Евклид обращается к нашему жизненному опыту и предполагает, что читатель имеет представление о чем-то очень маленьком, неделимом и предлагает это понятие именовать точкой. То же самое происходит и с определениями «прямая» и «плоскость» (см. [5]).

Упражнение. Попробуйте попытаться дать определения этим понятиям. (Можно заглянуть в учебник геометрии.)

До середины XX века информация трактовалась как нечто, содержащееся в речи, письме или передающееся при сообщении. ([6])

Сейчас есть много разных определений слова «информация». Дадим одно из таких определений.

Допустим, вы хотите выяснить, дома или нет ваш приятель. Будет ли получена при этом информация? Если вы этого не знаете, то, позвонив ему домой, узнаете. При этом информация, естественно, будет получена: не знали — позвонили — узнали. Таким образом, можно определить информацию как получение, увеличение или прирост знания.

Представьте теперь, что вы решили проверить, дома ли ваш приятель, в 2 часа ночи... Позвонили — дома. Но вы и до звонка на 100% были уверены, что он дома: вчера он был в школе, завтра опять в школу. Где же ему еще быть? Информации вы практически не получили — только людей взбудоражили столь поздним звонком.

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

Ну вот, оказалось, что информации может быть много... Порция информации может быть описана путем соотнесения ее с другой информацией. При этом должен быть введен какой-то эталон, единица измерения.

Подобно тому, как в мультфильме «38 попугаев» измеряли удава (эталонами там были попугаи, мартышки и слоны), «прикладывая» выбранный нами эталон-единицу измерения информации к какой-либо конкретной информации, мы можем подсчитать, сколько таких единиц — «маленьких информаций» в эту информацию «помещается». Вопрос лишь в том, что выбрать в качестве эталона информации.


Количество информации
Возникновение теории информации стало возможным после того, как люди захотели количество информации измерить, задать числом — так же, как можно выразить числом расстояние, время, массу и проч.

Объясним, что такое количество информации на примере игры.

В классе 32 ученика. Учитель решил развлечься. Он, случайным образом,

выбрал из класса одного ученика и задумал поставить ему пятерку. Но не просто так, а если ученики отгадают, кого он задумал, задав семь вопросов. Если вопросов будет всего шесть, то задуманному ученику в журнал идет две пятерки, пять вопросов — три пятерки, и так далее... Ученики могут задавать любые вопросы, но учитель может отвечать только «да» или «нет». Например: «Вы задумали Петрова?» — «Нет!» — «Сидорова?» — ... Если учитель на этот вопрос ответит: «Да», то у Сидорова, по условиям игры, в журнале будет стоять шесть пятерок. Представьте, что вы (ваши дети) играете со своими учителями в такую игру каждый день!



Упражнение. Продумайте, как лучше задавать вопросы, чтобы быстрее получить ответ. Какое минимальное количество вопросов необходимо задать учителю, чтобы установить, кого он задумал, не угадывая, не надеясь на «авось»? (Ведь можно правила ужесточить: если фамилия не отгадывается, например, с 8 вопросов, то за каждый последующий неудачный вопрос ставится дополнительная двойка задуманному учащемуся или тому, кто задал неудачный вопрос.)

На мой взгляд, наиболее разумно в этой ситуации поступить следующим образом.



  1. Переписать всех учеников.

  2. Пронумеровать список — поставить напротив каждой фамилии номер: напротив первой в списке фамилии — 1, на против второй — 2, напротив третьей — 3, ..., пятой — 5,...

  3. Разделить список на две равные части: c 1 по 16 номера и с 17 по 32 и задать первый вопрос: «Задуманный ученик находится в первой половине списка?»

  4. Получив утвердительный ответ («да») на этот вопрос, поделить пополам первую половину списка (номера с 1 по 8 и с 9 по 16) и задать второй вопрос: «В первой ли половине этой половины списка задуманный ученик?». Тем самым мы определим, находится ли задуманный ученик среди 1–8 номера либо 9–16 и поделим пополам ту часть, в которой он находится.

  5. Если на первый вопрос (см. п. 3) нам ответят «нет», то все что мы делали в предыдущем пункте с первой половиной списка, мы проделаем со второй: будем искать ученика среди 17–32 номера, затем среди 17–24 либо 24–32.

  6. Будем последовательно делить половинки на половинки до тех пор, пока у нас не останется две фамилии. Задав последний (пятый по счету!) вопрос, мы, наконец, выясним, который из учеников был задуман. Три пятерки и никакого риска! Зная этот алгоритм (последовательность действий), можно играть все уроки напролет.

Пусть, например, учитель отвечает на вопросы следующим образом:


– В первой половине списка задуманный ученик? – Да

– Номер задуманного ученика находится среди номеров 1–8? – Да

– Номер задуманного ученика находится среди номеров 1–4? – Нет

– Номер задуманного ученика находится среди номеров 5, 6? – Нет

– Номер задуманного ученика 7? – Да
Для большей наглядности изобразим как мы, вообще говоря, методом

исключения «отгадали» задуманного ученика:



Номера

вопросов

Порядковые номера учеников

(в зависимости от полученного ответа, та или иная

половина списка не рассматривается — зачеркивается)


1

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 … 32

2

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 … 32

3

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 … 32

4

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 … 32

5

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 … 32

7 — был загадан 7-й ученик!


Итак, определения.


Единица измерения информации в нашем примере — полученный ответ («да» или «нет»). Количество информации — количество всех ответов «да» и «нет». ([7])
Будем считать, что алгоритм, который мы применяли, угадывая фамилию ученика, достаточно рационален (доказательство этого факта можно найти в [8]), чтобы применить это определение для подсчета количества информации, полученной при узнавании фамилии одного задуманного из 32 учеников. Отгадать фамилию можно, задав большее количество вопросов (можно, например, дважды задать один и тот же вопрос), но подсчитывать количество информации разумно, используя лишь наиболее рациональный подход в получении информации — задав минимальное количество вопросов.

Исходя из этого определения, количество информации, полученной при выяснении задуманной фамилии одного из 32 учеников, равно 5: чтобы выяснить фамилию, нам надо задать учителю пять вопросов и получить 5 ответов «да» и «нет». Можно еще сказать, что пяти равна мера, степень нашего незнания того, которого из учеников задумал учитель.



Упражнение. Чему равно количество информации, полученной при отгадывании

фамилии ученика, если в классе 45 человек? 128 человек?

Это упражнение вам предлагается выполнить способом, аналогичным тому, каким мы отга-дывали одного ученика из 32. Но есть еще один, более научный, способ подсчета количества информации. Количество информации, получаемое при отгадывании одного ученика из n равно log2 n, то есть такому числу x, что если возвести двойку в степень равную этому числу (2x), то получится n. В нашем примере log232=5, так как 25=32. Заметим, что, вообще говоря, количество информации может не быть целым числом. Попробуйте, например, используя калькулятор, возвести 2 в 5.49185309633 степень. 25.49185309633=45.00000000001. К сожалению, решив последнее упражнение для 45 учеников, вы лишь приблизительно сможете представить, как количество информации может быть равно 5.5.


Интересно, что при определении количества информации как суммы всех ответов «да» и «нет», ответ на вопрос, заданный школьнику «Любишь ли ты получать пятерки?» и ответ девушки на вопрос влюбленного в нее юноши «Любишь ли ты меня?» содержат одинаковое количество информации. Какой бы при этом ни был ответ — «да» или «нет» — в этом ответе содержится самая маленькая единица измерения информации — бит (одно из значений английского слова бит (bit) - «маленький кусочек»).

Любой ответ на вопрос, допускающий два ответа — «да» и «нет», заключает в себе единицу измерения информациибит, а чтобы подсчитать, какое количество информации содержится в полученном знании, нам нужно:



  • задавать вопросы, требующие ответа только «да» или «нет»;

  • выбрать самый рациональный способ получения этого знания (требующий минимального количества вопросов);

  • подсчитать количество ответов «да» и «нет», полученных этим способом.


Десятичная и двоичная записи числа
А хватило бы нам пяти вопросов, если бы их надо было задавать все сразу, одновременно; задавать следующий вопрос, не получив ответа на предыдущий? Может показаться, что вопросов в этом случае понадобится гораздо больше. Однако это не так.

Пронумеруем учеников целыми числами от 0 до 31. С нуля начинать в этом случае удобнее, чем с единицы. Почему — вы увидите.

Что значит «пронумеруем»? Напротив фамилии каждого из учеников поставим значок — 0, 1, 2,..., 31. Для записи чисел мы используем десять таких значков (от 0 до 9) и называем их цифрами. С помощью цифр 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 мы можем записать любое целое число, например, 3943 — три тысячи девятьсот сорок три. Так, цифра 3, занимающее в записи числа 3943 самое крайнее правое положение, обозначает количество единиц, цифра 4 — количество десятков, 9 — сотен; цифра 3, занимающая самое крайнее левое положение, — обозначает тысячи. Обратите внимание на то, что 3 в записи числа 3943 встречается дважды. Она занимает как место единиц, так и место тысяч. От того, на каком месте стоит та или иная цифра, зависит, обозначает ли она единицы, десятки, сотни или тысячи.

То есть любое число abcd (буквы a, b, c, d обозначают цифры) можно представить в виде: abcd=a1000+b100+c10+d1=a103+b102+c101+d100. То есть мы число abcd записали в виде суммы цифр числа, умноженных на 10n, где n обозначает, какое место занимает цифра-множитель в записи числа.

В нашем примере: 3943=3000+900+40+3=3103+9102+4101+3100.
n=0 — множитель 3 — цифра 3 стоит в 0-й позиции в числе 3943,

n=1 — множитель 4 — цифра 4 стоит в 1-й позиции в числе 3943,

n=2 — множитель 9 — цифра 9 стоит в 2-й позиции в числе 3943,

n=3 — множитель 3 — цифра 3 стоит в 3-й позиции в числе 3943,
если начинать считать позиции справа налево и начинать подсчет не с 1, а с 0.
Еще пример:

230943=200000+30000+900+40+3=2105+3104+0103+9102+4101+3100


Упражнение. Почему такая запись числа называется «десятичной»?
Вспомним, как устроены … счеты. Счеты — одно из первых вычислительных устройств, появившееся впервые более 1500 лет назад, по-видимому, в странах Средиземноморья. Этим нехитрым устройством, состоящим из набора костяшек, нанизанных на стержни (см. рис. 1, 2), купцы пользовались для своих расчетов ([9]).


2
3

0

9

4

3

рис. 1 рис. 2

В арифметическом смысле стержни счетов представляют собой разряды: на каждом стержне по 10 косточек, каждая костяшка на первом стержне имеет достоинство 1 (разряд единиц), на втором стержне — достоинство 10 (разряд десятков) и т.д.

Косточки свободно перемещаются вдоль стержня. Если на счетах ничего не положе-но, то все косточки должны быть сдвинуты вправо, как на рисунке 1. Для того чтобы отложить на счетах число 230943, нам нужно на шестом, считая снизу, стержне сдвинуть влево 2 косточки (двести тысяч), на пятом — три, на третьем — девять и т.д. (см. рис. 2)

Итак, число 230943 записано с помощью цифр 2,3,0,9,4,3. Но ведь вместо этих значков могло бы быть что угодно: нам не важно, какие значки-закорючки мы пишем, нам важно, чтобы мы могли по ним определить количество, и наоборот, если нам нужно что-то

пересчитать, мы смогли бы просто записать подсчитанное количество предметов, килограммов и т.п.

Можно сказать, что мы «шифруем», «кодируем» количество, а в нашем примере с отгадыванием фамилий — конкретных учеников. Разным фамилиям при этом соответствуют разные числа — разные комбинации цифр или разные, отличающиеся друг от друга, «закорючки».

Давайте теперь попробуем пронумеровать наших учеников, используя не десять цифр, а всего две цифры-«закорючки» — 0 и 1 — двоичную запись числа. Первый ученик получит «закорючку» 0, второй — 1, третий — 10, четвертый — 11.

В номере 11 единица стоит на первом и втором месте. Аналогично десятичной записи, приведенной на предыдущей странице:

394310=3103+9102+4101+3100

394310 — так иногда обозначают десятичную запись числа 3943.
Можно представить число в двоичном виде:

112 =121+120 = 3 — 4-й по счету ученик, если считать с 0-го,

1002 =122+021+020 = 4 — 5-й по счету ученик получит номер 100,...
Более подробно об этом можно узнать из Приложения 1.
Упражнение. Продолжите, пожалуйста, нумерацию.
Для тех, кому трудно было выполнить это упражнение, посоветуем воспользоваться

счетами:




0 0 0
0 0 0
0 0 0
0 1 1
1 0 1

Если вы поняли ход рассуждений и правильно выполнили последнее упражнение, у вас должно получиться, что последнему из тридцати двух учеников соответствует номер-«закорючка» 11111. (Мы начинали нумерацию с 0 для того, чтобы нам не пришлось задействовать еще один, шестой, разряд: 32=100000, тем самым, как вы вскоре поймете, выйти на то же самое количество информации — 5.)

Ничего не произойдет, если мы, используя десятичную нумерацию, первого ученика запишем как 00, второго — 01, 3-го — 02, а с 10 по 31 нули добавлять не будем? Мы догадаемся после этого, что 05 — это пятый ученик? К двоичной нумерации (наши «закорючки» в виде комбинаций 0 и 1) я также добавлю впереди нулей.


Десятичная

запись

00

01

02



23



31

Двоичная

запись

00000

00001

00010



10111



11111

— мы добиваемся того, чтобы количество цифр (нулей и единиц) в обозначении любого порядкового номера в двоичной записи числа всегда было одно и то же — 5.

Пусть в нашей игре учитель, задумавший фамилию ученика, ответил на первый вопрос: «да». На второй — «нет». На третий и четвертый — снова «да». На пятый — «нет»: да, нет, да, да, нет. Поставим вместо «да» единицы, вместо «нет» — нули: 1 0 1 1 0. Порядковый номер 10110 соответствует двадцатой фамилии в нашем списке. Можете проверить, задавая вопросы описанным выше способом, что был задуман именно 20-й по списку ученик!

Самое интересное: послушайте, какие пять вопросов нужно задать в игре-отгады-вании фамилий (одновременно, не дожидаясь ответов на каждый в отдельности):




  1. В порядковом номере задуманного ученика, записанного в двоичной форме, на первом месте стоит единица?

  2. В порядковом номере задуманного ученика, записанного в двоичной форме, на втором месте стоит единица?

  3. На третьем — единица?

  4. На четвертом — единица?

  5. На пятом — единица?


Единицы измерения объема памяти компьютера
Определим количество информации, заключенное в некотором сообщении, как коли-чество двоичных знаков (нулей и единиц), которыми закодировано сообщение.

Определить любого из 32 учеников в классе можно как пятью вопросами: в первой ли он половине списка, в первой ли половине половины..., так и пятью цифрами — 10110 — двадцатый по списку. Объем информации один и тот же — 5.

В компьютере вся информация (тексты, картинки, мелодии и проч.) находится в закодированном нулями и единицами виде. Поэтому в компьютерной практике слово «бит» используется также и как единица измерения объема памяти компьютера (его жесткого диска, дискеты и т.п.). В одну ячейку памяти компьютера может быть записана лишь одна двоичная цифра — 0 или 1. Поэтому размер одной ячейки памяти принято считать равным одному биту.

Подобно тому, как при измерении расстояний, чтобы сократить запись, удобно использовать метры, сантиметры, километры,…, так для измерения объема памяти компьютера используют байты, килобайты, мегабайты и гигабайты.

1 байт = 8 бит

1 килобайт (Кб) 1 000 байт сравните: 1 км = 1 000 м

1 мегабайт (Мб) 10 6 байт = 1 000 Кб

1 гигабайт (Гб)  10 9 байт = 1 000 Мб

“”означает «примерно, приблизительно равно». На самом деле, 1 Кб = 210 = 1024 байта.

Помните, для того чтобы пронумеровать 32 ученика двоичными числами, нам понадобилось 5 разрядов: 00000 — первый ученик, 00001 — 2-й,…, 11111 — 32-й, а 32=25 — степень двойки — 5 — указывает нам на количество разрядов, которое необходимо задействовать, чтобы разместить 32 порядковых номера учеников. В десяти разрядах-ячейках памяти можно разместить 210 = 1024 байтов или 10248 = 21023 = 213 = 8092 бита. Поэтому 1 Mб = 1024 Кб, 1 Гб = 1024 Мб.


Хранение информации в виде 0 и 1 называют цифровым видом хранения информации.([10])
На виниловых пластинках, аудио- и видеокассетах информация хранится в аналоговом виде.

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

Звук имеет волновую природу. Попросту говоря, предмет, издающий звук, вибрирует, вибрация создает воздушные волны, волны «бьют» по нашим барабанным перепонкам — мы слышим.

При проигрывании виниловой пластинки вибрирует игла, «спотыкаясь» о в определенном порядке расположенные бугорки — вибрация усиливается — по нашим барабанным перепонкам бьют те же волны, как если бы мы слышали не запись, а «живое» исполнение, например, соло на скрипке (в этом случае вибрацию создавали бы смычок и струна).

Но царапины, пыль на пластинке, изнашивающее ее частое проигрывание служат причинами искажения звуков. Звуковая информация, представленная в аналоговой форме, при эксплуатации, неаккуратном хранении, и с каждой перезаписью с одного аналогового устройства на другое теряет в качестве.

Музыка (или другая видео- или аудиоинформация), записанная на цифровом устройстве, не меняется при очередном проигрывании или перезаписи. При цифровой записи естественное аналоговое звуковое колебание переводится с помощью специального устройства в последовательность 0 и 1:







На рисунке изображен период звуковой волны, который специальным устрой-ством преобразуется в электрические

импульсы, напряжение которых изме-ряется около пятидесяти тысяч раз в течение секунды.



На компакт-диске каждый нулевой бит представлен микроскопической впадинкой на поверхности компакт-диска, гладкая поверхность обозначает единицу. При проигрывании компакт-диска лазерный луч проходит по его поверхности, а специальный датчик определяет ее состояние — 0 или 1. Затем цифры снова превращаются в электрические импульсы, которые, в свою очередь, генерируют звуковые волны.
Упражнение. Возьмите несколько компакт-дисков. Сколько мегабайт информации на

них записано? Сколько страниц текста (минут звукозаписи,…) они содержат?
Кодирование информации
Вы не заметили, что мы уже несколько раз употребили слово «кодирование» («кодируем фамилии», «закодировано сообщение» и проч.)? Давайте убедимся, что под этим словом и вы, и я понимаем одно и то же.

Для кодирования информации нужно определить набор элементарных символов, разные комбинации которых и будут определять то или иное сообщение. Буквы кодируют слова; с помощью речи или написанного эссе мы можем закодировать и передать наше самочувствие или настроение. В азбуке Морзе все буквы закодированы точками и тире, а передаются с помощью коротких и длинных сигналов. С помощью нот можно закодировать

музыку.

Сопоставим каждой букве русского алфавита последовательность 0 и 1 следующим образом:




Буквы

А

Б

В

Г



Ю

Я

Двоичные

знаки

00000

00001

00010

00011



11110

11111

Если теперь все буквы дальше в этом тексте менять на последовательности 0 и 1 согласно таблице, то, чтобы читать дальше, вам придется выучить наизусть эту таблицу соответствий.

Одни и те же сведения могут быть закодированы в нескольких разных формах. Например, одни и те же понятия на разных языках произносятся и записываются по-разному. Совершенно разные сведения могут быть представлены в похожей форме: «тетя Маруся заболела», переданное шпионом, может означать что-то иное... В большинстве со-временных компьютеров, например, каждому символу (букве, цифре, знаку препинания,…) соответствует последовательность из восьми 0 и 1. (Мы же только что кодировали буквы, используя всего лишь пять.)
Упражнение. Сколько бит (байт, килобайт) памяти компьютера займет данная стра-ница, если известно, что каждая буква, знак препинания, пробел при записи в память компьютера занимает 8 бит?
Наименьшее число элементарных символов, с помощью которых можно закодировать любую информацию — два. (Строго говоря, достаточно одного символа: вторым «символом» может служить «пустое место» или пробел — отсутствие тока в электроцепи.)

В том, что слова можно закодировать с помощью всего двух символов, сомневаться не приходится (только что приведенный пример — см. таблицу, азбука Морзе). При этом все равно, будут ли это точки и тире, короткие и длинные сигналы, две цифры — 0 и 1 или отсутствие-наличие тока в проводнике.

Звук характеризуется высотой, интенсивностью и продолжительностью звучания, точка на картине — цветом и расположением на плоскости, любой цвет и оттенок можно получить, «смешав» в разных пропорциях цвета (RGB — Red-Green-Blue — палитра для изображений на экране компьютера, CMYK — для цветной печати).

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

В кодировании информации успешно используются особенности восприятия информации самим человеком. Если быстро менять картинки, не очень сильно отличаю-щиеся друг от друга, у смотрящего создастся иллюзия непрерывного движения. Эта особенность человеческого восприятия используется и в мультипликации, и в кинема-тографе, и при записи мелодий на компакт-диск.

Информационные революции
Вообще то, чего достигло человечество (научно-технические достижения, культура, быт,…) было бы немыслимо без успехов в кодировании информации — появления речи, изобретения письменности и арифметики (системы кодирования числовой информации) и проч.

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

Кризис порождал революцию…

В истории человечества информационных революций было четыре.


Революция перваяизобретение письменности — позволила передавать знания от поколения к поколениям. До этого знания передавались «из уст в уста», и несчастный случай, скоропостижная смерть верховного жреца или главного шамана, уничтожение племени, просто нежелание ни с кем делиться своими знаниями приводили к потере знаний. «Что написано пером — не вырубишь топором» — свитки многих древних цивилизаций сохранились по сей день. После изобретения письменности знания стали накапливаться внутри отдельных племен, общин, городов, а рукописная их фиксация иногда переводилась на другие языки.
Вторая информационная революцияизобретение книгопечатания — сделала информацию доступной массам. Книги перестали быть уделом избранных, их цена уменьшилась, появились публичные библиотеки. На всех этапах развития человечества постоянно что-то изобреталось и усовершенствовалось. Одни люди использовали знания и изобретения других, чтобы облегчить свой труд либо изобрести что-то свое. Они рассуждали примерно так: «Мой сосед использует новое приспособление. Это приспособление позволяет ему делать то же, что и я, но затрачивая меньше времени и усилий. Мне нужна неделя, чтобы сшить сапоги, он же за неделю спокойно делает три пары. Поэтому мой сосед может позволить продавать сапоги дешевле, чем я их продаю. Поэтому мне надо приложить все усилия, чтобы продавать так же дешево, как мой сосед», — либо применить «новую технологию», либо изобрести что-то свое. После изобретения книгопечатания стало возможным не только воспользоваться опытом соседа, но, зачастую, и всего человечества. С этого момента человечество как бы единое целое: ученые, художники и музыканты разных стран создают единую, всемирную науку и культуру.
Третья информационная революцияизобретение электричества и, как следствие, телеграфа, телефона, радио — позволила оперативно (быстро и организованно) передавать информацию на большие расстояния и избавила многих от информационного голода.
Четвертая революция связана с появлением персонального компьютера. Изобретение персонального компьютера позволило накапливать информацию в больших объемах, ускорило ее переработку.
Общая сумма знаний человечества менялась в начале его возникновения очень медленно: изобретений было не очень много, внедрялись и распространялись они не очень быстро, терялись, скрывались... Но, начиная с XX века, знания стали нарастать лавинообразно. С 1900 по 1950 год сумма человеческих знаний удвоилась (!) Она еще раз удвоилась к 1960 году... Затем удвоение происходило каждые 5 лет. Начиная с 1990 года, человеческие знания удваиваются ежегодно.
Создалась парадоксальная ситуация: в мире накоплен громадный потенциал знаний, но люди не могут воспользоваться им в полном объеме...

Множество открытий появляется с такой скоростью, что «их невозможно ни осознать, ни тем более запомнить» (В. Буш, [11]). Во многих случаях выгоднее стало создать что-то свое, возможно даже повторно открыть уже кем-то открытое, чем искать аналогичный продукт, сделанный кем-то ранее. Поэтому очень многое из такой огромной массы информации можно рассматривать лишь как информационный мусор. В науке даже был введен специальный термин — «макулатурофактор».

С возникновением информационной сети Internet такого рода мусора стало не меньше (а даже больше), но возможности по поиску нужной информации существенно расширились.
Факты из истории вычислительных устройств
Закладка фундамента компьютерной революции происходила медленно и далеко не гладко. Отправной точкой этого процесса можно считать изобретение небезызвестных вам счетов, сделанное более 1500 лет назад.

Вплоть до XVII века счеты как вычислительный инструмент оставались практически

вне конкуренции.

В 1642 г. сын сборщика налогов Блез Паскаль, когда ему было всего 19 лет, начал работать над созданием суммирующей машины. Паскаль задумал построить вычислитель-ное устройство, наблюдая бесконечные утомительные расчеты своего отца. (Язык програм-мирования Паскаль, основы которого изложены в этой книге быль назван в честь именно этого Блеза Паскаля — гениального французского математика и физика.) Cуммирующая машина Паскаля, «паскалина», представляла собой ящик с много-численными шестеренками, а изобретенный им принцип связанных колес явился основой, на которой строилось большинство вычислительных устройств на протяжении следующих трех столетий. При работе на «паскалине» складываемые числа вводились путем соответствующего поворота наборных колесиков. Каждое колесико с нанесенными на него делениями от 0 до 9 соответствовало одному десятичному разряду числа — единицам, десяткам, сотням и т.д. При сложении колесико, поворачиваясь и получая избыток над 9 (совершая полный оборот), «переносило» единицу в старший разряд, продвигая соседнее слева «старшее» колесико на одно деление вперед (очень похоже на сложение на счётах!). Другие операции выполнялись при помощи довольно неудобной процедуры повторных сложений.

Первая машина, позволявшая легко производить вычитание, умножение и деление — механический калькулятор — была изобретена в Германии Готфридом Вильгельмом Лейбницем в конце XVIII века. (Им же были заложены основы двоичной системы счисления.)

В 1804 г. французский инженер Жозеф Мари Жаккар построил полностью автоматизированный станок, способный воспроизводить сложнейшие рисунки ткани. Работа станка программировалась при помощи целой колоды перфокарт, каждая из которых управляла одним ходом челнока. Переходя к новому рисунку, оператор просто заменял одну колоду перфокарт другой.

В 1822 г. англичанин Чарлз Бэббидж построил пробную модель Разностной машины, состоящей из шестеренок и валиков, вращаемых вручную при помощи специального рычага и способной рассчитывать и печатать большие математические таблицы.

Через 19 лет после смерти Бэббиджа один из принципов, лежащих в основе идеи его Аналитической машины (которая так и не была построена), — использование перфокарт — нашел воплощение в табуляторе, построенном американцем Германом Холлеритом — табуляторе Холлерита. Табулятор был построен с целью ускорить обработку результатов переписи населения, которая проводилась в США в 1890 году. Обработка результатов этой переписи потребовала приблизительно втрое меньше времени по сравнению с предыдущей, длившейся семь с половиной лет. К слову, Холлерит в 1924 г. создал фирму IBM — International Business Machines Corporation. (См. также [12], [13].)

Как вы видите, по мере роста потребностей человека росла и необходимость в вычислениях. И если человечество довольствовалось счетами около пятнадцати веков, то механические калькуляторы и разностные машины (даже с электромоторами) вскоре перестали удовлетворять потребность в вычислениях.

Мощным стимулом развития вычислительных средств стала Вторая мировая война. Самолеты гитлеровского Люфт–ваффе почти безнаказанно бомбили города и военные объекты Великобритании. Скорость и маневренность самолетов были столь велики, что наведение зенитного орудия следовало автоматизировать, поскольку солдаты просто перестали попадать. Предложенный американским математиком Норбертом Винером способ расчета траектории стрельбы требовал большого объема вычислений, которые необходимо было проделать за 2–3 секунды. Электромоторы тут бессильны. Была нужна электроника. Первыми к созданию элктронной вычислительной машины подошли немцы. Для завершения работы нужны были время и деньги. Времени запланировано было слишком много — два года, и в финансировании отказали — Гитлер не поддерживал исследования продолжитель-ностью больше года: к этому сроку он надеялся захватить власть над миром.

Табуляторы, выпускаемые фирмой IBM, сортировали перфокарты, тем самым ускоряя поток бумажной работы, порожденной всеобщей мобилизацией. А тем временем, призванный в ряды военно-морского флота США молодой математик из Гарварда Говард Эйкен убедил в возможности создания компьютера, который сможет рассчитывать траектории полета артиллерийских снарядов, командование ВМФ и руководство фирмы IBM, профинансировавшей проект. В основу машины легли непроверенные идеи прошлого века (в частности, Аналитическая машина Бэббиджа) и технологии нынешнего, XX века.

«Марк-1» был почти 17 м длиной, 2,5 м высотой, содержал около 750 тыс. деталей, соединенных проводами общей протяженностью около 800 км. Во время войны с помощью этого компьютера рассчитывались таблицы траекторий баллистических ракет, а после войны еще лет 15 «Марк-1» помогал математикам Гарвардского университета составлять математические таблицы и решать разнообразные задачи — от создания экономических моделей до конструирования электронных схем компьютеров.

Почти за шесть лет года до появления компьютера «Марк-1», к идее автоматической цифровой ЭВМ приходит Дж. Атанасов, доцент колледжа штата Айова (США). В 1939 г. он и его аспирант Кл. Берри создали работающую настольную модель ЭВМ. Весной 1942 г. обстоятельства, связанные с войной, прервали работу Дж. Атанасова над новой моделью вычислительной машины, причем машина была почти закончена.

В конце 30-х гг. С.А. Лебедев (Институт электротехники АН УССР) приступил к конструированию ЭВМ, работающей в двоичной системе счисления. В 1941 г. работа была прервана ([14]).

В 1941 г. немец Конрад Цузе построил компьютер Z3, который был значительно меньше машины Эйкена, и его производство стоило гораздо дешевле. Z3 использовали для расчетов, связанных с конструированием самолетов и ракет. Но главному замыслу Цузе так и не суждено было осуществиться. Он совместно австрийским инженером-электриком Хельмутом Шрайером хотел перевести Z3 c электромеханических реле на вакуумные электронные лампы, тем самым управлять компьютером исключительно электрическим током и в тысячу раз увеличить скорость работы компьютера. Проект был отклонен: Гитлер, уверенный в быстрой победе, запретил все долговременные научные разработки. Это был 1942 год…

Вторая мировая война еще не началась, а британская разведка уже работала над поиском расшифровки секретных немецких кодов. В 1939 г. поляки создали точную копию немецкого шифровального аппарата «Загадка» и переправили его в Англию. Но ни сам аппарат, ни знание принципа его работы не позволили расшифровывать вражеские сообщения. Чтобы решить эту проблему государство собрало группу блестящих ученых — от инженеров до профессоров литературы, изолировало ее от внешнего мира и предоставило все условия для свободного творчества в направлении расшифровки сообщений, зашифрованных «Загадкой».

Алан Тьюринг, математик–теоретик из Кембриджского университета, входил в состав той группы ученых. Его работы сыграли исключительную роль в развитии вычислительной математики и информатики. В конце 1943 года в результате коллективной работы этой группы была построена дешифрующая машина на электронных вакуумных лампах (что и предлагал в свое время Цузе). Назвали машину «Колосс». «Колосс» был специализирован-ной машиной и применялся только для расшифровки секретных кодов. Первый универсальный компьютер ЭНИАК был собран в конце 1945 г. Он более чем вдвое превосхо-дил «Марк-1» в размерах, но тысячекратно опережал его в быстродействии.

За 55 лет было изобретено очень много электронных машин, отличавшихся друг от друга качественно новыми свойствами. Опираясь на такие характеристики компьютера, как объем памяти, быстродействие, возможности поддерживать то или иное программное обеспечение… Выделяют целые поколения вычислительных машин.

Так, первое поколение (50-е гг.) отличалось применением электронных ламп и низким быстродействием — 20 тыс. арифметических (сложение, умножение) операций в секунду. Одной из самых острых проблем эксплуатации этих машин был отвод тепла, которое производили тысячи электронных ламп. Машины первого поколения использовались только для решения вычислительных задач научного характера.

Во втором поколении (60-е гг.) электронные лампы сменили миниатюрные транзисторы. Быстродействие возросло до сотен тысяч операций в секунду. Появилась возможность программирования на так называемых алгоритмических языках.

Машины третьего поколения (70-е гг.) создавались на интегральных схемах. Эле-менты электронных схем состояли не из отдельных транзисторов, емкостей и сопротивлений, а вытравливались на кристаллической многослойной пленке (сотни–тысячи транзисторов в одном корпусе). Вычислительные машины образовывали серии (например, известная серия IBM/360). Программа, отлаженная на одной машине из серии, как правило, могла выполняться на другой из этой же серии.

Далее из поколения в поколение интегральные схемы совершенствуются: уменьшается размер транзисторов, увеличивается их количество в одном кристалле, появляются параллельно работающие микропроцессоры (большие и сверхбольшие интегральные схемы) — четвертое поколение. К пятому поколению относят оптоволокон-ные ЭВМ с сетью большого числа (десятки тысяч) несложных микропроцессоров, моделирующих архитектуру нейронных биологических систем ([6]).


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

вам выполнить следующее:




  1. Постарайтесь, не заглядывая в книгу, вспомнить хотя бы приблизительное значение слов:




  • информатика,

  • мегабайт,

  • информация

  • двоичное число,

  • количество информации,

  • информационная революция.

  • кодирование информации,





  1. Мысленно попробуйте воспроизвести все, что вы запомнили.

Часть I Метаморфозы: появление программы
Программа — это инструкции компьютеру, которые заставляют компьютер выполнить некоторую работу.

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

Включив зажигание и нажав педаль газа, можно заставить ехать автомобиль. Нажмешь педаль сильнее — он поедет быстрее, надавишь ногой на тормоз — он оста-новится. Понятно, как автомобилю можно сообщить, что и когда нужно делать, чтобы перевезти водителя и пассажиров, например, из города на дачу. Но как можно общаться с компьютером? Как его заставить выполнить некоторую работу? (Работа, которую выполняет автомобиль — транспортировка водителя и пассажиров.)
Вот что обычно делает компьютер:


  • Работает с вводимыми или введенными данными и цифрами: производит бухгалтерские расчеты, просчитывает баллистические траектории,…

  • Обеспечивает доступ к имеющимся в компьютерах знаниям, позволяет вводить запросы и получать на них ответы (например, используя сеть Интернет).

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

  • Дает советы: можно решать задачи в диалоге с компьютером, по ходу дела вмешиваться в его решения (вспомните компьютерные игры).

  • Управляет процессами, причем эти самые процессы могут быть как достаточно простыми (управление сетью светофоров, поддержание в помещении постоянной температуры), так и достаточно сложными — помощь авиадиспетчерам в предотвращении столкновений самолетов.

Что (и кто) заставляет автомобиль ехать вы, примерно, представляете. Уроки физики и курсы по подготовке водителей могут улучшить ваше представление.

Первый электронный компьютер появился более чем через полвека после появления автомобиля. Но если бы автомобилестроение развивалось так же быстро, как развивается компьютерная индустрия, то «…мы имели бы автомобили, которые бы весили около 200 граммов, расходовали бы около двух литров бензина на 1,5 миллиона километров и стоили бы примерно 2,7$.» ([15])

Для того чтобы основательно разобраться в принципах работы компьютера, нужно знать многое из физики, химии, математики, логики, истории вычислительных устройств. Думаю, что не многие профессиональные программисты знакомы со всеми нюансами работы компьютера. Заглавие нашей книги обещает «быстрый старт», поэтому подробно останавливаться на этих вопросах мы не будем. Основы достаточно хорошо описаны в книге «Знакомьтесь: компьютер», выпущенной издательством «Мир» ([12]).


Коротко изложим основные принципы работы компьютера.



следующая страница >>