第1章 计算机及计算机程序概述_第1页
第1章 计算机及计算机程序概述_第2页
第1章 计算机及计算机程序概述_第3页
第1章 计算机及计算机程序概述_第4页
第1章 计算机及计算机程序概述_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

1、程序设计基础教师:教师:叶晓霞叶晓霞: : 1330250403213302504032本课程的内容第一部分第一部分基基 础础第二部分第二部分简单程序设计简单程序设计第三部分第三部分高级程序设计高级程序设计算法概念、编程原理、编程风格、算法概念、编程原理、编程风格、基本数据类型定义、算术运算符及基本数据类型定义、算术运算符及表达式表达式顺序结构、选择结构、循环结构、顺序结构、选择结构、循环结构、数组的定义及应用、程序设计过程数组的定义及应用、程序设计过程函数、变量的存储类别、指针、结函数、变量的存储类别、指针、结构体与共用体、文件构体与共用体、文件课程的要求、课时安排与考核侧重学习一个具体问题

2、的算法化的过程,掌握基侧重学习一个具体问题的算法化的过程,掌握基本编程技巧以及本编程技巧以及C C编程的风格和艺术。编程的风格和艺术。上机时间安排:上机时间安排: 周五晚上(第周五晚上(第7 7周开始)周开始) 周二上午(第周二上午(第9 9周开始)周开始)考勤(考勤(10%10%)+ +作业和实验(作业和实验(20%20%)+ +考试(考试(70%70%)第第1 1 章章 计算机及程序设计概述计算机及程序设计概述计算机和计算机程序计算机和计算机程序计算机的基本工作原理冯冯诺依曼体系结构诺依曼体系结构计算机硬件和计算机软件v计算机硬件 主机:CPU+主存 外部设备v计算机软件 裸机 要使计算机

3、解决各种实际问题,必须有软件的支持,计算机软件着重研究如何管理计算机和使用计算机的问题 ,没有软件支持的计算机就是一堆废铁指令与程序指令与程序v指令 指令就是计算机执行某种操作的命令,是硬件能理解并能执行的语言,是机器语言的一个语句,是程序员进行程序设计的最小语言单位。 v指令的组成 指令由操作码和操作数构成 Mov 3,reg1 Mov 5,reg2 Add reg1,reg2 End指令与程序v程序 程序(program)是为实现特定目标或解决特定问题而用计算机语言编写的、可以连续执行并能够完成一定任务的指令序列的集合。 v程序的开发 描述问题(算法) 程序设计语言v计算机软件指令与程序指

4、令与程序 是计算机完成某一任务的是计算机完成某一任务的或或的有的有序集合序集合( (由某种语言来完成由某种语言来完成) ),由数据和处理数据的,由数据和处理数据的操作组成的。数据是被操作的对象,操作的目的是操作组成的。数据是被操作的对象,操作的目的是对数据进行加工处理,以得到期望的结果。对数据进行加工处理,以得到期望的结果。也就是也就是,即求解问题的方法和步骤。我们编,即求解问题的方法和步骤。我们编写程序的过程就是写程序的过程就是。 计算机程序设计语言计算机程序设计语言: : 简称为编程语言,简称为编程语言,是人与计是人与计算机之间传递信息的媒介,具有特定的词法和语法算机之间传递信息的媒介,具

5、有特定的词法和语法规则,用于描述解决问题的方法,共计算机阅读和规则,用于描述解决问题的方法,共计算机阅读和执行。执行。 CPU指令系统,由指令系统,由0、1序列构成的指令码组成序列构成的指令码组成如:如:10000000 加加 10010000 减减用助记符号描述的指令系统用助记符号描述的指令系统如如 ADD A, B面向机器的语言面向机器的语言程序设计是数据被加工的过程程序设计是数据被加工的过程客观世界可以分类,对象是类的实例客观世界可以分类,对象是类的实例对象是数据和方法的封装对象是数据和方法的封装对象间通过发送和接受消息发生联系对象间通过发送和接受消息发生联系程序设计关键是定义类,并由类

6、派生对象程序设计关键是定义类,并由类派生对象 程序设计语言程序设计语言计算机程序设计语言的发展计算机程序设计语言的发展程序设计语言v高级语言 与具体的计算机指令系统无关的计算机语言与具体的计算机指令系统无关的计算机语言v高级语言的分类高级语言的分类 面向过程的语言面向过程的语言 C C、PascalPascal 面向对象的语言面向对象的语言 C+C+、JavaJava、.Net.Net 面向特定应用的语言面向特定应用的语言 SQLSQL翻翻译译程程序序 编译方式编译方式: : 是指利用事先编好的一个称为编译程序是指利用事先编好的一个称为编译程序的机器语言程序,作为系统软件存放在计算机内,的机器

7、语言程序,作为系统软件存放在计算机内,当用户将高级语言源程序输入计算机后,编译程序当用户将高级语言源程序输入计算机后,编译程序便把源程序整个地翻译成用机器语言表示的与之等便把源程序整个地翻译成用机器语言表示的与之等价的目标程序,然后计算机再执行该目标程序,以价的目标程序,然后计算机再执行该目标程序,以完成源程序要处理的运算并取得结果。完成源程序要处理的运算并取得结果。 解释方式解释方式: : 是指源程序输入计算机后,解释程序对是指源程序输入计算机后,解释程序对源程序边扫描边解释,解释一句,计算机执行一句,源程序边扫描边解释,解释一句,计算机执行一句,并不产生目标程序。并不产生目标程序。 程序设

8、计语言为什么学习C语言?v C语言是目前实际程序设计工作中使用最广泛的语言之一 它包含了程序设计需要理解和使用的基本程序机理和主要机制 掌握这些机制就可以理解程序与程序设计的主要问题。v 目前有许多软件系统是用C编写的,或基本上是用C编写的 学习程序设计的同时也能掌握一种实用的程序设计工具v C语言是一种很灵活的语言 既可以在较高层次上做,也可以在较低级的层次上做v 很多新型的语言都是衍生自C语言 有些本身就是C语言的扩充和发展v 程序设计是计算机领域的基础课程 C语言适合作为计算机领域许多后续课程的教学语言程序设计程序设计v什么是程序设计? 使用某种程序语言编写程序的过程,就是用计算机语言对

9、所要解决的问题中的数据以及处理问题的方法和步骤所做的完整而准确的描述的过程v怎样进行程序设计? 分析问题:对数据的描述(数据流)。指定数据类型和数据结构 确定算法:对操作的描述(控制流)。指定操作的步骤 编制程序:使用某种程序语言描述算法。 调试程序:通过某个软件运行程序。算法算法v什么是算法(Algorithm)? 就是为了解决一个特定的问题而采取的确定的、有限的、按照一定次序进行的、缺一不可的执行步骤。 注意 为了有效地利用计算机解决实际问题,在设计算法时不仅要保证计算机执行算法的正确性,还要考虑算法的质量,选择适合于具体问题的算法。算法v通常计算机算法分为两大类:数值运算算法和非通常计算

10、机算法分为两大类:数值运算算法和非数值运算算法数值运算算法 数值运算是指对问题求数值解数值运算是指对问题求数值解 有确定的数学模型有确定的数学模型 非数值运算是指事务处理过程非数值运算是指事务处理过程 种类繁多,很难提供统一规范的算法种类繁多,很难提供统一规范的算法 更多的是需要用户设计其算法的更多的是需要用户设计其算法的算法的特性v 有穷性有穷性 应含有有限的操作步骤,不能是无限的。有穷性指在 “合理的限度之内”v 唯一性唯一性 每一个步骤都是确定的,只有一个涵义,不可以为二义性v 有零个或多个输入有零个或多个输入 在执行算法时需要从外界获取必要的信息v 有一个或多个输出有一个或多个输出 算

11、法执行的目的就是为了求解,“解”就是输出的信息 没有输出的算法是没有意义的v 正确性正确性 每一个步骤应当被有效的执行,并得到确定的结果算法举例v 例1:猴子吃桃问题。有一堆桃子不知数目,猴子第一天吃掉一半,又多吃了一个,第二天照此方法,吃掉剩下桃子的一半又多一个,天天如此,到第11天早上,猴子发现只剩一只桃子了,问这堆桃子原来有多少个? 数学模型:数学模型:a ai i=2=2* *(a ai+1i+1+1+1) i=9,8,7,1i=9,8,7,1;Step1:peach1=1;i=10; Step2:peach0=2*(peach1+1);); Step3:peach1=peach0;

12、Step4:i=i-1; Step5:若:若i=1,继续循环执行,继续循环执行Step2;Step6:输出:输出peach0的值。的值。 算法举例v 例2:输入三个数,然后输出最大的数。v 算法的两个要素 基本功能操作基本功能操作 数据运算和传输 控制结构控制结构 顺序、选择和循环三种基本控制流程 算法可以写成:算法可以写成:(1)输入)输入A,B,C;(2)若)若AB,则,则A-MAX;若;若AMAX。(3)若)若CMAX,则,则C-MAX。(4)输出)输出MAX,MAX是最大数。是最大数。 算法的表示算法的表示v流程图流程图端点:表示程序的转向,常用端点:表示程序的转向,常用来表示程序的开

