具体的挑战要求请见少儿编程大作战-挑战一道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;
本期高人气挑战队员
本站内容未经许可,禁止任何网站及个人进行转载。