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

книги из ГПНТБ / Сафонов, С. Ф. Вычислительная техника в инженерных и экономических расчетах (конспект лекций)

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

Т а б л и ц а VII

Нажать клавишу «Пуск-1

I

Отпечатать: 70 п

Примечание: двоеточие перед знаком синуса обозначает оперирование кла­ вишей пробел

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

2. Машина выводит на печать: «Не могу» после вычисления интеграла, что означает — шаг интегрирования слишком мал.

Данная СП может быть использована и как СПП, т. е. в виде составляющей.

По СП и СПП можно вычислять интеграл, если подынте­ гральная функция содержит не .более чем 125 различных посто­ янных. Формула подынтегрального выражения может содержать не более 15 левых и 15 правых скобок.

СП нахождения определителя матрицы и обратной матрицы.

Для нахождения определителя и обратной матрицы исполь-

6:

83

Т а б л и ц а VIH

Нажать клавишу «Пуск-1»

Отпечатать 61 п

Набирать на клавиатуре элементы матрицы (по строкам), делая возврат каретки после набора каждого элемента

- 1

Отпечатать во — в случае вычисления определителя или ом — в случае вычисления обратной матрицы

-

ЭВМ печатает п = Отпечатать после знака равенства значение порядка матрицы

и сделать возврат каретки

зуется метод Леверье с видоизменением Д. К. Фадеева (см. А. К. Фаддеев и В. Н. Фаддеева. Вычислительные методы линейной ал­ гебры, 1960, стр. 295).

Схема использования программы как самостоятельной приве­ дена в табл. VIII.

Входе решения по дайной СП возможны следующие случаи:

1.Машина печатает «опред=0» и останавливается при сов­ местном использовании СП нахождения определителя и обрат­

ной матрицы. Это означает, что исходная матрица особенная.

2.Машина останавливается (в случае нахождения опреде­ лителя матрицы). Это происходит оттого, что исходная матрица особенная.

3.Если при решении вводится порядок матрицы, больший 12, ЭВМ выводит на печать: «Не могу» и вновь запрашивает поря­ док: «п= ».

СП можно использовать в виде СПП, Кроме рассмотрения программ, в ДЗУ «Наири» имеются и

стандартные программы автоматического программирования, ис­ пользуемые как команды-псевдооперации, СП счетного режи­ ма и другие СП.

§ 4. ЯЗЫК АВТОМАТИЧЕСКОГО ПРОГРАММИРОВАНИЯ ЭВМ «НАИРИ»

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

84

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

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

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

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

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

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

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

При методе библиотечных подпрограмм (кроме собственно подпрограмм) необходимо иметь все сведения, нужные для ис­ пользования подпрограмм. Без наличия таких сведений програм­ мисту приходилось бы каждую подпрограмму перед ее примене­ нием расшифровывать. Необходимые сведения о подпрограммах можно значительно сократить, если в библиотеку собирать не «случайно» полученные части программ, а специально разраба­ тываемые подпрограммы, удовлетворяющие определенным тре­ бованиям, дающим возможность описать совокупность действий, необходимых для применения произвольной подпрограммы в ви­ де единого алгоритма. В этом случае подпрограммы называют,

85

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

Возможна автоматизация программирования, при которой со­ четаются методы ПП и БСП.

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

Автоматическое программирование при раздельном порядке решения задач называется компиляцией программы, а при чере­ дующемся порядке — интерпретацией (исходной информации о программе). Возможно сочетание компиляции с интерпретаци­ ей; заключающееся в том, что компилируется программа, в со­ став которой, кроме команд, включены специальные коды, назы­ ваемые псевдокомандами. Псевдокоманды интерпретируются уже при выполнении составленной программы на •машине.

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

86

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

Ввиду того, что способы программирования можно любым образом сочетать с порядком'решения задач на машине, возмож­ ны ПП как компилирующие, так и интерпретирующие; точно так же метод БСГ1 может осуществляться как путем компиляции, так и путем интерпретации.

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

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

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

Составление программ самой машиной по простому языку об­ щения — языку АП — одна из особенностей «Наири». В долго­ временной памяти машины имеется программирующая програм­ ма, способная ио простому языку общения, близкому к матема­ тическому, составлять программы на языке ручного программи­ рования сразу же по мере общения с машиной в языке АП. Про­ граммирующая программа — программа АП — принимает ин­ формацию, составляет по мере ее приема рабочую программу в символах внешнего кода языка РП, которую легко вывести в слу­ чае необходимости из оперативной памяти машины в виде пер­ форированной ленты или в виде машинописной печати програм­ мы на широкой бумажной ленте.

