Другие языки программирования и технологии

Расшифруйте строку написанную на FORTRAN: write(2,"(E11.4,\)") TNP1(i,j)-273.0

То что это вывод значения массива TNP1 с i,j индексом минус 273 в файл названный 2 Я понял Мне больше интересно что в скобке после 2-ки..
судя по числам, это из программы перевода градусов между цельсиями и кельвинами.

под двойкой модет быть что угодно. не обязательно это файл.
это условный номер устройства вывода - может быть и файлом, если где-то в коде раньше этой строки было что-то типа
ope( 2, file="....")
если вы про это
"(E11.4,\)"
то это формат вывода

говорится в этом формате следующее?
вывести вычесленную величину TNP1(i,j)-273.0 в экспоненциальной форме.
на всё число использовать 11 позиций, при этом 4 позиции для дробной части после точки (после запятой)
обратный слеш - это менее понятно т. к. использование этого элемента оговаривается для каждой конкретной системы.. . и смысл тоже будет какой-то определёный. скорее всего тут понять чтобы не было перевода каретки на новую строку.. . увы, не всякий фортран это воспринимает безболезненно.. .

допустим, если игнорировать этот слеш, то на печать выведется вот такое

-0.2430E+03

а если бы там было F11.4, то поулчили бы вот такое:

-243.0000

для примера,
прямой слеш / говорит о переводе каретки на новую строку.
знак доллара $ говорит об отмене перевода каретки на новую строку после вывода чего-то там.. .

в общем виде операция write имеет вот такой вид:
write( номер_устройства, формат_вывода )

как вариант, в коде могло быть вот так:

write(2,10) TNP1(i,j) - 273.0
10 format(E11.4,\)

в таком случае этим форматом могли бы воспользоваться и другие операторы write, если такое требуется программой...
Юрий Митин
Юрий Митин
84 437
Лучший ответ