资源简介 2.2 解析算法 餐厅吃饭 促销方案:消费满100元,打9折;消费满200元,打8折;消费满300元,打7折,那一餐我和朋友们一共吃了348元,请问我们应该付多少钱呢?如果消费了x元呢? 实付金额y和消费金额x之间存在什么关系呢? 解析算法概念引入 找出表示问题的前提条件与结果之间关系的数学表达式,并通过表达式的计算来实现问题求解。 例1:求一元二次方程的解 分析: 问题的前提条件是什么? 要求的解是什么? a、b、c的值 x的值 例1:求一元二次方程的解 分析: a、b、c的值与x存在怎样的等量关系? 根据a,b,c取值的不同,x的值有三种情况。 1)d<0,x无解 2)d=0, 3)d>0, 一元二次方程ax2+bx+c=0的解 Private Sub Command1_Click() Dim a As Double, b As Double, c As Double, x1 As Double, x2 As Double, d As Double Label4.Caption = "" a = Val(Text1.Text) b = Val(Text2.Text) c = Val(Text3.Text) d = b * b - 4 * a * c If d < 0 Then Label4.Caption = "x无解" ElseIf d = 0 Then x1 = -b / (2 * a) x2 = -b / (2 * a) Label4.Caption = Str(a) + "*x^2+" + Str(b) + "*x+" + Str(c) + "=0的解为x1=x2=" + Str(x1) Else x1 = (-b + Sqr(d)) / (2 * a) x2 = (-b - Sqr(d)) / (2 * a) Label4.Caption = Str(a) + "*x^2+" + Str(b) + "*x+" + Str(c) + "=0的解为x1=" + Str(x1) + ",x2=" + Str(x2) End If End Sub 例2:求并联电阻阻值问题 分析: 已知条件是什么? 要求的解是什么? 已知与结果之间的表达式怎么写? 并联后的阻值R 两电阻的阻值R1,R2 并联电阻阻值的倒数=各个支路上阻值的倒数之和 1、求两并联电阻的阻值 矩形框中应填入的语句为( ) R=1/R1+1/R2 1/R=1/R1+1/R2 C.R=(R1+R2)/R1*R2 D. R=R1*R2/(R1+R2) D Dim R1,R2,R as double R1=Val(InputBox(“输入R1的阻值”)) R2=Val(InputBox(“输入R2的阻值”)) R=R1*R2/(R1+R2) Print “并联后的阻值为”;R 输出在同一行可以在输出变量之间加“,”和“;”。加“,”两个输出变量之间间隔14个空格;加“;”两个输出变量之间没有空格,紧挨着输出。如果只写Print,后面不写任何输出变量,则输出空行。 课堂小结 解析算法的解题思路: 1)明确问题的前提条件 2)明确要求的解 3)寻找前提条件与结果之间的数学表达式 解析算法的算法结构有哪些? 输入 输出 处理 顺序 分支 循环 根据具体问题具体分析,解析算法没有固定的算法结构。 ① ② ③ 计算长方体体积的算法描述如下: ①输入长方体的长(z)、宽(w)、高(h) ②计算长方形体积v=z*w*h ③输出结果 ④结束 上述算法属于 ( ) A.枚举算法 B.排序算法 C.解析算法 D.递归算法 C 下列问题适合用解析算法求解的是 ( ) A.将十三张纸牌按从小到大进行排列 B.统计100内偶数的各位数字之和恰好为10的个数 C.计算一辆车行驶100公里的油耗 D.寻找本年级身高最高的同学 C A 3.出租车计价规则:3公里以内,10元;超出3公里每公里增加2元。假定公里数为x,金额为y。解决此问题的公式和流程图如下图所示: 流程图加框处部分的算法属于( ) A.解析算法 B.排序算法 C.枚举算法 D.递归算法 计算存期: X?(K-M)/(0.028*M) 开始 输入:存款额M 期望到期本息K 输出 Y 结束 存期取整:Y?大于等于 X的最小整数 注意其中的变量, 赋值表达式 银行储蓄问题 展开更多...... 收起↑ 资源预览