1.2基本算法语旬 【学习目标】 经历将具体问题的程序框图转化为程序语句的过程,理解几种基本算法语句——输 入语句、输出语句、赋值语句、条件语句、循环语句,体会算法的基本思想 【知识网络】 输入语句 输出语句 基本算法语句 赋值语句 条件语句 【学路导引】 循环语句 学习重点:输入语句、输出语句、赋值语句、条件语句、循环语句的用法 学习难点:用 SCILAB语言来演示实现算法的三种基本结构 学法指导:通过模仿、操作、探索,将程序框图转变为程序语言,了解算法语言的基 本构成,理解几种基本算法语句,熟悉算法的三种基本结构 【范例精析】 X.X0的值。 精析:属于条件分支结构,利用键盘输入语句和条件语句编程。 解:x= Input("x=") 点评:先编制程序框图,再根据框图编写程序。 例2:求平方不超过1000的最大正整数。 精析:利用 while循环语句 while j*kj<1000 jj+1; 点评:循环语句有for循环和 while循环两种。循环语句的一定要以end结束循环体。 例3:求100以内的勾股数。 精析:本题实际上是求不定方程x2+y2=2的整数解问题,x、y、z的取值范围都是1到 100的整数,可以利用三重循环结构和条件分支结构
通过个人自学、单位集中听宣讲等多种方式,认真学习了省、南充阆中市委领导讲话精神,明确了相关要求,深入领会“三大活动”精神实质和丰富内涵,积极投身当前大学习、讨论调研活动,深有体会。 1.2 基本算法语句 【学习目标】 经历将具体问题的程序框图转化为程序语句的过程,理解几种基本算法语句——输 入语句、输出语句、赋值语句、条件语句、循环语句,体会算法的基本思想。 【知识网络】 【学路导引】 学习重点:输入语句、输出语句、赋值语句、条件语句、循环语句的用法 学习难点:用SCILAB语言来演示实现算法的三种基本结构 学法指导:通过模仿、操作、探索,将程序框图转变为程序语言,了解算法语言的基 本构成,理解几种基本算法语句,熟悉算法的三种基本结构。 【范例精析】 例 1:给定 x 的任一个值,求函数 + = 1, 0 , 0 ( ) 2 x x x x f x 的值。 精析:属于条件分支结构,利用键盘输入语句和条件语句编程。 解:x=input("x=") if x>0 y=x*x+1 else y=x end 点评:先编制程序框图,再根据框图编写程序。 例 2:求平方不超过 1000 的最大正整数。 精析:利用 while 循环语句 解:j=1; while j*j<1000 j=j+1; end j=j-1 点评:循环语句有 for 循环和 while 循环两种。循环语句的一定要以 end 结束循环体。 例 3:求 100 以内的勾股数。 精析:本题实际上是求不定方程 2 2 2 x + y = z 的整数解问题,x、y、z 的取值范围都是 1 到 100 的整数,可以利用三重循环结构和条件分支结构。 基本算法语句 输入语句 输出语句 赋值语句 条件语句 循环语句
解:forx=1:100 fory=1:100 forz=1:100 a=x2;b=y2;c=z"2 if a+b>c else print(%io(2),x, y, z) end 点评:对于求不定方程的整数解的问题,利用循环语句和条件语句可以找出所有的解 例4:已知n个数排成一行如下 a1,a2,a3,…,an-1,an其中下脚码表示n个数的排列位置。这一行数满足条件 a1=a,=1 lan2=2a,+a,+ 编写求这行数的第n项的程序 精析:利用 while循环语句 解: while k<n C=2*A+B AFB; B=C: 点评:注意语句的最后有分号,表示不显示该语句的运行结果,没有则显示结果 【过关评估】 1.2.1赋值、输入和输出语句 组 、选择题 1、在赋值语句中,“N=N+1”是() (A)没有意义的(B)N与N+1相等(C)将N的原值加1再赋给N,N的值增加1(①) 无法运行 2、 Scilab程序:a=3;b=-4;c=8;a=b:b=c;c=a Print(%io(2), a, b, c) 运行后结果是() (A)a=3b=-4c=8(B)a=-4b=3c=8(C)a=-4b=8c=3①D)a=4b=8c=-4 1、下列命题中错误的是() (A)在程序语言中“=”是赋值号,与数学中的等号的意义不一样 (B) Input是键盘输入语句,控制屏幕输入 (C)程序语句 print(%(2),a,b)中的参数%io(2)表示在屏幕上输出
通过个人自学、单位集中听宣讲等多种方式,认真学习了省、南充阆中市委领导讲话精神,明确了相关要求,深入领会“三大活动”精神实质和丰富内涵,积极投身当前大学习、讨论调研活动,深有体会。 解:for x=1:100 for y=1:100 for z=1:100 a=x^2;b=y^2;c=z^2; if a+b<>c else print(%io(2),x,y,z) end end end end 点评:对于求不定方程的整数解的问题,利用循环语句和条件语句可以找出所有的解。 例 4:已知 n 个数排成一行如下: a a a an an , , , , , 1 2 3 −1 其中下脚码表示 n 个数的排列位置。这一行数满足条件: = + = = +2 +1 1 2 2 1 an an an a a 编写求这行数的第 n 项的程序 。 精析:利用 while 循环语句。 解:n=input("n=") A=1;B=1;k=2; while k<n C=2*A+B; A=B;B=C; k=k+1; end C 点评:注意语句的最后有分号,表示不显示该语句的运行结果,没有则显示结果。 【过关评估】 1.2.1 赋值、输入和输出语句 A 组 一、选择题: 1、在赋值语句中,“N=N+1”是() (A) 没有意义的 (B)N 与 N+1 相等 (C)将 N 的原值加 1 再赋给 N,N 的值增加 1 (D) 无法运行 2、Scilab 程序: a=3;b=-4;c=8;a=b;b=c;c=a; Print(%io(2),a,b,c) 运行后结果是() (A) a=3 b=-4 c=8 (B)a=-4 b=3 c=8 (C)a=-4 b=8 c=3 (D)a=-4 b=8 c=-4 1、 下列命题中错误的是() (A)在程序语言中“=”是赋值号,与数学中的等号的意义不一样 ; (B) input 是键盘输入语句 ,控制屏幕输入; (C) 程序语句 print(%(2),a,b)中的参数%io(2)表示在屏幕上输出 ;
(D)在程序语句中x= Input(“ chinese”)表示把 chinese赋给x 填空题 4、 scilab语言的输入语句“ input”,不仅可以输入数值,也可以输入 5、程序:a=3;b=4; A=SQRT(s*(s-a)*(s-b)*(s-c)) 的运行结果是 二、解答题 6、编写程序:给定x的任一个值,求函数f(x)=x2+2x-3的值 、编写已知直角三角形两直角边a和b,求斜边和面积的 scilab程序 B组 1、编写程序:任给圆锥的底面半径r和高h,求圆锥的体积V 2、编写程序:对与任给的两个实数a和b,使得a和b的数值互换. 答案 A组 1c 2 3D 、4字符5A=6 三、6程序:x= Input("x=") y=x2+2*x-3 7程序:a= Input(“a=) b= Input("b=”) c=sgrt(a 2+b 2) s=(a*b)/2 B组 1、程序 2、程序:a= input("a=") b=input(b=") 1.2.2条件语句
通过个人自学、单位集中听宣讲等多种方式,认真学习了省、南充阆中市委领导讲话精神,明确了相关要求,深入领会“三大活动”精神实质和丰富内涵,积极投身当前大学习、讨论调研活动,深有体会。 (D) 在程序语句中 x=input(“chinese”)表示把 chinese 赋给 x . 一、填空题: 4、scilab 语言的输入语句“input”,不仅可以输入数值,也可以输入 . 5、程序:a=3; b=4; c=5; s=(a+b+c)/2; A=SQRT(s*(s-a)*(s-b)*(s-c)) 的运行结果是 . 二、解答题: 6、编写程序:给定 x 的任一个值,求函数 ( ) 2 3 2 f x = x + x − 的值. 7、编写已知直角三角形两直角边 a 和 b,求斜边和面积的 scilab 程序. B 组 1、编写程序:任给圆锥的底面半径 r 和高 h,求圆锥的体积 V. 2、编写程序:对与任给的两个实数 a 和 b,使得 a 和 b 的数值互换. 答案 A 组 一、1 C 2 D 3 D 二、4 字符 5 A=6 三、6 程序: x=input("x=") y=x^2+2*x-3 7 程序: a=input(“a=”) b=input(“b=”) c=sqrt(a^2+b^2) s=(a*b)/2 B 组 1、程序: r=input("r=") h=input("h=") V=1/3*3.14*r^2*h 2、程序: a=input("a=") b=input("b=") m=a;a=b;b=m; print(%io(2),a,b) 1.2.2 条件语句
A组 、选择题: 1、下列关于if语句的叙述正确的是() (A)if语句中必须有ese和end (B)if语句中可以没有end (C)if语句中可以没有else,但必须以end结東 (D)if语句中可以没有end,但必须有else 2、已知一程序如下 若输入x=5,运行结果是() (A)x=5y=1(B)x=5y=-1(C)y=1(D)y=-1 3、已知一程序如下: b=input(b=") c=input(c=") MAXa If b>MAX MAX=b print(%io(2), MAX 若根据程序提示输入a=4b=2c=-5,则程序运行结果是() (A) max=a(B)max=b (C)max=c(D)max=4 二、填空题 4、 scilab语言中的条件语句分为 语句和 5、下列程序的运行结果是 else y=x+3 三、解答 6、一运动物体,其运动速度为时间t的函数: 5,(0≤【<5) 5+10-5),(t≥5) 对任意给定的t(t≥0),试写出求这个物体在t时刻的速 度的程序语句
通过个人自学、单位集中听宣讲等多种方式,认真学习了省、南充阆中市委领导讲话精神,明确了相关要求,深入领会“三大活动”精神实质和丰富内涵,积极投身当前大学习、讨论调研活动,深有体会。 A 组 一、选择题: 1、下列关于 if 语句的叙述正确的是() (A)if 语句中必须有 else 和 end; (B) if 语句中可以没有 end; (C) if 语句中可以没有 else,但必须以 end 结束; (D) if 语句中可以没有 end,但必须有 else. 2、已知一程序如下: x=input("x=") if x>=0 y=1 else y=-1 end 若输入 x=5,运行结果是() (A)x=5 y=1(B) x=5 y=-1 (C) y=1 (D) y=-1 3、已知一程序如下: a=input("a="); b=input("b="); c=input("c="); MAX=a; If b>MAX MAX=b; end if c>MAX MAX=c; end print(%io(2),MAX) 若根据程序提示输入 a=4 b=2 c=-5 ,则程序运行结果是() (A)max=a (B) max=b (C) max=c (D) max=4 二、填空题: 4、scilab 语言中的条件语句分为 语句和 语句. 5、下列程序的运行结果是 . x=5; y=-20; if x<=0 x=y-3 else y=x+3 end 三、解答题: 6、一运动物体,其运动速度为时间 t 的函数: + − = 5 10( 5),( 5) 5,(0 5) t t t v 对任意给定的 t( t 0 ),试写出求这个物体在 t 时刻的速 度的程序语句
、任给三个数,按从大小顺序排序三个数 B组 1、某市的出租车标价为1.20元/km,但事实上的收费标准如下:最开始4km内不管车行驶 路程多少,均收费10元(即起步费),4km后到15km之间,每公里收费1.20元,15km后每 公里再加收50%,即每公里1.80元。写出付费总数f与打车路程x之间的函数关系,并编 写出 scilab程序。 2、编制 scilab程序:从键盘上输入三个数,如果这三个数能构成三角形的三边长,则输出 信息“ neng gou cheng san jiao xing”,并求三角形的面积,否则输出信息“ bu neng gou cheng san jiao xing 案 A组 1C 2A 3D 二、4、 if select-case5、y=8 三、6、t= Input("t=:");ifta t=a: a=b: b=t end t=a:a=c:c=t if c>b t=b: b=c: c=t B组 1、解析式略。程序如下: x= input(“ shu ru cheng che li cheng”) if x<=4
通过个人自学、单位集中听宣讲等多种方式,认真学习了省、南充阆中市委领导讲话精神,明确了相关要求,深入领会“三大活动”精神实质和丰富内涵,积极投身当前大学习、讨论调研活动,深有体会。 7、任给三个数,按从大小顺序排序三个数. B 组 1、某市的出租车标价为 1.20 元/km,但事实上的收费标准如下:最开始 4km 内不管车行驶 路程多少,均收费 10 元(即起步费),4km 后到 15km 之间,每公里收费 1.20 元,15km 后每 公里再加收 50%,即每公里 1.80 元。写出付费总数 f 与打车路程 x 之间的函数关系,并编 写出 scilab 程序。 2、编制 scilab 程序:从键盘上输入三个数,如果这三个数能构成三角形的三边长,则输出 信息“neng gou cheng san jiao xing”,并求三角形的面积,否则输出信息“bu neng gou cheng san jiao xing”。 答案 A 组 一、1C 2A 3D 二、4、if select-case 5、y=8 三、6、t=input("t=:");if ta t=a;a=b;b=t; end if c>a t=a;a=c;c=t; end if c>b t=b;b=c;c=t a b c B 组 1、解析式略。程序如下: x=input(“shu ru cheng che li cheng”) if x<=4 y=10;
fx0&b>0&c>0 if a+b>c&b+c>a&a+c>b disp("neng gou cheng san jiao xing") -sqrt(p(p-a)(p-b)*(p-c)) disp(" bu neng gou cheng san jiao xing") disp("bu neng gou cheng san jiao xing") 2.3循环语句 A组 选择题: l、 Scilab程序 while jkj<100 j=j+1 的运行结果是() (A)j=j-1(B)j=100(C)j=10(D)j=9 2、 scilab程序:c=1 运行的结果是() (A)c=5(B)c=120(C)c=1①D)显示程序错误 3、 scilab程序:A=1:;B=1 while b<15 A=A+B: B=A+B
通过个人自学、单位集中听宣讲等多种方式,认真学习了省、南充阆中市委领导讲话精神,明确了相关要求,深入领会“三大活动”精神实质和丰富内涵,积极投身当前大学习、讨论调研活动,深有体会。 else if x0&b>0&c>0 if a+b>c&b+c>a&a+c>b disp("neng gou cheng san jiao xing") p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c)) else disp("bu neng gou cheng san jiao xing") end else disp("bu neng gou cheng san jiao xing") end 1.2.3 循环语句 A 组 一、选择题: 1、Scilab 程序: j=1; while j*j<100 j=j+1; end j=j-1 的运行结果是() (A)j=j-1(B)j=100 (C)j=10 (D)j=9 2、scilab 程序: c=1; for I=1:5 c=c*I; end c 运行的结果是() (A)c=5 (B)c=120 (C)c=1 (D)显示程序错误 3、scilab 程序: A=1;B=1; while B<15 A=A+B;B=A+B; end
C=A+B 运行的结果是() (A)C=2(B)C=3(C)C=15(D)C=34 、填空题: 4、在编制 scilab程序中,条件语句和循环语句的结束必须都是 5、 scilab语言中的循环语句有两种 循环和 循环 、解答题: 6、用循环语句编写求2″的程序 7、已知i、j是正整数,求i+j<10的所有正整数对i、j的程序 B组 1、将1,3,5,…,2n-1,…等奇数顺序累加,直到其和等于或大于100为止。要求输出 累加的和以及累加的项数. 2、编制 scilab程序解百钱买百鸡问题:用100元买100只鸡,其中公鸡每只5元,母鸡每 只3元,小鸡3只一元,问能买多少只公鸡?多少只母鸡?多少只小鸡?(提示:设x只公 鸡,y只母鸡,则买小鸡的只数z=100-x-y,100元最多买公鸡20只,买母鸡最多33只) 答案 A组 、1C2C3D 二、4end5 for while for i=l: n tJ: if s<10 print(%io(2), 1, j)
通过个人自学、单位集中听宣讲等多种方式,认真学习了省、南充阆中市委领导讲话精神,明确了相关要求,深入领会“三大活动”精神实质和丰富内涵,积极投身当前大学习、讨论调研活动,深有体会。 C=A+B 运行的结果是() (A) C=2 (B)C=3 (C)C=15 (D)C=34 一、填空题: 4、在编制 scilab 程序中,条件语句和循环语句的结束必须都是 . 5、scilab 语言中的循环语句有两种 循环和 循环. 二、解答题: 6、用循环语句编写求 n 2 的程序。 7、已知 i、j 是正整数,求 i + j 10 的所有正整数对 i、j 的程序. B 组 1、将 1,3,5,…,2n-1,… 等奇数顺序累加,直到其和等于或大于 100 为止。要求输出 累加的和以及累加的项数. 2、编制 scilab 程序解百钱买百鸡问题:用 100 元买 100 只鸡,其中公鸡每只 5 元,母鸡每 只 3 元,小鸡 3 只一元,问能买多少只公鸡?多少只母鸡?多少只小鸡?(提示:设 x 只公 鸡,y 只母鸡,则买小鸡的只数 z=100-x-y,100 元最多买公鸡 20 只,买母鸡最多 33 只) 答案 A 组 一、1C 2C 3D 二、4 end 5 for while 三、6 n=input("n=") s=1; for i=1:n s=s*2 end s 7 for i=1:9 for j=1:9 s=i+j; if s<10 print(%io(2),i,j)
nd 组 1解:Sum=0,i=1,n=0 hile sum<100 SUmSum+ i=i+2 2解:forx=020 for y=0: 33 z=100-Xxy; m=5*x+3*y+1/3*z if m<100 else print(%io(2), x, y, z)
通过个人自学、单位集中听宣讲等多种方式,认真学习了省、南充阆中市委领导讲话精神,明确了相关要求,深入领会“三大活动”精神实质和丰富内涵,积极投身当前大学习、讨论调研活动,深有体会。 end end end B 组 1 解:Sum=0,i=1,n=0 while Sum100 else print (%io(2),x,y,z) end end end