版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章概述1.1计算机发展计算机语言1.2算法及其描述方法1.31.4程序和程序设计方法本章内容导读本章主要介绍计算机发展、计算机语言、程序、算法及其描述,以及程序设计方法等。通过学习本章,读者应掌握以下内容:了解计算机语言的发展;了解高级语言的概念和特点;了解程序的概念;掌握几种常用的算法表示方法以及程序设计方法。计算机的诞生1946年世界上第一台电子计算机(电子数字积分计算机,ENIAC)诞生。1.1计算机发展计算机的发展第一代(20世纪50年代):主要采用真空电子管,主要用于科学计算,用机器语言编写程序;第二代(20世纪50年代末期):以晶体管为主要元器件,采用汇编和高级语言编写程序;第三代(1964至1974):采用集成电路技术,计算机软件逐渐系统化,形成了操作系统、编译程序和网络软件等;第四代(1974至今):采用大规模集成电路和微处理器;未来计算机:神经网络计算机、生物计算机、量子计算机等。冯•诺依曼体系结构
ENIAC诞生的同时,冯•诺依曼提出存储程序的概念,预先将计算机指令序列输入到计算机存储,以自动执行一个计算任务。冯•诺依曼体系结构确定了现代计算机的体系结构,至今没有改变。特点指令和数据采用二进制表示,简化机器的逻辑线路;指令和数据存储在存储器中;计算机由运算部件、控制部件、存储器、输入设备和输出设备五大部分组成。1.1计算机发展第一代
机器语言(低级语言):面向机器、可移植性差、效率高但不方便编程。第二代
汇编语言:利用助记符代替二进制代码。第三代
高级语言:面向程序员、可移植性好、执行效率高、便于编程。第四代
面向对象语言第五代
智能语言1.2计算机语言1、机器语言计算机发展早期使用的语言由“0”和“1”的字符串组成;计算机中唯一不经过翻译而能直接识别的语言,与具体机器有关,不同的机器识别的机器语言也不同。1.2计算机语言2、汇编语言20世纪50年代早期,数学家GraceHopper发明了符号语言(又称为汇编语言),即用符号或助记符表示不同的机器语言指令。机器语言和具体的机器有关,要求程序员不仅要非常熟悉硬件的组成及其指令系统,而且必须熟记计算机的指令代码。程序代码量庞大,且易出错,不易修改。1.2计算机语言3、高级语言程序员不必了解机器的指令系统,编程效率大大提高。高级语言与具体机器无关,所以在一种机器上运行的高级语言程序可以不经改动地移植到另一种机器上运行,提高程序的通用性。与自然语言(尤其是英语)相似,但比自然语言严谨且富有逻辑性,因此高级语言易学、易懂。
1.2计算机语言C语言:系统软件和应用软件BASIC:初学者入门FORTRAN或PL/I:科学计算COBOL:商业和管理等数据处理领域PASCAL:教学,第一个结构化语言4、C语言与其他高级语言1.2计算机语言算法
解决问题的步骤序列即为算法。算法必须具备的五个基本特性可执行性
算法的每一步都是可执行的。确定性算法的每一步骤必须明确定义,不能有任何歧义性(非确定性)。有穷性一个算法必须在执行有穷步骤之后结束。有输入信息的说明有的算法可以没有输入信息,然而绝大多数算法都具有输入信息。有输出信息的步骤一个算法应至少有一个输出问题答案的步骤。1.3算法及其描述方法【例1-1】计算1×2×…×9×10的积。第一种算法(最简单的方法)步骤1:先求1×2,得到结果2;步骤2:将步骤1得到的乘积2再乘以3,得到结果6;步骤3:将6再乘以4,得到结果24;步骤4:将24再乘以5,得到结果120。…步骤9:将362880乘以10,得到结果3628800,即最后结果。1.3算法及其描述方法【例1-1】计算1×2×…×9×10的积。第二种算法分析:可以设置被乘数和乘数两个变量,不另设变量存放乘积,直接将每一步骤的乘积放在被乘数的变量中。若设p为被乘数,i为乘数。采用循环算法计算结果,即:
S1:使p=1;S2:使i=2;S3:使p×i,乘积仍放在变量p中,可表示为p×i=>p;S4:使i的值加1,即i+1=>i;S5:如果i不大于10,返回重新执行步骤S3以及其后的步骤S4和S5;否则算法结束。最后得到p的值就是10!的值。1.3算法及其描述方法算法描述方法自然语言
通俗易懂,但文字冗长、易产生歧义。传统流程图
直观形象,但占用篇幅较大,画流程图既费时又不方便。N-S流程图比自然语言描述直观、形象、易于理解;比传统流程图紧凑易画,尤其是废除了流程线,整个算法由各个基本结构按顺序组成。伪代码用介于自然语言和计算机语言之间的文字和符号描述算法。书写方便,格式紧凑,容易理解,便于向计算机语言(即程序)过渡。计算机语言只有用计算机语言编写的程序才能被计算机执行。必须严格遵循所用编程语言的语法规则,不同于伪代码。1.3算法及其描述方法【例1-1】算法的伪代码
1=>t
2=>i
t×i=>t
i+1=>i
直到i>10
打印t开始
置t的初值为1置i的初值为2当i<=10时,执行如下操作:使t=t×i使i=i+1打印t的值结束开始1=>t2=>ii+1=>it×i=>ti>10结束YN【例1-1】算法的N-S流程图【例1-1】算法的传统流程图一个程序包括对数据的描述和对处理问题的方法和步骤的完整而准确的描述。对数据的描述,即数据结构。C语言中,系统提供的数据结构,以数据类型的形式出现。对处理问题的方法和步骤的描述,即计算机算法,是程序的灵魂。著名计算机科学家NikiklausWirth提出:
数据结构+算法=程序实际上,一个程序除了数据结构和算法外,还必须采用结构化程序设计方法进行设计,并采用一种计算机语言表示。1.4程序和程序设计方法1、程序程序设计者使用各种高级语言如C、C++和Java等编写程序,生成的程序称为源程序。预处理阶段,对源程序中以字符#开头的预处理命令进行处理,例如,将#include命令后面的.h文件内容嵌入到源程序文件中。编译阶段,对预处理后的源程序进行编译,对源程序进行语法检查,如果有错误则给出错误提示,直到源程序没有任何语法错误,将源程序转换生成一个汇编语言源程序文件。汇编阶段,对汇编语言源程序进行汇编,生成一个可重定位目标文件,在VisualStudio中以“obj”为扩展名。链接阶段,将多个可重定位目标文件和标准库函数目标模块合并成为一个可执行目标文件(ExecutableObjectFile),简称为可执行文件,在VisualStudio中以“exe”为扩展名。1.4程序和程序设计方法1、程序结构化程序设计方法(面向过程的程序设计方法)荷兰计算机科学家E.W.Dijkstra
于1965年提出。核心思想——模块化将待开发的程序划分为若干个相互独立的模块,每个模块完成特定功能,适合于设计大规模的复杂程序,其基本要点包括:采用“自顶向下,逐步求精”的设计方法。程序由三种基本结构(顺序、选择和循环)构成。优点:程序员易于编码实现,读者易于阅读理解;复杂的问题化简为一系列简单模块,便于系统扩充。缺点:用户的要求难以在需求分析阶段被确定;开发周期较长。
2、程序设计方法1.4程序和程序设计方法面向对象程序设计方法1967年,挪威计算中心的KristenNygaard
和OleJohanDahl开发了Simula67语言,提供比子程序更高一级的抽象和封装,引入数据抽象和类的概念,被认为是第一个面向对象的语言。核心思想将程序或者软件看成是一个由对象组成的集合。与传统的结构化程序设计相比,吸取了结构化程序设计的一切优点。区别(1)采用数据抽象和信息隐藏技术使组成类的数据和操作是不可分割的,避免结构化程序由于数据和过程分离引起的弊病。(2)程序由类、对象(类的实例)和对象之间的动态联系组成。而结构化程序由结构化的数据、过程的定义以及调用过程处理相应的数据组成。2、程序设计方法1.4程序和程序设计方法ThankYou!第2章概述2.1C语言发展和特点
C语言基本词法2.2
C语言基本语句分类2.3C程序基本组成2.5C程序开发环境2.4本章内容导读本章主要介绍C语言语句分类、程序组成和开发环境MicrosoftVisualC++6.0等。通过学习本章,读者应掌握以下内容:掌握C语言的转义字符;了解C程序的组成;掌握在MicrosoftVisualC++6.0环境下,创建源程序、编译、连接、生成可执行程序、编辑修改源程序、运行可执行程序、查看运行结果等基本操作;了解C语言的语句分类。C语言诞生之前,系统软件主要是用汇编语言编写。由于汇编语言程序依赖于计算机硬件,其可读性和可移植性差;一般的高级语言又难以实现对计算机硬件的直接操作,因此希望有一种兼具汇编语言和高级语言特性的新语言。C语言的发展1978年贝尔实验室正式推出C语言;后来又被多次改进,并出现了多种版本;1983年美国国家标准化协会(ANSI),根据C语言问世以来的各种版本对C语言发展和扩充,制定了83ANSIC标准;1989年ANSI发布了一个完整的C语言标准ANSIC或C89;1990年,国际标准化组织(ISO)接收C89为ISO国际标准,即C90;1999年,ISO对C语言标准进行修订发布C99,其中增加许多新特性。2.1C语言发展和特点目前,微机上广泛使用的C语言编译系统包括MicrosoftC、TurboC、BorlandC等。虽基本相同,但还是有一些差异。注:本教材选用的开发环境是MicrosoftVisualC++6.0。
C语言的特点结构化语言,简洁、紧凑,使用方便、灵活;运算符丰富(提供三十多种),运算能力强大;数据类型丰富;生成的目标代码质量高,程序执行效率高;可移植性好(较之汇编语言);程序设计自由度较大,语法限制不严格;可以直接对硬件进行操作。2.1C语言发展和特点C语言中,除实现顺序、选择和循环三种基本结构的九种控制语句外,输入和输出操作均由标准库函数实现。注意:学习C语言,不仅要学习这9种控制语句和各种运算符,而且要学习并掌握常用标准库函数的使用。2.1C语言发展和特点字符集
字符是组成语言的最基本元素。C语言的字符集即ASCII字符集,由字母、数字、空格、标点和特殊字符组成。组成阿拉伯数字:0、1、2、…、9(共10个)大、小写英文字母:A-Z、a-z(共52个)非字母、非数字的可显示字符(共33个)转义字符:ASCII字符集中有些字符不能显示在显示器上,又称为不可显示字符(如回车换行符、制表符等),转义字符是由“\”后面跟单个字符或若干个字符组成。2.2C语言基本词法关键字/保留字具有特殊含义的单词,均由小写字母组成。由系统预先定义不能用于其他目的,共32个,根据其作用,可分为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类。数据类型关键字(12个):char、double、enum、float、int、long、short、signed、struct、union、unsigned、void控制语句关键字(12个):break、case、continue、default、do、else、for、goto、if、return、switch、while存储类型关键字(4个):auto、extern、register、static其它关键字(4个):const、sizeof、typedef、volatile
2.2C语言基本词法标识符字符的序列,除了库函数的函数名由系统定义外,其他均由用户定义。用户标识符用户根据需要对C程序中用到的变量、符号常量、自定义的函数或文件指针命名,形成用户标识符。构成规则(1)由英文字母、数字和下划线组成,且第一个字符不能是数字;(2)英文字母区分大小写;(3)取名遵循“简洁明了”和“见名知意”。
2.2C语言基本词法词汇分类常量、标识符、关键字、运算符、注释符和分隔符共六类。常量:C程序运行中其值不变的量;标识符:C程序中使用的变量名、函数名和标号等统称为标识符;关键字:C语言规定的具有特定意义的字符串;运算符:C语言中用于计算的符号;注释符:C语言的注释符有两种,一种是以/*开头,并以*/结尾的多行注释。在/*与*/之间的内容即为注释;另一种是以//开头的单行注释,直接在需要注释的地加上//即可。两者的区别在于,第一种注释可以跨行,第二种注释不可以跨行;分隔符:C语言分隔符包括逗号和空格两种。逗号主要用在类型说明和函数参数表中,分隔各个变量;空格多用于语句中各单词之间,作为间隔符。2.2C语言基本词法按照语句的功能或构成不同,可分为八类,每条语句均以分号结束。数据定义语句用于定义C程序中使用的各种存放数据的对象的名称和属性。赋值语句计算表达式的值并赋予变量。例如num=5是一个赋值表达式;num=5;是一条赋值语句。函数调用语句由一个函数调用加一个分号(语句结束标志)构成。例如,printf("ThisisaCfunctionstatement.");2.3C语言基本语句分类表达式语句由表达式加一个分号构成。流程控制语句实现程序的各种结构。C语言有9条控制语句,又可细分为:选择控制语句:if-else、switch语句;循环控制语句:do
while、while和for语句;
转移语句:goto、return、break和continue语句。空语句仅由一个分号构成,不执行任何操作。2.3C语言基本语句分类复合语句由大括号括起来的一组(也可以是一条)语句构成。例如:main(){……{……}/*复合语句,注意右括号后不需要分号。*/……}注:在语法上和单一语句相同,即单一语句可以出现的地方,均可以使用复合语句;复合语句允许嵌套,即复合语句中还可出现复合语句。其他语句包括编译预处理命令、类型自定义语句等。
2.3C语言基本语句分类每个C程序由一个main()函数(又称主函数)和若干个其它函数组成,或仅由一个主函数构成。main()函数的作用,相当于其它高级语言中的主程序;其它函数的作用,相当于子程序。函数是C程序的基本单位。C程序中每一语句后面都以分号“;”作为语句的结束,函数的最后一个语句也不例外。但预处理命令、函数首部和右花括号“}”之后不能加分号。C语言本身没有输入/输出语句,而是通过调用库函数scanf()、printf()、getchar()和putchar()等实现。2.4C程序基本组成【例2-1】由main()函数和一个其它函数max()构成的C语言程序。#include<stdio.h>intmax(intx,inty){return(x>y?x:y);}intmain(void){intnum1,num2;
printf("Inputthefirstintegernumber:");
scanf("%d",&num1);
printf("Inputthesecondintegernumber:");
scanf("%d",&num2);
printf("max=%d\n",max(num1,num2));return0;}程序运行结果:
Inputthefirstintegernumber:6←┘Inputthesecondintegernumber:9←┘
max=9C程序的任意位置都可以加注释/*……*/。另外,C程序中还可以进行单行注释,即在某行需要注释的地方加“//”即可。编译源程序时,注释被忽略。注释可有多行,但不可嵌套。(1)/*和*/必须成对使用,且/和*、以及*和/之间不能有空格,否则出错。(2)注释的位置,可以单占一行,也可以跟在语句的后面。(3)如果一行写不下,可另起一行继续写。(4)注释中允许使用汉字。在非中文操作系统下,看到的是一串乱码,但不影响程序运行。技巧:为避免遗漏必须配对使用的符号,例如注释符号、函数体的起止标识符(花括号)、圆括号等,在输入时,可连续输入这些起止标识符,然后再在其中进行插入完成内容的编辑。在起止标识符嵌套时,以及相距较远时,这样做更有必要。2.4C程序基本组成C语言程序总是从main()函数开始执行。一个C程序总是从main()函数开始执行,而不论其在程序中的位置。当main()函数执行完毕时,即程序执行完毕。习惯上,将其放在程序的最前面。C程序中可以有预处理命令(如include命令),通常预处理命令放在程序的最前面。主函数可以调用任何其他函数,任何其他函数之间可以互相调用,但不能调用主函数。每个函数是由函数首部和函数体两部分组成。函数首部:返回值类型函数名(类型形式参数名,…)函数体:{数据定义部分实现函数功能的语句序列}2.4C程序基本组成例如函数max(),其函数说明如下:
返回值类型函数名函数参数表↓↓↓
intmax(int
x,inty)函数体在函数头的下面、大括号(必须配对使用)内的部分。函数体一般由说明语句和可执行语句两部分构成。(1)说明语句说明语句可由变量定义、自定义类型定义、自定义函数说明、外部变量说明等组成。2.4C程序基本组成
(2)可执行语句
一般由若干条可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026葡萄干行业技术工人流失问题与技能培训体系重构报告
- 2026葡萄产业碳排放测算及低碳转型路径研究报告
- 2026痛风生物制药市场发展趋势及投资风险评估报告
- 2026中国光刻胶专利壁垒突破与自主知识产权战略
- 2026低轨卫星通信发展动态与全球市场布局研究报告
- 2026钙钛矿光伏组件户外耐久性测试与实际发电衰减报告
- 2026金属矿产行业市场深度调研及发展趋势和前景预测研究报告
- 2026-2030冰鞋行业市场深度分析及发展策略研究报告
- 2026航空航天领域特种电缆技术要求与国产化突破
- 2026中国血液制品供需缺口与产能扩张规划研究报告
- 2026乡村医生单招面试题及答案
- 20265G毫米波频段商业化应用场景与基站建设成本测算
- 小学三年级劳动素养融合课《立体贺卡》教案
- 员工调动管理制度
- 护理教师教学资源整合课件下载
- 广西金之宝年产5万吨环保提金剂建设项目环境影响报告书
- 建筑工程技术课程
- 周围神经调控技术治疗慢性疼痛的专家共识
- 农业田间试验协议书
- 《油气管道无人机智能巡检系统技术管理规范》
- 2026版《三维设计》高三一轮复习物理课时跟踪检测部分参考答案
评论
0/150
提交评论