13、始和结束。来表示程序的开始和结束。处理:操作的功能处理:操作的功能判断:单入口判断:单入口多出口,表明判断的条件多出口,表明判断的条件流线:表示程序流线:表示程序的执行方向和顺序。的执行方向和顺序。输入输入/ /输出:表示数据的名称、类型和用途等。输出:表示数据的名称、类型和用途等。算法的表示v流程图开始开始输入输入A,B,CAB?TNMAX=AMAX=BCMAX?NTMAX=C输出输出MAX结束结束算法的表示vN-S图 是适合结构化程序设计方法的图形工具 N-S流程图无法表示非结构化的程序T TN N当条件满足当条件满足a1=1a1=1i=10i=10当当i=1i=1时,循环时,循环a0=2

14、a0=2* *(a1+1a1+1)a1=a0a1=a0i=i-1i=i-1输出输出a0a0算法的表示vUML 面向对象的分析与设计工具 适合于描述复杂系统元素之间的关系,不关注具体算法程序设计基本步骤 v确定数学模型 实际问题的准确描述v算法描述 解决问题的具体步骤v编写程序 将已设计好的算法表达出来 v程序测试 保证程序的正确性 程序设计方法v面向过程程序设计方法面向过程程序设计方法v面向对象程序设计方法面向对象程序设计方法1.自顶向下、逐步求精:自顶向下、逐步求精:结构化程序设计的主要思想是功能分解并逐步求精。当一些任务复杂以至无法描述时,可以将它拆分为一系列较小的功能部件,直到这些完备的

