Структура файловой системы




В ПЭВМ вся область памяти ВЗУ разбивается над подобласти, называемые логическими дисками. Логическому диску обычно соответствуют: накопители на гибких магнитных дисках, накопители на оптических дисках (CD-Rом), вся память либо ее часть накопителя на жестких магнитных дисках. Логическим дискам присваиваются имена A, B, C и т.д. Размещение файлов на логических дисках подчиняется иерархическому принципу, который реализуется с помощью каталогов. Каталог – это специальный файл, в котором содержатся сведения о других файлах. Любой файл, хранящийся на диске зарегистрирован, по крайней мере, в одном каталоге. При регистрации фиксируется полное имя файла, время и дата создания или изменения файла, размер файла в байтах и т.д. В любом каталоге кроме файлов могут быть зарегистрированы и другие каталоги, которые в этом случае называются подкаталогами, а регистрирующий их файл – родительским каталогом. Каталог, не входящий в другие каталоги, называется главным или корневым. Все каталоги (кроме корневого) имеют имена, назначаемые пользователем. Корневой – обозначается символом "\" (слэш). Структуру логического диска можно представить в виде иерархии.

Fj (j =1,2,3,4) – j-й файл

Ki (i =1,2…6) – i-й каталог

Дисковод, чье имя указано в приглашении для DOS, называется текущим c:\>


текущий текущий каталог

дисковод (корневой)

C

Каталог, чье имя указано в приглашении последним, называется текущим c:\k1>

       
   
 
 


текущий текущий

дисковод С каталог К1

При запуске операции доступа к конкретному файлу возможны 2 случая:

1) если имя файла зарегистрировано в текущем каталоге, то для доступа достаточно указать имя файла (см. рис.) С:\К1>F1

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

C:\K1>K4 \F3

Приглашение путь

 

Примеры команд MS DOS

Приведем форматы (правила записи) основных команд MS DOS.

DIR [имя дисковода:] [путь\] [имя файла] [параметры]

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

С:\>DIR - вывод содержимого главного (корневого) текущего каталога C:\>DIR A – вывод содержимого главного каталога дисковода А

Создание каталога MD [имя дисковода:] [путь\] имя подкаталога

без скобок

C:\>MD KAT1 – создание в текущем главном (обязательный элемент)

каталоге подкаталога КАТ1

Копирование файлов COPY [имя дисковода:] полное имя файла-источника [имя дисковода-приемника] [путь\] [полное имя файла-приемника]

необязательно обязательно

C:\>COPY K1\F1 A: - копирование файла F1 из каталога К1 на гибкий диск А

 

1.4. ЗАГРУЗКА MS DOS В ОПЕРАТИВНУЮ ПАМЯТЬ С ДИСКА

 

MS DOS – это дисковая ОС, что отражено в ее названии, то есть она хранится на диске (обычно на жестком). Однако любая программа во время ее исполнения должна находится в ОЗУ. Поэтому для нормальной работы компьютера необходимо, чтобы основные модули ОС находились в оперативной памяти. По этой причине после включения компьютера организуется автоматическая перезапись (загрузка) ОС с диска в ОЗУ. Первым фрагментом ОС, загружаемым в ОЗУ, является программа "Загрузчик ОС" (Boot Record). Эту перепись осуществляет небольшая программа BIOS (базовая система ввод-вывод), размещенная в ПЗУ. Ей передается управление компьютером сразу после включения питания. В функции BIOS кроме переписи "Загрузчика ОС" входит:

1) тестирование основных устройств ПЭВМ управление

2) обеспечение взаимодействия со стандартными ОС

ОС
После перезаписи в ОЗУ "Загрузчика ОС" ему пе-

редается управление дальнейшей перезаписью.

"Загрузчик ОС" последовательно считывает с диска в ОЗУ следующие программные модули MS DOS:

1) IO.SYS – дополнение BIOS

2) MSDOS.SYS – основной модуль MS DOS (главная функция – управление памятью).

