分支结构程序设计.ppt
二、画出流程图,程序设计三步走,一、算法分析,三、写程序,已知:求一元二次方程ax2+bx+c=0(a0)根算法分析:1、判断d=b2-4*a*c的情况。若有实根 则求X1=(-b+sqr(b2-4*a*c)/(2*a)X2=(-b-sqr(b2-4*a*c)/(2*a)若无实根,则输出“方程无实根”,已知:求一元二次方程ax2+bx+c=0(a0)根算法分析:1、判断d=b2-4*a*c的情况。若有实根 则求X1=(-b+sqr(b2-4*a*c)/(2*a)X2=(-b-sqr(b2-4*a*c)/(2*a)若无实根,则结束程序。,开始,输入系数a,b,c,结束,D=b2-4*a*c,D=0?,T,F,输出无实根,输出X1X2,求X1、X2,IF,THEN,ELSE,ENDIF,IF 条件 THEN 语句组1 ELSE 语句组2ENDIF 说明:IF-THEN必须写在同一行上。,IF D=0 THEN x1=(-b+sqr(d)/(2*a)x2=(-b-sqr(d)/(2*a)print“x1=”;x1 print“x2=”;x2ELSE print“No Real Roots”ENDIF,开始,输入系数a,b,c,结束,D=b2-4*a*c,D=0?,T,F,2、ELSE部分是可选项,可以无此部分。IF D=0 THEN x1=(-b+sqr(d)/(2*a)x2=(-b-sqr(d)/(2*a)print“x1=”;x1 print“x2=”;x2ENDIF,输出X1X2,求X1、X2,IF,THEN,ELSE,ENDIF,比较两个字符串的大小,输出较大者。单个字符的比较就是比较其机内码的大小 常见字符的内码大小:“”“0”“9”“A”“Z”“a”“z”试比较下列字符串的大小:“A”“a”“abc”“ac”“NAME”“name”,开始,输入A$,B$,输出A$,结束,A$B$,T,F,输出B$,IF,THEN,ELSE,ENDIF,10 INPUT“A$,B$=”;A$,B$20 IF A$B$THEN 40 print A$45 ELSE50 print B$70 ENDIF80 END,10 INPUT“A$,B$=”;A$,B$20 IF A$B$THEN print A$ELSE print B$30 end 当IF-THEN-ELSE写在同一行上时,可以省略ENDIF,开始,输入X,输出X,结束,X0?,T,F,IF,THEN,ELSE,10 INPUT“X=”;X20 IF X0 THEN 40 print X70 ENDIF80 END,10 INPUT“X=”;X20 IF X0 THEN print X80 END,开始,结 束,X=0,Y,输 出 Y,输 入自变量X,Y=0,X 0,Y,Y=-1,Y=1,分支嵌套,程序:INPUT“X=”;XIF X=0 THEN LET Y=0ELSE IF X0 THEN LET Y=-1 ELSE LET Y=1 END IFEND IFPRINT“Y=“;YEND,求1+3+5+99的和算法分析:1、设P为加数,P的特点:后一个加数等于前一加数加二 即:设:P=-1 第1个加数:P=P+2 第2个加数:P=P+2 第3个加数:P=P+2 第4个加数:P=P+2 上述程序称为累加器,开始,P=-1:S=0,P=P+2,输出S,S=S+P,GOTO,10 LET P=-120 LET S=030 LET P=P+240 LET S=S+P50 PRINT“P=”;P,55“S=”;S60 GOTO 30格式:GOTO 行号,开始,P=-1:S=0,P=P+2:S=S+P,输出S,结束,P99?,T,F,10 LET P=-1:LET S=022 IF P99 THEN 30 LET P=P+240 LET S=S+P50 PRINT“P=”;P,60“S=”;S65 GOTO 3070 ELSE75 GOTO 9080 ENDIF90 END,作业:,要求:写算法分析、画流程图、编程序 一、第66页 第2题 二、写出下列程式中,前200个数之和 y=1+3+5+7+三、求小于1000的9的倍数之和。,