课件36张PPT。1、条件语句的一般格式:IF 条件 THEN
语句体1
ELSE
语句体2
END IFIF 条件 THEN
语句体
END IF复习2、注意书写的规范性INPUT "Please input an integer:";a
IF a MOD 2 =0 THEN
PRINT "Even."
ELSE
PRINT "Odd."
END IF
END
1、编写一个程序,判断任意整数的奇偶性。程序: 2、某快递公司规定甲、乙两地之间物品的托运费用根据下面的方法计算:物品重量在50千克以内(含50千克),托运费为每千克 0.53 元,超过的话,超过部分每千克0.85元,试画出计算费用M的程序框图,并写出相应的QBASIC程序。 程序
框图:对应的QBASIC程序
INPUT “zhongliang G=”;G
IF G<=50 THEN
M=0.53*G
ELSE
M=50*0.53+0.85*(G-50)
END IF
PRINT “yunfeiwei:”;M
END
x=5
y=-20
IF x<0 THEN
x=y-3
ELSE
y=y+3
END IF
PRINT x-y
END3、下边程序运行后输出的结果为________. 22 4、闰年是指能被4整除但不能被100整除,或者能被400整除的年份.编写一个程序,判断输入的年份是否为闰年.INPUT "Please input a year";y
b=y MOD 4
c=y MOD 100
d=y MOD 400
IF b=0 AND c<>0 THEN
PRINT "Leap year."
ELSE
IF d=0 THEN
PRINT "Leap year."
ELSE
PRINT "Not leap year."
END IF
END IF
END程序:输入x开始是输出y开始 y=x y=2x-1 y=3x-11否是否作业评讲INPUT “x=”;x
IF x<1 THEN
y=x
ELSE
IF x<10 THEN
y=2*x-1
ELSE
y=3*x-11
END IF
END IF
PRINT “y=”;y
END程序作业评讲:INPUT “x=”;x
IF x<1 THEN
y=x
ELSE
IF x<10 THEN
y=2*x-1
ELSE
y=3*x-11
END IF
END IF
PRINT “y=”;y
ENDINPUT “x=”;x
IF x<1 THEN
y=x
END IF
IF x>=1ANDx<10 THEN
y=2*x-1
END IF
IF x>=10 THEN
y=3*x-11
END IF
PRINT “y=”;y
END嵌套格式独立格式1.2.3 循环语句1.2.3 循环语句循环结构的两种形式:WHILE 条件
循环体
WEND当型循环直到型循环DO
循环体
LOOP UNTIL 条件While(当型)循环Until(直到型)循环两种循环结构有什么差别? 先执行循环体,然后再检查条件是否成立,如果不成立就重复执行循环体,直到条件成立退出循环。 先判断指定的条件是否为真,若条件为真,执行循环体,条件为假时退出循环。先执行 后判断先判断 后执行WHILE 条件
循环体
WENDDO
循环体
LOOP UNTIL 条件当型循环与直到型循环的区别:
1.当型循环先判断后执行,直到型先执行后判断;
2.当型循环用WHILE语句,直到型用UNTIL语句;
3.对同一算法而言,当型循环与直到型循环的条件互为反条件.例1.设计一个计算 的值的程序。开始S=0输出S结束i=1i≤100?S=S+ii=i+1END程序:i=1s=0WHILE i<=100s=s+ii=i+1WENDPRINT s框图:例1.设计一个计算 的值的程序。框图:i=1S=0DO S=S+i i=i+1LOOP UNTIL i>100PRINT SEND程序:开始S=0输出S结束i=1的值,先画出程序框图.设计一个程序求变式1:对任意正整数n,算法:
第一步:取S=0,i=1;
第二步:计算S=S+i,i=i+1;
第三步:判断i>100是否成立 ,
若否,则返回第二步,
若是,则输出S的值;例.设计一个计算1+2+3+……+100
的值的算法,并画出程序框图。框图:开始S=0输出S结束i=1i>100?S=S+ii=i+1的值,先画出程序框图.开始输入一个正整数n输入S的值结束i=1S=0S=S+1/ii=i+1i>n?NY设计一个程序求变式1:对任意正整数n,i=1s=0DO s=s+1/i i=i+1PRINT sEND程序:LOOP UNTIL i>nINPUT n的值,先画出程序框图.开始输入一个正整数n输入S的值结束i=1S=0S=S+1/ii=i+1i>n?NY设计一个程序求 思考:将步骤A和步骤B交换位置,结果会怎样?能达到预期结果吗?为什么?要达到预期结果,还需要做怎样的修改?变式1:对任意正整数n,i=1s=0DO s=s+1/i*(-1)i-1 i=i+1PRINT sEND程序:LOOP UNTIL i>10框图:开始S=0输出S结束i=1i>10?S=S+1/i*(-1)i-1i=i+1算法:第二步:计算 的值;框图:第一步:输入x的值;第三步:输出y的值。第四步:记录输入的次数第五步:判断输入的次数是否大于11,
若是,则结束算法;否则返回第一步。n=n+1n>11?是否框图:n=n+1n>11?是否程序:n=1
DO
INPUT “x”;x
y=x^3+3 * x^2-24* x+30
PRINT y
n=n+1
LOOP UNTIL n>11
END 例3、写出用“二分法”求方程x2-2=0(x>0)的近似解的程序否是否输出m结束①是
INPUT “a,b,d=”;a,b,d
DO
m = (a + b) / 2
g = a^2 - 2
f =m ^2 - 2
IF g * f < 0 THEN
b = m
ELSE
a = m
END IF
LOOP UNTIL ABS( a - b) < d OR f=0
PRINT m
END否是否输出m结束①是i>n-1或r=0?n是质数 1、根据程序框图写出判断整数n(n>2)是否为质数”的程序.是INPUT “n=“;n
i=2
DO
r=n MOD i
i=i+1
LOOP UNTIL i>n-1 or r=0
IF r=0 THEN
PRINT “n不是质数”
ELSE
PRINT “n是质数”
END IF
END巩固练习2、编写一个程序,输入正整数n,计算它的阶乘n!(n!=n*(n-1)*…*3*2*1)分析:第一步,1!=1*1
第二步,2!=1!*2
第3步,3!=2!*3
…
第i步,i!=(i-1)!*i
程序:
INPUT “n=“;n
i=1
t=1
WHILE i <=n
t=t*i
i=i+1
WEND
PRINT “n!=”;t
END3、设计一个算法框图:求满足1+2 + 3 + … + n>10000的最小正整数n,并写出相应的QBASIC程序。i = 0s = 0DOi = i + 1s = s + iLOOP UNTIL s>10000PRINT iEND4、设计一个算法框图:逐个输出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
END练习: 某高中男子体育小组的50m跑成绩(单位:s)为:
6.4, 6.5, 7.0, 6.8,7.1,7.3, 6.9,7.4,7.5
设计一个算法,从这些成绩中搜索出小于6.8s的成绩,并画出程序框图.问题:能否对这个程序进行改进,使其输入9个数后程序才结束?是否练习: 某高中男子体育小组的50m跑成绩(单位:s)为:6.4, 6.5, 7.0, 6.8,7.1,7.3, 6.9,7.4,7.5
设计一个算法,从这些成绩中搜索出小于6.8s的成绩,并画出程序框图.是否程序:i=1
DO
INPUT “输入成绩:”;r
i=i+1
LOOP UNTIL i>9
ENDIF r< 6.8 THEN
PRINT r
END IF
程序框图:小结WHILE 条件
循环体
WENDDO
循环体
LOOP UNTIL 条件作业:P33 A组 3练习巩固1. 该程序框图所表示的算法作用是什么?并根据程序框图写出相应的程序。程序:
INPUT “a,b,c=“; a, b,c
IF a+b>c AND b+c>a AND a+c>b THEN
PRINT “Yes.”
ELSE
PRINT “No.”
END IF
END
2、某快递公司规定甲、乙两地之间物品的托运费用根据下面的方法计算:物品重量在50千克以内(含50千克),托运费为每千克 0.53 元,超过的话,超过部分每千克0.85元,试画出计算费用M的程序框图,并写出相应的QBASIC程序。 程序
框图:对应的QBASIC程序INPUT “输入重量G=”;G
IF G<=50 THEN
M=0.53*G
ELSE
M=50*0.53+0.85*(G-50)
END IF
PRINT “运费为:”;M
END例 .编写程序,使得任意输入的3个整数按从大到小的顺序输出。是是否否是否框图:IF 条件 THEN
语句
END IF算法:第一步:输入3个整数a,b,c;第二步:比较a,b的大小,把大的值赋给a,
小的值赋给b;第三步:比较a,c的大小,把大的值赋给a,
小的值赋给c;第四步:比较b,c的大小,把大的值赋给b,
小的值赋给c;第五步:按顺序输出a,b,c例 .编写程序,使得任意输入的3个整数按从大到小的顺序输出。是是否否是否框图:程序:INPUT “a,b,c=”;a,b,cIF b>a THENt=a
a=b
b=tEND IFIF c>a THENt=a
a=c
c=tEND IFIF c>b THENt=b
b=c
c=tEND IFPRINT a,b,cENDIF 条件 THEN
语句体
END IF1、顺序结构常用的程序语言和格式2、条件结构常用的程序语言和格式输入语句 INPUT “提示文字”;变量列表输出语句 PRINT “提示文字”;变量列表赋值语句 变量=表达式(1)IF 条件成立 THEN
语句1
ELSE
语句2
END IF(2)IF 条件成立 THEN
语句
END IF一、复习回顾结束例3、写出用“二分法”求方程x2-2=0(x>0)的近似解的程序
DO
m = (a + b) / 2
f(a) = a^2 - 2
f(m) =m ^2 - 2
IF f (m) <> 0 THEN
IF f(a) * f(m) < 0 THEN
b = m
ELSE
a = m
END IF
END IF
LOOP UNTIL ABS( a - b) < d or f(m)=0
PRINT m
END
否否是否输出m是结束①是