Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Основы информатики, организации ЭВМ, вычислительных и информационных систем. Учебное пособие
.pdf
Существуют позиционные и непозиционные системы счисления. В позиционных системах счисления вес каждой цифры изменя-
ется в зависимости от ее положения (позиции) в последовательности цифр, изображающих число. В позиционной системе счисления
представления чисел далеко не так просты и очевидны, как в «римской» системе счисления, систематичность представления, основанная на «позиционном весе» цифр, обеспечивает простоту выпол-
нения операций умножения и деления.
В непозиционных системах вес цифры (т.е. тот вклад, который
она вносит в значение числа) не зависит от ее позиции в записи
числа. В «римской» системе счисления каждый числовой знак в записи любого числа имеет одно и то же значение, т.е. значение числового знака не зависит от его расположения в записи числа. В римской системе счисления в числе ХХХII (тридцать два) вес цифры Х
в любой позиции равен просто десяти, а I – это единица.
Для изображения чисел в настоящее время используются в основном позиционные системы счисления. Привычной для всех является десятичная система счисления. В этой системе для записи
любых чисел используется только десять разных знаков (цифр): 0,
1, 2, 3, 4, 5, 6, 7, 8, 9. Эти цифры введены для обозначения первых
десяти последовательных чисел, а следующее число 10 и т.д. обозначается уже без использования новых цифр. Однако введением
этого обозначения сделан важный шаг в построении системы счисления: значение каждой цифры поставлено в зависимость от того
места, где она стоит в изображении числа.
Десятичная запись любого числа X в виде последовательности
цифр: , основана на представлении этого числа в
виде полинома:
,
где каждый коэффициент а
, может быть одним из чисел, для
i
обозначения которых введены специальные знаки. Запись числа X в
формуле представляет собой просто перечисление всех коэффици-
ентов этого полинома. Точка, отделяющая целую часть числа от
дробной, служит для фиксации конкретных значений каждой пози-
ции в этой последовательности цифр и является началом отсчета.
Количество К различных цифр, употребляющихся в позиционной системе счисления, называется ее основанием системы счисле-
ния, а сама система счисления называется К-ичной. Например, ос-
20

нованием десятичной системы счисления является число 10; двоич-
ной - число 2; троичной - число 3 и т.д. Для записи произвольного
числа в K-ичной системе счисления достаточно иметь К разных
цифр . Эти цифры служат для обозначения некоторых
различных целых чисел, называемых базисными.
Запись произвольного числа X в K-ичной позиционной систе-
ме счисления основывается на представлении этого числа в виде
полинома:
,
где каждый коэффициент а, может быть одним из базисных
чисел и изображается одной цифрой. В качестве базисных чисел бе-
рутся последовательные целые числа от 0 до К-1 включительно.
Позиции цифры, отсчитанные от запятой (точки), отделяющей
целую часть от дробной, называются разрядами. В позиционной си-
стеме счисления вес каждого разряда больше соседнего в число раз,
равное основанию системы К.
Пример: Для десятичной системы счисления (основание К=10)
имеем число 6321.564. Веса разряда и коэффициенты а для этого
числа будут следующими:
Арифметические действия над числами в любой позиционной
системе счисления производятся по тем же правилам, что и в десятичной системе, так как все они основываются на правилах выполнения действий над соответствующими полиномами. Нужно только
пользоваться теми таблицами сложения и умножения, которые
имеют место при данном основании К системы счисления. Во всех
позиционных системах счисления с любым основани-
ем К умножения на числа вида Кm , где m - целое число, сводится
просто к перенесению запятой у множимого на m разрядов вправо
или влево (в зависимости от знака m), так же как и в десятичной системе.
Для указания того, в какой системе счисления записано число,
условимся при его изображении основание системы счисления ука-
зывать в виде нижнего индекса при нем, например, 35,648 или под-
строчным индексом, заключенным в круглые скобки, например:
1101
(2)
.
21