Главное достоинство языка АП — экономия времени при со­ ставлении программы.

Главный недостаток — невозможность составления компакт­ ных программ. В языке АП машина составляет программы в не­

87

сколько раз длиннее, чем это сделал бы программист средней квалификации.

Можно сказать, что при пользовании языком АП, с одной сто­ роны, экономится время, с другой,—неэкономно расходуется па­ мять. Поэтому лучшим методом составления программ является комплексный метод программирования, в котором программы, написанные в языке АП, стыкуются с программами, написанны­ ми в языке РП. Однако так нельзя утверждать на все случаи жизни. Одни задачи хорошо программировать только в АП, дру­ гие— в РП.

Приступим теперь непосредственно к изучению языка АП ЭВМ «Наири». Алгоритмический язык АП содержит:

1. Буквы с, в, у, д, л, м, н, х, а, б, г, ч, п, о, е, /, р, т, ш, т, s, t, ы, которые используются для обозначения индексированных или неиндексированных переменных только в форме с плаваю­ щей запятой. Величины, приписываемые программой АП этим буквам, располагаются соответственно в 33—55 ячейках ОЗУ.

2.Знак запятой.

3.Цифры 0, 1,2, ..., 9, в которых, используя запятую, можно образовать любое число в форме с плавающей запятой меньшее по абсолютной величине 1018 и в любой целый показатель сте­

пени.

4. Буква л, которая всегда обозначает величину 3,14159265 160056060791015.625000.

5. Знаки отношений = , > , < , =£'.

6. Символы функций sin, cos, tg, arcsin, агссоэ, aretg exp, In, lg, У-

7.Символы знаков + , —, /, !.

8.Левую и правую скобки.

9.Знак модуля (Внимание! Обозначается при печати на те­

летайпе двумя символами «!»).

10.Буквы i, /, k , которые служат только для обозначения ин­ дексов и целочисленных переменных.

11.Букву п только для обозначения целочисленных перемен­

ных:

12.Слова или группы слов, называемые операторами,

13.Символы клавиш телетайпа: «ВК», «Пробел».

Операторы АП

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

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

1 : допустим л = 0,2 —.

Букве Л присвоится значение 0,2 в форме с плавающей запятой. Внимание! Во всех примерах перед символом .оператора, как это делается1в настоящих программах, будем ставить Номер опе­ ратора (в примерах произвольный). Символ «Пробел» будет

обозначаться условно символом «:», потому что настоящий про­ бел можно не заметить. Символ клавиши телетайпа ВК (возврат каретки) будем обозначать условно через символ «—».

Еще пример:

25 : допустим м = \л) : х — \л\ : у = —5 : ш = (135) : (235) = = (236) : (136) — п : « = 3 —.

Что же произойдет после прохождения машиной оператора из второго примера?

Переменная м станет равной по модулю переменной л, пере­ менная х станет равной л с обратным знаком, переменная у ста­ нет равной минус пяти, переменная ш станет равной содержимо­ му ячейки 135, а содержимое ячейки 235 приравняется к содер­ жимому ячейки 236, содержимое ячейки 136 станет равным цело­

му числу 3.

 

■ '

такие слова:

Программирующая

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

1: допустим а =

-—ш;

(также и для букв i, j, k,

потому что эти

2 -.допустим п =

0,05

буквы используются только для целочисленных переменных); 1: допустим п. = — 3 (целочисленным переменным нельзя присва­ ивать отрицательных значений);

1 : допустим а — п (целочисленным переменным нельзя присваи­ вать значения переменных, которые могут Иметь значения толь­ ко в числах в форме с плавающей запятой и наоборот); 1: допустим а— в + с (оператор допустим не вычислительный);

1: допустим а = !5! (можно присваивать модули букв, но не мо­ дули цифр).

При такого рода ошибках программа АП выводит признак ошибки символ «*» и возвращает печатающую каретку телетайпа в исходное состояние.

Примечание. Переменные в операторе можно разделять мно­ гими проблемами, но не менее одного.

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

Пример. 3: вставим = у + 0,1275: в = в + 23,5 : п = п —2.

Целочисленные переменные i, j, k, п с помощью оператора вста­ вим можно изменять в любую сторону, а остальные — только в сторону увеличения.

Оператор вычислим... служит для организации вычислений по формулам, составленным из символов языка АП. Например:

3 : вычислим ш = (: sin (be+ я / 12))2 / ]/ : exp 0,3 + а : sin х : cos х.