3) COMMАND.COM - командный процессор, содержащий набор программных файлов, реализующих команды MS DOS.

4) CONFIG.SYS – содержит имена загруженных драйверов.

5) AUTOEXEC.BAT – содержит команды и имена программ, исполняемых сразу после каждого включения ПЭВМ.

 

1.5. ОПЕРАЦИОННАЯ ОБОЛОЧКА NORTON COMMANDER

 

Инструмент для работы в MS DOS. Текстовый интерфейс MS DOS для широкого пользователя является весьма неудобным, так как требует безошибочного набора команд ОС с указанием путей к интересующим файлам. Из-за частых ошибок пользователя это приводит к непроизводительному расходу времени. В связи с этим была разработана программа Norton Commander (NC), которая является операционной оболочкой MS DOS, то есть вспомогательной программой, облегчающей работу пользователя. Интерфейс NC выгодно отличается от интерфейса MS DOS, и кратко может быть охарактеризован тезисом: "от набора команды к выбору команды". Основным элементом интерфейса являются его панели, то есть две области, на которые разбивается экран дисплея при работе NC. На панелях NC отображаются имена файлов и каталогов логических дисков ПЭВМ. В нижней части экрана разме-

щается строка меню, пункты которого поддерживают основные команды MS DOS (копирование, перемещение, создание нового каталога и т.п.). В результате для выполнения команды MS DOS достаточно выделить курсором на панелях NC файлы, участвующие в команде, а затем обратиться к пункту меню, реализующему эту команду.

 

1.6. СЕРВИСНЫЕ СРЕДСТВА ПЭВМ

 

К сервисным средствам относятся программы, представляющие пользователю дополнительные услуги. К таким относятся антивирусные программы и архиваторы.

 

Антивирусные программы

Компьютерный вирус – это небольшая программа, которая может присоединять себя к другим программам и выполнять различные нежелательные действия на компьютере. Создают вирусы компьютерные хулиганы. Первые случаи появления вируса отмечены в 1987 году. В настоящее время известно более 5000 разновидностей вируса. Среди вирусов различают:

1) файловые, инфицирующие программные файлы.

2) Загрузочные, инфицирующие загрузочную область, системную на диске (область для размещения ОС).

3) Файлово-загрузочные.

Основными путями проникновения вирусов в компьютер являются съемные диски и компьютерные сети. Для обнаружения и нейтрализации вирусов используются антивирусные программы, среди которых в настоящее время наиболее популярны: Aidstest; Dr.Web.

 

Программы – архиваторы

Создание запасных копий файлов является необходимой процедурой при работе на компьютере. Это нужно в целях подстраховки на случай повреждения рабочего экземпляра файла. Запасные копии обычно создаются с помощью программ-архиваторов, которые сжимают файлы и в результате позволяют сократить объем занимаемого ими дискового пространства. Используемые в архиваторов методы сжатия основаны на исключении из файлов избыточной информации. Различают поточную и символьную избыточность. В первом случае часто повторяются цепочки символов, во втором – отдельные символы. Суть алгоритмов сжатия состоит в перекодировании файлов при помощи специальных алгоритмов. При устранении поточной избыточности цепочки символов заменяются короткими указателями. При устранении символьной избыточности символы кодируются кодами переменной длины. При этом наиболее встречающиеся символы кодируются наиболее короткими кодами. В настоящее время наиболее часто применяются архиваторы ARJ, ZIP, RAR и др.

 

 

ТЕМА 2. ОСНОВЫПРОГРАММИРОВАНИЯ

 

2.1. ЭТАПЫРАЗРАБОТКИ ПРОГРАММЫ

 

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

1) Формализация задачи (описание задачи на языке математики). Например, исходная словесная постановка задачи: определить силу тока, протекающего через проводник. Формализованная математическая постановка задачи: I = U / R (закон Ома).

2) Разработка структуры вход-выходных данных (данные могут быть представлены отдельными переменными и константами, массивами и файлами сложной структуры).

