ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 14.10.2024
Просмотров: 115
Скачиваний: 0
Д л я печатания |
результата |
(М) в |
АЛГОЛ 60 имеется команда |
|
OUTREAL |
(2, |
М) |
|
|
. (2 — номер |
периферийного |
устройства). |
||
Программа |
на языке |
АЛГОЛ |
заканчивается обозначением |
END.
Из приведенного примера видно, почему перед командами по мещаются метки 1:, 2:, которые используются при нарушении последовательного хода вычислений. В тех случаях, когда они не нужны (например, сигналы 2:, 3:, 4:, 6:), их можно выпустить и объединить блоки блок-схемы в более крупные единицы.
Напишем программу целиком:
BEGIN |
|
INTEGER N, К; |
R E A L M; REAL ARRAY A [1 : 100]; |
1 : INTEGER (1, |
N); |
2 : INREAL (1, A [1]); |
|
3 : Af : = A [1]; |
|
4 : К: = 2 ; |
|
5: INREAL (1, A |
[K]); |
6 : IF A [K] >M |
THEN GO TO 7 E L S E GO TO 8; |
7:M:=A[K];
8:IF/C=--JVTHEN GO TO 10 E L S E GO TO 9;
9:K: = K+\;
GO TO 5;
10 : OUTREAL (2, M);
END.
Пр и м е ч а н и я :
1.Жирным шрифтом даны обозначения языка А Л Г О Л 60. INTEGER R— декла рация переменной R, являющейся целым числом.
INTEGER (1, R)—команда |
для считывания переменной R, являющейся це |
лым числом. |
|
2. Читатель, который обладает знаниями в области программирования, по-види мому, заметил, что приведенная программа на языке АЛГОЛ может быть еще существенно упрощена; этого не было сделано для облегчения понимания прин ципов использования языков программирования.
Приведенный пример является примером очень подробной блоксхемы решения. Для объемных задач сначала обычно подготав ливают укрупненную блок-схему, используемую для нахождения общего языка между тем, кто дает задание, и программистом ЭВМ (если задачу не программирует тот, кто составляет задание на программирование).
Рассмотрим процесс составления укрупненной блок-схемы на примере упрощенного расчета схемы обжатий для прокатки слябов на реверсивном прокатном стане.
216
Для расчета известны параметры прокатной клети, размеры, состав и температура прокатываемых слитков, схема расчета тем пературы и длины раската перед каждым проходом (для извест ной величины обжатия). Далее задана требуемая толщина заго товки по окончании прокатки.
При неправильном выборе режима прокатки может произойти повреждение прокатной клети в результате превышения допусти мых пределов величины момента прокатки либо в результате пре вышения усилия прокатки. Задание заключается в определении такой схемы обжатий, при которой обжатие за один проход было бы максимальным, но не приводило к превышению указанных пре делов, которые (при принятом упрощении) являются главными ограничениями при вычислении.
Составим блок-схему для случая, когда прокатка ведется только
в продольном направлении и не происходит уширения |
материала |
(рис. 140). |
|
Обозначим температуру заготовки перед проходом |
толщину |
перед проходом h, длину /. Ширину прокатываемого слитка обозна чим s. Следует найти максимальную величину последующего об жатия.
Формулу |
для |
вычисления максимально допустимого обжа |
|
тия gi, |
при |
котором еще не превышен допустимый максимальный |
|
момент прокатки, |
обозначим как формулу 1: |
||
gi=gi |
(t, h, |
l, s). |
Аналогично можно при помощи формулы 2 определить макси мально допустимое обжатие g2, при котором еще не превышено допустимое усилие прокатки:
£2 = Ы * . Л , /, s).
Таким образом, программа должна позволить определить на
чальные |
размеры |
и температуру слитка |
(блок |
/ ) , определить |
ко |
||||
нечный |
размер |
b |
(блок 2). Затем |
нужно |
рассчитать gx и |
g2 |
для |
||
первого прохода |
(блок 7, 8) и выбрать допустимое обжатие с точки |
||||||||
зрения |
прочности |
прокатной |
клети |
(блок 9). |
При этом |
необхо |
|||
димо обращать |
внимание на |
то, чтобы не была |
превышена |
мини |
мальная толщина сляба b (блоки 10, 11, 12), После определения
правильного значения g |
при помощи вспомогательных формул |
||||
(блоки 10, |
12, 13) |
будут |
рассчитаны |
значения |
h, I, t, которые бу |
дет иметь |
раскат |
после |
прохода и |
которые |
являются входными |
данными для повторного использования формул (1) и (2) при вы числении g для следующего прохода.
Блок 5 предназначен для остановки вычислений при достиже
нии |
заданных |
ограничений, блоки 6 и 14 — для печатания резуль |
|||
татов в |
виде: |
|
|
||
ki, |
h, |
slt |
Ii, |
tu |
gx |
^2, |
h-2, |
S2, |
l2, |
t2, |
§2 |
217
Считывание Bxoduùix значений h, s,/, t
( параметры слитка)
2: |
Считывание значения b |
y' |
Печатание заголовка |
I |
Выходного документа |
|
l<=1 |
hi b |
У |
|
|
Нет |
|
6: Печатание нобой строки, печатание значений Л, h, s, l, t
7- Вычисление Величина/ gr
'•' Вычисление Величины рг
min<grg2 > —-у
10:h-g-~h
с! |
b< h |
У |
|
|
|
|
Нет |
|
/<?' g+h-b-^g |
b-~h |
Да
Да
13: Вычисление Величин l, t по вспомогательным
формулам
Ѵ*: Печатание Величины g
W |
k + 1-^k |
Рис. 140. Блок-схеыа программы д л я определения схемы о б ж а т и й (1—15 — блоки)
Индексы здесь |
означают отдельные проходы, k — номер прохода |
|
(k= 1, £ = 2 и т. д.). |
|
|
Для определения величины k в блок-схеме |
использованы блоки |
|
4 и 15. Блок 3 |
означает печатание заголовка на бланке. |
|
Блок-схема |
составляется последовательно |
с различной степенью |
подробности. При первом расчете алгоритма составляется укруп ненная блок-схема, в которой в операционных блоках обозначены лишь отдельные этапы вычислений без детальной разработки опе раций. Перед собственно программированием необходимо иметь в распоряжении как можно более подробную блок-схему.
Каждый специалист, пользующийся автоматической ЭВМ, дол жен уметь подготавливать блок-схемы для решения своих задач. Блок-схема задачи является основным документом для работы программиста.
Для ознакомления с собственно программированием можно ис пользовать соответствующую литературу [37, 38].
3.о с н о в ы К О Н С Т Р У И Р О В А Н И Я
ИП Р О Г Р А М М И Р О В А Н И Я А Н А Л О Г О В Ы Х Э В М
Электронные аналоговые вычислительные машины [28, 32], в ко
торых |
для |
отображения |
независимой переменной |
используется |
||
время, |
а |
зависимой переменной — электрическое |
напряжение, |
|||
представляют |
собой вычислительные устройства, основное оборудо |
|||||
вание |
которых |
и способы программирования |
настолько устоялись, |
|||
что являются |
практически |
стандартными |
(унифицированными). |
Это является основным преимуществом при их практическом при менении.
Рассмотрим лишь наиболее типичные области применения уни версальных аналоговых ЭВМ, т. е. их использование при решении линейных и нелинейных дифференциальных уравнений и систем уравнений.
Каждая проблема, которая решена на аналоговой ЭВМ, должна быть, как и у цифровых ЭВМ, проанализирована и описана в виде алгоритма. У цифровых ЭВМ необходимо перед программирова нием выразить алгоритм при помощи блок-схем, для аналоговой ЭВМ обычно достаточна для программирования точная запись ис ходных дифференциальных уравнений. Чтобы аналоговая ЭВМ могла решить эти уравнения и чтобы ее использование могло быть универсальным, она содержит основные вычислительные блоки, реализующие те математические операции, на которые можно раз ложить решение дифференциальных уравнений. Решение линейных уравнений практически можно осуществить, выполняя операции сложения функций, умножения функций, умножения на коэффи циент и интегрирования функций. Для решения нелинейных задач следует выполнять с функциями нелинейные операции, такие как возведение функций в степень и др.
219
На рис. 141, например, показана схема блока, осуществляю
щего интегрирование входной аналоговой величины |
//» (х) с уче |
том начального значения С. |
|
Если, например, синусоидальное напряжение uv. |
(t) = Hi sin(/) |
соответствует уі(х) и если C = Uu то выходная величина уо(х) со ответствует напряжению uv (х) = Ui cos(/).
Следующий блок (рис. 142) осуществляет умножение входной аналоговой величины yt (х) на константу а.
|
|
|
|
/ |
|
УІ |
w |
О |
|
|
|
Рис. |
141. |
Блок, осуществляющий |
инте- |
Рис. |
142. Блок, |
осуществляющий |
|||
|
|
|
грирование |
|
|
|
у м н о ж е н и е |
на |
константу |
|
Если, |
например, |
вновь |
синусоидальное |
напряжение иѵ = |
||||||
— Iii |
sin |
(t) |
соответствует УІ(Х) и |
если |
а = 5, |
то тогда величине |
||||
Уо (х) |
соответствует |
синусоидальный |
характер |
напряжения |
||||||
5 Ui sin |
(t). |
|
|
|
|
|
|
|
|
|
|
|
|
С* |
|
Самописец |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
координатноій |
|
|
|
|
|
|
-у'(х) |
|
уМ |
|
|
|
|
|
|
а0у(х) |
О |
|
|
Рис. |
143. Решение простого |
||
|
|
|
|
дифференциального |
уравне |
||
|
|
|
|
|
ния |
|
|
Дифференциальное |
уравнение |
|
|
||||
? (х) + |
Ооу(х)=0, |
у(0) |
= |
С0 |
|
|
|
можно |
решить, . соединив |
рассмотренные |
выше блоки |
согласно |
|||
рис. 143, так как |
|
|
|
|
|
«оУ (•*) = -У' (х).
Отсюда видно, что решение задачи реализовано соответствую щим соединением двух блоков аналоговой ЭВМ.
Каждая универсальная аналоговая ЭВМ содержит блоки, по зволяющие осуществлять линейные операции, а тем самым и ре шать линейные дифференциальные уравнения. Большинство ана логовых ЭВМ оснащено также и нелинейными блоками.
220