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

книги из ГПНТБ / Каретников, В. Н. Основы вычислительной техники учебное пособие

.pdf
Скачиваний:
7
Добавлен:
19.10.2023
Размер:
3.82 Mб
Скачать

длинные операции (обращение к памяти и т. и.) вы­ полняются асинхронным способом.

4. Общие сведения об устройствах ввода и вывода информации

В большинстве современных ЭВМ для ввода ин­ формации в машину в кодированном виде используют­ ся перфокарты (ПК) и перфоленты (ПЛ). Непосредст­ венный набор кодов может осуществляться также на клавиатуре пульта управления. Скорость ввода инфор­ мации с перфолент составляет 50—2000 код/сек, с пер­ фокарт— 300—700 карт/мин, с помощью клавиатуры — 10 код!мин. Ввод с помощью клавиатуры применяется

в машинах «Проминь» и «Мир». Для ввода информа­ ции в ЭЦВМ может использоваться магнитная лента (МЛ), запись информации па которой предварительно производится самой ЭЦВМ с какого-либо другого носи­ теля (ПК или ПЛ ).

Считывание с ленты производится фотодиодной го­ ловкой, имеющей шесть фотодиодов (по одному на каждую дорожку). Лампа подсветки через отверстия на перфоленте засвечивает соответствующие фотодиоды, сигналы от которых подаются в устройство управления фотовводом.

Вывод информации осуществляется с помощью

быстродействующих

печатающих

устройств

(БПУ)

(рис. 9). Цифровой

и кодирующий

барабаны

(ЦБ и

КБ) жестко связаны между собой и непрерывно вра­ щаются с постоянной скоростью 20—30 об/сек. На по­

верхности ЦБ выгравированы выступающие литеры — цифры для печати. Строки, расположенные вдоль обра­ зующих барабана, заполнены одинаковыми цифрами, количество которых равно количеству разрядов чисел.

Во внешнем ободе КБ против соответствующих циф­ ровых строчек ЦБ имеются кодовые отверстия, через которые проходит свет от источника, находящегося внутри барабана. При вращении барабана происходит засвечивание фотодиодов 3, вследствие чего от блока

фотодиодов БФД непрерывно поступают сигналы кодов чисел на схемы совпадения (СС). В регистры Р4 с ма­ шины подаются коды чисел, подлежащих печатанию на ЦБ. При совпадении кодов, поступающих из БФД, с

40

кодами чисел Р4 с выхода СС на обмотки электромаг­ нитов печати ЭМП поступают управляющие сигналы. Якорь электромагнита приводит в движение соответст­ вующий молоточек 1, который ударом по ленте 2 печа­

тает соответствующую цифру. Цифры занимают 2/3 ок­ ружности ЦБ, поэтому при повороте барабана на 2/3 оборота лента остается неподвижной. За время остав­ шегося поворота барабана на 1/3 оборота электронная

Рис. 9. Структурная схема быстродействующего печатающего устройства

схема приводится в исходное состояние для приема но­ вого кода, а лента передвигается на следующий шаг. Скорость печати, таким образом, определяется в значи­ тельной мере скоростью вращения барабана.

Для оформления результатов счета на ЭЦВМ могут быть также использованы чертежно-графические ав­ томаты.

41

Г Л А В А IV

ЭЛЕМЕНТЫ ПРОГРАММИРОВАНИЯ

1. Основные понятия

Для каждой программно-управляемой машины предусмотрен фиксированный набор операций, которые она выполняет под воздействием команд.

Команды содержат в себе информацию о том, какую

операцию должна выполнить машина и над какими числами, что делать с полученным результатом и какая команда должна выполняться следующей. Часть этой информации может не указываться в командах в явном виде, а определяться по некоторым фиксированным пра­ вилам, заложенным в конструкции машины.

Последовательность команд образует программу ре­ шения задачи. Обычно используется естественный поря­

док выполнения команд— в порядке возрастания их адресов.

Программу вводят в машину перед решением задачи, после чего все решение выполняется автоматически.

В процессе составления программы можно выделить следующие этапы:

1) составление плана вычислений (составление схе­

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

ные данные задачи, результаты решения задачи, под программу и вспомогательные числа;

3) составление последовательности команд для каж­ дого этапа плана.

В практике программирования используются два ви­ да схем программ; операторные схемы и блок-схемы.

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

Строка символов операторов и знаков перехода об­ разует логическую схему. В описании логической схемы

дается содержание каждого оператора операторной схемы.

Можно выделить семь существенно различных типов операторов: операторы счета (операторы присваива­ ния), логические операторы (операторы проверки усло-

42

вий), варьирующие операторы, операторы обращения, обмена, останова и начала. Каждый оператор и каждый

знак перехода

имеют

строго определенные

символы

(А — оператор

счета,

Р — логический оператор,

U

оператор начала, Я — оператор

останова и т. п.).

Блок-схема представляет собой другую форму запи­

си операторной схемы, в которой

операторы

изобража­

ются в виде блоков

различной

конфигурации.

Знаки

