Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [General] Комментарии и еще чиво-то?? 
V
    Опции темы
valvliv
  Дата 14.2.2006, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 25.1.2006

Репутация: нет
Всего: 1



Здрасте smile

Комментарии - это понятно, это восклицательные знаки. А тут в чужом коде еще напиханы всякие 'c' и 'crma' - это что?? Может, директивы прости господи распараллеливания какого-нибудь?? Мне вроде говорили, что код не распараллелен, откуда такое??

В гуглец сунулась - он мне выдал ссылок на фармацевтические статьи и что-то еще на японском и хинди.

Сижу офигеваю. Хелп.

И еще, если надо блок строк закомментировать, то как это??

Л.

PM MAIL   Вверх
Cr@$h
Дата 16.2.2006, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 1
Всего: 41



Древняя форма комментариев: самый первый символ строки -- "C", "c" или "*". Такая форма использовалась для кода в фиксированной форме записи (первые 6 символов типа служебные и прочяя дребедень). Т.к. она давно отменена и сейчас используется свободная форма, то такие комментарии оказались непригодными, т.к. с "C", например, может начинаться ключевое слово или еще что-то (тот же call). Все же кода на F77 и раньше с такой формой еще много и хорошего. Некоторые компиляторы признают такую форму только, если у файла расширение *.f или *.for. Если расширение *.f90, то файл интерпретируется в свободной форме записи и такие комментарии не компилируются -- их нужно будет заменять на "!".
Что такое crma не знаю. Возможно, если с него начинается строка, то тоже рассматривается как комментарий. Поэкспериментировал, похоже все, что начинается в первых шести символах для файлов с расширением *.f, выделяется зелененьким как комментарий. Так или иначе, для F90, F95, F2003 такой код не подойдет.
С блоком строк не догадались smile даже в F2003. smile
Цитата

3.3.1.1 Free form commentary
The character “!” initiates a comment except where it appears within a character context. The comment extends to the end of the line. If the first nonblank character on a line is an “!”, the line is a comment line. Lines containing only blanks or containing no characters are also comment lines. Comments may appear anywhere in a program unit and may precede the first statement of a program unit or may follow the last statement of a program unit. Comments have no effect on the interpretation of the program unit.
NOTE 3.6
The standard does not restrict the number of consecutive comment lines.

3.3.2.1 Fixed form commentary
The character “!” initiates a comment except where it appears within a character context or in character position 6. The comment extends to the end of the line. If the first nonblank character on a line is an “!” in any character position other than character position 6, the line is a comment line. Lines beginning with a “C” or “*” in character position 1 and lines containing only blanks are also comment lines. Comments may appear anywhere in a program unit and may precede the first statement of the program unit or may follow the last statement of a program unit. Comments have no effect on the interpretation of the program unit.
NOTE 3.8
The standard does not restrict the number of consecutive comment lines.


Возможно, появится потом как что-то типа !* *!. smile Меня тоже не радует.
Некоторые правила освещены и здесь на нашем форуме.
PM MAIL ICQ   Вверх
valvliv
Дата 16.2.2006, 01:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 25.1.2006

Репутация: нет
Всего: 1



Спасибочки smile
PM MAIL   Вверх
Cr@$h
Дата 16.2.2006, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 1
Всего: 41



Бывай. Успехов в твоих изысканиях. smile
PM MAIL ICQ   Вверх
Ignat
Дата 17.2.2006, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: нет
Всего: 73



Цитата(Cr@$h @ 16.2.2006, 00:00 Найти цитируемый пост)
Древняя форма комментариев: самый первый символ строки -- "C", "c" или "*". Такая форма использовалась для кода в фиксированной форме записи (первые 6 символов типа служебные и прочяя дребедень).

Меня эта форма записи жутко бесила... До сих пор для меня загадка - имена переменных в Ф77. С каких букв их надо называть, чтобы получить нужный мне тип?


--------------------
Теперь при чем :P
PM   Вверх
Cr@$h
Дата 17.2.2006, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 1
Всего: 41



Цитата(Ignat @ 17.2.2006, 15:00 Найти цитируемый пост)
Меня эта форма записи жутко бесила...

