赋值、输入和输出语句
2.能将程序框图转化为算法语句.
1.赋值语句
(1)概念:在表述一个算法时,经常要引入变量,并赋给该变量一个值.用来表明赋给某一个变量一个具体的确定值的语句.
(2)格式:变量名=表达式.
赋值语句中的“=”号,称做赋值号.
归纳总结
1.赋值号左边只能是变量名字,而不能是表达式.例如$3.6=X$是错误的.2.赋值号左右不能对换.赋值语句是将赋值号右边的表达式的值赋给赋值号左边的变量,例如$Y=X$,表示用$X$的值替代变量$Y$的值,不能改写为$X=Y$.因为后者表示用$Y$的值替代变量X的值.
3.不能利用赋值语句进行代数式(或符号)的演算(如化简、因式分解等),如:
$y=x^{2}-1=(x+1)(x-1)$
这是不能实现的.在赋值语句中的赋值号右边的表达式中的每一个“变量”都必须事先赋给确定的值.在一个赋值语句中只能给一个变量赋值,不能出现两个或多个“=”.
4.赋值号与数学中的等号的意义不同.赋值号左边的变量如果原来没有值,则在执行赋值语句后,获得一个值.如果原已有值,则执行该语句后,以赋值号右边表达式的值代替该变量的原值,即将原值“冲掉”.如:
$N=N+1$
在数学中是不成立的,但在赋值语句中可以,意思是将$N$的原值加1,再赋给$N$,即$N$的值增加1.
5.赋值语句后没有分号“;”结尾时,界面窗口内显示变量赋值后的结果;有分号“;”结尾时,则不显示结果.Scilab命令一般以分号“;”作为结尾,每输完一行都要按回车键“Enter”确认输入内容.
6.对于一个变量可以进行多次赋值,但最终该变量的值以最后一次所赋的值为准.
【做一做1】 下列赋值语句正确的是( )
$\mathrm{A} \cdot \mathrm{x}=3 \mathrm{B} .3=\mathrm{x}$
$\mathrm{C.X}-3=0 \quad \mathrm{D.} 3-\mathrm{x}=0$
答案:$A$
2.输入语句
(1)在Scilab中常用的输入语句为“input”.
格式为:a=input(“提示内容”);
(2)输入语句的作用是实现算法的输入信息功能.输入语句的一般格式中“=”左边指要输入数值的变量的名称,括号内的提示内容的作用是在程序运行后,在屏幕上输出显示一些与该变量有关的信息,是对变量的一种解释,目的是为了让程序执行者更方便、更精确地输入相应变量的值.
知识拓展1.“input”又称“键盘输入语句”,当计算机执行到该语句时,暂停并等候用户输入程序运行需要的数据.此时,用户只需把数据由键盘输入,然后回车,程序将继续运行.
2.“提示内容”的作用是在程序执行时提醒用户明确将要输入的是什么样的数据.
3.无计算功能.输入语句要求输入的值只能是具体的常数,不能是函数、变量或表达式.
4.变量是指程序运行时其值可以变化的量,我们可以通俗地把它比喻成一个盒子,盒子内可以存放数据,必要时可随时更换盒子内的数据.
【做一做2】 关于语句x=input(“How old are you?”,“string”)的说法不正确的是( )
A.此语句的内容是输入你的年龄,string代表输入数值型变量
B.此语句中“input”输入语句用来控制在屏幕上输入
C.此语句中“string”代表输入字符型变量
D.Scilab的输入语句“input”,不仅可以输入数值,也可输入单个或多个字符
解析:A选项中string代表输入数值型变量是错误的,string代表输入字符型变量.
答案:A
3.输出语句
(1)在Scilab中,输出语句有print,write,format,printf,disp.
(2)在Scilab中,输出语句中的“print”的一般格式为:print($\%$io(2),表达式),$\%$io(2)表示将结果输出到屏幕上.
名师点拨1.“print”语句格式中的表达式是指程序要输出的数据,输出语句可以输出常数、变量或表达式的值,甚至单个或多个字符.如print($\%$io(2),A);print($\%$io(2),34)等.
2.“print”语句可以输出多个变量,它的一般格式是print(%io(2),变量1,变量2,……),其作用是将变量1,变量2,……的值输出到屏幕上,例如print($\%$io(2),A,B,C),在屏幕上的输出顺序由上而下分别是C,B,A的值.
3.若输出的表达式中含有变量,则这些变量必须事先赋值.
【做一做3】 读下列两个程序,回答问题.
①$\mathrm{x}=3$;
$\mathrm{y}=4$
$\mathrm{x}=\mathrm{y}$
print($\%$io(2),$x,y$);
②$x=3$;
$\mathrm{y}=4$
$\mathrm{y}=\mathrm{x}$
print($\%$io(2),$y,x$);
(1)上述两个程序的运行结果分别是__________,_________;
(2)上述两个程序中的第三行有什么区别?
解:(1)4,4 3,3
(2)题中两个程序中的第三行的区别是:①中“$x=y$”是将y的值赋给x,②中“$y=x$”是将$x$的值赋给$y$.
1.赋值语句的三种基本形式
剖析:(1)赋予变量常数值或含有其他变量的表达式的值.
例如a=1;{赋予变量常数值}
$\mathrm{B}=2 \mathrm{a}+1$.{将含有其他变量的表达式的值赋予变量}
(2)将含有变量自身的表达式的值赋予变量.
例如
$i=2 i+3$;{将含有变量自身的表达式的值赋予变量}
(3)赋值表达式中既含有变量自身,又含有其他变量.
例如
$\mathrm{S}=\mathrm{S}+2 \mathrm{i}$;{赋值表达式中既含有变量自身,又含有其他变量}
2.应用赋值语句交换两个变量的值
剖析:在算法中交换两个变量的值是不可以直接交换的,而是通过引入第三个变量来实现的.
交换两个变量$A$和$B$的程序很多,其中最常见的是:
$X=A$,
$A=B$,
$B=X$.
其交换过程可以形象地理解为:
$X=A$表示“把$A$杯中的水倒入$X$杯中”,这样“$A$杯”是空杯子;
$A=B$表示“把$B$杯中的水倒入$A$杯中”,这样“$A$杯”中的水换成了“$B$杯”中的水,此时“$B$杯”是空杯子;
$B=X$表示“把$X$杯中的水倒入$B$杯中”,这样“$B$杯”中的水换成了“$X$杯”中的水,即原来“$A$杯”中的水,交换结束.
其交换过程可以用下图表示:
3.三种语句的表达形式及作用
剖析
名称
表 达 形 式
作 用
Scilab
赋值
语句
变量名=表达式
1.先计算出表达式的值;
2.把该值赋给赋值号左边的变量
输入
语句
a=input( )
1.把程序和初始数据分开;
2.可输入数值、单个或多个字符
输出
语句
print(%io(2),a,b,c)
参数%io(2)表示在屏幕上输出
对三种基本语句的概念与格式的理解
【例1】 指出下列语句中的错误,并改正.
(1)A=B=50;
(2)$\mathrm{x}=1, \mathrm{y}=2, \mathrm{z}=3$;
(3)a=input(“where are you from”);
(4)print(a,b);
分析:根据各个语句的格式进行找错并改正即可.
反思对于概念的理解问题,只需将所给内容与基本输入、输出和赋值语句的形式进行比较,找出不同即可得出结论.
【变式训练1】 观察下列赋值语句,写法正确的个数是 ( )
①$x=z$;
②$x=3 ; y=4 ; z=5 ; w=7$;
③$x+y=7$;
④$y=M$.
A.1 B.2
C.3 D.4
根据程序语句解决问题
【例2】 读用Scilab语句编写的程序,根据程序画出程序框图.
分析:该程序第1,2句是input输入语句,要求从键盘输入$x$与$y$的值;第3,4句是print输出语句,要求从屏幕输出$\frac{x}{2}$和3$y$的值;第5,6句是赋值语句,用$x+1$的值代替原来$x$的值,用$y-1$的值代替原来$y$的值;第7,8句从屏幕输出$x$和$y$的值,由此可得程序框图.
反思
给出程序画框图类的题型,关键是理解程序的功能是什么,然后进行实际操作,在用赋值语句时,可对一个变量重复赋值,变量的值取最后一次的赋值.
【变式训练2】写出下列语句描述的算法的输出结果.
(1)
应用三种基本语句编写程序
【例3】 编写一个程序,要求输入两个数$a,b$的值,输出$a+b$和$ab$的值.
分析:可用键盘输入语句“input”进行输入,然后通过赋值语句求$a+b, a b$的值,最后输出.
反思
程序语言中所用的函数命令和运算符,有些与代数中的相同,有些发生了变化,应熟记一些常用的符号,规范书写.
【变式训练3】 已知函数$y=x^{2}-2 x+5$,编写一个程序,使每输入一个$x$的值,都得到相应的$y$值.
真题
1.下列对赋值语句的描述正确的是( )
①可以给变量提供初值;②将表达式的值赋给变量;③可以给一个变量重复赋值;④不能给同一变量重复赋值.
A.①②③ B.①②
C.②③④ D.①②④
2.下列给出的赋值语句中正确的是( )
$\begin{array}{ll}{\mathrm{A} .3=\mathrm{A}} & {\mathrm{B} \cdot \mathrm{M}=-\mathrm{M}} \\ {\mathrm{C} \cdot \mathrm{B}=\mathrm{A}=2} & {\mathrm{D} \cdot \mathrm{x}+\mathrm{y}=0}\end{array}$
3.下面一段程序执行后输出的结果是( )
A.2 B.8
C.10 D.18
4.下列程序执行后,输出的结果为3,则输入的x的值为( )
A.1 B.-3
C.-1 D.1或-3
5.如果输入的值依次为10,20,30,下面的程序运行的结果为_________.
6.给出如图所示的程序框图,写出相应的算法语句.