Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [General] Возвращение значения из функции, Ошибка типа функции 
:(
    Опции темы
mixala
Дата 1.6.2009, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Возникает ошибка  Error: This name does not have a type, and must have an explicit type.   [IN]
ну насколько я понимаю тут что-то с типами. Но k и in объявлены как интегеры, да и возвращается константа. Хотя может ошибка в том, что он пытается обратиться к функции как переменной?  Что делать?
Program Kryg
    real x,y,cx,cy,r
         integer k
    k=in(x,y,r,cx,cy)
end program

integer function in(bx,by,br,ccx,ccy)
    real bx,by,t,br,ccx,ccy
    t=sqrt((bx-ccx)*(bx-ccx)+(by-ccy*(by-ccy)))
    if (br>t)then
    in=1
    endif
end function

PM MAIL   Вверх
Фантом
Дата 2.6.2009, 01:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


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

Репутация: 5
Всего: 49



Цитата(mixala @  1.6.2009,  20:36 Найти цитируемый пост)
Что делать?


Вариантов три. 

Первый (идеологически неправильный) - вызывать компилятор без ключа, автоматически включающего "implicit none". 

Второй (идеологически более правильный) - добавить в основную программу строчку
Код

        integer in


Третий (еще более правильный) - вынести реализацию функции в отдельный модуль, а потом use'ать этот модуль в основной программе.

Все дело в том, что в момент обнаружения вызова функции in компилятор еще не знает, что она описана ниже (и, как следствие, не знает, что это такое). Поэтому ее надо как-то описать. Первый способ дает возможность компилятору решить, что функция in "по умолчанию" целочисленная, второй просто заранее ему это сообщает, в третьем случае компилятор полезет в модуль сразу в начале программы и заранее выяснит, что такое in.

PM   Вверх
popovda
Дата 2.6.2009, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 9.6.2006
Где: Москва

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



Введите явную типизацию данных и используйте implicit none. Повысите надежность программирования.


--------------------
С уважением, Попов Д.А.
PM MAIL   Вверх
mixala
Дата 2.6.2009, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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


 




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


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

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