- •1.3. Елементи алгоритмічної мови фортран
- •1.3.3. Невиконувані службові оператори.
- •1.3.5. Виведення даних
- •36 Format (3x, ‘ aa____аb____ea____eb_____eg____еt____t____dt__tp__рр’)
- •7 Continue
- •1 Continue
- •If (eps.Lt.0.001) goto 123 Перелік можливих логічних відношень має такий вигляд:
- •If ((eps1.Lt.0.001).Or.( eps2.Lt.0.1)) goto 123
- •1.3. 9. Контроль синтаксичних помилок.
1.3. 9. Контроль синтаксичних помилок.
В трансляторі Фортрана передбачена можливість спрощеного пошуку синтаксичних помилок в програмі. При кожному запуску програми створюється файл, який має назву виконуваної програми, а розширення *.LST (лістинг). Якщо програма містить помилку і не виконується, потрібно викликати на екран лістинг (в меню системи “ЕЛЕКТРА” – опція “Просмотр библиотеки файлов”, потім “Файлы*.LST”), в якому буде вказано місце в тексті, на якому знайдена синтаксична помилка.
В файлі наводиться повний текст програми, з нумерованими операторами. Не нумеруються коментарі (символ “С” в першій позиції) і продовження операторів.
WATFOR-77 V1.4 (c) 1986 - WATCOM Systems Inc. 02/04/02 10:26:33
Options: xtype,list,extensions,warnings,terminal,check,logio
C----------------------------------------------------------------------
1 REAL I,MA,MB,J1,J2
C----------------------------------------------------------------
2 DATA AA, AB, EA, EB, EG, ET, T, DT, TP
* /0.7, 0.98, 2.18, 1.49, 0, 0, 0, 0.1, 1. /
C----------------------------------------------------------------
3 DATA CAMIN, CBMAX, I , CA , CB , V , V0 , J1 , CA1 , CB1
* / 0., 300., 10000., 310, 0, 2000, 2000., 100., 310., 0. /
C--------------------------------------------------------------------
4 OPEN (UNIT=1,FILE='REZ.REZ', STATUS='UNKNOWN')
WRITE (1,38)
Приклад 1 – помилка в символі «=», вказується безпосередньо під помилковим записом, а місце в операторі вказується символом «$»:
14 37 FORMAT( 1X,10F6.0)
15 MA := CA*V
$
***ERROR*** bad quantity on left hand side of equal sign
Приклад 2 – параметру СХ не було спочатку присвоєне якесь числове значення. Повідомлення про це розташоване в кінці файла (“величина СХ не визначена”) і вказує, що помилка знайдена в операторі № 15 файла exa-f77.for.
15 MA = CX*V
16 MB = CB*V
……………………………………………………………………………………………………………………………………
60 END
***ERROR*** the value of CX is undefined
TraceBack: Executing in MAIN PROGRAM, statement 15 in file exa-f77.for
Приклад3 – занадто великий оператор формату, не розміщується в 80 позиціях вихідного документу (файла).
18 WRITE (1,39)
19 39 FORMAT(//1X,'_____T_____CA_____CB_____U_____W__=================_',
* '_J2_____BT______GP_____GCl______GH')
$
***ERROR*** unrecognizable character code in format string
Приклад 4– програмне переривання - спроба ділення на нуль в операторі № 45. Повідомлення подано в кінці файла.
42 MA = MA +(J1*CA1 -J2*CA -I*EA*BT)*DT
43 MB = MB +(J1*CB1 -J2*CB +I*EB*BT)*DT
44 V = 0
45 CA = MA/V
***ERROR*** floating point divide by zero
TraceBack: Executing in MAIN PROGRAM, statement 45 in file exa-f77.for
Література
1. ФОРТРАН. Программированное учебное пособие. Киев, Изд. “Вища школа”, 1980. –399 с.
2. Д.Б.Поляков, И.Ю.Круглов. Программирование в среде ТУРБОПАСКАЛЬ. Москва, изд. МАИ, АО РОСВУЗНАУКА. -1992. –569 с.