перехода изображаются стрелками, а содержание опе­ ратора приводится внутри блока.

2.Строение команд и составление отдельных программ

Вмашинах, работающих в двоичной системе счисле­ ния, команды представляются в виде двоичных кодов.

Код команды разбивается на определенные части, каж­ дая из которых служит для задания определенного вида информации. Обычно выделяют такие части кода команды, как код операции и адресная часть.

Код операции указывает машине, какую операцию

она должна выполнять.

В адресной части команды указываются адреса чи­

сел, над которыми необходимо выполнить операцию, и адрес результата.

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

Трехадресные машины (например, М-220) являют­ ся наиболее распространенными. Команды в этих ма­ шинах имеют три адреса:

1 ) адрес первого числа;

2 ) адрес второго числа;

3) адрес результата операции.

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

43

Трехадресная машина имеет следующую структуру команд:

0

АI

А2

А3

где 0 — код операции; Al,

А2 и АЗ — адреса.

Фрагмент системы команд трехадресной машины при­ веден в табл. 3.

 

 

 

 

 

 

Т а б л и ц а 3

Команда

Код

 

Назначение адресов

 

 

 

 

 

 

 

операции

А1

 

А2

 

 

АЗ

 

 

 

 

 

 

 

 

 

Сложение

01,

Адрес

Адрес числа в

 

Адрес

с — а+в

числа а

 

числа с

Вычитание

02

а

 

в

 

 

с

с = а—~в

 

 

 

Умножение

03

а

 

в

 

 

с

с-— аХ.в

 

 

 

Деление

 

 

 

 

 

 

 

с= а : в

04

а

На

в

 

 

с

Перенос

05

 

выполнение

 

с— а

а

операции

не

вли-

с

Извлечение

квад­

 

яет

выполнение

 

 

На

 

ратного корня

а

операции

не

вли­

с

с = Y а

06

яет

 

 

 

Двухадресные машины (например, «Минск-22») имеют следующую структуру команд:

АI А.2

где 0 — код операции; А1 и А2 — адреса.

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

Одноадресные машины

(например, ЭЦВМ серии

«Урал», БЭСМ-6) имеют

следующую структуру

команд:

 

44

вл

где 0 — код операции; А — адрес.

В одноадресных машинах первое число предвари­ тельно из сумматора засылается в ячейку с адресом А. Второе число также берется из сумматора. Результат остается в сумматоре.

П рим ер .

Составить

команду для сложения двух

чисел а и в: с— а-\-в.

 

 

 

 

При трехадресной машине (БЭСМ-4) с распределе­

нием памяти, например, согласно таблице

Величина

 

а

в

С

Адрес

ячейки

 

1005

3371

0020

будем иметь

001

1005

3371

 

0020,

 

 

где 001 — код операции сложения.

 

 

Словами эта команда выражается так: сложить чис­ ла, находящиеся в ячейках 1005 и 3371, результат по­ местить в ячейку 0020.

При двухадресной машине «Минск» с распределе­ нием памяти, например, согласно таблице

Величина ~

 

в

а, с

Адрес ячейки

 

0071

1025

получим команду следующего вида:

 

00

0071

1025,

 

где 00 — код операции сложения.

Словами эта команда выражается так: сложить чис­ ла, находящиеся в ячейках 0071 и 1025, результат по­ местить в ячейку 1025.

При одноадресной машине «Урал», имеющей рас­ пределение памяти, например, согласно таблице

Величина

а

в

С '

Адрес ячейки

100

101

102

45

получим такую последовательность команд:

0101 2100 1102,

где 0 — код засылки в сумматор, 2 —-код операции сло­ жения, 1 — код засылки в ячейку из сумматора.

Словами эту последовательность команд можно вы­ разить так: заслать в сумматор число из ячейки 101, сложить его с числом из ячейки 100, результат из сумматора отправить в ячейку 102.

Как видно из примера, составление программ для трехадресной машины является более простым, чем для одноадресной.

Каждая команда программы хранится в отдельной ячейке. При наличии в ячейке, например 42 разрядов, первые шесть разрядов отводятся под код операции, а остальные 36 образуют адресную часть команды. Адрес­ ная часть команды разбивается на три группы по 12 разрядов в каждой. Каждый из 12 разрядов служит для изображения номеров ячеек (при трехадресных командах) . Если для изображения номера какой-нибудь ячейки не используются все 12 разрядов, то свободные

в данном адресе разряды заполняются нулями. Разме­ щение кода команды в трехадресной ЦВМ показано на рис. 10.

1

6

7

