150 likes | 289 Views
1.4《 第一章算法初步 》. 一、算法的概念 广义地讲 算法是为完成一项任务所应当遵照的一步一步的规则的、精确的、无歧义的描述,它的总步数是有限的。 2 狭义地讲 算法是解决一个问题采取的方法和步骤的描述. 算法的基本特点. 1 、有穷性. 一个算法应包括有限的操作步骤,能在执行有穷的操作步骤之后结束。. 2 、 确定性. 算法的计算规则及相应的计算步骤必须是唯一确定的,既不能含糊其词,也不能有二义性。. 3 、 可行性. 算法中的每一个步骤都是可以在有限的时间内完成的基本操作,并能得到确定的结果 。. 一、用自然语言表示算法 二、传统流程图.
E N D
一、算法的概念 • 广义地讲 算法是为完成一项任务所应当遵照的一步一步的规则的、精确的、无歧义的描述,它的总步数是有限的。 • 2 狭义地讲 算法是解决一个问题采取的方法和步骤的描述 算法的基本特点 1、有穷性 一个算法应包括有限的操作步骤,能在执行有穷的操作步骤之后结束。 2、确定性 算法的计算规则及相应的计算步骤必须是唯一确定的,既不能含糊其词,也不能有二义性。 3、可行性 算法中的每一个步骤都是可以在有限的时间内完成的基本操作,并能得到确定的结果 。
一、用自然语言表示算法 二、传统流程图 1、传统流程图中的基本符号 起止框 I/P框 判断框 处理框 流程线
求一元二次方程ax2+bx+c=0(a‡0)的根 开始 顺序结构 输入系数a,b,c 求X1、X2 输出X1、X2 结束
任意给定3个正实数,设计一个算法,判断分别以这3个数为三边边长的三角形是否存在.画出这个算法的程序框图.任意给定3个正实数,设计一个算法,判断分别以这3个数为三边边长的三角形是否存在.画出这个算法的程序框图. 开始 输入a,b,c a+b>c,a+c > b, b+c > a是否同 时成立? 否 是 不存在这样 的三角形 存在这样的 三角形 条件结构 结束
开始 开始 i=0:Sum=0 i=0:Sum=0 否 i<100? i = i + 1 是 Sum=Sum + i i = i + 1 否 i>=100? Sum=Sum + i 是 输出Sum 输出Sum 结束 结束 例3 设计一算法,求和:1+2+3+…+100 循环结构 直到型结构 当型结构
可对程序中的变量赋值 INPUT “提示文字”;变量 无 可输出表达式的值,计算 PRINT “提示内容”;变量 有 可对程序中的变量赋值,计算 变量=表达式 有
A=-1000 A=A+100 PRINT “A=”;A END INPUT “A,B=”;A,B t=A A=B B=t PRINT “A,B=”;A,B END (运行时从键盘输入3,7) A=-900 A,B =7 3 将一个变量的值赋给另一个变量,前一个变量的值保持不变;可先后给一个变量赋多个不同的值,但变量的取值总是最近被赋予的值 。
开始 p=(2+3+4)/2 s=SQR(p*(p-2)*(p -3)*(p-4)) PRINT “三角形的面积等于”;s END p=(2+3+4)/2 s=SQR(p*(p-2)*(p -3)*(p-4)) 输出s 结束
条件语句 IF条件 THEN 语句1 ELSE 语句2 END IF IF条件 THEN 语句 END IF 或
P20:任意给定3个正实数,设计一个算法,判断分别以这3个数为三边边长的三角形是否存在.写出这个算法的程序语句. INPUT a,b,c IF a+b>c AND a+c>b AND b+c>a THEN PRINT “存在这样的三角形.” ELSE PRINT “不存在这样的三角形.” END IF END
开始 对应的流程图 相应的QBASIC程序: INPUT “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 输入a,b,c b>a? 是 否 t=a,a=b,b=t 是 c>a? t=a,a=c,c=t 否 c>b? 是 t=b,b=c,c=t 否 输入a,b,c 结束
否 条件成立? 循环体 是 循环体 条件成立? 否 是 循环结构的程序框图 程序语句表示 WHILE条件 循环体 WEND DO 循环体 LOOP UNTIL条件
开始 i=0,Sum=0 否 i<100? 是 i = i + 1 Sum=Sum + i 输出Sum 结束 根据下面的程序框图写出相应的QBASIC程序 当型语句 i = 0 sum = 0 WHILE i<100 i = i + 1 sum = sum + i WEND PRINT sum END
开始 i=0,Sum=1 i = i + 1 Sum=Sum*i 否 i>=100? 是 输出Sum 结束 根据下面的程序框图写出相应的QBASIC程序 i = 0 直到型语句 sum = 0 DO i = i + 1 sum = sum + i LOOP UNTIL i>=100 PRINT sum END