高一信息科技算法与程序设计复习.doc
《高一信息科技算法与程序设计复习.doc》由会员分享,可在线阅读,更多相关《高一信息科技算法与程序设计复习.doc(19页珍藏版)》请在咨信网上搜索。
信息科技算法与程序设计复习 一、常见的运算 运算符的优先级别: 1. 先算术,后关系,再逻辑,括号改变顺序 2. 算术运算:先乘幂,后取负,再乘除,整除余,末加减 3. 逻辑运算:先非,后与,再或 常用函数:取整函数int()、求算术平方根函数sqr()、求绝对值函数abs() 类别 运算符 运算结果 优先级 算术运算符 +、-、*(乘)、/(除)、^(乘方)、mod(求余) 数值 关系运算符 >、=、<、>=、<=、<> True(T,1)或False(F,0) 逻辑运算符 not、and、or True(T,1)或False(F,0) not>and>or 逻辑运算规则 A B A and B A or B C Not C T T T T T F T F F T F T F T F T F F F F 习题: (1)1<5 and 4>3 or not -1=1 T (2)"a">"b" or 5<6 and 8>=2*4 T (3)假设变量a的值是1,变量b的值是2,变量c的值是3,计算下列表达式的值。 a^3+b*c 7 c mod b +a 2 int(c/b) >b-a F a<b and (c-a)/2>0 T a+b>c or b+c>a and c+a>b T 二、算法的一些概念 1.用计算机解决问题的步骤:分析问题→设计算法→编写程序→运行程序 2. 计算机程序是指示计算机如何去解决问题或完成任务的一组可执行的指令。指令是依次逐条执行的。程序的组成部分:指令部分、数据部分 3. 内存中每个存储单元都有唯一的编号,成为地址。 4. 算法的定义:为解决某一问题设计的确定的有限的步骤。 5.算法的描述:自然语言、流程图描述、伪代码。 6. 算法的特点:有穷性、确定性、可行性、有0个或多个输入(可以没有输入)、有一个或多个输出(至少有一个输出) 7. 算法的流程图表示: 8.常量和变量: 常量:在程序执行过程中事先设置、其值不发生改变的量。 变量:在程序执行过程中,用来存放数据的存储单元。读取变量的值不会改变其存放 的值,但当有新的数据存放进去会覆盖其原来存放的值。 1)每个变量都有一个名字作为标记,不同程序设计语言对变量的命名规则不相同。 2)从变量中读取数据后,变量的值不发生改变。 3)变量的赋值:a = 2 或 a ← 2 4)变量赋值的特点:取之不尽,一冲就丢 5)变量的命名规则:以字母、数字、下划线组成,必须以字母开头。 常用变量的类型:整数型(Integer)、长整型(Long)、单精度实数型(Single)、双精度实数型(Double)、字符串型(String) 9. 计数器:在算法执行过程中,用来记录某种事件发生次数的变量。 1)计数器的初值通常为0,i = 0 2)在循环体中的计数语句,如:i = i + 1 10. 累加器:在算法执行过程中,用来生成并存储数据累加和的变量。 1)累加器的初值通常为0 , s = 0 2)在循环体中的累加语句,如:s = s + a 11. 累乘器:在算法执行过程中,用来生成并存储数据累乘积的变量。 1)累乘器的初值通常为1, s = 1 2)在循环体中的累乘语句,如:s = s * a 10.算法的三种基本结构:顺序结构、分支结构、循环结构 三、算法基本模式 (一)顺序结构(顺序模式) 顺序结构按照自上而下的顺序把每个步骤执行一次。 练习1:输入一个圆的半径,求圆的周长和面积,并输出结果。 代码: Dim r As Single r = InputBox("输入半径") s = 3.14 * r ^ 2 c = 2 * 3.14 * r Print "周长"; c Print "面积"; s 练习2:输入一个两位数,交换个位和十位的值,输出结果。 代码: x = InputBox("请输入") a = Int(x / 10) b = x Mod 10 y = 10 * b + a Print y 练习3:输入两个变量的值,将两个变量中的值互相交换并输出结果。 代码: Dim a As Single, Dim b As Single a = InputBox("第一个数") b = InputBox("第二个数") c = a a = b b = c Print a; b (二)分支结构(选择模式) 分支结构根据条件决定执行步骤1或步骤2中的算法步骤,判断框有一个入口两个出口,分支结构有一个入口,一个出口。 单分支语句格式 ①If <条件> Then <步骤1的语句> ②If <条件> Then <步骤1的语句块> End If 双分支语句格式 If <条件> Then <步骤1的语句块> Else <步骤2的语句块> End If 练习1:输入两个数,比较它们的大小,输出较大的数。 代码: Dim a As Single Dim b As Single a = InputBox("请输入") b = InputBox("请输入") If a > b Then Print a Else Print b End If 练习2:输入一个三位数,判断它是否是水仙花数(三位数各个数位上的立方和等于它本身)。 代码: Dim n As Single n = InputBox("输入一个三位数") a = Int(n / 100) b = Int(n / 10) - a * 10 c = n Mod 10 If a ^ 3 + b ^ 3 + c ^ 3 = n Then Print "是水仙花数" Else Print "不是水仙花数" End If 练习3:输入一个数,求它的绝对值,并输出结果。 代码: Dim a As Single a = InputBox("请输入") If a < 0 Then a = -a End If Print a 练习4:阶梯电价 第一档 第二档 第三档 方案1 每月用电 <110度 110度-210度 >210度 电价 维持现有电价 超出部分上涨不低于5分钱 超出部分每度涨价不低于0.20元 Dim x As Single x = InputBox("输入用电") If x < 110 Then y = 0.61 * x ElseIf x <= 210 Then y = 0.61 * 110 + 0.66 * (x - 110) Else y = 0.61 * 110 + 0.66 * 100 + 0.81 * (x - 210) End If Print "电费"; y 练习5:购买地铁车票:乘1-4站3元/位,5-9站4元/位,9站以上5元/位,输入站数和人数,输出应付款。 Dim a,b,m as integer a = inputbox(“请输入站台数:”) b = inputbox(“请输入人数:”) If a<=4 then m=3*b ElseIf a<=9 then m=4*b Else m=5*b End If Print m 练习6:长江遂桥货车通行费收费标准(载重用w 表示,收费用m表示) Dim w As Single w = InputBox("输入载重") If w <= 2 Then m = 60 End If If w > 2 And w <= 5 Then m = 95 End If If w > 5 And w <= 10 Then m = 105 End If If w > 10 And w <= 15 Then m = 130 End If If w > 15 Then m = 145 End If Print "应付款", m (三)循环结构(重复结构) 当循环的一般形式 直到循环的一般形式 当遇到需要重复执行的操作时,可以用循环结构,循环结构有一个入口,一个出口。 Do while 条件 循环体语句 Loop For 循环变量=初值 to 终值 步长 循环体语句 Next 循环变量 Do 循环体语句 Loop while 条件 当循环和直到循环的区别:当循环的循环体可能一次也不执行,直到循环的循环体至少执行一次。 1.输出系列问题 n = 0 Do While n < 5 Print "*" n = n + 1 Loop 练习1:输出5个* 练习2:输出1,2,3,4,5 方法一:用次数来控制循环 方法二:用输出的数字来控制循环 a = 1 Do While a < =5 Print a a = a + 1 Loop 练习3:输出21,22,23,24,25的值 方法一:把a当成整个数 方法二:把a当指数 2.求和系列问题 练习1:求1+2+3+4+5的和 练习2:求1+3+5+7+9的和 练习3:求21+22+23+24+25的和 练习4: 求1×2+2×3+3×4+4×5+5×6的和。 练习5:求1+2+3+……+k的和,其中k由键盘输入。 练习6:求1*2*3*4*5的积 练习7:求1+2+3+……加到第几项和超过5? 方法一:用i来计算项数 方法二 练习8:求输入的5个数的平均值(如70,60,80,50,90) Dim a As Single s = 0 n = 0 Do While n < 5 a = InputBox("输入数据") s = s + a n = n + 1 Loop Print s / 5 方法一:不用数组 方法二:用数组 练习9:输入若干个数的和,输入-1时结束。(如输入60,50,40,-1)(标志法) 3.循环结构中嵌套分支结构 练习2:求5个数的最大值,并输出最大值的位置。 练习3:求5个数的最小值,并输出最小值的位置。 练习4:求输入的5个数中正数的和 4.直到循环 练习1:输出5个* n = 0 Do Print "*" n = n + 1 Loop while n >= 5 练习2:求1+2+4+7+11的和 s = 0 a = 1 n = 1 Do s = s + a a = a + n n = n + 1 Loop while n > 5 Print s 5.数组:数组是一种特殊的变量,它在内存中的位置是连续的,用于存储一批类型、作用相同的数据。 数组元素的下标可以是常量也可以是变量,也可以是一个表达式,可以从0开始,数组元素可以参与运算,和普通的变量一样。 Dim d(10) As Single n = 1 Do While n <= 10 a(n) = InputBox("输入") n = n + 1 Loop n = 10 Do While n >= 1 Print a(n) n = n - 1 Loop 练习1:输入10个数,再将其逆序输出。 算法实例复习 一、解析法 1.解析法概念:根据题目中给出的已知条件,找出已知条件与要求的结果之间的关系的数学表达式,并通过计算表达式来实现问题求解的方法。 2.解析法算法实例 (1)输入直角坐标系中两点坐标,计算两点间距离,并输出结果。 Dim x1 As Integer, y1 As Integer, Dim x2 As Integer, y2 As Integer x1 = InputBox("x1:") y1 = InputBox("y1:") x2 = InputBox("x2:") y2 = InputBox("y2:") d = Sqr((x1 - x2) ^ 2 + (y1 - y2) ^ 2) print d Print "d="; d (2)输入圆半径,计算圆面积和周长,并输出结果。 Dim r As Integer Dim s As Single, c As Single r = InputBox("请输入半径值:") s = 3.14 * r * r c = 2 * 3.14 * r Print "圆面积为"; s Print "圆周长为"; c (3)输入人民币金额,计算兑换后的美元金额并输出。(假定汇率为6.83) Dim rmb As Integer Dim usd As Single rmb = InputBox("请输入人民币金额:") usd = rmb / 6.83 Print "可以兑换美元金额为"; usd 二、枚举法 1. 枚举算法的概念 列出各种可能的情况并逐一进行检验,根据检验的结果执行相应的操作。 “枚”就是一个一个;“举”就是列举。核心:不遗漏不重复。枚举算法充分利用了计算机“运行速度快、不知疲倦”的优势。 2.枚举算法的结构特点 l 列举——由循环结构实现 l 检验——由分支结构实现 因此,枚举算法的一般结构是:循环结构中嵌套分支结构。 3.枚举算法的设计步骤 l 确定列举的范围——不能随意扩大和缩小范围,否则会造成重复或漏解。 l 明确检验的条件——根据检验的对象来设定条件,以及检验后所执行的相关操作。 l 确定循环控制的方式和列举的方式——借助循环变量的变化来列举。 4.枚举算法实例 通过输入的数据作为检验的对象。 (1)输入10个数,分别统计正数和负数的个数 (2)输入5个成绩,统计其中100分的人数 这两个问题也采用了枚举算法的思想,从结构上看,都是循环结构嵌套分支结构。所检验的对象是通过键盘输入的数据。 Dim x As Single Dim i, n,m As Integer i = 1 n = 0 m=0 Do While i <= 10 x = InputBox("请输入一个数:") If x>0 Then n = n + 1 ElseIf x<0 Then m=m+1 End If i = i + 1 Loop Print n,m Dim mark As Single Dim i, n As Integer i = 1 n = 0 Do While i <= 5 mark = InputBox("请输入成绩:") If mark = 100 Then n = n + 1 End If i = i + 1 Loop Print n 通过循环变量的变化来作为检验的对象。 以下6个实例是不需要输入语句的,因为检验的对象正好包含循环变量的变化。 (1)打印出1-1000以内能同时被7和11整除的自然数。 (变量 n 表示这个自然数,列举范围从1—1000) Dim n As Integer n = 1 Do While n <= 1000 If n Mod 7 = 0 And n Mod 11 = 0 Then Print n End If n = n + 1 Loop (2)找水仙花数:一个三位数,各个位置上的数字的立方和等于该数本身 (变量 n 表示这个三位数,列举范围从100—999) Dim n As Integer n = 100 Do While n <= 999 a = Int(n / 100) b = (n - 100 * a) \ 10 c = n - 100 * a - 10 * b If a ^ 3 + b ^ 3 + c ^ 3 = n Then Print n End If n = n + 1 Loop (3)鸡兔同笼:20只头,56只脚,问鸡、兔各有几只? (变量 x 表示鸡的个数,列举范围从1—20) Dim x As Integer x = 1 Do While x <= 19 If 2 * x + (20 - x) * 4 = 56 Then Print "鸡有:"; x, "兔有:"; 20 - x End If x = x + 1 Loop (4)涂抹单据:一张单据上的5位数号码,千位和百位数字已经模糊不清 “1XX47” ,但这个5位数是57或67的倍数。 (变量 x 表示这个两位数,列举范围从0—99) Dim n As Intege, x As Integer x = 0 Do While x <= 99 If (10047 + 100 * x) Mod 57 = 0 Or (10047 + 100 * x) Mod 67 = 0 Then Print x End If x = x + 1 Loop (5)包装600个变形金刚,小盒每盒12个,大盒每盒15个。盒数都不能为0。输出所有可能的包装方案。 (变量 s 表示小盒子的数量,列举范围从1—50,不包括50) Dim s As Integer s = 1 Do While s < 50 If (600 - 12 * s) Mod 15 = 0 Then Print "小盒:"; s, "大盒:"; (600 - 12 * s) / 15 End If s = s + 1 Loop (6)等式成立:34*8□56 = 43*65□8 使等式成立的数字是什么? (变量 n表示这个数,列举的范围从0—9) Dim x As Integer n = 0 Do While n <= 9 If 34 * (8056 + 100 * n) = 43 * (6508 + 10 * n) Then Print "使等式成立的数字是:"; n End If n = n + 1 Loop 三、数组 数组是一种特殊的变量,它在内存中的位置是连续的,利用数组中各个元素下标的连续性的特点,可以采用循环结构对各个元素进行赋值或运算。 【实例】数组的输入与逆序输出 Dim i As Integer Dim d(1 To 5) As Single i = 1 Do While i <= 5 d( i )= InputBox("输入一个数:") i = i + 1 Loop i = 5 Do While i >= 1 Print d( i ) i = i - 1 Loop 四、查找 (1)顺序查找的算法思想:从数组的第一个元素开始,依次往下查找,若找到,输出该数组元素的下标值并结束;若找遍所有元素没有找到,则输出0,并结束。 (2)对分查找的算法思想:先取数组中间位置上的元素和关键字比较,若不相等则缩小近一半的查找范围,在剩下的元素中再取中间位置上的元素和关键字比较,若不相等则缩小近一半的查找范围,继续查找,以此类推,若找到,输出该数组元素的下标值并结束;若找遍所有元素没有找到,则输出0,并结束。由于对分查找每查找一次,查找范围就缩小一半,因此对分查找的效率要远高于顺序查找,但它的前提是:待查找的数据必须是有序的。 例如:顺序查找6288 例如:对分查找22 五、排序 1、冒泡排序: l 从最下面一个元素起,自下而上地比较相邻两个元素中的数据,将较小的数值交换到上面一个元素。重复这一过程,直到处理完最后两个元素中的数据,称为一遍加工。此时,最小的数据已经上升到第一个元素的位置。 l 然后对余下的i-1个元素重复上述过程。 l 由于每一遍加工都是将最小的元素像气泡一样浮至顶端,故称为冒泡排序。 例如:有4个数据:18,15,2,9,按照从小到大的顺序排列,过程如下: 原始数据 18 15 2 9 第一遍 2 18 15 9 第二遍 2 9 18 15 第三遍 2 9 15 18 i = 1 Do While i <= 3 j = 4 Do While j > i If d(j) < d(j - 1) Then t = d(j) d(j) = d(j - 1) d(j - 1) = t End If j = j - 1 Loop i = i + 1 Loop 分支结构的实现语句 单分支: if 条件 then 语句组 end if 双分支: if 条件 then 语句组A else 语句组B end if 分支嵌套: if 条件 then 语句组A elseIf 语句组B else 语句组C end if 循环结构的实现语句 当型循环: do while 循环条件 循环体语句组 loop 直到型循环: do 循环体语句组 loop while 循环条件 计数循环for循环语句代码 for 循环变量=初值 to 终值 step 步长 循环体语句 next 循环变量- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息 科技 算法 程序设计 复习
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文