15、子任务小到易于理解的程度。这种方法叫“自顶向下,逐步求精”。2.模块化设计:模块化设计:在拿到一个程序模块(实际上是程序模块的任务书)以后,根据程序模块的功能将它划分为若干个子模块。这个过程采用自顶向下方法来实现。3.结构化编码结构化编码:在设计好一个结构化的算法之后,还要善于进行结构化编码。即用高级语言语句正确地实现顺序、选择、循环三种基本结构。结构化程序设计结构化程序设计结构化程序设计中的程序结构结构化程序设计中的程序结构 结构化的程序设计方法v程序的三种基本结构 顺序结构顺序结构,顺序结构表示程序中的各操作是按照它们出现的先后顺序执行的 选择结构选择结构,表示程序的处理出现了分支,它需要

16、根据某一特定的条件选择其中的一个分支执行 循环结构循环结构,程序反复执行某个或某些操作,直到某条件为假(或为真)时才可终止循环 面向对象程序设计将数据及对数据的操作放在一起,作为一个相互依存、不可分割的整体来处理,它采用了数据抽象和信息隐藏技术。在面向对象程序设计中可以用下面的式子表示程序:程序=对象+对象+对象对象=算法+数据结构+程序设计语言+语言环境面向对象程序设计面向对象程序设计面向对象程序设计中的程序结构面向对象程序设计中的程序结构 C C语言语言vC语言的特点 适合开发系统软件 结构化的程序设计语言 丰富的数据类型和数据结构 运算符多样化 可移植性好 语句简洁紧凑 编程风格灵活,语

17、法限制少,使用灵活 具有预处理功能 面向对象程序设计的基础例例1.1】编写程序,输出】编写程序,输出“Hello World!”字符串。字符串。#include /* 编译预处理命令编译预处理命令*/void main()/*主函数主函数*/printf(“Hello World!n”);C程序的结构 以以“#”号开头的行都是编译预处理行,且在号开头的行都是编译预处理行,且在一行中,只能写一行编译预处理指令。编译预处理命令不是一行中,只能写一行编译预处理指令。编译预处理命令不是C C语句,不能以分号结尾,而是以换行结尾。语句,不能以分号结尾,而是以换行结尾。#include#includest

18、dio.hstdio.hvoid mainvoid main()() int a int a,b b;/ /* *定义两个整形变量定义两个整形变量* */ / a=1 a=1;b=5b=5;/ /* *给两个变量赋值给两个变量赋值* */ / printf printf(“%d+%d=%dn”,a,b,a+b%d+%d=%dn”,a,b,a+b); ; / /* *打印打印a a和和b b之和之和* */ / C C语言严格区分大、小写语言严格区分大、小写 英文字母。英文字母。什么是C语言? C C语言程序是由一个个的语言程序是由一个个的 语句组成。语句组成。 C C语言程序使用语言程序使用“

