
Основы информатики
.pdf
Кирьянов Б.Ф. Основы информатики. 71
длинный путь (рис. 3.15). Этот луч создаѐтся источником света, отражается от стеклянной крышки со сканируемым материалом, затем от двух зеркал, проходит через фокусирующую линзу, попадает на светочувствительные диоды и преобразуется в электрический процесс. Последний с помощью аналогоцифрового преобразователя преобразуется в последовательность кодов, записываемых в соответствующий файл с отсканированным материалом.
Рис. 3.15. Структура сканирующего устройства в настольных сканерах
Ручные сканеры нашли широкое применение в компьютерно-кассовых системах. Типичной задачей при этом является сканирование штрих-кодов. Широкое использование штриховых кодов было обусловлено необходимостью обеспечить автоматизированный ввод информации в компьютерные системы управления, который отличался бы высокой надежностью, простотой и экономичностью. Мы сталкиваемся со штриховыми кодами, покупая товары в магазинах, при оплате за квартиру, сдавая багаж в аэропортах и т.д. Они − малогабаритные и удобные для оперативной работы (рис. 3.16).
Штриховые коды, характеризуются высокой надежностью. К ним применимы те же методы защиты от ошибок, которые широко используются в компьютерных системах. За счет некоторой избыточности можно создавать самоконтролирующиеся и самокорректирующиеся коды. При существующих методах защиты линейного кода, обеспечивающих вероятность появления ошибки не более одной на 30 млн. считанных знаков, избыточность кода остается в разумных пределах – обычно это одна контрольная цифра.

Кирьянов Б.Ф. Основы информатики. 72
Простота применения штрихового кода определяется его природой: его наличие или отсутствие сразу видно, он легко наносится на упаковку изделия или на бумажный ярлык и хорошо считывается сканерами, соединенными с компьютером. Для декодирования снимаемого со сканера кода требуется ещѐ декодер, выполненный как отдельное устройство или совмещенный со сканером. Но декодирование можно выполнять и в компьютере с помощью соответствующей программы.
В последние годы в компьютерно- |
|
кассовых системах обычно использует- |
Рис. 3.16. Ручной лазерный сканер |
ся лазерное считывание штрих-кодов. |
MS5145 EclipeTM |
Графопостроители. Название этих устройств происходит от греческого слова плоттер – устройство для вычерчивания рисунков. В настоящее время понимается как устройство для автоматического вычерчивания с большой точностью рисунков, схем, сложных чертежей, карт и другой графической информации на бумаге размером до A0 или на кальке. Графопостроители являются высококачественной альтернативой принтерам при выводе изображений. Они чертят графики, рисунки или диаграммы под управлением компьютера и используются для получения сложных конструкторских чертежей, карт и схем.
Рис. 3.17. Широкоформатный планшетный графопостроитель (плоттер) для радиокосмической и лѐгкой промышленности отечественного производства

Кирьянов Б.Ф. Основы информатики. 73
Наибольшее применение графопостроители получили в промышленности (тяжѐлая промышленность, швейная и др.).
Вкомплектах ПК графопостроители обычно не используются, так как получаемые программным путѐм графики могут быть выведены на печать с помощью принтера.
3.4.4.Работа устройств компьютера при его включении
Вмомент включения компьютера в его ОЗУ нет ничего (без питания вся информация стирается за сотые доли секунды). Поэтому сразу же после включения на адресную шину процессора выставляется стартовый адрес. Это происходит аппаратно, без участия программы (всегда одинаково). Этот адрес не может быть адресом ОЗУ, в которой ещѐ ничего нет. Программы запуска компьютера ―зашиваются‖ (записываются) в ПЗУ. Комплекс программ в ПЗУ образует базовую систему команд ввода-вывода (BIOS – Basic Input Output System). Основное назначение этого пакета состоит в том, чтобы проверить состав
иработоспособность компьютерной системы и обеспечить взаимодействие с клавиатурой, монитором, жестким диском и внешними дисками. Входящие в BIOS программы позволяют наблюдать на экране диагностические сообщения, сопровождающие запуск компьютера, и вмешиваться в ход запуска с помощью клавиатуры.
Программы, входящие в BIOS, не имеют информации о внешних дисках, о составе и портах подключения внешних устройств, которые могут изменяться. По указанным выше причинам эти сведения нельзя хранить ни в ОЗУ, ни в ПЗУ. Для хранения этих сведений на материнской плате есть микросхема энергонезависимой памяти, по металло-оксидной технологии изготовления назы-
ваемая CMOS-память (complementary metal oxode semiconductor – "дополни-
тельный металло-оксидный полупроводник‖). В неѐ заносятся данные о текущем составе системы. Микросхема питается от небольшой аккумуляторной батарейки, расположенной на материнской плате. Заряда батарейки хватает на несколько месяцев. В CMOS, кроме программ и указанной информации, отслеживаются время и календарь.
Лабораторные работы, выполняемые при изучении раздела 3:
1.Ознакомление с дополнительными возможностями текстового опера-
ционной системы MS Windows [2, 7].
2.0Редактор таблиц MS Excel.

