《好学的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章的内容,是必须首先搞懂的。至于后续章节内容,到时候我们再谈。

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

相关文章
|
27天前
|
存储 缓存 算法
【C/C++ 性能优化】提高C++程序的缓存命中率以优化性能
【C/C++ 性能优化】提高C++程序的缓存命中率以优化性能
113 0
|
1月前
|
存储 C++ 开发者
C++程序设计基础:构建稳固的编程基石
C++程序设计基础:构建稳固的编程基石
23 1
|
1月前
|
编译器 Linux C++
3C++程序的编写和实现
3C++程序的编写和实现
17 2
|
1月前
|
C++ 开发者
2C++的程序的构成和书写形式
2C++的程序的构成和书写形式
16 2
|
21天前
|
人工智能 机器人 编译器
【C++】Windows端VS code中运行CMake工程(手把手教学)
【C++】Windows端VS code中运行CMake工程(手把手教学)
|
28天前
|
Linux 编译器 程序员
【Linux 调试秘籍】深入探索 C++:运行时获取堆栈信息和源代码行数的终极指南
【Linux 调试秘籍】深入探索 C++:运行时获取堆栈信息和源代码行数的终极指南
68 0
|
22天前
|
存储 缓存 C++
C++链表常用的函数编写(增查删改)内附完整程序
C++链表常用的函数编写(增查删改)内附完整程序
|
1月前
|
存储 安全 编译器
【C++ 多态 】深入理解C++的运行时类型信息(RTTI):dynamic_cast和typeid的应用与原理
【C++ 多态 】深入理解C++的运行时类型信息(RTTI):dynamic_cast和typeid的应用与原理
51 1
|
1月前
|
缓存 编译器 程序员
C/C++编译器并行优化技术:并行优化针对多核处理器和多线程环境进行优化,以提高程序的并行度
C/C++编译器并行优化技术:并行优化针对多核处理器和多线程环境进行优化,以提高程序的并行度
62 0
|
1月前
|
缓存 编译器 程序员
C/C++编译器全局优化技术:全局优化是针对整个程序进行的优化,包括函数之间的优化
C/C++编译器全局优化技术:全局优化是针对整个程序进行的优化,包括函数之间的优化
27 0

热门文章

最新文章