3) Разработка машинно-ориентированного алгоритма решения задачи (алгоритма, удобного для решения данной задачи на ЭВМ).

4) Запись текста программы на языке программирования.

5) Трансляция и отладка (обнаружение и исправление ошибок) программы.

6) Окончательная проверка программы на контрольном примере.

 

2.2. ЯЗЫК ОПИСАНИЯ АЛГОРИТМОВ. БЛОК-СХЕМА АЛГОРИТМА

 

Алгоритм – это последовательность операций, приводящая к решению задачи.

Существует несколько языков для описания алгоритмов. Один из них – язык блок-схем (граф-схем). Введем понятие графа.

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

изображения блок-схем алгоритмов будем использовать 4 типа вершин, каждый из которых отражает один из 4-х типов событий

1)пуск / останов

2) ввод / вывод

3) процесс (вычислительный)

4) решение

 

 

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

 

 

2.3. ТИПЫАЛГОРИТМОВ

 

Различаются алгоритмы линейные, разветвляющиеся и циклические.

 

2.3.1. Линейные алгоритмы

В линейном алгоритме отсутствуют разветвления и все операции выполняются однократно. Пример: выполнить функцию

y = [2 (x + 10) + 3 (x3 +5) ] / [4(x2 + 10) + 5(x3 + 5)]

Изобразим одну из возможных блок-схем алгоритма.

 

 

2.3.2. Разветвляющиеся алгоритмы

В разветвляющемся алгоритме имеются два или более направлений хода вычислений.

Пример: вычислить функцию

 
 

 

 


 

 

 


 

 

2.3.3. Циклические алгоритмы

В циклическом алгоритме некоторые операции выполняются многократно. Циклический алгоритм одновременно является и разветвляющимся. Пример: вычислить сумму из n слагаемых, если i-е по порядку слагаемое определяется выражением:

yi(x) = (x + i) / (i + 1), т.е.

y = (x +1) / 2 + (x + 2) / 3 + … + (x + n) / (n + 1)

Эту сумму можно вычислить, предусмотрев в алгоритме для каждого слагаемого свой вычислительный блок типа "процесс". Однако при большом n этот путь чрезвычайно нерационален. А другой путь, основанный на том факте, что каждое слагаемое рассматриваемой суммы y рас-падается на n этапов, на каждом из которых выполняются одни и те же действия. При этом на i-м этапе вычисляется i-е по порядку слагаемое и сумма yi первых i слагаемых. Только эти действия для i-го слагаемого и i-й суммы дополненные операциями по изменению и проверке значения номера i и составляют содер-жание циклического алгоритма. При за-писи алгоритма опускаются индексы, отмечающие предыдущие и последую- щие значения y и i, то есть пишут: y = y + u и i = i + 1.

Переменную принято называть счетчиком или параметром цикла.

 

2.4. ЯЗЫКИ ПРОГРАММИРОВАНИЯ

 

Для представления алгоритма в виде понятном компьютеру, служат языки программирования, на одном из которых и должен быть записан алгоритм. В результате алгоритм превращается в компьютерную программу. Однако лишь единственный язык программирования понятен компьютеру без переводчика – это язык его машинных команд (кодов). Команды, как и любая другая информация в машине, представляются в виде двоичных кодов. Машинные коды – это двоичные коды, которыми кодируются команды ЭВМ. Эти коды содержат две части, в одной из которых размещается код операции, в другой – адреса операндов и результата. Приведем учебный пример

машинных кодов ЭВМ:

В современных ПЭВМ реали-зуется, как правило, порядка 200 различных команд. Прог-раммированию на языке ма-шинных кодов свойственны 2 недостатка: 1) высокая тру-доемкость программирования, 2) необходимость знания устройства ЭВМ.

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

 

