具體的挑戰要求請見少兒編程大作戰-挑戰一道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年高考數學題【戰報】


本站內容未經許可,禁止任何網站及個人進行轉載。