19、;”作为作为 语句的终止符和分隔符。语句的终止符和分隔符。可以任意书写,即一行中可以书写多可以任意书写,即一行中可以书写多个语句,一个语句也可以占用任意多个语句,一个语句也可以占用任意多行,语句之间必须用行,语句之间必须用“;”分隔。初分隔。初学时建议在一行内书写一条语句。学时建议在一行内书写一条语句。编写一个加法运算程序编写一个加法运算程序#include#includestdio.hstdio.hmainmain()() int a int a,b b;/ /* *定义两个整形变量定义两个整形变量* */ / a=1 a=1;b=5b=5;/ /* *给两个变量赋值给两个变量赋值* */

20、/ printf printf(“%d+%d=%dn”,a,b,a+b%d+%d=%dn”,a,b,a+b); ; / /* *打印打印a a和和b b之和之和* */ / C C语言严格区分大、小写语言严格区分大、小写 英文字母。英文字母。什么是C语言? C C语言程序是由一个个的语言程序是由一个个的 语句组成。语句组成。 C C语言程序使用语言程序使用“;”作为作为 语句的终止符和分隔符。语句的终止符和分隔符。 C C语言程序中用大括号对语言程序中用大括号对 “ ” “ ”表示程序的结构层表示程序的结构层 次范围。次范围。一个完整的程序模块要用一对花括号括起一个完整的程序模块要用一对花括号

21、括起来,用以表示模块的范围。为了清晰地表来,用以表示模块的范围。为了清晰地表现出程序的结构,建议使用右缩进锯齿型现出程序的结构,建议使用右缩进锯齿型程序书写格式。程序书写格式。编写一个加法运算程序编写一个加法运算程序#include#includestdio.hstdio.hmainmain()() int a int a,b b;/ /* *定义两个整形变量定义两个整形变量* */ / a=1 a=1;b=5b=5;/ /* *给两个变量赋值给两个变量赋值* */ / printf printf(“%d+%d=%dn”,a,b,a+b%d+%d=%dn”,a,b,a+b); ; / /* *

22、打印打印a a和和b b之和之和* */ / C C语言严格区分大、小写语言严格区分大、小写 英文字母。英文字母。什么是C语言? C C语言程序是由一个个的语言程序是由一个个的 语句组成。语句组成。 C C语言程序使用语言程序使用“;”作为作为 语句的终止符和分隔符。语句的终止符和分隔符。 C C语言程序中用大括号对语言程序中用大括号对 “ ” “ ”表示程序的结构层表示程序的结构层 次范围。次范围。语言程序可以使用注释。语言程序可以使用注释。 注释部分的格式是:注释部分的格式是:注释内容注释部分不参与注释内容注释部分不参与程序的执行,对程序的运行结果没程序的执行,对程序的运行结果没有影响,只

23、是用来提示或助记。有影响,只是用来提示或助记。编写一个加法运算程序编写一个加法运算程序函数 C程序为函数模块结构,整个程序都是由一个或多个函数组成.函数是函数是C程序的基本单位。程序的基本单位。 函数是由函数说明和函数体两部分组成 一个C程序总是从main()函数开始执行.有且仅有一个主函数有且仅有一个主函数main(), 被调用的函数可以是系统提供的库函数,也可以是用户根据需要自己编制设计的函数(用户自定义函数) 一个C 程序可以由一个文件组成,也可以由若干个文件组成#include#include void main void main ()() int a=1,b=5,c; int a=

24、1,b=5,c; c=add(a,b); c=add(a,b); printf(“c=%dn”,c); printf(“c=%dn”,c); int add(int x int add(int x,int y)int y) return(x+y); return(x+y); C C程序程序源程序文件源程序文件1 1源程序文件源程序文件i i源程序文件源程序文件n n预编译命令预编译命令函数函数1 1函数函数n n函数体函数体函数首部函数首部C语言1.C1.C程序的书写格式比较自由,一般程序的书写格式比较自由,一般语句。对于语句。对于短短语句语句也可也可,中间用,中间用“”分隔。对于分隔。对于长语句长语句也也可将一条语句分写在多行上,可将一条语句分写在多行上,是不能将一个是不能将一个分开,也不要将双撇号引用的一个分开,也不要将双撇号引用的一个分开。分开。2.2.为了程序书写得清晰,提高程序的可读性,一般采用为了程序书写得清晰,提高程序的可读性,一般采用。即同一层次语句要对齐,不同层次语句要缩进若干。即同一层次语句要对齐,不同层次语句要缩进若干个字符个字符( (2424个个) )。例如循环体中的语句和选择体中的语句要。例如循环体中的语句和选择体中的语句要缩进对齐。缩进对齐。 3.3.花括号的书写方法较多

温馨提示

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

评论

0/150

提交评论