В каждой системе счисления цифры упорядочены в соответ-
ствии с их значениями: 1 больше 0, 2 больше 1 и т.д.
Продвижением цифры называют замену еѐ следующей по ве-
личине.
Продвинуть цифру 1 значит заменить еѐ на 2, продвинуть циф-
ру 2 значит заменить еѐ на 3 и т.д. Продвижение старшей циф-
ры (например, цифры 9 в десятичной системе) означает замену еѐ на
0. В двоичной системе, использующей только две цифры – 0 и 1,
продвижение 0 означает замену его на 1, а продвижение 1 – замену
еѐ на 0.
Целые числа в любой системе счисления порождаются с по-
мощью Правила счета:
Для образования целого числа, следующего за любым данным
целым числом, нужно продвинуть самую правую цифру числа; если
какая-либо цифра после продвижения стала нулем, то нужно продвинуть цифру, стоящую слева от неѐ.
В настоящее время в ЭВМ применяют двоичную, восьмеричную и шестнадцатеричную системы счисления. Рассмотрим их по-
дробнее.
Двоичная система счисления
В современной вычислительной технике, в устройствах автоматики и связи широко используется двоичная система счисления.
Это система счисления с наименьшим возможным основанием. В
ней для изображения числа используются только две цифры: 0 и 1.
Двоичная система счисления имеет ряд преимуществ перед
другими системами:
для ее реализации нужны технические устройства с двумя
устойчивыми состояниями (есть ток - нет тока, намагничен - не
намагничен и т.п.), а не, например, с десятью, - как в десятичной;
представление информации посредством только двух состоя-
ний надежно и помехоустойчиво;
возможно применение аппарата булевой алгебры для выпол-
нения логических преобразований информации;
двоичная арифметика намного проще десятичной.
Недостаток двоичной системы - быстрый рост числа разря-
дов, необходимых для записи чисел, т.е. в громоздкости записи чисел, но это не имеет существенного значения для ЭВМ. Однако если
22

возникает необходимость кодировать информацию «вручную»,
например, при составлении программы на машинном языке, то
предпочтительнее оказывается пользоваться восьмеричной или
шестнадцатеричной системой счисления.
Как и в десятичной, в двоичной системе счисления для отделения целой части от дробной используется точка. Значение веса разрядов справа от точки равно основанию двоичной системы (2), воз-
веденному в отрицательную степень. Такие веса - это дроби вида:
1/2, 1/22, 1/23, 1/24, 1/25 или 1/2, 1/4, 1/8, 1/16. Их можно выразить
через десятичные дроби: 2
-1
= 0.5, 2-2 = 0.25, 2-3 = 0.125, 2-4 = 0,0625.
В общем случае двоичное число имеет целую и дробную части, например, 1101101.10111. Каждая позиция, занятая двоичной
цифрой, называется бит. Бит является наименьшей единицей ин-
формации в ЭВМ. Наименьшим значащим битом (МЗР) называют
самый младший двоичный разряд, а самым старшим двоичным разрядом - наибольший значащий бит (СЗР). В двоичном числе эти би-
ты имеют, соответственно, наименьший и наибольший вес. Двоичное число записывают так, что старший значащий бит является
крайним слева.
Восьмеричная система счисления
В восьмеричной системе счисления базисными числами явля-
ются 0, 1, 2, 3, 4, 5, 6, 7. Запись любого числа в этой системе основывается на его разложении по степеням числа восемь с коэффици-
ентами, являющимися указанными выше базисными числами.
Восьмеричная система счисления не нужна ЭВМ в отличие от
двоичной системы. Она удобна как компактная форма записи чисел
и используется программистами (например, в текстах программ для
более краткой и удобной записи двоичных кодов команд, адресов и
операндов).
В восьмеричной системе счисления вес каждого разряда кратен восьми или одной восьмой, поэтому восьмиразрядное двоичное
число позволяет выразить десятичные величины в пределах 0-255, а
восьмеричное охватывает диапазон 0 - 99999999 (для двоичной это
составляет 27 разрядов).
Поскольку 8=23, то каждый восьмеричный символ можно
представить трехбитовым двоичным числом.
23

