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

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')

  1. 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 с.

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