您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 1第一章如何用计算机解决问题课件
揭开计算机解决问题的神秘面纱第一节计算机解决问题的过程什么是程序?计算机的任何动作都是在执行人给它的指令。人们针对某一需要而为计算机编制的指令序列称为程序。指示计算机如何去解决问题或完成任务的一组可执行的指令。用于书写计算机程序的语言称为程序设计语言。如vb、c、c++、pascal等。机器语言是一串由“0”和“1”构成的二进制代码。汇编语言实际是一种符号化的机器语言,它采用英文助记符代替机器指令,比机器语言容易识别和记忆,从而提高了程序的可读性。什么是程序设计语言什么是软件?程序、数据连同有关的资料文档称为软件。高级语言是更接近于自然语言(英语)和数学语言的编程语言,它并不特指某一种语言,也不依赖于特定的计算机系统,因而更容易掌握和使用,通用性也更好。比较流行的高级语言有BASIC、C/C++、FORTRAN、PASCAL、COBOL、JAVA等。系统软件是在计算机应用中,为了实现系统功能、充分利用资源、提高使用效率、便于使用而设计的与计算机系统资源有关的软件。操作系统是重要的系统软件。应用软件是为用户应用目的而开发的软件。程序设计语言从机器语言到高级语言的抽象,带来的主要好处是:1.高级语言接近算法语言,易学、易掌握,一般工程技术人员只要较短时间的培训就可以胜任程序员的工作。2.高级语言为程序员提供了结构化程序设计的环境和工具,使得设计出来的程序可读性好,可维护性强,可靠性高。3.高级语言远离机器语言,与具体的计算机硬件关系不大,因而所写出来的程序可移植性好,重用率高。4.由于把繁杂琐碎的事务交给了编译程序去做,所以自动化程度高,开发周期短,且程序员得到解脱,可以集中时间和精力去从事对于他们来说更为重要的创造性劳动,以提高程序的质量。一、单项选择题1.利用计算机解决问题的过程中,“找出已知和未知,明确它们之间的关系,列出数学表达式”属于以下哪一个步骤()。A.设计算法B.分析问题C.编写程序D.调试运行程序B阅读教材2——7页,思考下列问题2.要进行元旦晚会比赛,学校请你设计一个能够对元旦晚会节目分数自动排序的软件,你接到任务后,准备开始设计此软件,比较好的方法和步骤是?()。A.设计算法,编写程序,提出问题,调试程序B.分析问题,编写程序,设计算法,调试程序C.分析问题,设计算法,编写程序,调试程序D.设计算法,提出问题,编写程序,调试程序C3.程序编好以后,计算机无法检查出来的错误是?()。A.编译错误B.执行错误C.逻辑错误D.语法错误C一、人解决问题的一般过程1、观察、分析问题2、寻找解题的方法4、验证结果3、人工计算用公式法求解,确定各项系数。解一元二次方程x2+3x+2=0按照一定的方法和步骤计算检验结果的准确性二、用计算机解决问题的一般过程第一步:需求分析。(确定计算机要“做什么”)求一元二次方程x2+3x+2=0的两个实数根。第二步:设计算法。(确定计算机要“如何做”)方程的系数是常量,分别用a,b,c表示,可运用数学上现成的求根公式求方程的根。①先求出d=b2-4ac;(求根公式中需用开方运算的那部分)②再用求根公式算出x1,x2的值。(x1,x2=?)③输出x1,x2.第三步:编写程序。(翻译——将算法编写成计算机程序)Pascal程序:programEx16;Consta=1;{常量说明}b=3;c=2;{a,b,c表示方程系数}Vard:integer;{d为整型变量}X1,X2:Real;{X1,X2为实型变量}Begind:=b*b-4*a*c;x1:=(-b+sqrt(d))/(2*a);{求方程的根}x2:=(-b-sqrt(d))/(2*a);Writeln('X1=',X1,'':6,'X2=',X2);{输出结果}Readln{等待输入一个回车键}End.本程序中的a,b,c均为常量;变量d是整数类型,而变量x1,x2则是实数类型,因为运算式中的Sqrt(d)开平方运算和(/)除法运算使结果为实数。Sqrt()是开平方函数,是Pascal系统的一个标准函数。第四步:调试与维护。(运行程序,验证结果)总结:计算机解决问题流程图第二节算法描述与设计实例:“打电话”的过程。拿起听筒拨号打不通通了把听筒放下通话结束把听筒放下等会儿再拨无人接听把听筒放下等会儿再拨什么是算法?算法是解决问题的方法和步骤。通俗点说,就是计算机解题的过程。在这个过程中,无论是形成解题思路还是编写程序,都是在实施某种算法。前者是推理实现的算法,后者是操作实现的算法。著名的计算机科学家尼克劳斯•沃思指出:算法是程序设计的“灵魂”。算法+数据结构=程序算法独立于任何具体的程序设计语言,一个算法可以用多种程序设计语言来实现。算法的特征:算法要有一个清晰的起始步,表示处理问题的起点,且每一个步骤只能有一个确定的后继步骤(1算法的确定性),从而组成一个步骤的有限序列(2算法的有穷性);要有一个终止步(序列的终止)表示问题得到解决或不能得到解决;每条规则必须是确定的、可行的(3算法的可行性)、不能存在二义性。算法总是对数据进行加工处理,因此,算法的执行过程中通常要有数据4输入(0个或多个)和数据5输出(至少一个)的步骤。描述算法的方法1、自然语言:即用人们日常使用的语言和数学语言描述的算法。2、流程图:即用一组标准的图形符号来描述算法。3、伪代码:伪代码是一种非正式代码,常用自然语言、数学语言和符号来描述算法的操作步骤。1、用自然语言描述算法用自然语言描述算法,就是把算法的各个步骤,依次用人们所熟悉的日常会话的语言表示出来。例:求出两个数的和。计算机处理的具体步骤为:⑴输入两个加数num1、num2;⑵将两数相加并将求出的和赋给某一个变量sum;⑶显示运算结果sum。2、用流程图描述算法用流程图描述算法,就是用含义确切的图形符号描述算法。例:求出两个数的和。实例分析韩信点兵算法:从1开始,取出一个自然数判断它被3、5、7整除后的余数是否为2、3、2,如果是,则这个数即是所求的数,求解结束。否则,用下一个数再试,直到找到这个数为止。(假设人数N100)相传我国汉代有位大将军叫韩信,他在点兵时让士兵分别从1~3、1~5、1~7报数,然后报告各次的余数,这样,就知道总共有多少士兵。然后韩信就凭这些数,可以求得这队士兵的总人数。自然语言描述1、将N的初始值赋为12、如果N100并且N被3、5、7整除后余数为2、3、2,则输出N的值,转入第4步3、将N的值加1,转到第2步4、结束程序流程图描述开始N被3、5、7整除余数为2、3、2N=N+1结束NYN=1输出N值(N100)YN用伪代码描述算法ForI=1toNifn能被3、5、7整除余数为2、3、2then输出nexitforendifNextI(1)表示条件判断:If条件Then执行语句一Else执行语句二EndIf(2)表示循环处理:DoWhile条件循环处理语句Loop完整的源程序PrivateSubCommand1_Click()'算法:使用穷举法确立一个范围[1,100]然后从自然数1开始尝试,找到满足条件的数即输出DimiAsIntegerFori=1To100IfiMod3=2AndiMod5=3AndiMod7=2ThenMsgBox答案是:&iEndIfNextEndSub例:判断一个四位数的年份是否为闰年。算法分析:我们知道,如果2月是28天,则这一年是平年;如果是29天,则这一年是闰年。判断闰年的条件是:如果该年份能被4整除但不能被100整除,或者能被400整除,则该年为闰年。算法描述(伪代码):输入年份→yIFy能被4整除THENIFy不能被100整除THEN输出“是闰年”ELSEIFy能被400整除THEN输出“是闰年”ELSE输出“不是闰年”ENDIFENDIFELSE输出“不是闰年”ENDIF课堂练习:分别用自然语言和流程图描述求解1、所有水仙花数的问题。水仙花数是指一个三位数,它的各位数的立方和正好等于该数本身。如153=13+53+33。水仙花数自然语言描述1、将N的初始值赋为1002、如果N的个位数的三次方加上N的十位数的三次方再加上N的百位数的三次方等于N,输出N值,否则转入第3步3、如果N=999,将N的值加1,转到第2步,否则转入第4步4、输出运算结果,结束程序水仙花数流程图描述开始N=N+1结束NYN的个位数的三次方+N的十位数的三次方+N的百位数的三次方=N?N=100输出N值N=999YN用伪代码描述水仙花数算法ForN=100to999ifN的个位数的三次方+N的十位数的三次方+N的百位数的三次方=Nthen输出nendifnext1PrivateSubCommand1_Click()DimiAsIntegerFori=100To999IfInt((i/100))^3+(Int((i/10))Mod10)^3+(iMod10)^3=iThenPrint(i)EndIfNextEndSub水仙花数源程序1.3初始身手,体验编程VB界面的初步了解工具箱工程窗口属性窗口窗体布局立即窗口窗体窗口1.主窗口应用程序窗口,由标题栏、菜单栏和工具栏组成2.窗体(Form)窗口(编辑器)设计VB程序的界面3.代码(Code)窗口编辑窗体、标准模块中的代码4.属性(Properties)窗口所有窗体或控件的属性设置5.工程资源管理器(ProjectExpror)窗口保存一个应用程序所有的文件6.工具箱(toolbox)窗口显示各种控件的制作工具,供用户在窗体上设计1.3.1小时钟程序编写尝试PrivateSubForm_Activate()Me.BackColor=RGB(0,78,152)Me.MoveScreen.Width-Me.Width,0EndSubPrivateSublblShow_Click()tmrClock.Enabled=NottmrClock.EnabledEndSubPrivateSublblShow_Dblclick()EndEndSubPrivateSubtmrClick_Timer()lblShow.Caption=Time()EndSubVB中不区分大小写,但在编程的时候要养成好的习惯,变量大写或首字母大写..方便以后查错1.3.2认识程序设计语言算法、程序设计与程序设计语言之间的关系⑴算法提出问题:什么是算法?算法有哪些特征?⑵程序设计——寻求解决问题的方法,并将其实现步骤写成计算机可执行的程序的过程。⑶程序设计语言——泛指一切用于书写计算机程序的语言。算法是程序设计的前提,它包含方法和步骤;程序是实现算法中的思想的过程;程序设计语言把算法转化为计算机认识的语言。认识程序设计语言1、发展过程机器语言:由一串“0”和“1”构成二进制代码。汇编语言:是一种符号化(英文助记符)的机器语言。高级语言:如Basic、C/C++、Fortran、Pascal、Cobol、Java等。低级语言:机器语言、汇编语言。高级语言:BASIC语言、FORTRAN语言、C语言。分类2、分类(按转换方式不同分类)编译型语言解释型语言编写的源程序需要用编译程序先翻译成机器语言的目标程序,然后再由连接装配程序进行连接装配,生成可执行程序,这样才能被计算机执行。源程序输入计算机后,运行源程序,相应的解释程序会逐条分析源程序中的语句,每解释一句由计算机执行一句。C/C++、VB、Pascal、CobolQbasic、Lisp3、编辑程序、编译程序和连接程序⑴编辑程序包含内容:一是将源程序逐个字符输入到计算机内存,二是修改源程序,三将修改好的源程序保存在磁盘文件中。⑵编译程序:将已编辑好的源程序(已存储在磁盘文件中)翻译成二进制的目标代码。二进制代码在UNIX下后缀为“.o”的文件,在DOS下是后缀为“.obj”文件。⑶连接:将各模块的二进制目标代码与系统标准模块经连接处理后,得到具有有绝对地址的可执行文件,它是计算机直接执行的文件。在UNIX下它以“.out”为后缀,在MS-DOS以
本文标题:1第一章如何用计算机解决问题课件
链接地址:https://www.777doc.com/doc-4961828 .html