Развитие языков программирования всегда осуществлялось и продолжает осуществляться в направлении исключения указанных недостатков. Первый шаг в этом направлении – это переход к языку ассемблера. Отличие ассемблера от языка машинных кодов заключается лишь в том, что двоичный код операции в ассемблере заменяется на ее символьное имя. В результате при записи в программе команды "сложение" при использовании ассемблера пишется ее имя "Add", а не код 0001. Однако при программировании на ассемблере программисту также необходимо знание устройства ЭВМ. Эти недостатки исчезают лишь при использовании так называемых языков высокого уровня. Примерами таких языков являются BASIC, C, Pascal и т.д. Эти языки гораздо более понятны человеку, нежели машинные коды, они не требуют знания устройства ЭВМ. Однако при использовании, как и в случае ассемблера, требуются спецпрограммы-переводчики с языка высокого уровня (ЯВУ) на язык машинных кодов. Эти программы называются трансляторами, а процесс перевода – трансляцией. В результате схема общения человека с ЭВМ приобретает следующий вид:

 

Трансляция

Существуют трансляторы 2-х типов: компиляторы и интерпретаторы. Компиляторы до использования программы переводят текст программы с ЯВУ на язык машинных команд целиком. Результат перевода – программа в машинных кодах – называется объектным модулем. Для ее исполнения в дальнейшем не нужен компилятор. Интерпретаторы переводят текст программы не целиком, а покомандно и не создают объектного модуля. Для исполнения программы в этом случае всегда нужен интерпретатор. Последнее свойство является явным недостатком. Однако отладка программы при использовании интерпретатора резко упрощается. Для некоторых языков разработаны как компиляторы, так и интерпретаторы. К числу таких языков относится QuickBasic. На практике вы будете работать с его усеченной по числу операторов версией QBASIC, для которого существует лишь интерпретатор. Для разработки и отладки программ на языках высокого уровня используются системы программирования, которые состоят из следующих компонентов:

1) текстовый редактор для подготовки текста программы на ЯВУ

2) транслятор для перевода исходного текста программы на язык машинных кодов

3) средства для отладки программ.

Процесс отладки предназначен для обнаружения и исправления ошибок в программе и предполагает предварительную разработку проверочных исходных данных для программ – названных тестами.

 

ТЕМА 3. ОСНОВНЫЕ ПРИЕМЫПРОГРАММИРОВАНИЯ

НА ЯЗЫКЕ BASIC

 

3.1. ОПИСАНИЕ ДАННЫХ

 

3.1.1. Алфавит

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

1) Заглавные и строчные буквы латинского алфавита

2) Цифры от 0 до 9

3) Заглавные и строчные буквы русского алфавита для использования лишь в комментариях

4) Специальные знаки: разделители (.,: …), знаки арифметических операций (+,-,*,/,^), знаки отношений (=,<,>), символы объявления типа данных (%,&,!,#,$).

 

3.1.2. Переменные


Любая программа обязательно использует некоторые данные. Эти данные могут либо изменяться в процессе выполнения программы, и тогда они называются переменными, либо не изменяются и тогда они называются константами. Каждая переменная обозначается именем, которое обязательно начинается с буквы, например, name, A1. Приведем классификацию данных с точки зрения языка BASIC:

Из приведенной классификации видно, что все переменные в BASICе подразделяются на 4 группы. Кроме того в 1-й и 3-й группах дополнительно различают 4 типа переменных (целые, длинные целые, вещественные обычной точности, вещественные двойной точности). Переменные из 2-й группы образуют отдельный символьный или строковый тип. Для переменных 4-й группы типы определяются пользователем и поэтому их число не ограничено. Переменные различных типов по-разному представляются в машине, например, для их хранения отводится разное количество ячеек ОЗУ (объемы памяти) и по-разному обрабатываются.

Пример: операция сложения z = x + y

a) x, y, z – числовые переменные, если х = 2, y = 3, то z = 5

b) x, y, z – символьные переменные, то z = 23

В связи с этим в программе тип переменных должен быть объявлен.

