具体的挑战要求请见少儿编程大作战-挑战一道2022年高考数学题

这道题目其实很简单,考察的重点就是要看懂流程图,下面我通过文字来解释一下这个流程图


编程大作战:挑战一道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程序示例

编程大作战:挑战一道2022年高考数学题【战报】


二、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#include 
using 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;


本期高人气挑战队员

编程大作战:挑战一道2022年高考数学题【战报】

编程大作战:挑战一道2022年高考数学题【战报】


本站内容未经许可,禁止任何网站及个人进行转载。