Основы Pascal. Типы данных. Структура программы на языке Pascal
Вид материала | Документы |
- Компоновать программы из отдельных частей отлаживать программы выполнять программы., 197.76kb.
- Borland Turbo Pascal, знать простые основные алгоритмы работы с простыми типами данных, 316.19kb.
- Программирование на языке высокого уровня, 59.92kb.
- Задачи работы Научиться создавать программы на языке Turbo Pascal с использованием, 598.05kb.
- Курс «Программирование на языке Turbo Pascal 0» Цель курса, 19.6kb.
- Borland Turbo Pascal, знать простые основные алгоритмы работы с простыми типами данных, 324.26kb.
- Правила преобразований из одного типа в другой и правила приведения типов в языке Object, 19.03kb.
- Информатика Ответы на вопросы, 913.15kb.
- Конспект урока по информатике для десятого класса по теме «Условный оператор в Turbo, 32.44kb.
- Доманская Юлия Георгиевна г. Вилейка 2006г пояснительная записка, 74.95kb.
В общем случае система счисления представляет собой совокупность приемов и правил для записи чисел цифровыми знакам. Все системы представления чисел делят на позиционные и непозиционные. В непозиционной системе счисления значение символа не зависит от его положения в числе. В позиционной системе счисления значение цифры определяется ее положением в числе: один и тот же знак принимает различные значения. Любая позиционная система счисления характеризуется основанием. Основание (базис) естественной позиционной системы счисления - число знаков или символов, используемых для изображения цифр в данной системе. Произвольное число K в системе счисления с основанием р имеет вид:
Кp = xn-1*pn-1 +xn-2*pn-2 + ... + x1*p1 + x0*p0 + x-1*p-1 + x-2*p-2 + xmp-m...
или в общем виде , где xi Î {0, 1, ..., p-1} и i – целые числа.
Двоичная система получила широкое распространение с появлением ЭВМ. Для того чтобы различать цифры в такой системе, достаточно иметь устройство, обладающее двумя устойчивыми состояниями, одно из которых соответствует единице, другое - нулю. Другим важным достоинством двоичной системы является простота вычислений. Выполнение арифметических действий над числами в двоичной системе счисления производится по тем же правилам, что и в десятичной системе счисления. Недостаток, характерный для двоичной системы счисления, - значительный рост числа разрядов, необходимых для записи чисел.
Достаточно широкое распространение с появлением компьютеров получили восьмеричная и шестнадцатеричная системы счисления, поскольку представление восьмеричных чисел в двоичной системе счисления тождественно совпадает с их представлением в двоично-восьмеричной системе счисления. Это правило выполняется и для шестнадцатеричной системы счисления. Так как базис восьмеричной системы составляют числа от 0 до 7, то для изображения любой базисной цифры достаточно трех двоичных символов. Базис шестнадцатеричной системы составляет набор xi Î {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} поэтому для изображения любой базисной цифры достаточно четырех двоичных символов.
Для записи одного и того же значения в различных системах счисления требуется разное число позиций или разрядов. Если длина разрядной сетки задана, то это ограничивает максимальное по абсолютному значению число, которое может быть записано. Пусть длина разрядной сетки равна положительному числу N. Тогда Кpmax=pN-1 , где p - основание системы счисления.
Формы представления чисел в компьютерах.
Для представления двоичных чисел в ЭВМ используются две формы:
естественная форма, или форма с фиксированной запятой (точкой);
нормальная форма, или форма с плавающей запятой (точкой).
В естественной форме представления числа записываются в виде последовательности цифр с постоянным для всех чисел положением запятой, отделяющей целую часть от дробной. Например, если для целой части числа (до запятой) выделено 5 разрядов, а для дробной (после запятой) — 2, то числа в такой разрядной сетке имеют следующий вид: +54321,10; –00372,96; +00000,04. Форма с фиксированной запятой наиболее проста и естественна для людей, но имеет небольшой диапазон представления чисел и поэтому обычно не применяется при вычислениях. Если в результате операции получается число, выходящее за диапазон допустимых значений, то происходит переполнение разрядной сетки, что приводит к искажению конечного результата. В связи с этим в современных компьютерах форма с фиксированной запятой является вспомогательной и применяется только для работы с целыми числами.
В нормальной форме для представления числа используются две группы разрядов, первая из которых называется мантиссой, а вторая — порядком. При этом мантисса по модулю меньше 1, а порядок является целым числом. В общем виде число N в форме с плавающей запятой представляется следующим образом:
N = ±M ´ B±P,
где M — мантисса (|M| < 1), P — порядок (целое число), B — основание используемой системы счисления. Мантиссу и порядок числа как правило представляют в заданной системе счисления с основанием B, а само основание B — в десятичной системе. Например, приведенные ранее десятичные числа могут быть записаны в нормальной форме так: +0,543211 ´ 105; –0,37296 ´ 103; +0,4 ´ 10–1. Форма представления с плавающей запятой имеет значительно больший, чем естественная, диапазон возможных значений чисел и поэтому является основной в современных ЭВМ. Поскольку одно и то же число в нормальной форме может быть представлено в нескольких видах (например, число +1,23 можно записать как +0,123 ´ 101; +0,0123 ´ 102; +0,00123 ´ 103 и т.д.), в компьютерах используется нормализованный вид чисел с плавающей запятой, в котором старший разряд мантиссы отличен от нуля. Применительно к двоичной системе счисления это означает, что в старшем разряде мантиссы стоит 1 и, следовательно, 0,5£|M|<1.
Форматы представления информации в компьютерах.
Последовательность нескольких битов или байтов, предназначенных для хранения некоторой информации, часто называют полем данных. Биты в поле данных нумеруются справа налево, начиная с 0-го разряда. Компьютеры могут работать с полями постоянной и переменной длины. Из полей постоянной длины обычно используются следующие форматы: полуслово — 1 байт, слово — 2 байта, двойное слово — 4 байта, расширенное слово — 8 байтов. Форматы полуслова и слова чаще всего используются для представления чисел с фиксированной запятой, а форматы двойного и расширенного слова — для чисел с плавающей запятой. Поля переменной длины могут иметь любой размер от 1 до 255 байт, равный целому числу байт.
При хранении чисел с фиксированной запятой в поле данных обычно старший разряд отводится для представления знака числа, а остальные — для самого числа. При этом 0 в разряде знака означает, что число положительное, а 1 — отрицательное. Например, число 34 в формате слова может храниться следующим образом:
При хранении чисел с плавающей запятой в поле данных обычно два старших разряда отводятся для представления соответственно знаков числа (мантиссы) и порядка. 0 в разряде знака означает плюс, а 1 — знак минус. Остальные разряды отводятся для хранения мантиссы и порядка числа. Чем больше разрядов отводится под запись мантиссы, тем выше точность представления числа. Чем больше разрядов выделено для записи порядка, тем больше диапазон чисел, представимых в данном формате. Например, если в поле формата двойное слово для хранения порядка выделено 6 разрядов, то число 34,6875, имеющее в двоичной системе в форме с плавающей запятой вид 0,1000101011 ´ 2110, может быть представлено следующим образом:
Кодирование символьной информации обычно осуществляется в соответствии с принятым для данной ЭВМ стандартом. Наибольшее распространение в ПК получил однобайтовый код ASCII (American Standard Code for Information Interchange — американский стандартный код для обмена информацией), который включает в себя стандартный набор символов и расширение. Стандартный набор, кодируемый в десятичных числах от 0 до 127, является международным и используется для представления в ЭВМ управляющих символов, букв латинского алфавита, цифр, знаков пунктуации, некоторых математических и вспомогательных знаков. В расширенном наборе, кодируемом в десятичных числах от 128 до 255, представляются символы псевдографики и буквы некоторого национального алфавита. Наряду с кодом ASCII в компьютерах все чаще в последнее время используется универсальный двухбайтный код Unicode, совместимый со стандартным набором ASCII. 2 байта позволяют закодировать 65535 знаков, что достаточно для представления символов всех существующих алфавитов. Поэтому Unicode позволяет работать на ПК с данными, включающими в себя символы сразу из нескольких национальных алфавитов.
- Принципы работы компьютера или принципы фон Неймана.
Согласно принципам Джона фон Неймана, для того чтобы компьютер был универсальным и эффективным устройством для обработки информации, он должен иметь следующие устройства:
- арифметико-логическое устройство, выполняющее арифметические и логические операции;
- устройство управления, которое организует процесс выполнения программ;
- запоминающее устройство или память для хранения программ и данных;
- внешние устройства для ввода-вывода информации.
В общих чертах работу компьютера можно описать следующим образом. Вначале с помощью какого-либо внешнего устройства в память компьютера вводится программа. Память компьютера должна состоять из некоторого количества ячеек, в каждой из которых могут находиться или обрабатываемые данные, или инструкции программ. Все ячейки памяти должны быть одинаково легко доступны для других устройств компьютера. Устройство управления считывает содержимое ячейки памяти, где находится первая инструкция (команда) программы, и организует ее выполнение. Как правило, после выполнения одной команды устройство управления начинает выполнять команду из той ячейки памяти, которая находится непосредственно за только что выполненной командой. Однако этот порядок может быть изменен с помощью команд передачи управления (перехода). Такой переход в программе может выполняться не всегда, а только при выполнении некоторых условий. Это позволяет использовать одни и те же последовательности команд в программе много раз (т.е. организовывать циклы), выполнять различные последовательности команд в зависимости от определенных условий и т.д., т.е. создавать сложные программы. Таким образом, управляющее устройство выполняет инструкции программ автоматически, без вмешательства человека. Оно может обмениваться информацией с оперативной памятью и внешними устройствами компьютера. Управляющее устройство может приостанавливать выполнение программы до завершения операций ввода-вывода с внешним устройством. Все результаты выполненной программы должны быть ею выведены на внешние устройства компьютера, после чего компьютер переходит к ожиданию каких-либо сигналов внешних устройств.
Схема и принцип работы устройства управления ЭВМ.
Согласованная работа устройств ЭВМ по автоматическому выполнению заданной программы осуществляется устройством управления (УУ). УУ обеспечивает последовательную реализацию команд программы. Адрес очередной выполняемой команды хранится в счетчике адреса команд. По сигналу от блока центрального управления "начать выполнение очередной команды" блок выборки из памяти считывает из ОЗУ очередную команду и записывает её на временное хранение в регистр команды, в котором можно условно выделить регистр кода операции (РгКОП), регистр первого адреса (РгА1) и регистр второго адреса (РгА2). Дешифратор кода команды расшифровывает код операции, а блок формирования управляющих сигналов (БФУС) выдает сигналы, необходимые устройствам ЭВМ для выполнения заданной операции. Если операция является арифметической, то от БФУС сначала поступает сигнал в блок выборки из памяти "считать из ОЗУ значения операндов и записать их в регистры РгА и РгВ арифметико-логического устройства (АЛУ)". Затем подается сигнал в блок управления АЛУ на выполнение этой операции. После чего в счетчик адреса команды добавляется 1 и на этом все действия по выполнению команды заканчиваются. УУ готово приступить к следующей команде, хранящейся в ячейке ОЗУ с адресом на 1 большим адреса предыдущей команды.
Простейшая структурная схема устройства управления
Если очередная команда программы оказалась командой условной передачи управления, то блок центрального управления анализирует результат предыдущей операции, который хранится в сумматоре АЛУ. Если знак результата отрицательный, то в счетчик адреса команды УУ записывается адрес следующей команды из РгА1. Если знак результата положительный, а значение не нулевое, то в счетчик адреса команд записывается адрес команды из регистра РгА2. Если результат предыдущей операции равен нулю, то сохраняется естественный порядок выполнения программы и в счетчик адреса команд добавляется 1. На этом выполнение команды заканчивается, и управление передается команде, адрес которой хранится в счетчике адреса команд. Если очередная команда программы оказывается командой безусловного перехода, то выполнение ее состоит в пересылке значения из регистра РгА1 в счетчик адреса команд.
- Машинная команда. Типы машинных команд
В основе функционирования ЭВМ и решения задач с её помощью лежит принцип программного управления, который в общих чертах можно охарактеризовать следующим образом. В память ЭВМ вводится программа, представляющая собой последовательность команд, реализующих алгоритм решения задачи. После этого начинается автоматическое выполнение программы с первой команды. По завершению обработки очередной команды машина автоматически переходит к выполнению следующей команды, пока не будет достигнута команда, которая предписывает закончить вычисления.
Алгоритм решения задачи, заданный в виде последовательности команд на языке ЭВМ (т.е. в кодах машины), называется машинной программой. Команда машинной программы, по другому называемая машинной командой, представляет собой элементарную инструкцию машине, выполняемую ЭВМ автоматически без дополнительных указаний и пояснений. Любая программа, написанная на том или ином языке программирования, в конечном итоге преобразуется транслятором в машинную программу.
Структура машинной команды в простейшем случае включает в себя две части: операционную и адресную (рис. 1). Операционная часть команды — это группа разрядов в команде, предназначенная для представления кода операции машины (сложить, вычесть и т.д.). Адресная часть команды — это группа разрядов в команде, предназначенная для представления кодов адресов ячеек памяти машины, в которых хранятся операнды, используемые при выполнении заданной операции. По количеству адресов (А1, А2, А3, …), указанных в команде, различают безадресные, одно-, двух- и трехадресные команды.
Обобщенная структура машинной команды
Структура трехадресной команды имеет вид:
КОП А1 А2 А3
где А2 и А3 — адреса ячеек или регистров, где расположены, соответственно, первое и второе числа, участвующие в операции, А1 — адрес ячейки или регистра, куда следует поместить число, полученное в результате выполнения операции.
Структура двухадресной команды имеет вид:
КОП А1 А2
где А1 — это обычно адрес ячейки или регистра, где хранится первое из чисел, участвующих в операции, и куда после завершения операции должен быть записан её результат; А2 — обычно адрес ячейки или регистра, где хранится второе участвующее в операции число.
Структура одноадресной команды имеет вид:
КОП А1
где А1 в зависимости от модификации команды может обозначать либо адрес ячейки или регистра, в которой хранится одно из чисел, участвующих в операции, либо адрес ячейки или регистра, куда следует поместить число — результат операции.
Безадресная команда содержит только код операции, а информация для неё должна быть заранее помещена в определенные регистры машины.
Наибольшее применение в ПК нашли двухадресные команды.
Команда может храниться в памяти ЭВМ, как обычное слово длиной 2, 3, 4 байта и т.д. Длина команды в байтах обычно зависит от ее структуры и числа разрядов, отведенных под адресную и операционную части. Восемь двоичных разрядов, отведенных под код операции, позволяют закодировать 28=256 различных команд, что обычно является достаточным. Длина адресной части команды зависит от числа адресов и числа разрядов, отведенных для одного адреса.
Типы машинных команд.
Все машинные команды можно разделить на группы по видам выполняемых операций:
операции пересылки информации внутри компьютера;
арифметические операции;
логические операции;
операции над строками;
операции обращения к внешним устройствам компьютера;
операции передачи управления;
обслуживающие и вспомогательные операции.
Для изменения естественного порядка выполнения команд служат операции передачи управления. Существуют операции безусловной и условной передачи управления. Операции безусловной передачи управления всегда приводят к выполнению после данной команды не следующей по порядку, а той, адрес которой в явном или неявном виде указан в адресной части команды. Операции условной передачи управления вызывают передачу управления по адресу, указанному в адресной части команды, только в том случае, если выполняется некоторое определенное для этой команды условие. Данное условие в явном или неявном виде указано в коде операции команды. Число команд условной передачи соответствует числу используемых условий. Команд безусловной передачи управления обычно 3:
команда передачи управления, которая просто передает управление по заданному адресу и больше никаких действий не выполняет;
команда передачи управления, часто называемая командой вызова процедуры или подпрограммы, которая, кроме передачи управления процедуре, еще и запоминает в специальной стековой памяти адрес следующей команды, т.е. адрес возврата из процедуры;
безадресная команда передачи управления или команда возврата из процедуры, возвращающая управление по запомненному адресу возврата.
- Адресация регистров и ячеек памяти в ПК. Относительная и стековая адресация.
Адресация операндов в командах может быть:
непосредственной — заключается в указании в команде самого значения операнда, а не его адреса;
прямой — состоит в указании в команде непосредственно абсолютного или исполнительного адреса операнда;
косвенной — подразумевает указание в команде регистра или ячейки памяти, в которых находится абсолютный, исполнительный адрес операнда или их составляющие;
ассоциативной — служит для указания в команде не адреса, а идентифицирующего содержательного признака операнда, подлежащего выборке (применяется в ассоциативных запоминающих устройствах);
неявной — адрес операнда в команде не указан, но он подразумевается кодом операции.
Адреса ячеек основной памяти имеют 2 важные разновидности: относительную и стековую.
Относительная адресация. Абсолютный адрес формируется как сумма сегментного и исполнительного адресов:
Аабс = Асегм + Аисп.
Асегм — 20-битовый начальный адрес сегмента, который является увеличенным в 16 раз (сдвинутым на 4 бита влево) 16-битовым адресом сегмента А’сегм, хранящемся в одном из 16-битовых сегментных регистров. Начальный адрес сегмента в таком варианте всегда кратен 16 байтам и может быть полностью идентифицирован А’сегм, т.е.
Асегм = 16 ´ А’сегм = А’сегм0000.
16-битовый исполнительный адрес может представлять собой сумму 3-х адресов (2 последних необязательны):
Аисп = Асмещ [+Абаз][+Аинд],
где Асмещ — 16-битовый адрес смещения относительно начала сегмента (или относительно базы, если есть Абаз), Абаз — 16-битовый адрес смещения базы адреса операнда относительно начала сегмента, Аинд — адрес индекса, дополнительная составляющая адреса операнда, использующаяся часто при программировании циклических процессов с массивами и таблицами.
При адресации данных могут использоваться все составляющие адреса, т.е.:
Аабс = Асегм + Аисп = Асегм + Асмещ [+Абаз][+Аинд].
При адресации команд программы могут использоваться только адреса сегмента и смещения, т.е.:
Аабс = Асегм + Аисп = Асегм + Асмещ = 16 ´ А’сегм + Асмещ.
Стековая адресация. В стековой памяти или стеке доступ к ячейкам памяти не произвольный, а по принципу «последний записанный операнд первым считывается» (FILO). Адрес формируется следующим образом:
Аабс = Асегм [+Абаз] + Асмещ = А’сегм0000 [+Абаз] + Асмещ,
где А’сегм — адрес стековой области памяти, Абаз — смещение базы стека (начального адреса поля памяти), Асмещ — смещение активной ячейки стека, в которую записывается или из которой считывается информация, т.е. адрес «вершины стека» относительно базы.
- Основные классы вычислительных машин. Классификация по этапам создания и назначению.
Электронная вычислительная машина (ЭВМ), компьютер — комплекс технических средств, предназначенных для автоматической обработки информации в процессе решения вычислительных и информационных задач. По принципу действия вычислительные машины (ВМ) делятся на три больших класса: цифровые, аналоговые и гибридные. Критерием деления ВМ на эти классы является форма представления информации, с которой они работают. Цифровые ВМ (ЦВМ), или ВМ дискретного действия, работают с информацией, представленной в дискретной, цифровой форме. Аналоговые ВМ (АВМ), или ВМ непрерывного действия, работают с информацией, представленной в непрерывной (аналоговой) форме, т.е. в виде непрерывного ряда значений какой-либо физической величины (чаще всего электрического напряжения). Гибридные ВМ (ГВМ), или ВМ комбинированного действия, работают с информацией, представленной и в цифровой, и в аналоговой форме.
По этапам создания и элементной базе компьютеры условно делятся на следующие поколения:
- 50-е годы: ЭВМ на электронных вакуумных лампах.
- 60-е годы: ЭВМ на дискретных полупроводниковых приборах (транзисторах).
- 70-е годы: компьютеры на полупроводниковых интегральных схемах с малой и средней степенью интеграции (сотни и тысячи транзисторов в одном корпусе).
- 80 90-е годы: компьютеры на больших и сверхбольших интегральных схемах, основная из которых — микропроцессор (десятки тысяч и миллионы активных элементов на одном кристалле).
- настоящее время: компьютеры с многими десятками параллельно работающих микропроцессоров; компьютеры на сверхсложных микропроцессорах с параллельно-векторной структурой, одновременно выполняющих десятки последовательных инструкций программы.
- и последующие поколения: оптоэлектронные компьютеры с массовым параллелизмом и нейронной структурой, с распределенной сетью большого числа несложных микропроцессоров, моделирующих архитектуру нейронных биологических систем.
По назначению компьютеры можно разделить на три группы:
- Универсальные компьютеры предназначены для решения различных инженерно-технических, экономических, математических, информационных и др. задач, отличающихся сложностью алгоритмов и большим объемом обрабатываемых данных.
- Проблемно-ориентированные компьютеры предназначены для решения более узкого круга задач, связанных, как правило, с управлением технологическими объектами, с регистрацией, накоплением и обработкой относительно небольших объемов данных, с выполнением расчетов по относительно несложным алгоритмам. Они обладают ограниченными по сравнению с универсальными компьютерами аппаратными и программными ресурсами.
- Специализированные компьютеры предназначены для решения определенного узкого круга задач или реализации строго определенной группы функций. Такая узкая ориентация компьютеров позволяет четко специализировать их структуру, существенно снизить их сложность и стоимость при сохранении высокой производительности и надежности работы.