C语言的高度灵巧和实现高效 >> FORTRAN擅长科学计算
C语言的简介高效在工业化上 >> 严谨的Pascal
当程序规模变得庞大,程序需要保修-可维护性要求,需要扩产-可扩展性要求,需要加固-安全性要求。但由于追求简捷高效的c语言其中数据结构和算法盘根错节,很难被人再分析和重新使用。
==> 需要复杂结构的数据需要系统的组织,统一管理,以使程序组织合理,算法设计简单易懂。
==> C++ get
C++可以进行过程化程序设计,又可以以抽象数据类型为特点的基于对象的程序设计,还可以以继承和多态为特点的面向对象的程序设计,并正在完善以模版为特点的泛型程序设计。
C++是一种混合型程序设计语言,体现在可以采用不同的程序设计方法。“混合”意味着绝不放弃计算机高效运行的实用性特征,而又致力于大规模程序的编程质量,提高程序设计语言的问题描述能力。
标准意味着若用标准C++编程,就可以在不同的标准C++编译器上,得到能在不同计算机系统中运行出同样结果的机器程序。
用编程语言写完程序后,要翻译成机器代码,以便让计算机运行获得结果。
翻译——解释型:边读程序边翻译,翻译成机器代码后就执行。保存程序文件可以直接运行得到结果,但程序运行不能离开解释器,需要不断交互,效率较低。
——编译型:整篇翻译成机器代码,保存在可执行文件中,然后启动该程序文件,运行获得结果。
==> C++语言要体现高性能,所以都是编译型。(但为了方便测试,调试环境做成解释型。)
编译流程:编辑edit——编译compile——链接link/make/build——调试debug
*.cpp—— *.obj —— *.exe
程序编译compile生成目标代码object code,object code是独立的程序段还没有挂载C++库代码和其他资源,需要相互链接。所以来到链接link阶段,将object code整合成可执行文件exe。
#include<iostream> //#include对编译器发出操作指令 ,iostream标准输入/输出流类的标准库头文件 int main() { std::cout<<"hello World.\n"; //std名空间,为了防止程序员又命名一个cout造成冲突,所以给标准库的count冠以前缀。cout标准输出设备的名称,<<操作命令-输出, }
计算机程序是用计算机语言所要求的规范描述出来的一系列动作,表达了程序员要求计算机执行的动作。不同计算机,机器指令系统和速度有差异,表达数据的能力有差异,所以计算机在执行程序中,也会表现出差异。
算法具有目的性、抽象性、研究性。(提到NP问题,有兴趣的可以查查什么是NP问题:)
N.Wirth提出 程序=算法+数据结构
一般是具体问题具体分析,无法重复使用其中零部件,而且问题变得庞大后,复杂性会难以收场。
对象操作的多态性:要能准确反映分层之后的对象集合中每个对象行为的个性。
#include <iostream> int main(){ std::cout<<"I am a student.\n"; }
#include <iostream> int main(){ int num_star=0; int num_space=0; for (int i=1;i<=7;i++){ if(i*2-1>7){ num_star=(7-i)*2+1; num_space=i-4; }else{ num_star=i*2-1; num_space=4-i; } for (int j=0;j<num_space;j++){ std::cout<<" "; } for (int j=0;j<num_star;j++){ std::cout<<"*"; } for (int j=0;j<num_space;j++){ std::cout<<" "; } std::cout<<"\n"; } }