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

книги из ГПНТБ / Основы автоматизации для металлургов

..pdf
Скачиваний:
13
Добавлен:
23.10.2023
Размер:
33.25 Mб
Скачать

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

К механическим печатающим устройствам относятся печатаю­ щие устройства рычажного типа со скоростью печатания до 2— 3 строк в секунду и наиболее распространенные быстропечатаю­ щие ротационные устройства (рис. 135) со скоростью печатания до 10—20 строк в секунду. При этом одна строка содержит 120, 136 или 160 знаков. Количество различных символов, имеющихся в пе­ чатающем устройстве, составляет 16—128. Для печатания обычно используется рулонная бумага, имеющая по краям полосы перфо­ рацию для движения бумаги. Полосы с перфорацией можно при необходимости легко устранить, тогда формуляр приобретет стан­ дартный размер (А2, A3, A4).

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

Ксерография является

основным электрооптическим

методом.

На диэлектрическом

печатающем валике электрооптически

заря­

жаются до достаточного потенциала участки, соответствующие

зна­

кам,

которые должны

быть

отпечатаны. К рассматриваемым

уча­

сткам

под действием

статического электричества пристает

цветной

печатный порошок. Аналогичен принцип действия магнитографиче­ ских печатающих устройств, но печатный порошок в этом случае — металлический. Участки, где должен быть отпечатан текст, намаг­ ничиваются. В обоих способах к вращающемуся печатающему ва­ лику в определенном месте прижимается вращающийся валик с бу­ магой, на которой должен быть напечатан соответствующий текст. Скорость этих печатающих устройств 80—200 строк в секунду.

При электрографии искровой разрядник выжигает на бумаге соответствующие знаки. Скорость таких устройств достигает 600

строк в секунду.

 

 

 

 

К о о р д и н а т н ы й с а м о п и с е ц с ц и ф р о в ы м

у п р а в ­

л е н и е м .

Если

результаты вычисления нужно получить в виде

графика,

чертежа

или в другом графическом виде, то

можно ис­

пользовать координатный

самописец с цифровым управлением.

Предположим,

что нужно графически

изобразить

определен­

ную зависимость

у = у(х).

Тогда следует

запрограммировать вы­

числение

п пар Xk и у (Xh) для /г=1, 2, . . ., п так, чтобы получить

достаточно «плотную» последовательность точек кривой. Затем вы­ бирают необходимый масштаб графической записи и сигналы, со­

ответствующие

результатам вычисления, управляют

движением

пера самописца

или резца так, что они вычерчивают на

подготов­

ленном бланке

зависимость

у = у(х). Существует

много

способов

графической записи — непосредственное нанесение

на

бланк

рас­

считанных точек Ук = у(хн),

печатание ступенчатого графика

