Помощь - Поиск - Пользователи - Календарь
Полная версия: Метод Ньютона с апроксимацией производной
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
-Altair-
вот программа, толбко что написал:
Код

        program NewtonM

    real function f (x)
        f=x-sin(x) - 0.025
        return
    end

    real function searchnewtonm (a, e, h)
        x = a
        fx = f(x)
        y  = fx*h/(f(x+h)-fx)
        do while (abs(y)>e)
            x = x-y
            fx = f(x)
            y = fx*h/(f(x+h)-fx)
        end do
        searchnewtonm = x;
        return
     end

    write(*,*) 'Enter A,E,H ... '
    read(*,*) a,e,h
    write(*,*) searchnewtonm(a,e,h)
    write(*,*) 'end'


    end program NewtonM

консольный проект для visual fortran
Все сделал в соответствии с документацией по языку... но не компилируется и выдает тупейшие ошибки.
Что то с синтаксисом не так..

Цитата
C:\Program Files\Microsoft Visual Studio\MyProjects\NewtonM\NewtonM.f90(19) : Error: This statement is positioned incorrectly and/or has syntax errors.
real function F(x)
--------^
C:\Program Files\Microsoft Visual Studio\MyProjects\NewtonM\NewtonM.f90(21) : Error: A RETURN statement is invalid in the main program.
return
----------------^
C:\Program Files\Microsoft Visual Studio\MyProjects\NewtonM\NewtonM.f90(33) : Error: Syntax error, found '=' when expecting one of: DO FORALL SELECT SELECTCASE WHERE IF
SearchNewtonM := x;
-----------------------^
C:\Program Files\Microsoft Visual Studio\MyProjects\NewtonM\NewtonM.f90(42) : Error: This name does not match the unit name. [NEWTONM]
end program NewtonM
--------------------^
Error executing df.exe.

NewtonM.exe - 4 error(s), 0 warning(s)


Помогите найти ошибки... спасибо!
Гость
Ага все выяснил... надо функции ДО слова program описывать..
нигде в книге ни слова об этом... мда...
Гость
Код
    real function f (x)
        f=x-sin(x) - 0.025
        return
    end

    real function searchnewtonm (a, e, h)
        x = a
        fx = f(x)
        y  = fx*h/(f(x+h)-fx)
        do while (abs(y)>e)
            x = x-y
            fx = f(x)
            y = fx*h/(f(x+h)-fx)
        end do
        searchnewtonm = x;
        return
    end

    program NewtonM
    write(*,*) 'Enter A,E,H ... '
    read(*,*) a,e,h
    write(*,*) searchnewtonm(a,e,h)

    end program NewtonM

Все, это итоговый вариант, работающий, если кому надо...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.