1、53基本算法语句531赋值语句532输入、输出语句案例探究 用伪代码写出计算任何一个学生的语、数、外三门课成绩的算法 解:Begin(算法开始)Read a“chinese” b“maths” c“foreign language” Aver(a+b+c)/3 Print aver End 伪代码是表示算法的一种方法,它是介于自然语言和计算机语言之间的文字和符号,是描述算法简单而实用的方法自学导引 1伪代码是介于自然语言和计算机语言之间的文字和符号 2在伪代码中,赋值语句用符号“”表示,“xy”表示将y的值赋给x,其中x是一个变量,y是一个与x同类型的变量或表达式 3在某些算法中,变量的初值要
2、根据情况经常地变化,每次做题时,即使初始值数据改变,也不必改变程序部分,只要每次程序运行时,输入相应的数据即可,这个过程在程序语言中用“输入语句”来控制,其格式为“Read a,b”表示输入的数据送给a,B 4任何求解问题的算法,都要把求解的结果“输出”,任何程序语言也必须有“输出语句”来控制,其格式为:“Print x”,表示输出运算结果x疑难剖析 【例1】 若三角形的边长分别为a,b,c,借助于公式S=(其中p=),求该三角形的面积试用输入、输出语句表示计算面积的一个算法 分析:这里有三个变量a,b,c的值需要输入,变量p的值由a,b,c确定,可用赋值语句,S的计算也用赋值语句,最后输出的
3、是S的值 解:Read a,b,c p(a+b+c)/2 xp-a yp-b zp-c SSQR(p*x*y*z) Print“三角形的三条边长分别为:”;a,b,c Print“这个三角形的面积是:”;S End 思维启示:在程序语言中,乘、除、乘方、求平方根、求绝对值,分别用下列符号表示:*、/、SQR(),ABS(),如32,32,32,|3|分别写成3*2,3/2,32,SQR(3),ABS(3),在程序中,分别写成=,=, 【例2】 试用伪代码设计一个程序,已知圆柱体的底面半径和高,求圆柱体的表面积 思路分析:根据圆柱的表面积等于两底的面积加上侧面积,我们就可以先求出底面积,再算出侧
4、面积,然后把两个面积相加,圆柱体的表面积便有了 解:程序:Read“R,H=”;R,H A2*3145*R*H B3145*R*R SA+2*B Print“S=”;S End 思维启示:“R,H=”提示输入圆柱体的底面半径和侧面高,当我们把值赋给R,H后,R,H中的值与2及31415相乘,乘积存入变量A,R中的值代入圆面积公式,求出圆的面积存入B,A中的值与两个底面的面积2B相加存入S,则S中的值便是圆柱体的表面积 【例3】 根据下面伪代码编写的程序,画出流程图 Read“输入边长A,B的值”;A,B Read“输入夹角C的角度值”;CCC*3141 6/180 PA*A+B*B-2*A*B
5、*cos(C) YSQR(P) Print“第三边=”;Y End 思路分析:从伪代码程序可以看出,此程序只用输入语句、赋值语句和输出语句组成,因此根据程序画流程图,只要按顺序从上到下把输入语句、赋值语句、输出语句换成输入框、处理框、输出框就可以了解:流程图如图所示: 【例4】 编写一个程序求出方程x2-3x+2=0的两根 思路分析:用输入语句输入a,b,c的值,然后利用求根公式求根,最后输出方程的两根即可 解:Read a,b,c”;1,-3,2 x1(-b+SQR(b2-4*a*c)/(2*a) x2(-b-SQR(b2-4*a*c)/(2*a) Print“x1=”;x1;“x2=”;x
6、2 End【例5】 某粮库3月4日存粮50 000 kg,3月5日调进粮食30 000 kg,3月6日调出全部存粮的二分之一,编写一个算法描述输出每天的库存数,并用伪代码表示 思路分析:粮库的库存是逐日变化的,可以设置一个变量来存放每天的库存数,我们只设一个变量a,处理时,每次当天的库存统计好存入变量里,然后输出变量当前值,来说明当天的库存在这样的思路,则流程图如图所示 解:由流程图看出,这是一个有多个输出的顺序结构,因此只需用输入、输出、赋值语句即可写出程序 程序为: a50 000 Print“3月4日库存数:”;a;“kg” aa+30 000 Print“3月5日库存数:”;a;“kg
7、” aa/2 Print“3月6日库存数:”;a;“kg” End拓展迁移【拓展点】某市2003年112月的产值分别为53,38,42,54,62,46,67,73,64, 58, 47,65(亿元),该市要统计每季度的月平均产值及2003年的月平均产值,试分别用赋值语句和输入、输出语句表示计算上述各个平均值的算法 解:Read“a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12”; 5.3,3.8,4.2,5.4,6.2,4.6,6.7,7.3,6.4,5.8,4.7,6.5 Print“第1季度aver=”;(a1+a2+a3)/3 Print“第2季度aver=”;(a4+a5+a6)/3 Print“第3季度aver=”;(a7+a8+a9)/3 Print“第4季度aver=”;(a10+a11+a12)/3 Print“全年aver=”;(a1+a2+a3+a12)/12 End