Операторы объявления Суф-фикс Объем памяти Тип
  DEFINT A A% 2 байта Целые
  DEFLNG A A& 4 байту Длинные целые
  DEFSNG A A! 4 байта Вещественные обычной точности
  DEFDBL A A# 8 байт Вещественные двойной точности
  DEFSTR A A$ Зависит от числа символов в пере- менной Символьные строковые

 

Возможны два приема объявления:

1) с помощью оператора объявления

2) с помощью суффикса.

Оператор объявления размещается в начале программы, а суффикс добавляется к имени переменной в качестве последнего символа.

 

3.1.3. Переменные массивы

Переменная массив – это группа однотипных переменных, имеющая регулярную структуру. Отдельные переменные в массиве называются его элементами. Массивы бывают одномерными, двумерными и т.д. Одномерный массив – это строка из его элементов. Каждый элемент имеет номер (индекс). Так, например, если массив имеет имя V, то его i-й элемент обозначается V(i). Объявляется массив с одновременным использованием оператора DIM и суффикса, определяющего тип.

Пример. Одномерный целочисленный массив из 4-х элементов (2,1,3,5) объявляется следующим образом: DIM V%(4) – в скобках число элементов.

Двумерный массив – это таблица (матрица) из его элементов. Каждый элемент имеет 2 номера (индекса) – номер строки и столбца, на пересечении которых он размещается.

Пример. Двумерный массив W из 9-ти вещественных элементов обычной точности объявляется следующим образом: DIM W!(3,3) – в скобках числа строк и столбцов. Элемент, находящийся в i-й строке и j-м столбце обозначается как W!(i,j).

 

3.2. ОПЕРАЦИИ И ВЫРАЖЕНИЯ

 

Операции служат для записи выражений.

Выражение – это запись последовательности операций над данными. В BASICе существуют 5 групп операций:

1) Арифметические операции: +, -, *, /, ^

2) Операции отношений: =, <, >, <>. Они применяются для записи проверяемых условий, например, x = 0, y > 1.

3) Логические операции: NOT (не), AND (и), OR (или) и т.д. Они применяются для записи сложных проверяемых условий, например,

X = 0 AND Y > 1.

4) Функциональные операции. Они подразделяются на встроенные и определяемые пользователем. Примеры встроенных функциональных операций (функций): тригонометрические и алгебраические функции

Правило обращения к функции: имя-функции (числовое выражение).

Пример. SIN(1) – синус, SQR(числовое выражение) – корень квадратный

5) Строковые операции.

Пример. Сравнение строк (сравнение кодов символов) "АА" < "ББ". Примечание: значения строковых (символьных) переменных заключаются в кавычки.

3.3. ПРОГРАММИРОВАНИЕ ЛИНЕЙНЫХ АЛГОРИТМОВ

 

Текст в любом языке складывается из предложений. Этими предложениями в языках программирования являются операторы. Главными элементами оператора являются ключевые слова и аргументы. Называют операторы по основным ключевым словам. Правила записи оператора называется его форматом. В свою очередь формат оператора записывается по определенным правилам. Они состоят в следующем:

1) Ключевые слова записываются прописными буквами.

2) В угловые скобки заключаются аргументы оператора.

3) В квадратные скобки заключаются необязательные элементы оператора.

Рассмотрим последовательно основные операторы BASICа. Сначала те, что необходимы при программировании линейных алгоритмов.

 

3.3.1. Операторы присваивания

Данный оператор присваивает переменной некоторое значение. Возможны два варианта оператора. В простейшем случае он имеет следующий формат:

<переменная> = <выражение> y = a * x + b.

Во втором варианте оператора присваиваются значения сразу нескольким переменным. При этом фактически используются 2 оператора READ и DATA. Формат оператора имеет вид:

READ <переменная> [,<переменная>]…

DATA <константа> [,<константа>]…

Пример. READ x, y

DATA 2,3.5

При исполнении оператора первой переменной после READ присваивается значение первой константы после DATA, второй переменой – значение второй константы и т.д.

 

3.3.2. Операторы ввода – вывода

Операторы ввода-вывода обеспечивают обмен информацией между памятью и внешними устройствами.