(когда

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

206

Емкость запоминающего устройства ВМ NCR CRAM 653-101 со­

ставляет

125 млн. байт,

среднее время выборки одного блока

зна­

к о в — 23

мсек. Информация записывается по

методу фазовой

мо­

дуляции. Управляющее

устройство

памяти

позволяет присоеди­

нить до 8 указанных запоминающих

устройств.

 

Устройство для считывания напечатанного текста позволяет счи­ тывать (обычно оптически) текст, напечатанный стандартными шрифтами (знаками) на стандартных бланках.

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

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

Основы программирования универсальных цифровых ЭВМ

Программирование в машинном коде,

о котором

говорилось

в начале главы, требует достаточно подробного знания

используе­

мой ЭВМ, знаний о специфике вычислений

и расположении регист­

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

предпринимались

попытки найти такой путь, который бы

облег­

чил и позволил

автоматизировать работу программиста.

Первым

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

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

Идея осуществления перевода программы, записанной на выс­ шем языке программирования, на машинный код основана на том факте, что если какой-то порядок вычислений алгоритмизирован, т. е. описан однозначно и точно, кодирование его в машинном коде является уже вопросом чисто техническим. Если нужно, например, сложить две величины а и Ь, сумму возвести в квадрат и прирав-

208

нять ее к у , операция точно описывается — алгоритмизируется за­ писью

y = (a + bf.

Описание этой операции в машинном коде осуществляется за­ данием адресов переменных a, b, у и разложением вычислений в последовательность машинных операций (например, при помощи табл. 2 1 ) .

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

Порядок вычисления программы, записанной на языке про­ граммирования, делится тогда на два этапа:

1.Программа, записанная на языке программирования, пере­ водится при помощи автоматической ЭВМ на машинный код.

2.Собственно вычисление этой транслированной программы осуществляется в машинном коде.

Чтобы ЭВМ могла осуществить перевод программы, записан­ ной на языке программирования, в машинный код, для ЭВМ, осу­ ществляющей этот перевод, необходимо иметь программу перевода. Э^а «программа перевода» — так называемый транслятор или ком­ пилятор 1 относится к основному программному оснащению ЭВМ. Компилятор обычно размещен в библиотеке программ или непо­ средственно в определенной ячейке памяти ЭВМ (например, на од­ ном из участков запоминающего устройства на ленте).

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

В качестве простого примера можно привести порядок вычисле­ ния на языке MOST I на ЭВМ ODRA:

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

2.Программа записывается на языке MOST I .

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

4.

В память ЭВМ вводится заранее

подготовленный

компиля­

тор.

(Компилятор подготовлен изготовителем ЭВМ на перфоленте

1

Понятие «транслятор»

вообще обозначает

любую программу,

переводящую

с одного языка на другой.

Компилятор — это

транслятор, позволяющий пере­

водить с языка программирования на машинный код. Перевод часто осущест­ вляется таким образом, что сначала программа переводится на язык символи­ ческих адресов [33], а затем при помощи ассемблера заканчивается перевод на машинный код. Генератор часто называют программой, предназначенной для со­ ставления других, часто проблемно ориентированных программ. У самых новых ЭВМ трансляторы бывают реализованы аппаратурно при помощи специальных устройств.

14

З а к а з № 141

209

и при помощи устройства для считывания перфоленты он записы­ вается в память).

5.В устройство для считывания перфоленты вставляется теле­ тайпная перфолента с подготовленной программой. ЭВМ. затем по­ следовательно считывает команды на языке MOST I , при помощи компилятора переводит их в машинный код и записывает переве­ денную программу в свободные ячейки памяти.

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

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

не может непосредственно

работать со всеми типами функций

(из-за их большого числа)

и т. д.

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

Язык программирования АЛГОЛ 60 — универсальный язык с очень свободной структурой записи, предназначенный для реше­ ния научно-технических задач. Его можно использовать и для мас­ совой обработки данных. Название возникло от сокращения назва­ ния «Algorithmic Language* (алгоритмический язык). Хотя АЛГОЛ 60 может использоваться и в ЭВМ с небольшой внутрен­ ней памятью, компилятор с АЛГОЛа будет работать достаточно быстро только у ЭВМ с внутренней памятью емкостью не менее 8000 слов. АЛГОЛ 60 является достаточно универсальным языком, и компиляторы, которые бы учитывали все его возможности, дол­ жны удовлетворять очень высоким требованиям. Это одна из при­ чин создания упрощенного варианта АЛГОЛ 60 — IFIP — SABSET АЛГОЛ, который входит в АЛГОЛ 60. И наконец, существуют ма­ шинные версии АЛГОЛа, которые, в отличие от указанных выше модификаций, включают операции с периферийными устройствами и у которых возможны небольшие изменения по сравнению с АЛГОЛ 60. Язык АЛГОЛ 60 в настоящее время применяется во многих современных автоматических ЭВМ. Особенно распространено при­ менение его в Европе.

В США возник другой очень распространенный универсальный язык программирования — ФОРТРАН (Formula Translation). Для этого языка также существует несколько версий — от первоначаль­ ного ФОРТРАН I до ФОРТРАН V. Язык ФОРТРАН синтаксически является более простым, чем АЛГОЛ. В настоящее время почти все крупные ЭВМ оснащены трансляторами с ФОРТРАНа.

Для решения задач массовой обработки данных (учет, склад­ ское хозяйство, административное делопроизводство и др.) служит язык КОБОЛ (Common Business Oriented Language). В зависи­ мости от емкости внутренней памяти изготовители ЭВМ постав­ ляют вместе с ВМ и трансляторы с КОБОЛа различного уровня.

210

Современным языком программирования, включающим преиму­ щества предыдущих языков, является язык PL 1 (Programming Language 1).

Наличие в ЭВМ необходимых языков программирования имеет такое же важное значение для ЭВМ, как и ее другие свойства, на­ пример быстродействие и емкость памяти. Языки программирова­ ния дают возможность обмениваться программами между отдель­ ными вычислительными центрами (издаются журналы с опубли­ кованными программами [2]).

Кроме указанных языков программирования, существует очень много других проблемно-ориентированных языков, предназначен­ ных для решения частных проблем. Для моделирования производ­ ственных процессов, например, служит имитационный язык SIMULA и т. д.; существует ряд языков, имеющих более низкий синтакси­ ческий уровень. Эти языки предназначены обычно для ЭВМ опре­ деленной фирмы и носят название автокодов (MOST для ЭВМ

ODRA, автокод

МАТ для

ЭВМ «Минск», язык для ЭВМ

ELLIOT-803 и др.).

 

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

смотренного выше

примера

 

на языке АЛГОЛ

60 получит

вид

у:={а

+ Ь)\2,

 

 

где

f означает возведение в степень.

В автокоде MOST 1, где операция возведения в степень отсут­ ствует, сущность программы для указанного задания имеет, на­ пример, вид

р = а-\~Ь\ У=Р*Р,

где р — вспомогательная переменная, а знак >J< означает умно­ жение. Вся программа должна быть дополнена соответствующими инструкциями по считыванию, печатанию, а также информацией для компилятора. Так, например, при использовании автокода MOST 1 необходимо задать переменные, с которыми будут проводиться вычисления (в данном примере — переменные a, b, p, у), а также число блоков, содержащихся в программе (здесь—1 блок).

Запись этих данных производится в начале программы и назы­ вается декларацией программы, которая в рассмотренном примере имеет вид

read abpy; label 1.

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

14*

211

Предположим, что переменные а и b записаны на перфоленте; для считывания информации с ленты можно использовать команду read, после которой указывается переменная, которую нужно про­ читать

1: read а; read b

(перед первой командой нужно указать число, которое обозначает блок программы). Затем следует содержание программы:

р = а + Ь, У=Р*Р,

а также команда на печатание результатов print у.

Программа заканчивается командой stop и информацией, от­ куда следует начать вычисление start 1. Здесь 1—метка, в дан­ ном примере эта метка, стоит перед командой read а.

Вся программа тогда имеет вид:

read a b р у, label 1

begin

1 : read а read b

p = a-\-b

У = Р*Р print y stop

start 1.

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

(р) и результатов вычисления (у) компилятор осуществляет авто­ матически.

Подготовка задания для автоматической ЭВМ

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

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

212

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

Следующим этапом при решении задачи является кодирование алгоритма на языке программирования.

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

1. Операционный блок (рис. 138, а), в котором символически изображено выполнение определенной арифметической, логиче­ ской или машинной операции. Операционный блок имеет только один вход и один выход.

2. Знак развития (продолжения) программы (рис. 138, б), ко­ торый показывает последовательность выполнения операций.

3.Блок сравнения (рис. 138, в), в котором сравниваются две величины; он имеет два или более выходов. Ветвь выхода выби­ рается при вычислении в зависимости от того, выполнено или нет условие, записанное внутри блока. Блок сравнения позволяет осу­ ществлять разветвление программы, организовывать циклы в прог­ рамме и др.

4.Обозначение начала программы (рис. 138,г).

5.Обозначение конца программы (рис. 138,0).

6.Коннекторы (соединения), используемые в тех местах, где нельзя по графическим причинам непосредственно соединить со­ ответствующие участки программы (рис. 138, е).

7.Точка соединения (рис. 138, з) .

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

На перфоленте записано целое число N>1

и числа

Al,

А2,...

AN.

Составим

блок-схему алгоритма выбора

самого

большого-

числа

из Al, А2,

. ..AN.

 

 

 

Блок-схема алгоритма показана на рис. 139. Так как на ленте переменные приведены в указанном порядке, устройство для считывания перфоленты прочтет с ленты сначала значение N (блок 1), после прочтения числа N последует считывание числа Al (блок 2).

Переменной М, которая по окончании вычисления должна соот­ ветствовать значению искомого максимума, придадим сначала зна­ чение Al (блок 3).

213

' Прочитай AK
3 Al-~fï
2 Прочитай А1
1
Поочитай N
1
Так как К = 2 (блок 4), с ленты считывается значение следую­ щего числа Л2 (блок 5) и сравнивается со значением M (блок 6).
Если А2>М, то значение M изменится на А2 (блок 7), если Л2 не больше М, то переменная M для следующего вычисления оста­ нется неизменной. Затем осуществляется контроль, проведено ли сравнение для всех чисел АК (блок 8). Если K=N, то остается лишь напечатать переменную M (блок 10), если K<N, то необхо­ димо продолжить вычисления.
К значению К прибавляется единица (блок 9) и вычисление продолжается от блока 5 (прочи­ тывается переменная A3, ЛЗ срав­ нивается со значением M и т.д.) до тех пор, пока не будет про­ ведено сравнение для AN.

а

А+В+С

Г 2 — і\

6 (

А=В ) Да

 

 

йа

 

 

\Нет

 

Нет

 

 

 

 

 

7' АК-^П

 

 

 

 

 

 

 

У

Ma

 

 

о

 

Нет

№•НапечатайM

 

 

 

 

 

/г*/-~л

 

 

 

?

9 :

 

 

 

 

 

 

 

Рис.

138. Обозначения на блок-

Рис. 139.

Блок - схема

выбора

самого

 

с х е м а х

большого числа из

ряда

чисел

После сравнения последнего числа AN осуществляется печата­ ние значения M (блок 10), и вычисления прекращаются.

Номера блоков в блок-схеме обычно соответствуют меткам в программе. Блок-схема алгоритма позволяет легко записать прог­ рамму его вычисления в ЭВМ.

^Для сравнения рассмотрим, как будет выглядеть соответствую­ щая программа на языке АЛГОЛ 60.

Программа на языке АЛГОЛ 60 всегда начинается с обозна­ чения

BEGIN,

после которого следует декларация. В данном случае работа бу-

214

дет вестись с

переменными N я К (целые числа) и

действитель­

ной переменной М, чему соответствует запись:

 

INTEGER N,

К;

 

 

R E AL M,

 

 

 

а также с действительными переменными Al, А2,

AN, кото­

рые образуют поле с N элементами. Предположим, что ІѴ^ІОО,

тогда

поле Al,

А2,

.. .AN декларируется при помощи

записи

R E A L

ARRAY A

[I: 100],

 

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

Первый блок блок-схемы требует считывания с перфоленты константы N; соответствующая команда, реализующая считыва­ ние целого числа N, имеет вид

1 : INTEGER

(1, N).

 

 

 

Единица

с двоеточием

обозначает номер

команды (1),

единица

в скобке обозначает номер периферийного

устройства

(канала).

Затем следует считывание действительного

числа Al; соответст­

вующая инструкция имеет

вид

 

 

2 : INREAL (1, А [1]),

где 2: означает номер команды (2). Затем следует:

3:М:=А [1]; 4 : ЛГ : =2;

5: INREAL (1, А \К\);

6 : IF А [К] > Л 1 THEN ОО ТО 7 E L S E ОО ТО 8.

Команда с меткой 6: позволяет осуществить логический выбор, записанный в блоке 6; если АК>М, то вычисление продолжается от команды с меткой 7:, в противном случае ЭВМ переходит к ко­ манде 8:

7 : / И : = Л [К];

8 : IF К' = N THEN GO ТО 10 E L S E GO TO 9

Команда с меткой 8: аналогична команде 6:. В блоке 9 осу­ ществляется прибавление единицы к значению переменной К

9 : / С : = / С + 1 .

После выполнения команды 9 вычисление должно вернуться

ккоманде с меткой 5:, соответствующая команда имеет вид

ООТО 5.

215

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