Кирьянов Б.Ф. Основы информатики. 74
Контрольные вопросы по разделу 3:
1.Как компьютер определяет положение указателя мыши на экране монитора?
2.Почему компьютерные часы продолжают работать при выключенном компьютере?
3.В каком порядке располагаются в папке файлы, названия которых начинаются: a) с русских букв; b) с латинских букв; c) с цифр?
4.В каком случае в Microsoft Exсel используется указатель мыши ↔ ? Каким образом можно поменять подписи по оси абсцисс на диаграмме
вMicrosoft Excel?
5.Какая внутренняя память ЭВМ является самой быстродействующей?
6.Какие иностранные слова закрепились в отечественной литературе за ЗУ на магнитной ленте и графопостроителями?
7.Какие устройства внешней памяти ЭВМ допускают ―горячее‖ подключение?
8.Какие ЭВМ называют SISD-машинами и какие MIMD-машинами? Какой архитектуре более всего соответствуют ЭВМ с конвейерной обработкой информации?
9.В чѐм состоит основное отличие оптических дисков внешней памяти CD-R, CD-ROM и DVD? На какой материал производится в них запись информации?
10.Каков принцип работы жидкокристаллических мониторов? Какие их параметры считаются основными?

Кирьянов Б.Ф. Основы информатики. 75
4.АЛГОРИТМЫ И ИХ ПРИЛОЖЕНИЯ
4.1.Общие сведения об алгоритмах. Основные этапы их разработки
Понятие и формальное определение алгоритма. Ранее говорилось, что алгоритм – это набор шагов, которые определяют как выполняется задача. Нестрого определѐнные понятия являются допустимыми и обычными в повседневной жизни, но наука должна базироваться на терминологии, которая имеет строгие определения. В науке используется формальное определение алгоритма (то есть общего определения, пригодного для описания сути шагов решения произвольных задач).
Итак, алгоритм – это упорядоченный набор однозначно выполнимых шагов, предназначенных для решения задачи. Приведѐнное определение ут-
верждает, что последовательность шагов алгоритма должна быть структурирована (упорядочена). Это не означает, что шаги должны следовать один за другим. Может иметь место параллельное выполнение отдельных цепочек алгоритма (например, в многоядерных компьютерах). Шаги алгоритмов могут вы-
полняться как программно, так и аппаратно.
Свойства, которыми должен обладать алгоритм:
выполнимость шагов;
однозначность;
результативность.
Алгоритм должен состоять из выполнимых шагов. Нельзя, например, вывести список всех положительных целых чисел. Но однозначность выполнения не означает однозначности получаемых результатов. Если на некотором шаге генерируется случайная целая десятичная цифра, то результатом может быть одна из десяти цифр: 0, 1, … 9. Поэтому приведѐнное формальное определение пригодно и для вероятностных алгоритмов. В данном случае однозначность следует понимать как однозначность действий для получения результата.
Желательно, чтобы используемый алгоритм был эффективным, то есть чтобы он достигал нужного результаты за малое число шагов, обеспечивал необходимую точность решения и т.д. Пример: поиск вещественного корня нелинейного уравнения методом половинного деления (эффективный) или методом перебора с малым шагом (неэффективный).
Определение алгоритма подразумевает, что алгоритм задаѐт конечный процесс, то есть выполнение алгоритма должно когда-нибудь закончиться. Это

