[C++]C++ 第一章

1、程序设计语言:解释型和编译型。一般都附带提供一个集成开发环境(Integrated Development Environment,IDE)

IDE环境,即程序员可以再该环境中,编辑程序代码,逐个编译源文件,装配和链接全部源文件及其资源文件,直至调试运,甚至
软件包装做成软件产品都可以一体化。

2、解释型环境(如VB),编辑代码,可以保存程序文件,可以直接运行获得结果。没有编译和链接的中间环节,方便编程开发,
但由于程序运行不能离开解释器现场,需要不断的与之交互,所以,效率便落了下风,对于大规模的大程序,低性能表现明显,所以
真正的计算任务和中大型软件的开发一般都不用解释型语言。

3、C++语言的是编译型的,但是环境做成解释型的,即开发过程中,以解释型的逐条语句执行方式来进行调试,以编译型的脱离开
发环境而启动运行的方式来生成程序最终的执行代码。

4、一般的编程操作流程:编辑(Edit)——编译(compile)——链接(link或make或build)——调试(debug)。循环往复

5、程序员编辑的程序也称源程序,或称源代码(source code),简称代码(code),存放在文本形式的以.cpp(在windows环境中)
作为文件扩展名的文件中。在较少情况下,机器指令集代码也称为源代码。程序被编译后,会生成目标代码(object code),存放
在目标文件中(object code),存放在目标文件中,在windows中的C++编译器通常将目标文件以.obj作为文件扩展名。目标代码即机器
代码,是计算机能够识别的指令集合,但是,目标指令(也称目标代码)还不能在具体的计算机上运行,因为目标代码只是一个个独立的程序段,
程序段之间还没有彼此呼应,程序段中用到的C++库代码和其他资源还没有挂上,需要相互衔接成适应一定操作系统环境的可执行整体。
为了把成组的程序段转换成可执行程序,必须进行链接(link),链接的过程就是将目标代码整合(或称转换)成可执行文件,可执行文件
通常以.exe为文件扩展名。

6、C++在显示可见字符的同时,还接受一些指挥设备动作的控制字符,控制字符一旦送到设备后,并不显示,而是做出一定的动作,控制
字符在屏幕上不可见,程序是用可见字符堆积而成,C++用可见字符表示不可见的控制字符,用"\"和另一个字符的组合。

7、程序从静态上说,是以某种语言为工具编制出来的动作序列,它表达了人的系统性思维。而从动态上说,它是一系列逐一被执行的操作。

8、算法是求解特地问题的一组有限的操作序列。算法的描述也需要借助于专门的工具,如某种计算机语言。
1)目的性
算法是有求解目的之动作序列,因此,算法必须有运算结果。而程序只是强调过程性,也许是不能自行终止的操作序列。例如,操作系统程序
随着计算机的开机而运行,随着关闭电源而停止运行,而不是自行终结。

2)抽象性
算法离不开数据结构,而数据结构在具体的计算机上实现要受到表示范围的限制,所以,算法比具体的程序设计更超脱一点,也就是抽象层次
更高一些,算法甚至不在乎用什么编程语言来描述。

3)研究性
算法许多时候用于理论研究,描述算法的目的是沟通人们的思想,而不是实现。

9、程序设计也就是一定抽象层次上的算法设计,这里的抽象层次应理解为数据的描述方式。
程序=算法+数据结构
从动态性上说,程序仍然是计算机中的过程的运行体,即操作系统的进程,它服从进程管理。
从静态性上说,程序不再是单纯的过程体(操作序列),不再是单纯的算法了,而是算法和数据结构的有机组织。

10、过程化程序设计(Procedural Programmming)
将复杂的过程简单的按功能分层从而达到解决问题的目的,这种思想就是过程化程序设计思想。过程化程序设计以一系列过程的划分和组织来观察、
分析和解决问题。
eg:有一些日期数据,放在数据文件abc.txt中,这些日期的年、月、日数值加起来若等于15,则收集,然后按照日期由小到大的顺序打印出来。
如文件abc.txt中有:
03-11-12    03-08-04    04-08-11    02-07-06
简单的看,可以把求解问题分成三个部分:
第一部分:输入数据,将读入的数据放在一个年月日的复合数据结构的数组中
第二部分:处理日期数据,数据处理完后,放到另一个同类数组中
第三部分:输出处理,将数组中的数据按要求输出
整个问题写成算法就是:
第一层(总体结构)
1.1输入(读入输入文件的数组放入数组一)
1.2处理(读入数组一的数据,处理后放入数组二)
1.3输出(读入数组二的数据,输出显示器上)
第二层(数据处理)
    2.1滤数(读入数组一的数据,寻找符合条件的数放入数组二)
    2.2排序(对数组二的数据进行排序)

结构化程序设计
1)程序结构控制:顺序,选择和循环。

2)程序设计中的各个过程体和组成部分应以模块表示:
每个模块,其内聚性(aggregation)越强,外联性(association)越少,则模块独立性越好。
内聚性:即模块内部所涉及的功能越单一越好。这样修改起来,职责明确了,效率就高。
外联性:即模块之间的联系越少越好,联系意味着依赖,外联性少,模块的独立性就好,独立性意味着可以独自修改本模块而与外界无关。
因此就容易编程和修改。

3)过程化的程序设计方法:
程序设计采用从上到下,逐步细分的方法展开,即过程化的程序设计方法。在细化过程中,应充分运用前面的过程体控制结构和模块划分原则,即过程化
的程序设计方法。在细化过程中,应充分运用前面的过程体控制结构和模块划分原则。
结构化程序曾在不大的程序规模上,起到良好的效果。它容易编程,容易维护,容易验证程序的正确性。
结构化程序设计方法主要体现在过程的功能划分与过程内部的编写原则上,因此是一种规范的过程化程序设计思想,姑且笼统的称其为过程化程序设计。
或基于过程的程序设计(procedure-based programming)。


11、对象化程序设计(Objectified Programming)
1.1基于对象的程序设计(Object-Based Programming)
本质上还是过程化的,只是某些数据关系被提取出来,成为一个类,便可以更好的重用了。得力于C++的类机制,基于对象的程序设计便能更好的工作。
1.2面向对象的程序设计(Object-Oriented Programming)
继承、多态、封装。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值