(6

(9 . . . 30 31

а

1ЛЙ

— ----- 'V------- '-------Y------- --------- V

операции

 

Т oOPtc

J l

iJ u t t

 

Рис. 10.

Размещение кода команды в трехадрес­

 

 

 

ной

ЦВМ

 

При составлении программ команды для простоты записывают не в двоичной системе, а в восьмеричной, объединяя двоичные разряды в группы по три разряда

вкаждой.

Пример. Составить программу для приближенного вычисления величины

У = /; (2 / г — 1 )(2/г | 1 ) ( Я = 1 > 2 > ‘

Процесс вычисления закончить, когда будет выпол­ нено неравенство (у —0,9 | <10~3.

46

Ре ш е н и е

1.Схема программы

Операторная запись

иоА\А2Рз\—Яь

где UQ— оператор начала;

и у — 0;

 

А \ вычисляет величины п — 1

 

А 2 вычисляет величину У = У

+ ( 2 п — 1) ( 2 п + 1 )

и величину п

увеличивает на единицу;

 

Р з проверяет

выполнение

неравенства | у —0,9| <

10 3; если это условие не выполнено,

то пере­

дает управление оператору А2,

в противном

случае —

оператору # 4.

 

 

 

Блок-схема

 

 

 

если

|у—0,9| > 103

 

 

 

 

если

| у—0,91 < 10“ 3

 

 

 

 

 

Выход

 

 

 

 

 

2. Распределение памяти (для ЦВМ «БЭСМ-4»)

3001 =

< ! /> ,

3002 =

< д > , 1001 = < 1 > ,

1002=

<

10-3 > , 2001 и 2002 — рабочие ячейки,

2003= < 0,9 > .

 

 

 

 

 

 

 

 

3.

Программа

 

 

Опе­

Номера

 

Команды

 

 

результаты выпол­

ратор

команд

 

 

 

нения команд

 

0020

 

0

00

0000

0000

3001

У = 0

А\

0021

 

0

00

1001

0000

3002

п = 1

47

Оме-

Номера

 

 

Кома иды

 

 

Результаты вымол-

ратор

команд

 

 

 

 

нения команд

 

0022

0

06

0101

3002

2001

2/1

 

0023

0

02

2001

1001

2002

2/г— 1

Л2

0024

0

01

2001'

1001

2001

2п+ 1

0025

0

05

2002

2001

2001

(2/1—1) (2/Н-1)

 

0026

0

04

1001

2001

2001

1/(2д—1) (2/Н-1)

 

0027

0

01

3001

2001

3001

У

 

0030

0

01

3002

1001

3002

п = п + 1

^3

0031

0

02

3001

2003

2001

 

0032

0

03

2001

1002

оооо

 

я 4

0033

0

76

0000

0022

0000

 

0034

0

77

0000

0000

0000

 

3. Автоматизация программирования

Алгоритмические языки

Под автоматизацией программирования понимается автоматизация разработки программы по ее логической схеме. Автоматизация программирования развивается по двум основным направлениям: использование биб­ лиотеки стандартных программ (метод БСП) и состав­ ление программ с помощью программирующих про­ грамм (метод ПП), называемых трансляторами. Биб­ лиотека стандартных программ (СП) включает стан­ дартные программы решения некоторых общематемати­ ческих задач и вычисления некоторых функций (напри­ мер, решение систем алгебраических уравнений, вычис­ ление тригонометрических функций и т. и.). Каждая ЭЦВМ обычно снабжается БСП еще на стадии разра­ ботки машины. Применение на практике программ спе­ циальной структуры позволяет размещать СП в любом месте оперативной памяти, а также предельно упрос­ тить обращение к СП.

При использовании метода ПГ1 логическая схема формируемой программы составляется на входном язы­ ке машины, в качестве которого используются различ­ ные алгоритмические языки. Получаемая с помощью ПП программа подлежит отладке, выполняемой обычно

48

автоматически. Алгоритмические языки АЛГОЛ-60, ФОРТРАН, КОБОЛ, АЛГЭК, КОМИТ, АКИ и другие созданы для единого, гибкого и однозначного описания алгоритмов как универсальные входные языки. Наибо­ лее обобщенным и удачным для изложения научно-тех­ нических задач является язык АЛГОЛ-60, принятый на Международной парижской конференции. На его основе построена логика отечественных ЭЦВМ серии «Мир». Программой в языке АЛГОЛ-60 называется закончен­ ное описание алгоритма. Программа представляет собой блок, состоящий из описаний и операторов. Описания помещаются в начале блока, операторы — за ним. Опи­ сания служат для характеристики встречающихся в данном блоке переменных и других объектов (переклю­ чателей и процедур). Все объекты, используемые в про­ грамме, должны быть описаны, хотя описания не пред­ писывают каких-либо действий в программе. В противо­ положность описаниям операторы являются указания­ ми о выполнении определенных действий. Операторы бывают следующих типов: присвоения, перехода, услов­ ный, цикла, процедуры и другие.

Операторы и описания строятся из более мелких единиц, называемых выражениями, которые по опреде­ ленным правилам соединяются между собой специаль­ ными символами — ограничителями.

4. Особенности решения задач на ЭЦВМ

Порядок решения задач

Решение задач на ЭЦВМ включает следующие этапы:

1) разработку алгоритма;

2 ) программирование;

3)отладку программы на машине;

4)составление инструкции;

5)автоматическое решение задачи на машине;

6)обработку результатов счета.

Под алгоритмом решения задачи понимается пред­ писание, определяющее процесс преобразования исход­

4

2521

49

Соседние файлы в папке книги из ГПНТБ