Кирьянов Б.Ф. Основы информатики. 76
требование происходит из области теоретической вычислительной техники. Пример: X = 1/3 – вычисляется до достижения определѐнной точности. Следовательно, процесс этого вычисления является конечным.
Одна из целей теории алгоритмов состоит в том, чтобы ответить на вопрос: ―Каковы предельные возможности алгоритмов и машин? Можно ли вычислить значение любой задаваемой функции?‖. Сразу ответим, что существуют невычислимые функции. В первую очередь это относится к проблеме останова вычислительного процесса. Этот останов по условию достижения задаваемого результата может и не произойти никогда. Соответствующие функции могут оказаться невычислимыми, например, нельзя вычислить значение несобственного интеграла от функции, колеблющейся с бесконечно увеличивающейся частотой.
Основные этапы разработки алгоритмов. Разработка программы обычно состоит из двух этапов: создание или выбор лежащего в еѐ основе алгоритма и представление этого алгоритма в виде программы.
При построении алгоритмов не всегда нужна подробная детализация. Важно понять суть задачи. Возможны укрупнения этапов решения. Обобщение иногда позволяет упростить алгоритм. Рассмотрим это на примере задачи ―Догнать шляпу‖: скорость воды в реке 2 км/час, человек поплыл на лодке против течения со скоростью 4 км/час относительно воды, не заметив, что в начале движения его шляпа упала в воду; через 10 мин он заметил отсутствие шляпы и поплыл назад с той же скоростью. За сколько мин человек догонит шляпу?. Не сложно понять, что в данной задаче излишни данные о скоростях реки и лодки. Ответ: за 10 мин.
В 1945 г. математиком Г. Пойа (Gyorgy Polya – Венгрия, Швейцария, США) были сформулированы следующие нестрогие этапы решения задач:
1. Понять задачу.
2. Разработать план решения задачи.
3. Выполнить план.
4. Оценить необходимую точность решения и его возможности … В переводе на язык создания алгоритмов эти этапы выглядят следующим
образом:
1.Понять задачу.
2.Подобрать алгоритмическую процедуру, которая может решить задачу.
3.Сформулировать алгоритм и записать его в виде программы.

Кирьянов Б.Ф. Основы информатики. 77
4. Оценить точность работы программы и еѐ возможности как инструмента для решения других задач.
На практике этапы Пойа могут корректироваться и не обязательно выполняться в указанной последовательности (они – нестрогие). Разработка алгоритма в определѐнной степени является искусством. В этой работе нужно проявлять инициативу. Но в целом предложенный Пойа порядок разработки алгоритмов используется и в настоящее время (пока не будут создали компьютеры с искусственным интеллектом).
4.2. Способы представления алгоритмов и их классификация
Согласно общей методике представления (описания, задания) алгоритмов необходимо обозначить начало и конец алгоритма, этапы ввода-вывода данных, соответствующие этапы обработки информации, условные переходы при выполнении операций согласно описываемому алгоритму.
Основными способами представления алгоритмов являются:
Словесно-формульное описание.
С помощью блок-схемы (схемы графических символов).
С помощью операторной схемы.
На основе псевдокода.
С помощью алгоритмических языков.
Словесно формульное описание алгоритмов, когда алгоритм описывается одним или большим числом предложений с соответствующими формулами (если они необходимы), для сложных задач не является наглядным. Поэтому обычно он используется только для простых алгоритмов. Блок-схемы предполагают использование стандартных графических символов (примитивов), которые задают блоки начала и конца алгоритма (1), ввода и вывода данных (2), вычисления и другую обработку информации (3), условных переходов:
1 |
2 |
3 |
4 |
Вход в блоки 2 – 4 выполняется сверху (указывается стрелкой), блок 4 имеет ещѐ выходы влево и направо. Блок 1 используется для обозначения начала и конца алгоритма, и соответственно он имеет только выход или только вход.

Кирьянов Б.Ф. Основы информатики. 78
В операторных схемах каждый простой оператор обозначается соответствующей буквой, для обозначения комплекса действий используются условные обозначения, называемые примитивами. В итоге блок-схема может быть представлена с помощью строчной записи. Однако такой способ описания алгоритмов ещѐ недостаточно разработан, продолжается работа по его совершенствованию [5].
Одвух последних способах представления алгоритмов речь пойдѐт в п.
4.9и в 5-й главе.
Классификация алгоритмов по характеру решаемых задач. Среди ал-
горитмов можно выделить группы алгоритмов определѐнного целевого назначения: алгоритмы (методы) распознавания образов, алгоритмы засекречивания передаваемой информации, алгоритмы поиска максимальных и минимальных значений функции в некоторой области или в некотором пространстве и др. Остановимся кратко на четырѐх группах:
Вычислительные алгоритмы.
Алгоритмы моделирования.
Алгоритмы сортировки.
Алгоритмы поиска.
4.3. Вычислительные алгоритмы
Рассматриваемые алгоритмы преобразуют числовую информацию. При этом большинство машинных операций выполняется в двоичной системе счисления. Поэтому рассмотрим вначале вопросы, связанные с представлением чисел в ЭВМ и с машинными операциями.
4.3.1 Системы счисления. Представление чисел и операции с ними
Система счисления – это совокупность способов обозначения натуральных чисел. Человек начал считать ещѐ за 10 – 11 тысяч лет до нашей до нашей эры с помощью палочного способа (соответствующая величина определялась количеством лежащих палочек). По числу используемых ―знаков‖ такую систему счета можно назвать единичной системой счисления.
Первой в полном смысле системой счисления является древнеегипетская система записи чисел. В ней использовалось 6 знаков: | (единица), (десяток), сотня, тысяча, десять тысяч и миллион. Принцип записи чисел был аналогичен появившейся позднее римской системе, использовавшей символы 1, V (пять), Х

