我们完成了将笛卡尔坐标转换为极坐标的作业,我甚至不知道如何开始。所以任何一点帮助都会很好。
我们必须用bash编写代码。以下是我们得到的例子:
script.sh 256 128
Result: 286.216 1.107
我们必须插入数字作为参数,我们必须使用bc解释器。
答案 0 :(得分:1)
一些提示:
-l
选项bc sqrt()
和a()
函数scale=3
来限制精度bc
从stdin 答案 1 :(得分:1)
因为这是你的作业,我写了你的程序,但我把它放进去。我的任务对你有一些好处:
我只是呼叫功能的例子,除非我完成我的程序,你看到我的编程结束时,一些调用函数,它不是我的整个main.write一个主要的。
我的节目:
#!/bin/bash
### X and Y
export x=$1
export y=$2
####calculating r:
export r=`echo "sqrt(x*x+y*y)" |bc -l `
####Radian to Degree
r2d(){
echo "180,3.14156265358979323846,`echo $1`" |awk ' BEGIN {FS=","} { print $1/$2*$3'} ###HOOK
}
####Degree to Radian
d2r(){
echo "180,3.14156265358979323846,`echo $1`" |awk ' BEGIN {FS=","} { print $2/$1*$3'} ###HOOK
}
teta(){
if [ $x -lt 0 ];then
echo `echo "$1,$2" | awk 'BEGIN {FS=","} {print 3.14156265358979323846+atan2($2/$1,1)'}` ####HOOK
fi;
if [ $x -gt 0 ];then
echo `echo "$1,$2" | awk 'BEGIN {FS=","} {print atan2($2/$1,1)'}` ####HOOK
fi;
}
echo `r2d 2.09`
echo `d2r 120`
echo `teta $x,$y`