Переменная ш этим оператором приравнивается формуле

sin8 ( б с +

ил --------- 7 7 = -------- \~а s>n cos х )-

У е0,3

Из примера видно:

1. Перед всеми символами элементарных функций (кроме У ) нужно делать пробел, иначе символ функции воспринимается как произведение букв.

2. Одна «подфункция» отделяется от другой символами «4-»

илЦ «—».

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

4.В формуле не могут находиться переменные i, /, k , п, а пе­ ременные i, j, k могут быть использованы в формуле в виде ин­ дексов.

5. Глубина скобочных выражений не может быть более 15 (д; е. можно испрльзовать не более 15левых и 15 правых скобок).

6. Аргумент тригонометрических функций воспринимается в радианной мере.

7; В операторе вычислим можно использовать только одну формулу.

8. Из всех символов языка АП в формулах нельзя использо­ вать символ модуля.

9. Формулу можно задать и перед операторами сразу по­ сле ввода машины в режим АП.

Ввод машины в режим АП. Для этого необходимо нажать и отпустить клавишу «Пуск-1» на пульте сигнализации. Далее от­ печатать букву ч (число), а потом дату решения задачи, напри­ мер;

ч-

18—5—1972 г.

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

ч

 

18—5—1972 г.

 

ап

«Наири»

18—5—1972 г.

После этого можно приступать к составлению программы в язы­ ке АП.

Итак, формулу можно давать и в начале программы, т. е. не­ посредственно после ввода машины в режим АП. Например:

ч

 

18-5—1972 г.

 

ап

«Наири»

18—5—1972 г.

У = х12!4 _

 

1 : допустим х = ____

 

2: вычислим у~

 

90

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

В начале программ, так же как и после оператора вычислим,

нельзя задавать более одной формулы.

,

10.

В случае печати

графика вычисленных значений после

оператора

вычислим должен

обязательно

стоять оператор хра­

ним.

 

 

 

Оператор введем... Это оператор ввода. Он присваивает зна­ чения переменным в процессе прохождения программы.

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

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

мер: '23: идти к 3— Встретив такой оператор, машина перейдет к исполнению

оператора 3.

Оператор условного перехода если... , идти к...

Пример: 45: если х < 12: идти к 5. ЭВМ перейдет к оператору 5 при условии, если в момент исполнения оператора х<12. В про­ тивном случае оператор пропустится.

Операторы печати переменных. Оператор печатаем с... зна­ ками... служит для печати значений букв с заданным числом зна­ ков после запятой. Пример 12: печатаем с 5-ю знаками х\у:А_ . Исполняя этот оператор, машина введет на печать значения бука

.г, у, а, полученные в вычислениях перед оператором печати: Оператор не в состоянии вывести значения переменных с ко­

личеством знаков после запятой более 9,* а также не может вы­ вести значения целочисленных переменных.

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

Оператор интервал... служит для пропуска заданного числа строк при печати, т. е. для отделения одного выводимого масси­ ва от другого. Пример 56: интервал 3. При исполнении операто­ ра машина три раза переведет строку телетайпа.

Оператор спросим дает возможность контролировать зна­ чения переменных в процессе вычислений. При нажатой клавише «Вариант» на пульте сигнализации машина, встретив оператор спросим, останавливается, и на пульте сигнализации загорается лампочка «Команда ввода».

91.

После этого можно набрать на клавиатуре телетайпа символ переменной, значение которой нас интересует, и набрать вслед за этим символ знака равенства. Машина напечатает численное значение заданной переменной.

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

Для пуска машины после вывода запрошенных переменных нужно отжать клавишу «Вариант» на пульте и сделать возврат каретки телетайпу.

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

Хранить индексированные переменные оператор не может. Количество хранимых значений функции определяется по

формуле

где а — «нижний» предел отрезка, на котором строится график; в — «верхний» предел отрезка; й — шаг.

Оператор начертим... предусмотрен для печати графиков функций.

Одновременно можно выдать на печать не более двух графи­ ков.

Пример 23 : начертим 1 гр. или 23: начертим 2 гр. Перед опе­ ратором начертим обязательно прохождение оператора храним.

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

ч

18-5-1972 г.

ап

18—5—1972 г. 1 «Наири» y= :sin х -

1 :допустим х = О—

2:вычислим г/_

3:храним 61 у -

4 : вычислим а = :cos х_

5 : храним 61 d_

6:вставим х = х + 0,31415—

7:если х ^ 18, 84 : идти к 2_ 8 : начертим 2 гр.

92

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