Для перевода числа из двоичной системы счисления в восьмеричную необходимо разбить это число влево (для целой части) и
вправо (для дробной) от точки (запятой) на группы по три разряда
(триады) и представить каждую группу цифрой в восьмеричной си-
стеме счисления. Крайние неполные триады дополняются необхо-
димым количеством незначащих нулей.
Пример: Двоичное число 1011,01012 записать в восьмеричной
системе счисления.
Перевод из восьмеричной системы счисления в двоичную систему осуществляется путем представления каждой цифры восьме-
ричного числа трехразрядным двоичным числом (триадой).
Шестнадцатеричная система счисления
В шестнадцатеричной системе счисления базисными являются
числа от нуля до пятнадцати. Эта система отличается от рассмотренных ранее тем, что в ней общепринятых (арабских) цифр не хватает для обозначения всех базисных чисел, поэтому приходится
вводить в употребление новые символы. Обычно для обозначения
первых десяти целых чисел от нуля до девяти используют арабские
цифры, а для следующих целых чисел от десяти до пятнадцати ис-
пользуются буквенные обозначения A, B, C, D, E, F.
Шестнадцатеричная система счисления позволяет еще короче
записывать многоразрядные двоичные числа и, кроме того, сокра-
щать запись 4-разрядного двоичного числа, т.е. полубайта, посколь-
ку 16=24. Шестнадцатеричная система так же применяется в текстах
программ для более краткой и удобной записи двоичных чисел.
Для перевода числа из двоичной системы счисления в шестнадцатеричную, необходимо разбить это число влево и вправо от точ-
ки на тетрады и представить каждую тетраду цифрой в шестнадцатеричной системе счисления.
Пример: Двоичное число 10101011111101(2) записать в шест-
надцатеричной системе.
24

Для перевода числа из шестнадцатеричной системы счисления
в двоичную, необходимо наоборот каждую цифру этого числа заме-
нить тетрадой.
Контрольные вопросы
1. Что такое система счисления?
2. Как определяется основание системы счисления?
3. Приведите примеры позиционных и непозиционных систем
счисления.
4. Двоичная, восьмеричная и шестнадцатеричная системы
счисления.
5. Перевод чисел их десятичной системы счисления в 2, 8 и 16
систему счисления.
6. Сформулируйте правило счета.
7. Представление чисел в виде полинома в 2, 8, 10 и 16 систе-
мах счисления.
1.5. Алгоритм: понятие, виды [5]
Алгоритм – это точное и понятное предписание исполнителю
совершить последовательность действий, направленных на решение
поставленной задачи.
Слово «Алгоритм» происходит от algorithmi - латинского
написания имени аль-Хорезми, под которым в средневековой Евро-
пе знали величайшего математика из Хорезма Мухаммеда бен Му-
су, жившего в 783-850 гг. В своей книге «Об индийском счете» он
сформулировал правила записи натуральных чисел с помощью
арабских цифр и правила действий над ними столбиком. В дальнейшем алгоритмом стали называть точное предписание, опреде-
ляющее последовательность действий, обеспечивающую получение
требуемого результата из исходных данных. Алгоритм может быть
предназначен для выполнения его человеком или автоматическим
устройством. Создание алгоритма процесс творческий, доступен
только живым существам, долгое время считалось, что только чело-
веку. Другое дело - реализация уже имеющегося алгоритма. Ее
можно поручить субъекту или объекту, который не обязан вникать
в существо дела, а может и не способен его понять. Такой субъект
или объект принято называть формальным исполнителем.
25

Правила выполнения арифметических операций или геометрических построений представляют собой алгоритмы. При этом остается без ответа вопрос, чем же отличается понятие алгоритма от та-
ких понятий, как ―метод‖, ―способ‖, ―правило‖. Можно даже
встретить утверждение, что слова ―алгоритм‖, ―способ‖, ―правило‖
выражают одно и то же, хотя такое утверждение противоречит
―свойствам алгоритма‖.
Исполнителем алгоритма может быть и человек. Часто приводят примеры ―бытовых алгоритмов‖: вскипятить воду, открыть
дверь ключом, перейти улицу и т. д.: рецепты приготовления како-
го-либо лекарства или кулинарные рецепты являются алгоритмами.
На самом деле алгоритмы для людей никто не составляет. Человек в
принципе не может действовать по алгоритму. Выполнение алго-
ритма – это автоматическое, бездумное выполнение предписаний,
которое в принципе не требует никаких знаний. Если бы кулинар-
ные рецепты представляли собой алгоритмы, просто не было бы
специальности – повар.
В информатике универсальным исполнителем алгоритмов яв-
ляется компьютер.
Исполнитель алгоритма — это некоторая абстрактная или ре-
альная (техническая, биологическая или биотехническая) система,
способная выполнить действия, предписываемые алгоритмом.
Исполнителя характеризуют: среда; система команд; элемен-
тарные действия; отказы.
Среда (или обстановка) — это "место обитания" исполнителя.
Объекты, над которыми исполнитель может совершать действия.
Для алгоритмов, встречающихся в математике, средой того или
иного исполнителя могут быть числа разной природы - натураль-
ные, действительные и т.п., буквы, буквенные выражения, уравне-
ния, тождества и т. п.
Система команд - совокупность допустимых действий. Каж-
дый исполнитель может выполнять команды только из некоторого
строго заданного списка — системы команд исполнителя. Для каждой команды должны быть заданы условия применимости, описаны результаты выполнения команды.
Элементарное действие - те действия, которые может совер-
шать исполнитель.
26

