Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
10
Добавлен:
20.02.2016
Размер:
110.08 Кб
Скачать

7 Continue

DO- службове слово оператора початку циклу (голова циклу). В цьому операторі число “7” є поміткою оператора кінця циклу, К - ціле число, яке називають “змінна циклу”. Це число в процесі обчислень на кожному кроці циклу прийматиме значення від 8 (перший крок), через 2 одиниці - 8, 10, 12, 14,… до 100. Якщо крок (третє число, тут 2) дорівнює 1,що буває найчастіше, його не ставлять. Друге число (тут 100) – максимальне значення змінної цикла. Після досягнення змінною К цього значення цикл буде завершено і програма буде виконувати оператори, розташовані за оператором з поміткою “7”.

Змінна циклу К в даному прикладі використовується для визначення адреси елементів 150-елементних масивів Х,Y послідовно зчитуються елементи масиву Х - 11, 13, 15….103, до кожного додається число А, а результати записуються в елементи масиву Y - 7, 9, 11…99).

Оператор присвоєння T=T+DT зручно використовувати для одержання сум (тут підрахунок часу з постійним кроком DT )

Оператор 7 CONTINUE - «порожній», його єдина функція – вказувати місце в програмі (нести помітку). В даному випадку це місце, де закінчується виконання циклічної процедури (помітка 7, вказана в операторі DO ). Помітку може нести і просто останній оператор послідовності (тут T=T+DT ), але текст програми стане зрозумілішим, якщо використати порожній оператор.

Г) Оператори вкладених циклів. При розрахунках, де використовують двовимірні або більш складні масиви, використовують складніші організації циклічних процедур, коли один цикл розташований всередині іншого. Наприклад, в циклі

DIMENSION Y(20,30)

DO 1 K=1,20

DO 1 N=1,30

Y(K,N) = 5

1 Continue

двовимірний масив (таблиця з К=20 строчками таN=30 колонками) заповняється числами “5”. СпочаткуК=1, і заповняється перша строчка масиву 30 числами, потімК=2 і заповняється друга строчка і т.д.

Д) Логічні оператори.Логічний оператор містить службове слово IF (“якщо» ), умову в дужках, і оператор, який виконується лише тоді, коли умова виконана, а інакше ігнорується . Можна навести приклад оператора, який розташовується всередині ітераційного циклу і при досягненні відносною помилкою EPS рівня, меншого за 0.001, управління передається на оператор з поміткою 123, розташований після закінчення циклу :

If (eps.Lt.0.001) goto 123 Перелік можливих логічних відношень має такий вигляд:

НЕ

ТА

АБО

.LT.

.GT.

.EQ.

.GE.

.LE.

.NOT.

.AND.

.OR.

Умова може бути складнішою і вміщувати декілька окремих логічних відношень. Їх потрібно або записувати окремо, або в одному операторі відокремлювати дужками, наприклад:

If ((eps1.Lt.0.001).Or.( eps2.Lt.0.1)) goto 123

В даному прикладі оператор GOTO 123 буде виконаний, якщо виконається одна з вказаних двох умов.

      1. Підпрограми SUBROUTINE

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

Підпрограма призначена для вирішення окремого часткового завдання, має власне ім’я і список формальних параметрів, розташований в дужках. Оператор, який запускає підпрограму, (наприклад, для розрахунку струму І та напруги U електрохімічної ячейки)

,

матиме таку форму

CALL MOD (U,RA,RK,RE,I)

де CALL – службовий оператор виклику підпрограми, MOD– її ім‛я. В такому вигляді оператор, який запускає підпрограму, зписують в тексті головної програми.

Параметри підпрограми за функціональними ознаками розподіляються в три групи.

Вхідніпараметри – це ті, які повинні бути обов’язково визначені в програмі раніше, до оператораMOD . Вони використовуються для розрахунків в підпрограмі (тут – поляризаційні опори катода RK, анода RA , опір електроліту RE, опір зовнішнього кола навантаження R3 ).

Вихідні параметри- результати розрахунків (тут струм І).

Внутрішні– використовуються лише в самій підпрограмі, і їх немає потреби виносити в список формальних параметрів підпрограми.

Підпрограму записують в кінці головної програми, вона має такий вигляд:

STOP

END (кінець головної програми)

SUBROUTINE MOD(UU,RAA,RKK,REE,R33,II)

EE=1.23

II=EE/(RAA+RKK+REE+R33)

UU=II*R33

RETURN

END

Трепба пам’ятати, що в тексті підпрограми імена змінних власні, вони вказані в заголовку підпрограми. В тексті головної програми імена можуть бути іншими, вони повинні лише узгоджуватись з формальними за кількістю, типом і порядком розташування (формальні тут вказані здвоєними останніми буквами імен). Це дає можливість використовувати одну підпрограму в різних програмах, не переробляючи її імена змінних.

      1. Підпрограми-функції FUNCTION

На відміну від підпрограм SUBROUTINE , в підпрограмі-функції FUNCTION вихідним параметром є лише одна змінна. Тому ім’я підпрограми-функції в головній програмі (тут U ) використовується як ім’я змінної в будь-яких операторах. Для попереднього прикладу вихідний параметр – напругу можна підрахувати в підпрограмі функції

EXTERNAL U

COMMON RA, RK, RE, R3, I

………………………………….

STOP

END

FUNCTION U(RA, RK, RE, R3, I)

COMMON RA, RK, RE, R3, I

E=1.23

I=E/( RA, RK, RE, R3, I)

U=I*R3

RETURN

END

В цьому прикладі через оператор Common однакові імена змінних в підпрограмі і головній програмі доступні з головної програми (це одні і ті ж ячейки пам’яті). Будь-яке використання імені U ініціює запуск підпрограми і підрахування цього числа.

Соседние файлы в папке Материалы по электра