第一章 C++的初步知识

1.1 了解计算机硬件和软件


1.1.1 计算机和信息技术的发展

1.信息与信息技术

        (1)信息是以适合于通信、存储或处理的形式来表示的知识或消息。

        (2)信息的特征:可识别性、可存储性、可扩充性、可压缩性、可传递性、可转换性、特定范围有效性。

        (3)信息技术(InformationTechnology,IT)是主要用于管理和处理信息所采用的各种技术的总称。

2.计算机的数学模型

        现代计算机的基础是抽象的图灵机,它是把人在计算时所做的工作分解成简单的规定动作,这样就把人的工作机械化。

3.计算机的基本结构和工作方式

         至今计算机采用的是冯·诺依曼体系结构。冯·诺依曼理论包括:

        (1)计算机硬件设备由存储器、中央处理器、控制器、输入设备和输出设备五部分组成。

        (2)存储程序思想:把计算机过程描述为由许多命令按一定顺序组成的程序,然后把程序和数据一起输入计算机,计算机对已存入的程序和数据处理后,输出结果。

4.第一台计算机

         第一台计算机叫埃尼阿克(ENIAC,电子数值积分计算机)于1946年2月在美国宾夕法尼亚大学研制成功。

5.计算机的发展阶段

        习惯上将计算机的发展划为四个阶段:电子管、晶体管、中小规模集成电路、大规模/超大规模集成电路。

6.计算机的发展趋势

        计算机的发展趋势可以归纳为:微型化、巨型化、智能化、多媒体和网络化。

7.计算机的主要特点

        电子计算机是一种以高速进行操作、具有内部存储能力、有程序控制操作过程的自动电子装置。计算机的主要功能是可以实现高速运算。

8.计算机的应用领域

        计算机的主要应用领域有:科学计算(或数值计算)、数据处理、过程控制、辅助工程(办公自动化、生产自动化、数据库应用、网络应用、计算机模拟、计算机辅助教育)、人工智能(机器人、专家系统、模式识别、智能检索)。


1.1.2 计算机硬件知识

1.计算机系统组成

        计算机是由硬件系统和软件系统组成的。

2.计算机硬件系统

        计算机硬件系统包括中央处理器、存储器、输入设备(键盘、鼠标等)和输出设备(显示器、打印机)。从理论上讲,中央处理(即CPU,包括运算器、控制器)和主存(内存储器)组成主机。

        主机是计算机硬件系统中最基本的部分。存储器有内存储器和外存储器之分,内存储器包括只读存储器(ROM)和随机存储器(RAM)等;外存储器包括软盘存储器(现在基本上不用)、硬盘存储器、磁带存储器、光盘存储器、U盘等一系列移动存储设备等。输入设备包括键盘、鼠标、扫描仪、麦克风、手写笔、摄像头等。输出设备包括显示器、打印机和绘图仪、音响等。如图:


1.1.3计算机软件知识

        计算机软件分为系统软件和应用软件。如图:



1.2 程序设计语言的发展

        程序设计语言一般分为机器语言、汇编语言和高级语言三大类。如图:



1.3 从C到C++

        C语言是1972年由美国贝尔实验室的D.M.Ritchie研制成功。C语言特点:功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好。C语言是结构化和模块化的语言,它是基于过程的。为解决软件设计危机,在20实际80年代提出了面向对象的程序设计(OOP)。为兼容C,C++应运而生,C++保留了C语言原有的优点,增加了面向对象机制。C++对C的“增强”,表现在两个方面:

        (1)在原来基础于过程的机制基础上,对C语言的功能做了不少扩充。

        (2)增加了面向对象的机制。


1.4 最简单的C++程序

        例1.1 输出一行字符:“This is a C++program.”。

#include <iostream>        //包含头文件iostream
using namespace std;       //使用C++的命名空间std
int main()
{
   cout<<"This is a C++ Program.";
    return 0;
}

        屏幕输出:

        This is a C++ program.

        注:

        (1)main代表“主函数”,每一个C++程序都必须有一个main函数,main函数称为程序入口。main前面的int的作用是声明函数类型为整型,return 0作为主函数的整型返回值。

        (2)函数体是由大括号{ }括起来的。cout是C++用于输出的语句,称为输出流对象。

        (3)“#include<iostream>”是C++的一个预处理命令,表示程序中引入头文件iostream。

        (4)“using namespace std;”C++标准库中的类和函数是在命名空间std中声明的,因此需要使用命名空间std。

        (5)“//”表示单行注释。注释不转换成目标代码,对运行不起作用。

        例1.2 求a和b两个数之和。

