具体的挑战要求请见少儿编程大作战-挑战一道2022年高考数学题
这道题目其实很简单,考察的重点就是要看懂流程图,下面我通过文字来解释一下这个流程图
第一步:平行四边形表示输入或者输出,定义三个变量,分别为变量赋值,a=1;b=1;n=1
第二步:按照箭头的方向,向下执行b=b+2a(通过运算,改变了b的值)
第三步:按照箭头的方向,继续往下执行,a=b-a n=n+1(这样a与n的值也发生了变化)
第四步:再向下遇到菱形,表示判断,就看菱形内的表达式是否成立,a的平方就是axa 同理b的平方就是bxb,“| |”是绝对值,在scratch的运算中有计算绝对值这个选项,如果表达式成立,就延箭头“是”的方向执行,输出n
第五步:如果表达式不成立,那就沿着箭头“否”的方向执行,从图中可以看出,它又回到了第二步。也就是说只要表达式不成立就重复执行二、三、四步。(在scratch中有“重复执行直到<>”积木,其它编程语言基本都会用到while循环)
下面我们看程序示例:
一、Scratch程序示例
二、Python程序示例
#第一步,定义变量并赋值
a,b,n=1,1,1
#第二步
b=b+2*a
#第三步
a=b-a
n=n+1
#第四步
while abs(b**2/a**2-2)>=0.01:#不小于就是大于等于
print(abs(b**2/a**2-2))
b=b+2*a
a=b-a
n=n+1
print(n)
三、C++程序示例
#include#includeusing namespace std; int main() { double a,b,n; a=b=n=1; b=b+2*a; a=b-a; n=n+1; while(abs(pow(b,2)/pow(a,2)-2)>=0.01){ b=b+2*a; a=b-a; n=n+1; } cout << n; return 0; }
四、Java程序示例
public class Test {
public static void main(String []args) {
double a,b,n;
a=b=n=1;
b=b+2*a;
a=b-a;
n=n+1;
while(Math.abs(Math.pow(b, 2)/Math.pow(a, 2)-2)>=0.01){
b=b+2*a;
a=b-a;
n=n+1;
}
System.out.println(n);
}
}
五、PHP程序示例
$a=$b=$n=1;
$b=$b+2*$a;
$a=$b-$a;
$n=$n+1;
while(abs(pow($b, 2)/pow($a, 2)-2)>=0.01){
$b=$b+2*$a;
$a=$b-$a;
$n=$n+1;
}
echo $n;
本期高人气挑战队员
本站内容未经许可,禁止任何网站及个人进行转载。







