Я только начал изучать, как я вычисляю корни квадратных уравнений, используя условные выражения. Вот мой код
a <- readline(prompt= "Enter value of a:")
b <- readline(prompt= "Enter value of b:")
c <- readline(prompt= "Enter value of c:")
a <- as.numeric(a)
b <- as.numeric(b)
c <- as.numeric(c)
D <-(b^2-4*a*c)
if (D>0) {
x_1 <- (-b+sqrt(D))/(2*a)
x_2 <- (-b-sqrt(D))/(2*a)
result <- (c(x_1 ,x_2 ))
result
}else if(D==0){
x <- rep((-b)/(2*a),2)
}else if(D<0){
x_1 <- (-b)/(2*a)+(sqrt(abs(D)))/(2*a)*(1i)
x_2 <- (-b)/(2*a)-(sqrt(abs(D)))/(2*a)*(1i)
result <- (c(x_1 ,x_2 ))
result
}
Когда я нажимаю run (ctrl + A), он говорит
Ошибка в 4 * a: не числовой аргумент для двоичного оператора
Когда янажмите источник, он запускает мой код и просит меня ввести значение a, b, c, и когда я вводю значения, затем нажмите ввод, он возвращает мне это
> a <- readline(prompt= "Enter value of a:")
Enter value of a:3
> b <- readline(prompt= "Enter value of b:")
Enter value of b:5
> c <- readline(prompt= "Enter value of c:")
Enter value of c:3
> a <- as.numeric(a)
> b <- as.numeric(b)
> c <- as.numeric(c)
> D <-(b^2-4*a*c)
> if (D>0){ #why this came ?
+ x_1 <- (-b+sqrt(D))/(2*a)
+ x_2 <- (-b-sqrt(D))/(2*a)
+ result <- (c(x_1 ,x_2 ))
+ result
+ }else if(D==0){
+ x < .... [TRUNCATED] #till here
[1] -0.8333333+0.5527708i -0.8333333-0.5527708i
>
И в чем разница между щелчком запуска и источника. Почему разные выводы я не понимаю