Как я могу получить доступ к переменной вне функции в Swift, прежде чем она запускается в цикле while? - PullRequest
0 голосов
/ 07 мая 2018

Прежде всего, постарайтесь не разорвать меня на части :) Я относительно новичок в программировании в целом, и это мой первый вопрос по StackOverflow!

Надеюсь, это простой вопрос, как я могу вернуть строку "var m = ..." вне функции, приведенной ниже? Я пытаюсь реализовать метод численного деления пополам (замечен на rayweiderlich.com), но для другого уравнения. Я пытаюсь получить доступ к переменной за пределами функции, чтобы обновить метку на viewcontroller. Примечание: итерационная переменная, которую я пытаюсь найти, выводит правильно, и это число равно 0,8789. Поэтому я думаю, что алгоритм правильный. Вот ссылка на учебник https://www.raywenderlich.com/99559/numeric-algorithms-using-playgrounds и моя версия кода учебников:

    //: Playground - noun: a place where people can play

import UIKit

func bisection(x: Double) -> Double {

var lower = 0.0

var upper = x

let constant1 = Double((1+2*60))
let constant2 = Double(1+4*60)

var m = (constant1 - pow(constant2, 0.5)) / (2.0*60.0) //This returns the number I want (0.8789)

let epsilon = 1e-3

while (fabs(m * m - x) > epsilon) {


 m = (lower + upper)/2
    if m * m > x {
        upper = m
        print(m)
    } else {
        lower = m
        print(m)
    }

}

print(m)
return m //This returns the number I DON'T want (0.9995)
}

let bis = bisection(x: 1.0)

//somewhere around here is where I would like to use the "m" variable to update a label in a view controller

1 Ответ

0 голосов
/ 07 мая 2018
import UIKit

func bisection(x: Double) -> Double {

let constant1 = Double((1+2*60))
let constant2 = Double(1+4*60)

let m = (constant1 - pow(constant2, 0.5)) / (2.0*60.0)
return m
}

let bis = bisection(x: 1.0)
print(bis)

Это то, что вы хотите?

...