课件27张PPT。1.2.1 赋值、输入和输出语句 基本算法语句算法的三种基本逻辑结构:顺序结构,条件结构和循环结构。 各种程序语言都包含了下列基本的算法语句:一、赋值语句 在表述一个算法时,经常要引入变量,并赋给该变量一个值,用来表明赋给某一个变量一个具体的确定值的语句叫做赋值语句。 赋值语句的一般格式是:
变量名=表达式关于赋值语句,有以下几点需要注意:(1)赋值语句的作用是将表达式所代表的值赋给变量。
它实质上是先将赋值号“=”右边表达式的值计算出来,然后把该值赋给“=”左边的变量,使该变量的值等于表达式的值。例如:“x=5”的意思是讲数值5赋给变量x.(2)赋值语句中的“=”称作赋值号,而不是“等号”,例如:a=b,表示将b的值赋给a,而不是说a和b相等!
赋值号的左右两边不能对换,赋值语句是将赋值号右边表达式的值赋给赋值号左边的变量,例如a=b表示用b的值代替变量a原来的值,不能写为b=a,因为b=a表示用a的值代替变量b的值.(3)格式中右边“表达式”可以是一个数值、常量或算式,如果“表达式”是一个算式,赋值语句的作用是先计算出“=”右边表达式的值,然后将该值赋给“= ”左边的变量. 如x=3^2+4*5-2,a=b+c等.(4)赋值语句左边只能是变量名字,而不是表达式。 如x=5是对的,5=x是错误的;a+b=c也是错误的,而c=a+b是正确的。(5)不能利用赋值语句进行代数式的演算(如化简、因式分解等)。
如y=x2-1=(x+1)(x-1)这是不能实现的,在赋值语句中赋值号右边的表达式中的每一个“变量”都必须事先赋给确定的值,在一个赋值语句中只能给一个变量赋值,不能出现两个或多个“= ”。 如a=b=5是错误的;(6)对于一个变量可以多次赋值,
如a=5,a=7,a=9,则执行时a的值是9;变量的值也可以多次赋值,
如A=5,B=A,C=A,最后执行时C的值仍然是5;(7)赋值号与数学中的等号的意义是不同的,赋值号左边的变量如果原来没有值,则执行赋值语句后,获得一个值;如果已有值,则执行该语句,以赋值号右边表达式的值代替该变量原来的值,即将原值“冲掉”。如N=N+1,在数学中是不成立的,但在赋值语句中,意思是将N+1的原值加1再赋给N,此时左边N的值就是原来N的值加1,如N原来是7,则N=N+1后,N的值变为8。例1. 判断下列赋值语句是否正确:
(1)4=m; (2)x+y=10;
(3)A=B=2; (4)N=N+1.解:(1)错误,(2)错误;
(3)错误;(4)正确. 在Scilab 语言中,可以直接赋值并计算:例如计算三个数的平均值,可以在窗口中输入:-→a=5; b=7; c=9;
-→aver=(a+b+c)/3
aver=
7注意:语句最后有没有“;”是不一样的. 有“;”表示不显示结果.二、输入语句 在某些算法中,变量的初值要根据情况经常的改变,一般我们把程序和初始数据分开,每次算题时,即使初始数据改变,也不必改变程序部分,只要每次程序运行时,输入相应的数据即可,这个过程在程序语言中,用输入语言来控制.输入语句的一般格式:
变量=input(“提示内容”) 其中input号左边是指要输入数值的变量名称,括号内的提示信息的作用是在程序运行后,在屏幕上输出或显示一些与该变量有关的信息,是对变量的一种解释,目的是为了让程序执行者更方便、更精确地输入相应变量的值; 变量=input(“提示内容”) 我们要计算任一个学生的语文,数学和外语三门考试的平均成绩,就要输入这个学生三门课的成绩,在Scilab文本编辑器中写出如下程序: a=input(“Chinese”);
b= input(“math”);
c= input(“foreign language”);
aver=(a+b+c)/3 程序中分别请求输入语文,数学,英语成绩并分别赋值给a,b,c,并把(a+b+c)/3的值赋给aver.把程序保存在一个文件中,点击打开时立即会在Scilab截面中运行:chinese-->
这时输入一个学生的语文成绩例如90,点“Enter”,界面出现:math-->
这时输入一个学生的数学成绩例如80,点“Enter”,界面出现:foreign language-->
这时输入一个学生的外语成绩例如79,点“Enter”,界面出现:aver=83几点说明:①输入语句中a=input(“Chinese”)中,真正起作用的是a=input( ),它将键盘输入的数值赋给a,括号中的chinese仅仅是提示作用,提醒用户输入的是语文成绩.②输入语句要求输入的值只能是具体的常数,不能是函数,变量或者表达式,例如20*5, 32/4等都不行;另外输入语句可以输入单个或者多个字符,例如:x=input(“I am a student”); x=input(“what is your name?”)等等.例2. 鸡兔同笼问题的一个算法及程序.S1: 输入鸡和兔的总数量M
S2: 输入鸡兔腿的总数N开始B=M-A结束输出A,B输入M、NA=(4*M-N)/2S3: 鸡的数量S4: 兔的数量B=M-AS5: 输出A,BM=input(“How many heads”);
N=input(“How many legs”);
A=(4*M-N)/2;
B=M-A;
A
B三、输出语句 任何求解问题的算法,都要把求解的结果输出,因此任何的程序语言也都有自己的输出语句来控制输出。不同的程序语言都有自己的输出语句和表现形式,但功能是一样的,就是以某种形式把求解结果输出出来.以Scilab为例,有各种输出语句,入print, write, format, printf, disp.输出语言一般格式: print(%io(2),表达式)例3: 一个算法是,用Scilab中的rand()函数,首先生成一个0~1之间的随机数并把它赋值给变量a, 再把3赋值给变量b, 把a+b赋值给变量c, 最后把它们都输出到屏幕上.
这个算法用Scilab程序写出,并用print(%io(2),a,b,c)语句控制输出,运行界面内写出程序如下:a=rand(); b=3; c=a+b; print(%io(2),a,b,c)
c=
3.7560439
b=
3
a=
.7560439①print(%io(2),表达式)中的表达式指程序要输出的数据,输出语句可以输出常量,变量或表达式的值.
例如print(%io(2),B), print(%io(2),4*3)等.②print(%io(2),a,b,c)在屏幕上输出的顺序是c, b, a.③print(%io(2),a,b,c)中的io表示input-output(输入-输出).例4. 读用Scilab语句编写的程序,根据程序画出程序框图。x= input(“x=”)
y= input(“y=”)
Print(%io(2),x/4)
Print(%io(2),2*y)
x=x+2;
y=y-1;
Print(%io(2),x)
Print(%io(2),y)开始输入x,y,x=x+2, y=y-1结束输出x, y输出x/4,2*y,x= input(“x=”);
y= input(“y=”);
Print(%io(2),x/4)
Print(%io(2),2*y)
x=x+2;
y=y-1;
Print(%io(2),x)
Print(%io(2),y)快乐体验1:写出下列算法执行后的结果.a=2;
a=4;
a=a+a;
a(1)(2)答案:8答案:5, 4, 2a=2;
b=3;
c=a+b;
b=a+c-b;
print(%io(2),a,b,c)2.已知三角形的三边长分别为a,b,c,借助海伦公式求三角形的面积。a=input(“a=”);
b=input(“b=”);
c=input(“c=”);
p=(a+b+c)/2;
S=sqrt(p*(p-a)*(p-b)*(p-c));
Print(%io(2),S)