Моя программа в Юлии видит синтаксическую ошибку там, где ее нет - PullRequest
0 голосов
/ 23 ноября 2018

У меня проблема с этим битом кода.Каждый раз, когда я пытаюсь запустить его, он говорит, что у меня есть «Неожиданный» конец.Для меня все в порядке, и я не могу понять это, кто-то может помочь мне найти решение?Полный код ошибки и программный код ниже.

Программа:

function mbisekcji(f, a::Float64, b::Float64, delta::Float64, epsilon::Float64)
    e = b-a
    u = f(a)
    v = f(b)
    err = 0
    iterator = 0

    if sign(u) == sign(v)
        err = 1
        return err
    end

    while true
        e = e/2
        c = a+e
        w = f(c)

        if (norm(e) < delta) || (norm(w) < epsilon)
            return w, f(w), iterator, err
        end

        if sign(w) == sign(u)
            b = c
            v = w
        else
            a = c
            u = w
        end
        iterator++
    end
end

Ошибка:

LoadError: [91msyntax: unexpected "end"[39m
while loading C:\Users\username\Desktop\Study\zad1.jl, in expression starting on line 60
include_string(::String, ::String) at loading.jl:522
include_string(::Module, ::String, ::String) at Compat.jl:84
(::Atom.##112#116{String,String})() at eval.jl:109
withpath(::Atom.##112#116{String,String}, ::String) at utils.jl:30
withpath(::Function, ::String) at eval.jl:38
hideprompt(::Atom.##111#115{String,String}) at repl.jl:67
macro expansion at eval.jl:106 [inlined]
(::Atom.##110#114{Dict{String,Any}})() at task.jl:80

Также, чтобы упростить задачу, строка 60 - это второй конец сзади.Один замыкающий цикл.

1 Ответ

0 голосов
/ 23 ноября 2018

Чтобы увеличить переменную на 1 в Джулии, вы должны написать

iterator += 1

Джулия не поддерживает ++ для увеличения переменной.

Но, например, вымог определить макрос, чтобы сделать почти то, что вы хотите:

julia> macro ++(x)
           esc(:($x += 1))
       end
@++ (macro with 1 method)

julia> x = 1
1

julia> @++x
2

julia> x
2
...