韶关学院《计算机基础》课件-第6章程序设计基础_第1页
韶关学院《计算机基础》课件-第6章程序设计基础_第2页
韶关学院《计算机基础》课件-第6章程序设计基础_第3页
韶关学院《计算机基础》课件-第6章程序设计基础_第4页
韶关学院《计算机基础》课件-第6章程序设计基础_第5页
已阅读5页,还剩27页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

6.1程序与程序设计语言

6.2算法和算法设计初步

6.3程序设计方法

第6章程序设计基础韶关学院《计算机基础》6.1程序与程序设计语言36.1程序及程序设计语言程序:用程序设计语言书写的有一定逻辑关系的指令集合。程序设计语言:低级语言:机器语言汇编语言高级语言:结构化程序设计语言:FORTRAN,BASIC,PASCAL,C等面向对象程序设计语言:C++,Java,Python等未来的语言计算机程序的执行(以C语言为例)

编辑:将源程序输入到计算机中,生成文件。编译:将源程序文件转化为机器语言的目标代码。链接:将目标程序代码与系统中提供的有关函数等链接起来,生成可执行文件。运行:运行可执行程序,产生计算结果。计算机程序设计的步骤(1)程序说明:做什么,如明确要解决的问题,确定编程目标,定义想得到的输入/输出数据等。(2)程序设计:怎么做,使用程序设计方法设计一个问题和任务的执行方案。(3)编写代码:使用计算机语言按照程序设计方案书写源程序。(4)测试程序:通过编译系统调试源程序,发现程序的语法和逻辑错误并将其消除。(5)程序定稿:最终程序文件由程序代码文件、程序说明书和用户操作手册等组成。6.2算法和算法设计初步如何用计算机求解问题?以买苹果为例,已知单价每斤y元,问买x斤苹果,需多少钱?step1:输入x和y;step2:根据t=x*y计算总价;step3:输出总价t。公式:t=x*y算法的特性有穷性:在有限步骤后终止,在合理的时间内完成确定性:每一步含义确定,无歧义可行性:所有操作都必须能有效执行允许没有输入或有多个输入至少有一个输出算法:

问题求解的方法及求解过程的描述。

即:为解决一个具体问题而采取的确定的有限的操作步骤。算法的特性:算法的表示方法自然语言流程图N-S图伪码计算机语言例:求5!(即1×2×3×4×5)的值。自然语言表示

即用日常使用的语言描述算法,通俗易懂,但不直观、不严格,易产生歧义。S1:使t=1,即1→t。S2:使i=2,即2→i。S3:使t×i,乘积仍然放在变量t中,即t×i→t。S4:使i的值加1,即i+1→i。S5:如果i≤5,返回重新执行步骤S3以及其后的S4和S5;否则,输出t,算法结束。算法的表示方法流程图描述程序的控制流程的有向图,又称为程序框图。它是历史最悠久且使用最广泛的程序设计描述工具。

算法的表示方法图形符号:程序流程图程序流程图通常包括3种控制结构:顺序结构、选择结构、循环结构顺序结构程序中的各操作是按照它们出现的先后顺序执行的。先执行语句块S1后,再执行语句块S2。顺序结构组成的程序只有一个入口和一个出口。选择结构

给定的判定条件,并根据判断的结果来控制程序的流程单分支选择结构双分支选择结构多分支选择结构程序流程图问题:计算三个数的最大值判断闰年的条件是满足下列二者之一

*

year能被4整除,但不能被100整除;

*

year能被400整除。例如:判断某年year是否是闰年判断y是否为闰年的流程图循环结构重复执行一些操作区别:当第一次测试循环条件就为假时程序流程图求5! 用流程图表示算法举例S1:使t=1,即1→t。S2:使i=2,即2→i。S3:使t×i,乘积仍然放在变量t中,即t×i→t。S4:使i的值加1,即i+1→i。S5:如果i≤5,返回重新执行步骤S3以及其后的S4和S5;否则,输出t,算法结束。N-S流程图:(盒图)

1973年,美国学者I.Nassi和B.Shneiderman提出算法的表示方法优点:完全取消了流程线,全部算法写在一个矩形框内,限制

了流程的随意转向,保证了程序结构的清晰性求5!求5!的N-S图算法的表示方法伪码表示:

用介于自然语言和计算机语言之间的文字及符号来描述算法,与具体的编程语音无关,但结构与一般的编程语言结构相同,易于转换为计算机程序begin(算法开始)1

t2

iwhilei≤5{t*i

ti+1

i}printtend(算法结束)【例】求5!。算法的表示方法计算机语言表示:

算法的最终表示形式#include<stdio.h>voidmain(void){

int

i,t; t=1;

i=2; while(i<=5) { t=t*i;

i=i+1; }

printf(“%d”,t);}【例】用C语言求5!的算法。6.3程序设计方法

自顶向下、逐步求精

先全局后局部、先整体后细节、先抽象后具体模块化

将一个复杂的任务按功能分解为若干个较为简单的子任务,若子任务仍然比较复杂,则继续将子任务分解,分而治之。结构化程序设计方法结构化程序的基本结构:顺序结构、选择结构、循环结构任何算法都可以由这三种基本结构组合而成。优点:结构清晰、容易阅读、容易验证缺点:基于功能的设计方法

功能是易变的,因而程序具有不稳定性、易变性,难以适应系统中的变动,往往功能的变化就意味着程序的重新设计。把数据和操作分离

当数据结构改变时,相关的处理过程都要进行相应的修改。可重用性差结构化程序设计方法

面向对象程序设计方法基本思想:以对象为中心,消息为驱动。

将所需解决的现实世界问题中出现的实体抽象为对象,对象间通过消息进行通信,来完成相应操作。出发点:更直接地描述客观世界中存在的事物及之间的关系。对象万物皆对象;对象是构成世界的一个独立单位。

计算机中用一组属性和一组方法来描述对象。属性(静态特征):用数据来描述方法(动态特征):对象所表现的行为或具有的功能方法通过消息传递,还可被其他对象使用。

面向对象的基本概念消息是对象间相互协作的一种机制。

由三部分组成:接收消息的对象名、消息名、参数。类类是对象的抽象。对同类型对象抽象出其共性。属性:型号,巡航高度,乘坐人数,服役年限…操作:起飞,巡航,降落,…

面向对象的基本概念对象是类的实例。

类与对象的关系,犹如模具与铸件之间的关系。classPerson{intage;Stringname;voidsayHello(){…}}Personp=newPerson()封装将相关的属性和方法封装在类中。信息隐蔽:将类的细节部分隐藏起来。

用户只能通过受保护的接口访问某个类。

面向对象的三大特征三大特征:封装性、继承性、多态性classclock{inthour;intminute;intsecond;voidsetTime(){…}voidgetTime(){…}}

继承子类的对象能够直接拥有其父类的全部属性与行为,而不必重复定义它们,而且子类可对父类的方法进行扩展、覆盖。继承对于软件复用有着重要意义,是面向对象技术能够提高软件开发效率的重要原因之一。

面向对象的三大特征classStudentextendsPerson{Stringschool;doublescore;voidmeetTeacher(){…}}多态性不同对象收到同一个消息,可有不同的功能实现方式。

在父类中定义的属性或行为,被子类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或行为在父类及其各个子类中具有不同的语义。

面向对象的三大特征foo(Personp){p.sayHello();}foo(newStudent());foo(newTeacher());面向对象程序设计优点与人类习惯的思维方法一致稳定性好可重用性好易于开发大型软件产品可维护性好

面向

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论