Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы информатики, организации ЭВМ, вычислительных и информационных систем. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
Существуют позиционные и непозиционные системы счисле­ния. В позиционных системах счисления вес каждой цифры изменя-
ется в зависимости от ее положения (позиции) в последовательно­сти цифр, изображающих число. В позиционной системе счисления представления чисел далеко не так просты и очевидны, как в «рим­ской» системе счисления, систематичность представления, осно­ванная на «позиционном весе» цифр, обеспечивает простоту выпол-
нения операций умножения и деления.
В непозиционных системах вес цифры (т.е. тот вклад, который
она вносит в значение числа) не зависит от ее позиции в записи числа. В «римской» системе счисления каждый числовой знак в за­писи любого числа имеет одно и то же значение, т.е. значение чис­лового знака не зависит от его расположения в записи числа. В рим­ской системе счисления в числе ХХХ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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]