Ввод данных с клавиатуры осуществляется с помощью оператора INPUT его формат имеет вид:

INPUT [<"приглашение"> {; или,}] <переменные>

печатает знак "?" без знака "?"

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

Пример. В программе: INPUT "Введите значение х = ", х

На экране: Введите значение х = _

Вывод данных на экран дисплея осуществляется с помощью оператора PRINT. Его формат имеет вид:

PRINT [<список выражений>]

Пример. В программе: INPUT "Введите значение х =", х

PRINT "х в квадрате равно"; x^2

На экране: Введите значение х =

х в квадрате равно 25

 

Рекомендации по оформлению программы:

1) Размещать в каждой строке по одному оператору. Это облегчает отладку. Если в строке больше одного оператора, то они разделяются двоеточием.

2) Сопровождать программу комментарием, что облегчает ее понимание. Комментарием считается весь текст до конца строки после ключевого слова REM или апострофа '.

3) Начинать программу с оператора CLS очистки экрана.

4) Заканчивать программу оператором END останова программы.

Пример линейной программы. Вычислить

y = [2 (x2 + 10) + 3 (x3 + 5)] / [ 4 (x2 + 10) + 5 (x3 + 5)]

АлгоритмПрограмма

CLS

REM

DEFSNG x, A, B, y

INPUT ""

A = x ^ 2 + 10

B = x ^ 3 + 5

y = (2 * A + 3 * B) / (4 * A + 5 * B)

PRINT "y = "; y

END

 

 

3.4. ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЯЮЩИХСЯ АЛГОРИТМОВ

 

"Ветвление" программы позволяет осуществить условные операторы, основным из которых является оператор IF. Этот оператор может быть записан двояким образом – в виде линейной и блочной форм. Линейная форма записывается в виде строки, блочная – в виде столбца. Формат линейной формы имеет вид:

IF <логическое выражение> THEN <операторы 1> [ELSE <операторы 2>]

Здесь "операторы 1" выполняются, когда логическое выражение истинно, а "операторы 2" – когда ложно. Заметим, что как среди "операторов 1", так и среди "операторов 2" могут быть условные операторы. Пример разветвляющейся программы. Вычислить функцию

 

CLS

REM С разветвлением

DEFSNG a,b,c,x,y,

INPUT "Введите значения

a, b, c, x", a, b, c, x

IF x >= 0 THEN y = a*x+ b ELSE y = a*x^2 + c

PRINT " y = "; y

END

 

 

3.5.ПРОГРАММИРОВАНИЕ ЦИКЛИЧЕСКИХ АЛГОРИТМОВ

 

Для организации в программе циклов используются операторы цикла, одним из которых является оператор FOR … NEXT. Этот оператор используется для организации циклов с заранее известных числом повторений. Формат оператора имеет вид:

FOR <счетчик>=<начало> TO <конец> [STEP <шаг>]

<операторы цикла>

NEXT <счетчик>

Здесь "счетчик" – это переменная, которая при выполнении цикла пробе-гает интервал значений ["начало","конец"] с шагом "шаг". Если шаг = 1, то блок STEP может быть опущен, а "счетчик" в этом случае отсчитывает число повторений операторов цикла. Логика работы оператора FOR … NEXT может быть представлена блок-схемой.

Первое исполнение опера-торов цикла происходит при значении счетчика "начало". После каждого очередного исполнения операторов цикла значение счетчика увеличивается на величину шага. После превышения счетчиком значения "конец" исполнение цикла прекращается.

Пример. Вычислить сумму из слагаемых вида: ui (x) = (x + i) / (i + 1)

 

CLS

REM

DEFSNG x, y, u

INPUT "x n", x, n

y = 0

FOR i = 1 TO n

u = (x + i) / (i + 1)

y = y + u

NEXT i

PRINT y

END

 

ТЕМА 4. АРИФМЕТИЧЕСКИЕ И ЛОГИЧЕСКИЕ ОСНОВЫЭВМ

 

