问题求解与程序设计

上传人:无*** 文档编号:242850638 上传时间:2024-09-08 格式:PPT 页数:66 大小:3.59MB
返回 下载 相关 举报
问题求解与程序设计_第1页
第1页 / 共66页
问题求解与程序设计_第2页
第2页 / 共66页
问题求解与程序设计_第3页
第3页 / 共66页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第,9,章 问题求解与程序设计,主要内容,9.1,计算机求解问题的过程,9.2,算法描述与评价,9.3,程序设计基础,9.1,计算机求解问题的过程,计算机如何解题?,分析问题(确定计算机做什么),建立模型(原始问题转化为数学模型或者模拟数学模型),设计算法(形式化的描述解决问题的途径和方法)。,编写程序(将算法翻译成计算机程序设计语言)。,调试测试(通过各种数据,改正程序中的错误)。,9.1,计算机求解问题的过程,写一篇文章,存盘,修改,发布,发电邮,编辑,字处理软件,9.1.1,分析问题:自然问题的逻辑建模,9.1,计算机求解问题的过程,(,1,)字处理软件:,MS-WORD,(,2,)存储格式:,doc,格式,用文件名标识,(,3,)封装:,封装为数据包,加报头,(,4,)发送:,数据包的网络传输,(,5,)到达目的地:,组装为,doc,文件,9.1.2,建立模型:逻辑问题的数学建模,9.1,计算机求解问题的过程,(,1,)文本:,转换为,ASCII,码,(,2,)存储方式:,顺序存储,(,3,)封装:,数据包加顺序码,(,4,)发送:,数据包路由算法,(,5,)装配:,排序算法,9.1.3,设计算法:数学问题的计算建模,9.1,计算机求解问题的过程,(,1,)选用适当的计算机高级语言,(,2,)选择适当的集成编程环境,编写代码,编译,链接,运行,9.1.4,编写程序:计算模型的编程实现,9.1,计算机求解问题的过程,上机调试、运行程序,得到运行结果。,对于运行结果要进行分析和测试。,如果不符合预期结果,要进行判断,找出问题出现的地方。,对程序进行修正,直到正确的结果。,9.1.5,调试测试:程序的运行和修正,主要内容,9.1,计算机求解问题的过程,9.2,算法描述与评价,9.3,程序设计基础,9.2,算法描述与评价,(,1,),如何对一个算法其进行描述呢?,(,2,)如何判断一个,算法的好坏?,(,3,)设计算法有何诀窍?,算法,是解决某个特定问题的一系列操作;,程序,是用设计语言对算法的实现。,9.2,算法描述与评价,有几种方法可以统计呢?,从前到后,或者从后到前报数;,每组报数,最后由一个同学累加;,每个同学计数为,1,,然后两两相加,.,这些方法都是算法,怎么描述呢?哪种比较好呢?,假如我们要对教室里的学生个数进行统计,.,9.2,算法描述与评价,算法描述,伪代码表示,流程图表示,程序代码表示,自然语言表示,文字、框图、代码,9.2.1,算法描述,9.2,算法描述与评价,1.,自然语言描述,-,教室里从前到后计数,步骤,自然语言表示,S1,设置存储单元,i,,并设置初值为,1,,给第一个同学,S2,如果没到最后一个同学,则继续执行,否则跳转到,S4,S3,给,i,的值加上,1,把,i,的值传递给下一个同学,跳转到,S2,S4,最后一个同学报出计数结果,程序结束。,9.2,算法描述与评价,1.,自然语言描述,-,1,到,N,的累加和,步骤,自然语言表示,S1,设置存储单元,N,,并要求用户输入,N,S2,设置存储单元,Sum,,并给,sum,设置初值为,0,S3,设置存储单元,i,,并设置初值为,1,S4,如果,i,比,N,小,则继续执行,否则跳转到,S6,S5,给,Sum,的值加上,i,给,i,的值加上,1,,跳转到,S4,S6,给用户输出,Sum,的值,程序结束。,9.2,算法描述与评价,2.,伪代码描述,-,1,到,N,的累加和,S1:,用户输入,N,;,S2: Sum=0,;,S3: i=1,;,S4:,如果,iN,,则继续执行,否则跳转到,S6,S5: Sum=,Sum,+ i,;,i=i+1,;跳转到,S4,S6:,输出,Sum,,程序结束。,9.2,算法描述与评价,3.,流程图描述,-,1,到,N,的累加和,9.2,算法描述与评价,4. VBA,代码描述,-,1,到,N,的累加和,Dim,N,As Integer,声明,N,个整数,N1,=,InputBox(,N,),输入,N1,的值,系统自动转换为字符,N,=,N1,将输入的字符,N1,转换为整数,N,i,= 1,设置,i,和,Sum,的初始值,Sum,= 0,反复计算,Sum,的和,9.2,算法描述与评价,Do,Sum,=,Sum,+,i,i,=,i,+ 1,Loop While,i,=,N ,反复计算直到结束,Str1,= ,Sum=, &,Sum,设置输出字符串,以,Sum=*,的形式,输出,Sum,的值,MsgBox,(,Str1,) ,用消息框的形式,输出计算结果,4. VBA,代码描述,-,1,到,N,的累加和,续,9.2,算法描述与评价,9.2.2,算法评价,算法的正确性,算法的可读性,算法的健壮性,算法的高效率和低存储量,主要内容,9.1,计算机求解问题的过程,9.2,算法描述与评价,9.3,程序设计基础,9.3,程序设计基础,(,1,)分析问题(确定计算机做什么),(,2,) 建立模型(将原始问题转化为数学模型或者模拟数学模型),(,3,)设计算法(形式化的描述解决问题的途径和方法)。,(,4,)编写程序(将算法翻译成计算机程序设计语言)。,(,5,)调试测试(通过各种数据,改正程序中的错误)。,9.3,程序设计基础,顺序结构,:,按时间先后顺序来执行语句;,选择结构,:,根据一定条件来决定下一步执行那个语句,;,循环结构,:,反复执行某些语句,直到结束循环的条件成立。,9.3.2,程序的三种基本结构,9.3,程序设计基础,顺序结构,:,按时间先后顺序来执行语句;,按顺序从第一步骤执行到最后步骤,每个步骤都执行一次,也只执行一次。,四季交替的顺序结构流程图,在,Word,里输入“,Hello,,,world,!”;,设置字体为“宋体”;,设置字号为“四号”;,设置颜色为“红色”;,将文本“加粗”;,将文本“居中”。,9.3,程序设计基础,选择结构,:,根据一定条件来决定下一步执行那个语句,;,根据天气情况决定是否秋游;根据身体状况决定学习生活;根据技术准备情况决定火箭发射时间;根据工程进度决定商品出厂时间与方式等。,奥运会开幕天气控制的的选择流程图如右图所示。,9.3,程序设计基础,循环结构,:,反复执行某些语句,直到结束循环的条件成立;,生活中反复轮回的事物也很常见。比如,年复一年,春夏秋冬;,课表周期从周一到、周日,下周再开始。,9.3,程序设计基础,编写代码:(选择适当的程序设计语言),根据流程图建立与修改源程序;,编译:(编译软件),源程序翻译为二进制目标代码;,链接或连接:(链接软件),将各模块相连接,产生可执行文件;,运行:(操作系统),运行可执行文件,9.3.3,程序的运行过程,集成环境,主要内容,9.1,计算机求解问题的过程,9.2,算法描述与评价,9.3,程序设计基础,9.3,程序设计基础,(,1,)分析问题(确定计算机做什么),(,2,) 建立模型(将原始问题转化为数学模型或者模拟数学模型),(,3,)设计算法(形式化的描述解决问题的途径和方法)。,(,4,)编写程序(将算法翻译成计算机程序设计语言)。,(,5,)调试测试(通过各种数据,改正程序中的错误)。,9.3,程序设计基础,VB,是,Microsoft,公司开发的可视化的面向对象的程序设计语言;,VBA,是新一代标准宏语言(宏是一种用来完成一系列操作的记录器),提供了交互式面向对象的程序设计方法。,VBA,是嵌入到,MS Office,中的可视化集成编程环境。,使用,VBA,可以在,Office,软件中录制宏,用于重复系列操作,大大提高办公效率。,9.3.4 Visual Basic for Application,简介,9.3,程序设计基础,设置,VBA,环境,安全性设置;,新建“宏”、为“宏”起名和录制“宏”;,进行需要的一系列操作,这时“宏”正在录制中;,停止“宏”的录制;,查看“宏”,可以看到,VBA,为我们自动生成的程序代码。,Sub,.EndSub,之间,为过程代码。,一次生成后,可以反复执行多次。,9.3.4 VBA,交互式开发步骤,9.3,程序设计基础,设置,VBA,环境,安全性设置;,9.3.4 VBA,交互式开发步骤,9.3,程序设计基础,设置,VBA,环境,安全性设置;,9.3.4 VBA,交互式开发步骤,9.3,程序设计基础,设置,VBA,环境,安全性设置;,新建“宏”、为“宏”起名和录制“宏”;,进行需要的一系列操作,这时“宏”正在录制中;,停止“宏”的录制;,查看“宏”,可以看到,VBA,为我们自动生成的程序代码。,Sub,.EndSub,之间,为过程代码。,一次生成后,可以反复执行多次。,9.3.4 VBA,交互式开发步骤,9.3,程序设计基础,2.,新建“宏”、为“宏”起名和录制“宏”;,9.3.4 VBA,交互式开发步骤,9.3,程序设计基础,2.,新建“宏”、为“宏”起名和录制“宏”;,9.3.4 VBA,交互式开发步骤,9.3,程序设计基础,设置,VBA,环境,安全性设置;,新建“宏”、为“宏”起名和录制“宏”;,进行需要的一系列操作,这时“宏”正在录制中;,停止“宏”的录制;,查看“宏”,可以看到,VBA,为我们自动生成的程序代码。,Sub,.EndSub,之间,为过程代码。,一次生成后,可以反复执行多次。,9.3.4 VBA,交互式开发步骤,9.3,程序设计基础,3.,进行需要的一系列操作,这时“宏”正在录制中;,9.3.4 VBA,交互式开发步骤,9.3,程序设计基础,设置,VBA,环境,安全性设置;,新建“宏”、为“宏”起名和录制“宏”;,进行需要的一系列操作,这时“宏”正在录制中;,停止“宏”的录制;,查看“宏”,可以看到,VBA,为我们自动生成的程序代码。,Sub,.EndSub,之间,为过程代码。,一次生成后,可以反复执行多次。,9.3.4 VBA,交互式开发步骤,9.3,程序设计基础,4.,需要的操作结束之后,停止“宏”的录制;,9.3.4 VBA,交互式开发步骤,9.3,程序设计基础,设置,VBA,环境,安全性设置;,新建“宏”、为“宏”起名和录制“宏”;,进行需要的一系列操作,这时“宏”正在录制中;,停止“宏”的录制;,查看“宏”,可以看到,VBA,为我们自动生成的程序代码。,Sub,.EndSub,之间,为过程代码。,一次生成后,可以反复执行多次。,9.3.4 VBA,交互式开发步骤,9.3,程序设计基础,5.,查看“宏”,可以看到,VBA,为我们自动生成的程序代码。,9.3.4 VBA,交互式开发步骤,9.3,程序设计基础,5.,查看“宏”,可以看到,VBA,为我们自动生成的程序代码。,9.3.4 VBA,交互式开发步骤,9.3,程序设计基础,5.,查看“宏”,可以看到,VBA,为我们自动生成的程序代码。,Sub,.EndSub,之间,为过程代码。,9.3.4 VBA,交互式开发步骤,9.3,程序设计基础,Sub Hello(),宏名为,Hello,,即事件名,Selection.TypeText Text:=,Hello,,,World,!, ,输入文字,Selection.WholeStory,选中,Selection.Font.Color =,wdColorRed,设置颜色,Selection.Font.Bold =,wdToggle,加粗,Selection.ParagraphFormat.Alignment =,wdAlignParagraphCente,r,居中,Selection.Font.Name = ,宋体,字体,Selection.Font.Size,= 16,字号,End Sub,事件结束,9.3.4 VBA,交互式开发,自动生成代码,主要内容,9.1,计算机求解问题的过程,9.2,算法描述与评价,9.3,程序设计基础,9.3,程序设计基础,在,word,中插入同一种规格的大量图片;,插入一张图片,设置其尺寸;再依次插入下一张图片,设置其尺寸,重复该过程,直到所有图片插入完成。,使用“宏”可以自动完成以上操作。,设置“宏”名为,“,“,InsertPic,”,,开始录制 ;, 插入第一张图片,设置其尺寸;, 停止录制“宏”;没有完成的循环部分代码自己输入。,9.3.4 VBA,交互式开发,自动生成代码,+,编码,9.3,程序设计基础,9.3.4 VBA,交互式开发,自动生成代码,+,编码,9.3,程序设计基础,9.3.4 VBA,交互式开发,自动生成代码,+,编码,9.3,程序设计基础,使用“宏”可以自动完成插入大量图片。,设置“宏”名为,“,“,InsertPic,”,,开始录制 ;, 插入第一张图片,设置其尺寸;, 停止录制“宏”;,查看宏已经自动生成的代码,没有完成的循环部分代码自己输入。,9.3.4 VBA,交互式开发,自动生成代码,+,编码,9.3,程序设计基础,找到,InsertPic,宏,可以看到系统自动生成的代码为:,Sub InsertPic(),Selection.InlineShapes.AddPicture FileName:=“C:pictures1.jpg” ,LinkToFile:=False, SaveWithDocument:=True,End Sub,9.3.4 VBA,交互式开发,自动生成代码,9.3,程序设计基础,红色字体为加入的新代码,主要是完成循环:,Sub InsertPic(),For i = 1 To 4 4,为图片的总个数,Selection.InlineShapes(i).AddPicture FileName,:=C:pictures & i & .jpg,_,LinkToFile:=False, SaveWithDocument:=True,设置图片长宽为,5,厘米,1,厘米,=28.35,磅,ActiveDocument.,InlineShapes(i),.Height =,4 * 28.35,ActiveDocument.,InlineShapes(i),.Width,= 3 * 28.35,Next i,End Sub,9.3.4 VBA,交互式开发,加入新的代码,9.3,程序设计基础,9.3.4 VBA,交互式开发,自动生成代码,+,编码,9.3,程序设计基础,在,“查看宏”,对话框里直接运行宏。,9.3.4 VBA,交互式开发,自动生成代码,+,编码,9.3,程序设计基础,将自己定义的宏设置成按钮。,9.3.4 VBA,交互式开发,自动生成代码,+,编码,9.3,程序设计基础,9.3.4 VBA,交互式开发,自动生成代码,+,编码,将自己定义的宏设置成按钮。,9.3,程序设计基础,9.3.4 VBA,交互式开发,自动生成代码,+,编码,将自己定义的宏设置成按钮。,主要内容,9.1,计算机求解问题的过程,9.2,算法描述与评价,9.3,程序设计基础,9.3,程序设计基础,在,Excel,中特殊显示不及格的学生。,数据准备。在,Excel 2007,的表格的第,B,列,,1-10,行输入学生的成绩,,0-100,之间;,创建新的宏,输入宏名“,ShowFailStu,”,;,在,Sub,:,EndSub,之间输入代码:,9.3.4 VBA,交互式开发,完全自己编码,9.3,程序设计基础,9.3.4 VBA,交互式开发,完全自己编码,9.3,程序设计基础,Sub ShowFailStu(),系统已自动生成,Dim i As Integer,For i = 1 To 10,循环从第,1,行反复运行到第,10,行,Sheets(1),表示第一个工作表,,Cells(i,1),表示,A,列,,i,行,If Sheets(1).Cells(i, 1).Value 60 Then,Sheets(1).Cells(i, 1).Select,Selection.Font.FontStyle = ,加粗,Selection.Font.ColorIndex = 3,3,表示红色,End If,Next,End Sub,事件结束,9.3.4 VBA,交互式开发,完全自己编码,9.3,程序设计基础,9.3.4 VBA,交互式开发,完全自己编码,9.3,程序设计基础,从身份证号码中提取性别,能提示用户输入身份证号码。,15,位的身份证号的编码规则为,dddddd yymmdd xx,p,;,18,位的身份证号的编码规则为,dddddd yyyymmdd xx,p,y,9.3.4 VBA,交互式开发,用户界面,9.3,程序设计基础,Sub ShowSexFromID,sid =,InputBox,(,请输入身份证号码:,) ,弹出一个输入对话框,i = Len(sid),If i 15 And i 18 Then,判断身份证号长度是否正确,MsgBox,身份证号码只能为,15,位或,18,位!,Exit Sub,End If,9.3.4 VBA,交互式开发,用户界面设计,9.3,程序设计基础,If i = 15 Then,长度为,15,位,s = Right(sid, 1) ,取最右侧的数字,Else ,长度为,18,度,s = Mid(sid, 17, 1) ,取倒数第,2,位数,End If,If Int(s / 2) = s / 2 Then ,为偶数,sex = ,女,Else,sex = ,男,End If,MsgBox,性别:, + sex,弹出一个消息对话框,给出结果,End Sub,9.3,程序设计基础,9.3.4 VBA,交互式开发,完全自己编码,要点小结,计算机求解的建模过程,算法的三种基本结构,算法设计的表达形式,常用的程序设计语言,VBA,编写的简单程序,举例,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!