//求两数之和                   (本行是注释行)
#include <iostream>            //预处理命令
using namespace std;           //使用命名空间std
int main()                     //主函数首部
{                              //函数体开始
    int a,b,sum;               //定义变量
    cin>>a>>b;                 //输入语句
    sum=a+b;                   //赋值语句
   cout<<"a+b="<<sum<<endl;    //输出语句
    return 0;                  //如果程序正常结束,返回一个零值
}                              //函数结束

        输入:

        123 456

        输出:

        a+b=579

        例1.3 给两个数x和y,求两数中的大者。

        在本例中包含两个函数。

#include <iostream>         //预处理命令
using namespace std;        //使用命名空间std
int max(int x,int y)        //定义max函数,函数值为整型,形式参数x,y为整型
{                           //max函数体开始
    int z;                  //变量声明,定义本函数中用到的变量为整型
    if(x>y) z=x;            //if语句,如果x>y,则将x的值赋给z
    else z=y;               //否则,将y的值赋给z
    return (z);             //将z的值返回,通过max带回调用处
}                           //max函数结束
 
int main()                  //主函数
{                           //函数体开始
    int a,b,m;              //变量声明
    cin>>a>>b;              //输入变量a和b的值
    m=max(a,b);             //调用max函数,将得到的值赋给m
   cout<<"max="<<m<<'\n';   //输出大数m的值
    return 0;               //如果程序正常结束,返回一个零值
}                           //主函数结束

        输入:

        18 25

        输出:

        max=25

        注:输入的两个数据间用一个或多个空格或回车间隔,不能以逗号或其他符合间隔。


1.5 C++程序的构成和书写形式

        (1)一个C++程序可以由一个程序单位或多个程序单位构成。

        (2)在一个程序单位中,可以包括3个部分:预处理命令、全局声明部分、函数。

        (3)一个函数由两部分组成:函数首部、函数体。函数体一般包括:局部声明部分、执行部分。

        (4)语句包括两类:声明语句是非执行语句、执行语句,用来实现用户指定的操作。

        (5)一个C++程序总是从main函数开始执行的。

        (6)类(class)是C++新增加的重要数据类型。

        (7)C++程序书写格式自由,提倡一行写一个语句。

        (8)给程序增加必要的注释,增加程序可读性。注释分单行注释“//”和多行注释“/*····*/”。


1.6 C++程序的编写和实现。

1.用C++语言编写程序

        所谓程序,就是一组计算机系统能识别和执行的指令。用高级语言编写的程序属于“源程序(source program)”,C++的源程序是以.cpp作为后缀,C是以.c作为后缀。

2.对源程序进行编译

        从根本上来说,计算机只能识别和执行由0和1组成的二进制的指令,而不能识别和执行用高级语言写的指令,所以必须将源程序使用“编译器”(complier)翻译成二进制形式的“目标程序(objectprogram)”。

        编译是以源程序文件为单位分别编译的,每一个程序单位组成一个源程序文件,如果有多个程序单位,系统就分别把它们编译成多个目标程序(在windows系统中,目标程序以.obj作为后缀(object的缩写),在NUIX系统中,以.o作为后缀)。编译的作用是对源程序进行词法检查和语法检查。一般编译系统给出的出错信息分为两种,一种是错误(error);一种是警告(warning),指一些不影响运行的轻微的错误。凡是检查出error类错误,就不生成目标程序,必须改正后重新编译。

3.将目标文件连接

        编译通过后,需要用系统提供的“连接程序(linker)”将一个程序的所有目标程序和系统的库文件以及系统提供的其他信息连接起来,最终形成一个可执行的二进制文件,在windows系统中,其后缀是.exe,是可以直接执行的。

4.运行程序

        运行最终形成的可执行的二进制文件,得到运行结果。

5.分析运行结果

        运行结果不正确,应检查程序或算法是否有问题。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值