4.1. СИСТЕМЫСЧИСЛЕНИЯ

 

Системой счисления называется способ изображения чисел с помощью ограниченного набора цифр. Различают позиционные и непозиционные системы счисления. В позиционных системах счисления каждая цифра представления числа имеет определенный вес, зависящий от ее позиции в этом представлении. Позиция цифры называется разрядом. Вес младшего разряда = 1. Вес i-го вычисляется по формуле Ni-1, где N – число, называемое основанием системы счисления. Цифры в представлении числа принимают значения 0,1,…, N-1.

Пример. А (10) = 10 210 110 0 / 375, B (2) = 2 22 12 0 / 101

Здесь нижний индекс обозначает основание системы счисления. В ЭВМ для представления чисел используется двоичная система счисления. Это объясняется тем, что вычисления в двоичной системе технически реализуются наиболее просто. Арифметические действия в двоичной системе осуществляются по тем же правилам, что и в десятичной системе счисления.

Пример. 0 + 1 = 1

1 + 1 = 0 (при "1" переноса в старший разряд)

0 – 0 = 0 1 – 1 = 0

1 – 0 = 1 0 – 1 = 1 (при "1" заема из старшего разряда)

При подготовке информации для ввода в ЭВМ кроме десятичной системы счисления используются восьмеричная и шестнадцатиричная. В восьмиричной системе счисления для представления чисел используются цифры от 0 до 7, в шестнадцатиричной - цифры от 0 до 9 и буквы A, B, C, D, E, F. Буквы отражают числа 10, 11, 12, 13, 14, 15. Введение букв позволяет сократить длину записи 101100 2423222120 8180 161160

Пример. 26 (10) = 11010 (2) = 32 (8) = 1А (16)

 

4.2. ПЕРЕВОД ЧИСЕЛ ИЗ ОДНОЙ СИСТЕМЫВ ДРУГУЮ

 

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

 

 

Перевод целых чисел

Правило. Целое число A(N1), представленное в системе счисления с основанием N1 переводится в систему счисления с основанием N2 путем последовательного деления числа A(N1) на основание N2, записанное в системе счисления с основанием N1, до получения остатка. Полученное частное следует вновь делить на основание N2 и этот процесс следует повторять до тех пор, пока частное не станет меньше делителя. Получаемые остатки от деления и последнее частное, записанное в системе счисления с основанием N2 является значениями разрядов в порядке возрастания.

Пример. Найти двоичное представление для числа А(10) = 43(10) =

= к5к4к3к2к1к0 - искомое двоичное представление 43(10) = 101011(2)

 
 

4.3. ФОРМЫПРЕДСТАВЛЕНИЯ ЧИСЕЛ В ЭВМ

 

Совокупность разрядов, отведенных для представления двоичного числа, образует разрядную сетку ЭВМ. Количество разрядов в разрядной сетке называется длиной или разрядностью сетки. Обычно длина разрядной сетки совпадает с количеством разрядов ячейки ОЗУ и сумматора, составляющего основу АЛУ. В ЭВМ применяются 2 формы представления чисел – с фиксированной запятой (точкой) и с плавающей запятой (точкой). Запятая определяет границу между целой и дробной частями. Сопоставим эти формы по 2-м критериям:

1) диапазон представимых чисел

2) минимальное по модулю представимое число не = 0 (точность решения)

Сопоставление произведем на конкретном примере, когда длина разрядной сетки = 8. Сначала оценим эти характеристики для представления числа с фиксированной запятой. В этом случае для представления целой и дробной частей числа отводится строго определенное число разрядов. Пусть данном примере запятая фиксирована между 3-м и 4-м разрядами. Снизу проставлены веса разрядов.

 

8 7 6 5 4 3 2 1

               

Знак 23 22 21 20, 2-1 2-2 2-3

