课件32张PPT。算法基本语句第一课时温故而知新1、顺序结构常用的程序语言和格式2、条件结构常用的程序语言和格式输入语句 INPUT “提示内容”;变量输出语句 PRINT “提示内容”;变量赋值语句 变量=表达式(1)IF 条件成立 THEN
语句1
ELSE
语句2
END IF(2)IF 条件成立 THEN
语句
END IF编写程序,使得任意输入3个整数按大到小的顺序输出。算法分析:算法思想:3个数两两比较,确定大小。按a、b、c输入,要按a、b、c输出,关键要找到最大值,将它赋值给a,中值赋给b,最小值赋给c。第一步 输入3个整数a、b、c第二步 将a与b比较,并把小者赋给b,大的赋给a;第三步 将a与c比较,并把小者赋给c,大的赋给a第四步 将b与c比较,并把小者赋给c,大的赋给b第五步 按顺序输出a,b,cINPUT “a,b,c=”;a,b,c
IF b > a THEN
t = a
a = b
b = t
END IF
IF c > a THEN
t = a
a = c
c = t
END IF
IF c > b THEN
t = b
b = c
c = t
END IF
PRINT a,b,c
END相应的QBASIC程序:开始t=a,a=b,b=tt=a,a=c,c=tt=b,b=c,c=t输入a,b,c输入a,b,cb>a?c>a?c>b?结束是是否否是否对应的流程图:WHILE 条件
循环体
WENDDO
循环体
LOOP UNTIL 条件循环结构WHILE 语句:UNTIL 语句程序框图:循环语句例1 编写程序,计算 的和。i = 0sum = 0WHILE i<=100i = i + 1sum = sum + iWENDPRINT sumENDi=1sum=0Dosum=sum+ii=i+1LOOP UNTIL i>100PRINT sumENDWHLIE 型:UNTIL 型:例2、设计一个算法框图:求满足1+2 + 3 + … + n>10000的最小正整数n,并写出相应的QBASIC程序。i = 0sum = 0DOi = i + 1sum = sum + iLOOP UNTIL sum>10000PRINT iEND例3.你能说出如下程序框图的算法功能吗?并且根据此程序框图写出相应的程序.开始输入a,b和精确度dm=(a+b)/2f(a)f(m)<0 ?a=mb=m|a-b|1000PRINT sENDUNTIL 型:程序框图:再见!算法基本语句第二课时1、顺序结构常用的程序语言和格式2、条件结构常用的程序语言和格式输入语句 INPUT “提示文字”;变量列表输出语句 PRINT “提示文字”;变量列表赋值语句 变量=表达式(1)IF 条件成立 THEN
语句1
ELSE
语句2
END IF(2)IF 条件成立 THEN
语句
END IF循环结构的定义: 在一些算法中,从某处开始,按照一定条件,反复执行某一处理步骤的情况,这就是循环结构.
反复执行的处理步骤称为循环体.两种循环结构有什么差别?While(当型)循环Until(直到型)循环两种循环结构有什么差别?先执行循环体,然后再检查条件是否成立,如果不成立就重复执行循环体,直到条件成立退出循环.先判断指定的条件是否为真,若条件为真,执行循环条件,条件为假时退出循环.先执行 后判断先判断 后执行循环结构算法中的循环结构是由循环语句来实现的.两种循环语句:WHILE 条件
循环体
WEND(1)WHILE语句的一般格式: 当计算机遇到WHILE语句时,先判断条件的真假,如
果条件符合,就执行WHILE与WEND之间的循环体;然
后再检查上述条件,如果条件仍符合,再次执行循环体,
这个过程反复进行,直到某一次条件不符合为止.这时,
计算机将不执行循环体,直接跳到WEND语句后,接着执
行WEND之后的语句.练习、根据1.1.2例3中的程序框图,编写
计算机程序来计算1+2+…+100的值i=1
sum=0
WHILE i<=100
sum=sum+i
i=i+1
WEND
PRINT sum
END程序:Until(直到型)循环DO
循环体
LOOP UNTIL 条件(2)UNTIL语句的一般格式:思考1:参照直到型循环结构,说说计算机是按怎样
的顺序执行UNTIL语句的? 思考2:用UNTIL语句编写计算机程序,来计算
1+2+…+100的值.思考2:用UNTIL语句编写计算机程序,来计算
1+2+…+100的值.i=1
sum=0
DO
sum=sum+i
i=i+1
LOOP UNTIL i>100
PRINT sum
END结束程序框图:程序:思考3:图1.1-2,用按照算法执行的顺序,把程序
框图中的内容转化为相应的程序语句.开始输入nflag=1n>2?d=2是d整除n?flag=0d<=n-1且
flag=1?flag=1?n是质数结束是d=d+1否否n不是质数否是否是(1) n=5开始Flag=1n>2d=2输入nd<=n-1且
flag=1?N不是质数n是质数d整除n?Flag=0Flag=1?结束d=d+1是是是否否是否(1)(2)(2) n=4否 INPUT “n=”;n
flag=1
IF n>2 THEN
d=2
WHILE d<=n-1 AND flag=1
IF n MOD d=0 THEN
flag=0
ELSE
d=d+1
END IF
WEND
ELSE
IF flag=1 THEN
PRINT n;"是质数."
ELSE
PRINT n;"不是质数."
END IF
END IF
END思考题:判断质数的
算法是否还有所改进?1. 根据你画出的用二分法求方程x2-2=0的近似根
的程序框图,写出相应的程序语句.2. 编写程序,计算函数f(x)=x2-3x+5当x=1,2,
3,…,20时的函数值.3. 编写一个程序,输入正整数n,计算它的阶
乘 n!(n!=n*(n-1)*…*3*2*1)1.根据你画出的用二分
法求方程x2-2=0的
近似根的程序框图,
写出相应的程序语句.结束2.编写程序,计算函数f(x)=x2-3x+5当x=1,2,
3,…,20时的函数值.3.编写一个程序,输入正整数n,计算它的
阶乘n!(n!=n*(n-1)*…*3*2*1)WHILE 条件
循环体
WENDDO
循环体
LOOP UNTIL 条件1、设计一个算法框图:逐个输出12,22,32,……,n2,并写出相应的QBASIC程序.INPUT n
i = 0
WHILE i < n
i = i + 1
t = i ^ 2
PRINT t
WEND
ENDINPUT n
i = 0
DO
i = i + 1
t = i ^ 2
PRINT t
LOOP UNTIL i > = n
END2、设计一个算法框图:求满足1+2 + 3 + … + n>10000的最小正整数n,并写出相应的QBASIC程序.i = 0sum = 0DOi = i + 1sum = sum + iLOOP UNTIL sum>10000PRINT iEND谢谢大家!