课件20张PPT。§1.2.1 输入语句、输出语句和赋值语句第一章 算法初步 计算机完成任何一项任务都需要算法,但是,用自然语言或程序框图表示的算法,计算机是无法“理解”的. 因此我们还需要将算法用计算机能够理解的程序设计语言来表示. 输入语句、输出语句、赋值语句条件语句、循环语句一、输入语句和输出语句 在每个程序框图中,输入框与输出框是两个必要的程序框,我们用什么图形表示这个程序框?其功能作用如何?表示一个算法输入和输出的信息. 一、输入语句的一般格式是:INPUT注:1.“提示内容”一般是提示用户输入什么样的信息,它可以用字母、符号、文字等来表述. 变量“提示内容”;2.变量是指程序在运行时其值是可以变化的量,一般用字母表示,若输入多个变量,变量与变量之间用逗号隔开. 提示内容加引号,提示内容与变量之间用分号隔开.INPUTINPUT “x=”;xINPUT xINPUT “x”;x“a,b,c=”INPUT “a=,b=,c=”;a,b,c;a,b,cINPUT a,b,cINPUT 3+5注:1.“提示内容”一般是提示用户输出什么样的信息,它通常是常量或变量的值;输出语句的一般格式是:表达式“提示内容”;PRINT2.表达式一般是表示输出信息所对应的字母或代数式.PRINT语句可以在计算机的屏幕上输出运算结果和系统信息.PRINT “S=”;SPRINT “S=”;a+b在计算a与b的和时,可直接写成PRINT SPRINT a,b,c也可以输出一句话PRINT “输入错误”PRINT “a=,b=,c=”;a,b,c数学符号计算机符号×≠*÷<>≥>=/乘方∧3x23*x∧2开平方SQR(x)求余数7÷27 MOD 2例1.已知函数y=x3+3x2-24x+30,写出自变量x对应的函数值的算法、程序框图及程序?第一步,输入一个自变量x的值.第三步,输出y.第二步,计算y=x3+3x2-24x+30.算法:该算法是什么逻辑结构?其程序框图如何?第一步,输入一个自变量x的值.第三步,输出y.第二步,计算y=x3+3x2-24x+30.该算法的计算机程序:INPUT “x=”;x PRINT “y=”;yEND例2 写出计算一个学生语文、数学、英语三门课的平均成绩的算法、程序框图和程序. 算法:第一步,输入该学生三门课的成绩a,b,c. 第三步,输出y. 第一步,输入该学生三门课的成绩a,b,c. 第三步,输出y. 第二步,计算 算法:程序框图:二、赋值语句 在算法的程序框图中,处理框是一个常用的程序框,我们用什么图形表示这个程序框?其功能作用如何?赋值、计算. 二、赋值语句的一般格式是:变量=表达式注:是将表达式所代表的值赋给变量, “=”叫做赋值号.计算机在执行赋值语句时,先计算“=”右边表达式的值,然后把这个值赋给“=”左边的变量.左右两边不能对换.x=5a=bb=a5=xb=a+ca=b=2x+y=0例3.给一个变量重复赋值的程序:
A=10
A=A+15
PRINT A
END
那么,A的输出值是多少?25练习:写出下列程序的运行结果: a=2b=3d=(a+b+c)/3c=4a=bb=c+2c=b+4PRINT “d=”;d运行结果
为 . a=3b=6c=10※例4. 写出“交换两个变量A和B的值,并输出交换前后的值”的程序.INPUT “A,B=”;A,BPRINT A,Bx=AA=BB=xPRINT A,BEND教材24页练习1:INPUT “华氏温度=”;tPRINT “摄氏温度=”;SENDS=(t-32)*(5/9)(华氏温度-32)摄氏温度教材24页练习2:ENDP=(a+b+c)/2PRINT “S=”;SS=SQR(P*(p-a)*(p-b)*(p-c))课件27张PPT。§1.2.2 条件语句第一章 算法初步
重点:难点:理解并会用
IF----ELSE结构。IF----ELSE----IF结构。教学过程 新课导入
新课讲解
小结
知识检测
小黑的家小白的家一、新课导入教学过程
一、简单的IF语句 二、IF----ELSE语句三、if-else-if语句
二、新课讲解简单的IF语句 格式 流程图
例题
其语义是:
如果表达式的值为真,则执行其后的语句,否则不执行该语句,继续执行主程序。
注意:1、这里的表达式通常是逻辑表达式或关系表达式,例如:
if(a>b &&a>c) printf(“%d”,a)或是if(a=b) printf(“a等于b”)
2、但也可以是其它表达式,如赋值表达式等,甚至也可以是一个变量。例如: if(a=5) 语句;if(b) 语句;
3、 语句若有多条语句,则用{ }括起来,且语句后必须有“;”,而}后没有“;”
例如:if(a>b){a++;b++;}
printf(“%d,%d”,a,b);简单的IF语句格式IF(表达式)语句 假 真 表达式 语句小白找小黑玩吗走小路真 max=a;if (max 本例程序中,输入两个数a,b,把a先赋予变量max,再用if语句判别max和b的大小,如max小于b,则把b赋予max。因此max中总是大数,最后输出max的值。例1:求两个数中的较大数这类的例子很多if(成绩)>60 printf(“及格”) ;
If(小白找小黑玩)printf(“走小路”);
If(今天是工作日) printf(“上班”);
再如:
从键盘上输入两个数,求出它们俩商的相反数。IF----ELSE语句 格式 流程图
例题IF----ELSE语句格式 if(表达式) 语句1;
else 语句2;
其语义是:如果表达式的值为真,则执行语句1,否则执行语句2 。
例如:if(x>0) printf(“x大于0”);
else printf(“x小于等于0);
或是if(小黑在家) printf(“找小黑玩”);
else printf(“找小花玩”);
如果小白找小黑玩,小黑在家吗?若在,找小黑玩,不在,就找小花玩。能用C语言来实现吗?可以,用if ----else 语句就能完成。
真 假小黑在家吗找小黑玩找小花玩 假 表达式 语句1 语句2真
?
If (a>b) printf("max=%dn",a);else printf("max=%dn",b);
输入两个整数,输出其中的大数。改用if-else语句判别a,b的大小,若a大,则输出a,否则输出b。
例2:求两个数中较大的一个。 if-else-if语句 格式 流程图
例题if-else-if语句格式 if(表达式1)
语句1;
else if(表达式2)
语句2;
else if(表达式3)
语句3;
…
else if(表达式m)
语句m;
else语句n;
其语义是:依次判断表达式的值,当出现某个值为真时, 则执行其对应的语句。然后跳到整个if语句之外继续执行程序。 如果所有的表达式均为假,则执行语句n 。 然后继续执行后续程序 。流程图 真 假 假
假
真
真
真 假
表达式1表达式2表达式3表达式m语句1语句2语句3语句m语句n例3、编写一程序,根据学生的考分来划分成绩的优、良、及格和不及格。 对优、良、及格和不及格,我们分别用5、4、3、2四个等级来表示,划分如下:
分数 等级
100-90 5
89-75 4
74-60 3
59-0 2main()
{int sorce,snum;
char grade;
scanf(“%d,%d”,&snum,&score);
if(score>89)
grade=’5’;
else if(score>74)
grade=’4’;
else if(score>59) grade=’3’;
else grade=’2’;
printf(“%d:%cn”,snum,grade);}
main()
{int sorce,snum;
char grade;
scanf(“%d,%d”,&snum,&score);
if(score>89)
grade=’5’;
else if(score>74)
grade=’4’;
else if(score>59) grade=’3’;
else grade=’2’;
printf(“%d:%cn”,snum,grade);}
例4.商场促销,
购物500元以上,8折
购物300元以上,85折
购物100元以上,9折
购物50 元以上,95折
购物50元以下,不打折
设:消费量为 money
折扣为 cost
实际花费 price例:根据消费量,计算优惠率。
if (money>500) cost=0.2;
else if (money>300) cost=0.15;
else if (money>100) cost=0.1;
else if (money>50) cost=0.05;
else cost=0;
price=money-(money*cost);
(1)??? 在三种形式的if语句中,在if关键字之后均为表达式。 该表达式通常是逻辑表达式或关系表达式, 但也可以是其它表达式,如赋值表达式等,甚至也可以是一个变量。例如: if(a=5) 语句;if(b) 语句; 都是允许的。
三、小结
只要表达式的值为非0,即为“真”。
如在if(a=5)…;中表达式的值永远为非0,
所以其后的语句总是要执行的,
当然这种情况在程序中不一定会出现,
但在语法上是合法的。 又如,有程序段:
if(a=b)
printf("%d",a);
else
printf("a=0");
本语句的语义是,把b值赋予a,
如为非0则输出该值,
否则输出“a=0”字符串。
这种用法在程序中是经常出现的 (2)在if语句中,
条件判断表达式必须用括号括起来,在语句之后必须加分号。
If(b)
printf(“b不是0”);
(3)在if语句的三种形式中,有的语句应为单个语句,如果
要想在满足条件时执行一组 (多个)语句,则必须把这一组
语句用{} 括起来组成一个复合语句。但要注意的是在}之后
不能再加分号。例如: if(a>b){ a++; b++; } else{ a=0;b=10; }课件21张PPT。§1.2.3 循环语句第一章 算法初步问题提出 1.两种条件语句的一般格式分别是什么? 2.对于顺序结构、条件结构的算法或程序框图,我们可以利用输入语句、输出语句、赋值语句和条件语句写出其计算机程序.对于循环结构的算法或程序框图,要转化为计算机能够理解的算法语言,我们必须进一步学习循环语句.循环语句知识探究(一):直到型循环语句 思考1:直到型循环结构的程序框图是什么?DO
循环体
LOOP UNTIL 条件你能说明计算机在执行上述语句时是怎样工作的吗? 先执行一次DO和UNTIL之间的循环体,再对UNTIL后的条件进行判断.如果条件不符合,则继续执行循环体;然后再检查上述条件,如果条件仍不符合,则再次执行循环体,直到条件符合为止.这时,计算机将不执行循环体,而执行UNTIL语句之后的语句. DO
循环体
LOOP UNTIL 条件思考3:计算1+2+3+…+100的值有如下算法:第一步,令i=1,S=0.
第二步,计算S+i,仍用S表示.
第三步,计算i+1,仍用i表示.
第四步,判断i>100是否成立.若是,则输出S,结束算法;否则,返回第二步. 你能利用UNTIL语句写出这个算法对应的程序吗?i=1S=0DOS=S+ii=i+1LOOP UNTIL i>100PRINT SEND第一步,令i=1,S=0.
第二步,计算S+i, 仍用S表示.
第三步,计算i+1, 仍用i表示.
第四步,判断i>100 是否成立.若是,则输出S,结束算法;否则,返回第二步.思考4:在下面的程序运行中,计算机输出的结果是多少?x=20
DO
x=x-3
LOOP UNTIL x<0
PRINT x
END -1知识探究(二):当型循环语句 思考1:当型循环结构的程序框图是什么?WHILE 条件
循环体
WEND 你能说明计算机在执行上述语句时是怎样工作的吗?WHILE 条件
循环体
WEND 先对条件进行判断,如果条件符合,则执行WHILE和WEND之间的循环体;然后再检查上述条件,如果条件仍符合,则再次执行循环体,直到某一次条件不符合为止.这时,计算机将不执行循环体,而执行WEND语句之后的语句. 思考3:计算1+2+3+…+100的值又有如下算法:第一步,令i=1,S=0.
第二步,若i≤100成立,则执行第三步;否则,输出S,结束算法.
第三步,S=S+i.
第四步,i=i+1,返回第二步.你能利用WHILE语句写出这个算法对应的程序吗?i=1S=0WHILE i<=100S=S+ii=i+1WENDPRINT S END 第一步,令i=1,S=0.
第二步,若i≤100成立,则执行第三步;否则,输出S,结束算法.
第三步,S=S+i.
第四步,i=i+1,返回第二步.思考4:阅读下面的程序,你能说明它是一个什么问题的算法吗? x=1
WHILE x∧2<1000
PRINT
x=x+1
WEND
END 求满足x2<1000的所有正整数x的值.理论迁移 例1 已知函数y=x3+3x2-24x+30,写出连续输入自变量的11个取值,分别输出相应的函数值的程序.第五步,判断输入的次数是否大于11.若是,则结束算法;否则,返回第一步.第一步,输入自变量x的值.第二步,计算y=x3+3x2-24x+30.第三步,输出y.第四步,记录输入次数.算法分析:n=1DOINPUT xy=x∧3+3*x∧2-24*x+30PRINT yn=n+1LOOP UNTIL n>11ENDENDINPUT “a,b,d=”;a,b,dDOm=(a+b)/2g=a∧2-2f=m∧2-2IF g*f<0 THENb=mELSEa=mEND IFLOOP UNTIL ABS(a-b)