Кирьянов Б.Ф. Основы информатики. 79
(десять), L (пятьдесят), С (сто) и М (тысяча). Эти системы счисления были непозиционными, то есть значений цифры не зависело от еѐ местоположения в числе. Так, в римской системе счисления число CX означает сто десять, а число ХС – девяносто, так как в первом случае символ меньшего числа стоит после символа большего числа, а во втором случае – наоборот. Очевидно, использование такой системы счисления в ЭВМ было бы крайне неудобно.
Из непозиционных систем счисления отметим ещѐ греческую и славянскую системы, которые уже давно не используются (последняя использовалась во второй половине первого тысячелетия нашей эры.
Исторически первой позиционной системой стала вавилонская шестидесятеричная система счисления. Но она не прижилась ввиду большого количества используемых цифр.
Постепенно человечество полностью перешло на позиционную систему счисления, которая в Европе используется уже более 500 лет. Поскольку в Европу еѐ завезли от арабов, то к ней привилось название ―арабская система счисления‖. Однако следует отметить, что к арабам эта система счисления попала из Индии. Поэтому фактически использующая в настоящее время система счисления фактически является индийской.
В любой позиционной системе счисления значение каждой цифры зависит от позиции (от разряда), занимаемой ею в числе. В ЭВМ используются только позиционные системы счисления. Значение некоторое число представляется в них следующим образом:
целой и дробной частях числа, a – основание системы счисления.
Рассмотрим методы преобразования чисел из одной системы счисления в другую. Перевод чисел из десятичной системы в двоичную можно выполнить путѐм деление на двойки целой части числа и умножение на двойки его дробной части. Аналогично десятичные числа можно перевести и в другие системы счисления, однако в общем случае умножать и делить нужно не на двойки, а на основание новой системы счисления. Ниже приведѐн пример алгоритма перевода десятичного числа 74,375 в двоичную и в пятеричную системы счисления.
Определение целой (слева) и дробной частей двоичного числа:

Кирьянов Б.Ф. Основы информатики. 80
|
|
|
|
|
|
|
|
|
|
|
|
|
|
74 37 18 |
9 |
4 |
2 |
1 |
0 |
– частные, |
0,375 0,75 0,5 0 – дробные части, |
||||||
|
0 |
1 |
0 |
1 |
0 |
0 |
1 |
– остатки. |
|
0 |
1 |
1 – целые части произведений. |
|
В результате получено двоичное число: |
В результате получили: |
||||||||||||
|
|
i |
6 5 4 3 2 1 0 |
J |
- 1 -2 -3 |
|
|||||||
|
|
|
1 0 |
0 1 0 1 0 |
|
0 |
1 |
1 |
|
||||
|
Определение целой (слева) и дробной частей пятеричного числа: |
||||||||||||
74 14 |
2 |
0 – частные, |
|
0,375 0,875 0,375 – дробные части, |
|||||||||
4 |
4 |
2 |
– остатки. |
|
|
|
|
1 |
4 – целые части произведений. |
||||
В итоге получено пятеричное число: |
В результате получили: |
||||||||||||
i 2 |
1 |
0 |
|
|
|
|
|
|
J |
- 1 |
-2 |
|
|
2 |
4 4 |
|
|
|
|
|
|
|
1 |
4 |
|
|
Перевод чисел из одной системы счисления в другую не всегда выполняется точно. Обычно он производится до получения необходимого числа разрядов после запятой. Если при этом получится отличный от нуля остаток, то он округляется. Так, если при переводе чисел в двоичную систему двоичная часть числа, которую нужно отбросить, начинается с цифры 0, то оставляемая часть числа при округлении не корректируется. Если же отбрасываемая часть числа начинается с цифры 1, то к младшему разряду оставляемой его части при округлении добавляется единица.
Аналогично рассмотренному можно переводить числа из любой системы счисления в любую другую без использования в качестве промежуточной десятичной системы счисления. Рассмотрим в качестве примера перевод целого восьмеричного числа 257 (в десятичной системе это 175) в троичную систему счисления. В этом примере все действия (деление на 3) выполняются в восьмеричной системе счисления.
257 |
72 |
23 |
6 |
2 |
0 |
|
1 |
1 |
1 |
0 |
2 Таким образом, получили троичное число 20111. |
Преобразовать число из произвольной системы в десятичную проще всего путѐм сложения степеней основания исходной системы согласно выражению (4.1). Выполним это преобразование для троичного числа 20111. Получаем:
Aдес = 2∙34 + 0∙33 + 1∙32 +1∙31 +1∙30 = 175.