Отказы исполнителя возникают, если команда вызывается при
недопустимом для нее состоянии среды.
Свойства алгоритмов
Данное выше определение алгоритма нельзя считать строгим не вполне ясно, что такое «точное предписание» или «последова-
тельность действий, обеспечивающая получение требуемого результата». Поэтому обычно формулируют несколько общих свойств
алгоритмов, позволяющих отличать алгоритмы от других инструк-
ций.
Такими свойствами являются:
1. Дискретность: описываемый процесс должен быть разбит на
последовательность отдельных шагов. Возникающая в результате
такого разбиения запись представляет собой упорядоченную совокупность четко разделенных друг от друга предписаний, образующих прерывную (дискретную) структуру алгоритма. Только выполнив требования одного предписания, можно приступить к выполне-
нию следующего.
2. Понятность: алгоритм составляется с ориентацией на опре-
деленного исполнителя. Составляя запись для исполнителя необходимо ориентироваться лишь на те команды, которые есть в его
СКИ.
3. Определенность: (детерминированность): Будучи понятным,
алгоритм не должен содержать предписаний, смысл которых может
восприниматься неоднозначно, т.е. одна и та же команда, будучи
понятна разным исполнителям, после исполнения каждым из них
должна давать одинаковый результата.
4. Результативность: при точном исполнении всех предписаний
алгоритма процесс должен прекратится за конечное число шагов и
при этом должен получится определенный результат.
5. Массовость: алгоритм должен быть составлен таким обра-
зом, чтобы его можно было применять для решения некоторого
класса однотипных задач.
Алгоритм – искусственная конструкция, которую мы сооружа-
ем для достижения своих целей. Чтобы алгоритм выполнил свое
предназначение, его необходимо строить по определенным правилам. Поэтому нужно говорить не о свойствах алгоритма, а о прави-
27

лах построения алгоритма, или о требованиях, предъявляемых к ал-
горитму.
Первое правило – при построении алгоритма, прежде всего,
необходимо задать множество объектов, с которыми будет работать
алгоритм. Формализованное (закодированное) представление этих
объектов носит название данных. Алгоритм приступает к работе с
некоторым набором данных, которые называются входными, и в результате своей работы выдает данные, которые называются выходными. Таким образом, алгоритм преобразует входные данные в вы-
ходные.
Второе правило – для работы алгоритма требуется память. В
памяти размешаются входные данные, с которыми алгоритм начинает работать, промежуточные данные и выходные данные, которые
являются результатом работы алгоритма. Память является дискретной, т.е. состоящей из отдельных ячеек. Поименованная ячейка па-
мяти носит название переменной. В теории алгоритмов размеры па-
мяти не ограничиваются, т.е. считается, что мы можем предоставить
алгоритму любой необходимый для работы объем памяти.
Третье правило – дискретность. Алгоритм строится из от-
дельных шагов. Множество шагов, из которых составлен алгоритм,
конечно.
Четвертое правило – детерменированность. После каждого
шага необходимо указывать, какой шаг выполняется следующим,
либо давать команду остановки.
Пятое правило – результативность. Алгоритм должен завер-
шать работу после конечного числа шагов. При этом необходимо
указать, что считать результатом работы алгоритма.
Виды алгоритмов и их реализация
Алгоритм применительно к вычислительной машине – точное
предписание, т.е. набор операций и правил их чередования, при помощи которого, начиная с некоторых исходных данных, можно ре-
шить любую задачу фиксированного типа.
Виды алгоритмов как логико-математических средств отража-
ют указанные компоненты человеческой деятельности и тенденции,
а сами алгоритмы в зависимости от цели, начальных условий зада-
28

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