Да, но она была определена использованием перфокарт, или еще чем-то другим позже. Точно так же твоих детей или внуков, быть может, будет бесить (да не то слово) ввод кода от руки на клаве, а не с голоса. Я понятные вещи говорю, да? В F03 фиксированная форма записи признана устаревшей и в следующий стандарт не войдет вовсе.
Цитата(Ignat @ 17.2.2006, 15:00 Найти цитируемый пост)
До сих пор для меня загадка - имена переменных в Ф77. С каких букв их надо называть, чтобы получить нужный мне тип?

Ну, с буквы "C" то точно можно. smile В самом деле, в Fortran имеются умолчания о типах данных:
  • имена, начинающиеся с i, j, k, l, m, n, имеют целый тип по умолчанию;
  • все другие объекты имеют тип real.
При разработке нового кода лучше писать в начале
Код

implicit none

и все умолчания отменяются. Впрочем, если указывать для каждой переменной тип, то такая строка не понадобится, но будет полезной для дополнительной проверки на наличие переменных без явного указания типа. Наверное, это не добавляет надежности, а скорее не преуменьшает её, т.к. в большинстве языков такие правила умолчания и так отсутствуют, не добавляя таких скользких моментов. Эту же функцию можно включать/выключать и с помощью директив компилятора или опций, что не рекомендую делать вообще. С помощью того же оператора можно указывать свои умолчания для любых букв. Фактически, Fortran позволяет использовать неявную типизацию, хорошо это или плохо. Её так же можно встретить и в некоторых современных интерпретируемых языках, например, Ruby, если я не ошибаюсь. Все же Fortran позволяет гулять на двух свадьбах, да еще и быть на них женихом. smile
Конечно, я не рекомендую использовать любые неявные средства языков при разработке программных систем.
PM MAIL ICQ   Вверх
Cr@$h
Дата 24.2.2006, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
***


Профиль
Группа: Участник Клуба
Сообщений: 1693
Регистрация: 3.4.2005
Где: Санкт-Петербург, Россия

Репутация: 1
Всего: 41



Цитата(valvliv @ 14.2.2006, 22:39 Найти цитируемый пост)
И еще, если надо блок строк закомментировать, то как это??

Я тут покапался в разных местах да поразмыслил.
  • В лоб -- через земену.
    Зменяем "перевод каретки" на "перевод каретки!". Не во всех редакторах это даже возможно.
  • Клавишы для IVFC.
    Выделяем блок, который требуется заменить. Ctrl+K+C -- комментирует весь блок, Ctrl+K+U -- расскоментирует весь блок. Про работу этой фичи в CFV не знаю.
  • Использование макроса.
    • Переходим на начало строки, например через Home.
    • Начинаем запись макроса Ctrl+Shift+R.
    • Начинаем производить действия макроса.
      • Вводим символ комментария "!".
      • Нажимаем влево -- переходим на начало строки.
      • Нажимаем вниз -- переходим на начало следующей строки
    • Завершаем запись макроса Ctrl+Shift+R.
    • Проигрываем этот макрос по Ctrl+Shift+P.
      Зажав эту комбинацию клавиш, строки будут комментироваться одна за другой. В CVF должно также работать.
  • Использование директив компилятора.
    Код

    !DEC$ IF( .FALSE. )
    ...
    ! Комментируемый блок
    ...
    !DEC$ END IF

    Недостаток понятен: отсутствие визуальной индикации, например выделение зелененьким цветом.
  • Написание макроса вручную.
    Схож со способом 3. Можно сопоставить клавишу Ctrl+1 со следующим макросом (на VBA):
    Код

    Sub PasteColumn()
        ActiveDocument.Selection.Paste
        ActiveDocument.Selection.CharLeft
        ActiveDocument.Selection.LineDown
    End Sub

    Этот макрсо надо доработать, т.к. перед его использованием необхдимо будет копировать символ комментария в буфер. В остальном он схож по применению со способом 3. Работает везде, где допустимы макросы.

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Fortran | Следующая тема »


 




[ Время генерации скрипта: 0.1221 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.