你的位置:主页 > 教案课件 > 内容 在线投稿

基本算法语句教案

发布: 2015-11-18 |  作者: admin |  浏览:

  【学习目标】

  基本算法语句

  输入语句

  输出语句

  赋值语句

  条件语句

  循环语句

  经历将具体问题的程序框图转化为程序语句的过程,理解几种基本算法语句——输入语句、输出语句、赋值语句、条件语句、循环语句,体会算法的基本思想。

  【知识网络】

  【学路导引】

  学习重点:输入语句、输出语句、赋值语句、条件语句、循环语句的用法

  学习难点:用SCILAB语言来演示实现算法的三种基本结构

  学法指导:通过模仿、操作、探索,将程序框图转变为程序语言,了解算法语言的基本构成,理解几种基本算法语句,熟悉算法的三种基本结构。

  【范例精析】

  例1:给定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以内的勾股数。

  精析:本题实际上是求不定方程 的整数解问题,x、y、z的取值范围都是1到100的整数,可以利用三重循环结构和条件分支结构。

  解: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个数排成一行如下:

  其中下脚码表示n个数的排列位置。这一行数满足条件:

  编写求这行数的第n项的程序 。

  精析:利用while循环语句。

  解:n=input("n=")

  A=1;B=1;k=2;

  while k

  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; c=5;

  s=(a+b+c)/2;

  A=SQRT(s*(s-a)*(s-b)*(s-c))

  的运行结果是 .

  二、解答题:

  6、编写程序:给定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语句中必须有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的函数:

  对任意给定的t( ),试写出求这个物体在t时刻的速度的程序语句.

  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 t<5 v=5;else v=5+10*(t-5);end; disp(v)

  7、 a=input("a=");

  b=input("b=");

  c=input("c=");

  if b>a

  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;

  else

  if x<=15

  y=10+1.2*(x-4);

  else

  y=23.2+1.8*(x-1.5);

  end

  end

  y

  2、a=input("a=")

  b=input("b=")

  c=input("c=")

  if a>0&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、用循环语句编写求 的程序。

  7、已知i、j是正整数,求 的所有正整数对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)

  end

  end

  end

  B组

  1 解:Sum=0,i=1,n=0

  while Sum<100

  Sum=Sum+i;

  i=i+2;

  n=n+1;

  else

  n

  Sum

  end

  2 解:for x=0:20

  for y=0:33

  z=100-x-y;

  m=5*x+3*y+1/3*z;

  if m<>100

  else print (%io(2),x,y,z)

  end

  end

  end

本文标题:基本算法语句教案 原文链接:http://www.msn11.com/article/32.html

     | 挑错 | 打印

    推荐内容

    本周热门