《算法与程序设计课件.ppt》由会员分享,可在线阅读,更多相关《算法与程序设计课件.ppt(84页珍藏版)》请在第壹文秘上搜索。
1、第一章第一章 揭开计算机解决问题的面纱揭开计算机解决问题的面纱揭开揭开计算机解决问题的面纱计算机解决问题的面纱第一节第一节 算法算法一、算法1.概念:计算机求解某一问题的方法,是能被机械的执行的指令的有穷集合。l实践两个整数m=112和n=64,利用辗转相除法,求它们的最大公约数1、112 除以 64,余数为2、 除以 余数为3、 除以 余数为4、112和64的最大公约数为4864 48 1648 16016二、算法的基本特征 输入:一个算法有0个或多个输入,以刻画运算对象的初始情况。 确定性:算法的每一个步骤必须有确切的定义。 有穷性:一个算法必须在有穷步骤之后结束。 输出:算法有1个或多个
2、输出。 能行性:算法中有待执行的运算和操作必须是相当基本的。揭开揭开计算机解决问题的面纱计算机解决问题的面纱第二节第二节 算法的描述算法的描述一、算法的描述概念:人的思想要用语言来表达。算法是人求解问题的思想方法,是对解题过程的精确描述,同样也需要用语言来表示。表示算法的语言主要有自然语言、流程图和伪代码。二、流程图 1、图形及功能:开始/结束 表示算法的开始或结束输入/输出 表示算法中变量的输入输出处理 表示算法中变量的计算与赋值判断 表示算法中的条件判断流程线 表示算法中的流向 图形图形 名称名称 功能功能 问题:鸡兔同笼问题。一个笼子里有鸡和兔,现在只知道里面一共有35个头,94只脚,鸡
3、和兔各有多少只?试设计一个求解的算法,并用自然语言描述出来。分析问题:设鸡数为x,兔数为y,已知笼子的头数是a,脚数是b,列方程:x+y=a,2x+4y=b:解得:x=2a-b/2,y=b/2-a算法:算法:1、输入、输入a和和b的值;的值;2、求、求x;3、求、求y;4、输出、输出x,y的值;的值;5、结束。、结束。二、流程图 2、流程图示例(鸡兔同笼):开始结束求x=2a-b/2输出x,y的值输入a和b的值求y=b/2-a二、流程图 3、练习:已知圆的半径r=6,试着自己动手画出求面积s的流程图。开始结束r=6S=3.14*r*r输出s的值二、流程图 2、流程图示例(鸡兔同笼):开始结束求
4、x=2a-b/2输出x,y的值输入a和b的值求y=b/2-a程序:程序:Private Sub Command1_Click()a = InputBox(a=, 输入头数输入头数)b = InputBox(b=, 输入脚数输入脚数)x = 2 * a - b / 2y = b / 2 - aPrint 鸡数鸡数x=; x, 兔数兔数y=; yEnd Sub第三节第三节 程序与程序设计语言程序与程序设计语言揭开揭开计算机解决问题的面纱计算机解决问题的面纱1、程序设计语言1、机器语言:2、汇编语言:3、高级语言:VB指令序号机器语言汇编语言高级语言功能110110000Mov al,9Print
5、9+8把数9放到累加器al中00001001200000100Add al,9把al中的内容与另一数相加,结果放到al中000010002、VB简介1、工程2、VB简介2、窗体与事件窗体的Activate()事件2、VB简介3、程序的运行2、VB简介4、VB文件的保存及文件格式 文件格式: .frm .vbp2、VB简介4、VB的3种常用模式 设计模式 运行模式 中断模式第二章第二章 程序设计基础程序设计基础第一节第一节 VB语言语言程序设计基础程序设计基础一、VB语言概述Private sub command1_click() const pi as single=3.14 dim r as
6、 single , s as single r=inputbox(“r=”,”输入半径”) s=pi*r*r print “圆的面积s=”;sendsub 下面是一个“求半径为r的圆的面积”,请注意观察程序的组成结构,思考一下问题:1、程序有多少行,每一行的作用?2、如按语句作用区分,这个程序包含及部分? 定义事件过程(自带) 说明常量pi(省略) 说明变量r,s (省略) 输入r的值 计算圆的面积 把计算结果输出到窗体上 过程结束(自带)一、VB语言概述VB程序一般包含如下部分:1、数据类型说明部分2、数据输入部分3、数据处理部分4、数据输出部分一、VB语言概述1、常用数据类型数据类型类型说
7、明符 取值范围整形integer-32768到32767单精度Single实数日期型Date日期布尔型BooleanTrue或flase一、VB语言概述2、常量:指在运行过程中始终保持不变的常数、字符串等。 如上程序段中的3.14、“r=”、“输入半径”等。一、VB语言概述3、变量:在程序处理数据时,对于输入的数据、参加运算的数据、运行结果等临时数据,通常把它们暂时存储在计算机的内存中。变量就是命名的内存单元位置。5a变量名称变量值存储单元一、VB语言概述4、运算符算术运算符+-*/Mod含义加号减号乘号除号乘方整除取余数逻辑运算符=0X2+12 x0X2+12 x0Y=5+x是否X0 the
8、n y=5+xIf x0X2+12 x0 then y=5+x else y=x2+12print y 分支IF语句应用身体质量指数(BMI) 是衡量身体健康与否的一种标准,一般认为身体质量指数(BMI)在18 至25 之间是健康的。计算BMI 的公式:体重(w)除以身高(h)的平方,体重单位为千克,身高单位为米。 1821.922-24.92529.9一般体重理想体重超重分支IF语句应用1、判断闰年问题 分析: 输入年份n n能被400整除或n不能被100整除且能被4整除闰年 分支IF语句应用2、编写一元二次方程的求解,要求判断方程是否有根,如没有则给出相应提示信息。 分析: ax2+bx+
9、c 输入系数a、b、c b2-4ac 大于0 输出两个根 小于0 输出无实根 广东汕头华侨中学技术组广东汕头华侨中学技术组2、编写一元二次方程的求解,要求判断方程是否有根,如没有则给出相应提示信息。 a=_b=_c=_d= _if _ then x1=_ x2=(-b-sqr(d))/(2*a) print “x1=”;x1,”x2=”;x2else print “无实根”endif 多重选择语句引例多重选择语句的格式简单应用多重选择语句的执行过程多重选择语句1821.922-24.92529.9一般体重理想体重超重 If bmi18 and bmi22 and bmi25 and bmi29
10、.9多重选择语句1821.922-24.92529.9一般体重理想体重超重W=inputbox(“输入体重”)H=inputbox(“输入身高”) Bmi=w/h2select case bmi case 18 to 21.9 print “一般体重” case 22 to 24.9 print “理想体重” case 25 to 29.9 print “超重”End select请你修改左边的程序,把身体质量指数小于18和大于29.9的情况也用多重选择语句表示出来比较if语句和多重选择语句区别。提示可读性和效率(判断次数)第三节第三节 循环结构程序设计循环结构程序设计程序设计基础程序设计基础
11、循环语句请单步执行下面的程序段并回答以下问题:For =1 to 5 print “*”Next ii1、语句print “*” 执行了多少次?2、你认为哪个变量决定循环的次数?循环语句循环语句格式:For 循环变量 =初值 to 终值 step 步长 语句组Next 循环变量 1.循环变量为数值型变量。2.初值、终值、步长均为数值型变量。3.当初值小于终值时,步长应为正数;当初值大于终值时,步长值为负数;如果省略step,则步长为1.4.语句组可以是一个或多个语句,叫循环体。5.循环体执行的次数为(终值-初值)/步长+1的整数部分。For 循环变量 =初值 to 终值 step 步长 语句组
12、Next 循环变量 循环变量=初值循环变量超过终值否执行循环体循环变量增加一个步长值是循环变量循环变量 =初值初值语句组语句组Next 循环变量循环变量终值终值初值初值 to 终值终值循环语句练习:For a=1 to 10 print aNext aFor a=10 to 1 step -1 a=a-1 print aNext a121097531循环语句练习:For a=1 to 10 step 2 print aNext aprint a1357911循环语句简单应用累加:S=0For a=1 to 10 s=s+aNext aprint s551+2+3+9+10循环语句简单应用累乘:
13、S=1For a=1 to 10 s=s*aNext aprint s36288001*2*3*9*10循环语句简单应用练习:暑假里同学帮助计算居民楼里每户的电费,楼内共有10户居民,每度电0.7元,编一个程序,输入每一户的用电量电量,然后计算应缴纳的电费,再输入下一个用户的电量,计算应缴纳的电费电费,一直重复下去直到全部用户计算完毕。分析:一户电费的计算 设n表示电量,输入n的值 设f表示电费,f=0.7*n 输出f 重复以上三步10次即可 循环语句简单应用练习:暑假里同学帮助计算居民楼里每户的电费,楼内共有10户居民,每度电0.7元,编一个程序,输入每一户的用电量电量,然后计算应缴纳的电费
14、,再输入下一个用户的电量,计算应缴纳的电费电费,一直重复下去直到全部用户计算完毕。For i=1 to 10 n=inputbox(“输入电量”) f=0.7*n print “该户电费为”;fNext i 双重循环若在一个循环结构中又包含着另一个循环结构,则称双重循环结构。For i=1 to 5 for j=1 to 3 next j Next i For i=1 to 5 for j=1 to 3 next i Next j For/next不能不能交叉交叉双重循环练习:For i=4 to 5 for j=3 to 3 print i,j next jNext i For i=3 to 5 for j=1 to 10 if ji then print i,j next j Next i 双重循环练习:双重循环编程输出九九乘法表: 陈婷今年17岁了,她的生日正好是3月12日植树节。今年植树节老师带同学们到公园里去植树。陈婷很高兴,一个人就栽了3棵树,过来一个有意义的生日。她想,如果从明年开始每年过生日的时候都去植树,并且一年比一年多栽一棵树,这样下去,到多少岁才能累计种到或超过100棵树?