Старший разряд отведен для представления знака, например, "+" кодируется 0, а "-" – 1. Тогда максимальное представимое число = 15б875(10), а диапазон представимых чисел определяется неравенством: -15,875(10) £ А(10) £ 15,875(10) . Очевидно, что минимальное по модулю представимое число А = 0,125. Рассмотрим вторую форму представления чисел в ЭВМ, в основе которой лежит экспоненциальная запись числа:

A(10) = mA(10)*10 PA (10) , где mA – мантисса числа А, РА – порядок числа А. Например, 45(10) = 0,45*102 = 4,5 * 101 = 450 * 10-1. В двоичной системе экспоненциальная запись числа имеет вид:

А(2) = mA(2) * 2PA(2). В этом случае любое число А характеризуется 2-мя числами mA и PA, которые и размещаются в пределах разрядной сетки ЭВМ. Оценим возможности этой формы представления для случая 8-разрядной сетки ЭВМ. Однако теперь в 8-ми разрядах сетки должны быть представлены 2 числа mA и PA. Причем каждый со своим знаком. Будем считать, что mA <1. Тогда максимальному по модулю представимому числу соответствует максимальное значение мантиссы 0,111(2) = 0,875(10) и максимальное значение порядка +111(2) = +7(10), то есть Аmax = 112(10). В результате получаем диапазон представимых чисел: -112(10) £ A(10) £ 112(10). Минимальное по модулю представимое число не равное 0, определяется минимальным по модулю значением мантиссы mAmin = 0,125(10)4. Min – значение порядка, равное – 7(10). В итоге получаем Amin = 0,125*2-7 = 1/1024 = 0,001.

8 7 6 5 4 3 2 1

               

Знак PA 22 21 20, Знак mA,2-1 2-2 2-3

Сравнивая полученные характеристики 2-х форм представления чисел, приходим к выводу о преимуществе представления чисел с плавающей запятой. Однако реализация в ЭВМ этой формы более сложна. В современных ЭВМ представление с фиксированной запятой используется только для целых чисел, и арифметические действия над ними выполняются центральным процессором. Вещественные нецелые числа представляются в ЭВМ в форме с плавающей запятой, и арифметические действия над ними выполняются специальным процессором – сопроцессором.

 

4.4. ЛОГИЧЕСКИЕ ОСНОВЫЭВМ

 

Не только числа, но и вся остальная информация представлена в ЭВМ двоичными кодами. Эта двоичная информация обрабатывается узлами ЭВМ, среди которых обычно выделяют два типа:

1) комбинационные узлы (узлы без памяти)

2) узлы с памятью (узлы, использующие свою локальную память)

Комбинационные узлы характеризуются функциональной зависимостью F между векторами входов X и выходов Y, то есть Y = F(X). Представим комбинационный узел графически:

Здесь n – число входов, а m – число выходов узла. На каждом выходе yj этого узла реализуется функция yj = fj(x1,x2,…,xn), j = 1,2,…,m. Проанализируем свойства любой функции из этого множества. Сама функция и все ее аргументы принимают значения из множества {0,1} или, как иногда говорят, из множества {истинно, ложно}. Такие функции называются логическими или булевыми. Правила описания этих функций изучаются в булевой алгебре, представляющей из себя одну из глав математической логики. Поскольку множество значений каждого аргумента xi (i = 1,2,…,n) ограничено числами 0 и 1, то и множество значений всего набора аргументов входного вектора Х также ограничено. Если число аргументов = n, то число возможных значений вектора x = 2n . В связи с этим для булевой функции существует возможность ее описания с помощью таблицы. Эта таблица содержит полный перечень значений аргументов с указанием соответствующих им значений функции. Такую таблицу называют таблицей истинности булевой функции. Приведем примеры булевых функций.

Булевы функции одного аргумента. Таблицы истинности. Аналитическое описание: y0 = 0, y1 = x, y2 = x, y3 = 1.

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

 

Булевы функции двух аргументов (примеры)

Наиболее часто употребляются функции конъюнкции (функция И), дизъюнкция (функция ИЛИ), функция Пирса, функция Шеффера.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2021-04-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: