《好学的C++程序设计》——1.3 C++程序怎样写出和运行

简介:

本节书摘来自异步社区出版社《好学的C++程序设计》一书中的第1章,第1.3节,作者: 张祖浩 , 沈天晴,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.3 C++程序怎样写出和运行

好学的C++程序设计

1.3.1 举个C++程序简例看看

【例1-1】试用C++语言设计一个程序,输入两个任意整数,输出二者之差的绝对值。

算法:先输入两个整数,然后两个数相减得差dif。若dif为负,则输出-dif;若dif为正,则输出dif。输出的结果就是绝对值。此过程就是算法。根据算法,设计程序如下:

#include<iostream>       //包含头文件iostream。
using namespace std;     //使用命名空间std。
int main()           // main是主函数。程序从主函数开始执行。
{                //花括弧之间的内容就是主函数main要做的事。
 int a,b,dif;         //声明a,b和dif是3个整数类型(int)变量。
 cout<<"请输入被减数"<<'\n';  //屏幕显示“请输入被减数”。‘\n’是换行的意思。
 cin>>a;            //从键盘对变量a输入整数。
 cout<<"请输入减数"<<'\n';   //屏幕显示“请输入减数”。‘\n’是换行的意思。
 cin>>b;            //从键盘对变量b输入整数。
 dif=a-b;            //求出a-b,通过赋值运算符"="赋给变量dif。
 cout<<"二数之差的绝对值是:";  //输出“二数之差的绝对值是:”至屏幕显示。
 if(dif<0) cout<<-dif<<'\n';  //若表达式dif<0为真,则输出 -dif值。换行。
 else  cout<<dif<<'\n';    //否则,输出dif。换行('\n'是换行的意思)。
 return 0;           //程序正常执行,返回0。
}

运行情况如下:

请输入被减数;      //屏幕上显示出“请输入被减数:”。
24↙           //键盘输入24,↙表示打一个Enter键。
请输入减数;       //屏幕上显示“请输入减数:”。
68↙           //键盘输入68,↙表示打一个Enter键。
二数之差的绝对值是:44  //屏幕上显示所计算的绝对值结果。

通过这个简单的例子,我们说明以下几点:

1.注释

程序的右边,以“//”开头写出的一行字是程序的注释。这种注释的写法只限在一行之内有效。如果一个注释超过了一行,则注释必须改为以“/”开头,以“/”结尾。

注释的作用是对程序作些解释,以便让人们能看懂程序,即提高程序的可读性。例如,我们把上例程序结合注释来看,基本能看懂。但是,注释是不参与程序运行的。

2.包含头文件和使用命名空间std

按标准C++的新要求,程序的头两行用了“#include”和“using namespace std”,意思是包含头文件iostream和使用命名空间std。这两行是为程序中所要用的输入和输出提供必要支持的,其道理暂且不去深究。只是要记住,每逢程序设计,开头总少不了要写上这两行。

3.主函数

int main()表示主函数,main是函数名。int表示最后返回一个整数。程序总是从主函数main开始执行。下面花括弧所括的内容是函数所要做的事,叫函数体。若程序正常执行完毕,最后就向操作系统返回数值0(即return 0),否则返回数值−1(即return −1)。

4.标识符

我们给变量等所取的名字,如程序中变量名a、b和dif,统称为标识符。标识符限定只能由大写字母、小写字母、数字或下划线组成,并且只能以字母或下划线开头。大小写字母有区别。例如,对于_B2d和_b2d,虽然都是合法的标识符,但因有大小写字母的不同,二者不可视为同一个标识符。

5.关键字

在C++语言中,已经具有特定含义的词叫做关键字。例如main、int、if、else,等等都是关键字。我们取名字所用的标识符不可与关键字相同。

6.语句

程序中语句要用分号“;”结尾,分号是语句的组成部分。语句不一定一行只写一句。在一行中写好几句,或一句写成好几行都行。分行写和缩进写只是为求醒目,便于看懂而已。

对于程序中其他标点符号,以后随讲随看随记,逐渐积累是不难的。

7.流程控制

if和else两条语句显然是对程序进行流程控制的,它把程序流程分为两个分支。括弧中的表达式dif<0就是作逻辑判别用的,叫判别式。若判别式“dif<0”为真,就执行cout<<-dif<<'n';;否则,就执行cout<

8.程序的流程图(见图1.4)

程序流程图就是表示程序执行步骤的图。上述例1-1的程序流程可用文字表达如下:

(1)首先对变量a,b和dif作一个声明,表明这三者都是整数类型(int)。

(2)对变量a和b分别输入整数,作为被减数和减数。

(3)将a减b所得之差(a-b)赋予变量dif。程序中用的运算符“=”是赋值的意思。

(4)判别表达式dif<0是真还是假。

(5)若为真(图中1表示真),则输出-dif。

(6)若为假(图中0表示假),则输出dif。

image

例1-1中,程序的流程图可以表示如图1.4所示。其中图1.4(a)叫做框图。从开始框开始,图中箭头表示流程的方向,每一个框都表明了一个步骤。菱形框内的式子“dif<0”是供逻辑判别用的表达式(叫做判别式)。菱形尖角处“1”表示“真”,“0”表示“假”。判别“dif<0”是真还是假,由此分流出两个分支,在两个分支中选用一支。这就是所谓“流程控制”。最后用结束框表示程序结束。

如果把框图中的箭头和线条省略,就可构成图图1.4(b)的形式。图1.4(b)是表示流程的另一种简示图,称为N-S图。它较紧凑、简明、好懂,并且在程序复杂时,可免得线条多,看花了眼。但它的含义是和图1.4(a)一样的,以后见到它要能知道它的含义。

1.3.2 C++程序从写出到运行的几个步骤
(1)用C++语言写出的程序,叫源程序。经编辑输入计算机后形成扩展名为cpp的源文件。cpp是c plus plus的缩写,即C++的意思。

(2)源程序经过编译系统翻译,成为用机器语言表示的目标程序。目标程序又称目标代码或程序代码。由此形成扩展名为obj的目标文件,obj是object的缩写。

(3)把各相关文件链接起来形成扩展名为exe的可执行文件。

在以上每一个步骤中,如果有错就必须及时修正。待每一步中的错误都修正后,最后在运行中进行调试、修正并完善之。具体的上机操作见第12章12.1节。

1.3.3 本书前几章内容的安排

从上面简单程序可看出,程序虽简单,但涉及数据类型、运算符和表达式、输入和输出、流程控制、函数以及编译预处理(例如#include)等方面的知识。而这些正是第2章、第3章、第4章、第5章的内容,是必须首先搞懂的。至于后续章节内容,到时候我们再谈。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

相关文章
|
1月前
|
存储 网络协议 Ubuntu
【C++网络编程】Socket基础:网络通讯程序入门级教程
【C++网络编程】Socket基础:网络通讯程序入门级教程
55 7
|
2月前
|
存储 缓存 算法
【C/C++ 性能优化】提高C++程序的缓存命中率以优化性能
【C/C++ 性能优化】提高C++程序的缓存命中率以优化性能
134 0
|
2月前
|
Linux 编译器 程序员
【Linux 调试秘籍】深入探索 C++:运行时获取堆栈信息和源代码行数的终极指南
【Linux 调试秘籍】深入探索 C++:运行时获取堆栈信息和源代码行数的终极指南
85 0
|
1月前
|
人工智能 机器人 编译器
【C++】Windows端VS code中运行CMake工程(手把手教学)
【C++】Windows端VS code中运行CMake工程(手把手教学)
|
1月前
|
C++ 计算机视觉 Windows
【C++】由于找不到xxx.dll,无法继续执行代码,重新安装程序可能会解决此问题。(解决办法)
【C++】由于找不到xxx.dll,无法继续执行代码,重新安装程序可能会解决此问题。(解决办法)
|
6天前
|
存储 安全 编译器
【C++从练气到飞升】03---C++入门(三)
【C++从练气到飞升】03---C++入门(三)
|
6天前
|
存储 自然语言处理 编译器
【C++从练气到飞升】02---C++入门(二)
【C++从练气到飞升】02---C++入门(二)
|
6天前
|
Unix 编译器 C语言
【C++从练气到飞升】01---C++入门(一)
【C++从练气到飞升】01---C++入门(一)
|
16天前
|
运维 Serverless Go
Serverless 应用引擎产品使用之在阿里云函数计算中c++模板,将编译好的C++程序放进去部署如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
12 1
|
20天前
|
安全 编译器 C++
C++从入门到精通:3.2异常处理——掌握C++的异常处理机制,提高程序健壮性
C++从入门到精通:3.2异常处理——掌握C++的异常处理机制,提高程序健壮性