1.1 编程入门
1.1 编程入门
1. 编程的概念
程序:为实现特定目标或解决特定问题而用计算机语言编写的一系列指令序列。
计算机语言:人与计算机之间通信的语言。计算机语言有很多种,比如BASIC语言、PASCAL语言、C语言、C++语言、Java语言等,每种计算机语言都有自身定义的规则,即使是同一种语言也有不同的版本,内部规则也会有少许不同。
编程:可以简单的理解为程序员为了解决特定问题,按照自己的思路,在遵循特定的计算机语言规则下编写程序的过程。
2. 编程软件
工欲善其事,必先利其器,一个好的编译软件可以使我们的学习事半功倍
现在对于初学者常用的编译软件很多, 如:VC6.0,CodeBlocks,Dev-C++
本次课程使用Dev-C++软件,主要是使用方便,小巧,对于如何下载和安装,请查看以下链接,点击可跳转:
3. 键盘和鼠标的使用
鼠标的介绍
鼠标分为:左右键,滚轮
左键用于选择和确认,一般可单击(表示选择),双击(表示确认)
右键用于项目提示和调出选项选择框,一般将其放在我们要操作的项目上,右键单击,就会出现一个新的小框,供我们选择,这时候选择应当使用:左键
滚轮用于上下翻页(部分可以左右翻页),如果和 Ctrl 结合使用,会出现大小缩放的效果,即放大缩小。
键盘快捷键
作用 | 快捷键 | 作用 | 快捷键 | 作用 | 快捷键 |
---|---|---|---|---|---|
缩放 | Ctrl+滚动滚轮 | 缩小 | Ctrl + '-'(键盘按键) | 放大 | Ctrl + '+'(键盘按键) |
中英文切换 | Ctrl + 空格 | 输入法切换 | Ctrl + shift | 大小写切换 | CapsLock |
全选 | Ctrl + A | 复制 | Ctrl + C | 粘贴 | Ctrl + V |
删除 | Delete / Backspace | 剪切 | Ctrl + X | 查找 | Ctrl + F |
新建 | Ctrl + N | 保存 | Ctrl + S | 回退 | Ctrl + Z |
如果我们要使用:#, %, /, "",+,(), * 等键盘上的复合型按键怎么调出来呢?
需要先按住 Shift ,再按对应的按键(记住:此时 Shift不能松开, 上述快捷键 Ctrl 也是一样)
如果程序编辑页面的定位符变成了一个黑色小方块,那么按一下键盘上的:Insert
注意:书写程序时,全部的代码都是在英文状态下编写的,也就是输入法的状态为 English
4. 输出Hello World!
这就是我们的第一个程序,也是基本上所有编程的第一个入门程序:输出一个字符串"Hello World!"。
它的一个执行效果是:出现一个黑窗口(控制台),窗口上输出"Hello World!",具体效果如下图。
#include<iostream>
using namespace std;
int main(){
cout<<"Hello World!"<<endl;
return 0;
}
那么接下来我们就对这个文件进行逐行分析
#include<iostream> //导入标准输入输出头文件
头文件是C++程序对其他程序的引用,作为一种包含功能函数、数据结构声明的载体文件,用于保存程序的声明。
它就像一个大型仓库,里面放着无数的工具,可以供其他的程序使用。
书写格式有以下两种,前者在C++中使用较多,后者在 C语言中使用较多,
这两种书写的主要区别在于搜索的顺序不同:
<>
表示直接搜索标准库;
""
表示先搜索当前路径,如果搜索不到再搜索标准库。
#include<引用文件名> 或 #include"引用文件名"
using namespace std; //使用std命名空间
空间是指明程序采用的名字空间。
采用名字空间是为了在C++新标准中,解决多人同时编写大型程序时名字产生冲突的问题。
比如在A、B两个班都有个叫张三的人,如果你要叫的是A班的张三,那么你就要指明A班这个名字空间,不然就会叫错人。
可以看作头文件这个大仓库里面不同房间的名字,用来分管相同类型的工具。
我们也可以自己写命名空间来使用,但是这里就不介绍了。
/* main函数,又称主函数,在一个项目中有且仅有一个 */
int main(){
//这里书写我们要执行的主程序
return 0;
}
函数就是一段实现了某种功能的代码。
主函数是作为程序执行的入口,相当于我们回家,家里只有一扇大门。
同时要记住:
- 一个项目有且仅有一个主函数
- 程序的执行是从入口开始的,也就是从主函数开始的。
程序中的 ( ) { }
都是成对出现的,千万不要单独留她一个人,这样会让她感觉很孤独的!
然后return 0;
这个表示什么呢?
它的意思是说:当我们的程序正常执行结束的时候,返回0,退出。
在部分OI系统,以及Linux系统上,如果没有这个是不能通过的哦!
所以还是写上吧,虽然它不影响我们的程序输出!
注意注意:作为一条完整的语句,我们是要有结束标志的,上述的
using namespace std;
和 return 0;
就是这样,在每一条语句的最后加上 ;
,表示该语句的结束。
当然有同学说:我多加几个 ;;;;
可以吗?
这是可以的,编译器会识别出这是你写的 4条空语句,它不犯法,但是不道德!!!
cout<<"Hello World!"<<endl;
这是一条输出语句,输出字符串"Hello World!", 并且换行。
cout
:C++ 的输出语句,作用是在屏幕上显示内容;
<<
:流插入运算符,每个运算符连接一个对象;
""
:双引号内是字符串,照样输出双引号中的内容;
endl
: 换行;
;
:作为一个程序行的结尾,程序只有识别到分号才认为一个句子完成。
cout语句的一般格式 : cout << 项目1 << 项目2 << …… << 项目n;
说明:这里的项目可以是表达式,字符串 或者 endl
如果项目是表达式,则表达式的值;
如果项目是加引号的,则输入引号内的内容;
如果项目是endl,则输出 换行。
注意
endl
: 虽然我们简单的把它理解为换行'\n'
,这只是对初学者的一个友好罢了!
endl其实是一个函数模板,它实例化之后变成一个模板函数,其作用是:插入换行符并刷新输出流。
其中刷新输出流指的是将缓冲区的数据全部传递到输出设备并将输出缓冲区清空。
这里初学者不用思考太多!就简单的认为:endl 等同于换行的转义字符'\n'就可以了。
有点同学会出现代码界面一闪而过,这是因为版本的问题,但是现在基本不会出现这样的问题了,如果解决就需要使用到我们下面这样的格式了哦!
#include<iostream> //标准输入输出库
#include<cstdlib>
using namespace std;//std命名空间
int main()//main 主函数,代码入口
{
cout<<"Hello World!"<<endl;//输出"Hello World!"
system("pause");//页面暂停,需要调用cstdlib库
return 0; //结束程序
}
到这里我们的第一个输出字符串"Hello World!",就结束了,你学会了吗!
5. 注释
在上文中,不知道是否注意到了两个符合://
和 /* */
,这就是注释符。
那么什么又叫注释呢?
注释是指在程序中,写给我们开发者自己看的内容,这部分内容不被编译器编译运行。即使我们不写或者删除都不会对程序产生影响。
也就是说编译器在编译代码时,会忽略注释的内容
注释通常放在一行代码的上方,或者一条语句的末尾。
// 注释内容
:单行注释符,用于单独一行的注释;
/* 注释内容 */
:多行注释符,用于对多行进行注释,也称 块注释。/注释内容/中的注释内容可以为中文,外文,乱码等任意符号,且可以换行,即使你突然灵感爆发,在这里写上一个千字文章也未尝不可。
在devC++编译器中注释的快捷键为:Ctrl +/
6. 基本运算符
符号 | 作用 | 使用 | 运算结果 | 备注 |
---|---|---|---|---|
+ | 加 | 2+1 | 3 | |
- | 减 | 2-1 | 1 | |
* | 乘 | 2*1 | 2 | |
/ | 除 | 1/2 | 0 | 如果/两边都为整数,则结果取整 |
% | 模,取余数 | 1%2 | 1 | %符号两边必为整数 |
案例演示
#include <iostream>
using namespace std;
int main() {
cout<<"20+7="<<20+7<<endl; //27
cout<<"20-7="<<20-7<<endl; //13
cout<<"20*7="<<20*7<<endl; //140
cout<<"20/7="<<20/7<<endl; //2
cout<<"20%7="<<20%7<<endl; //6
return 0;
}
练习:编写程序,将8000秒表示成小时分钟秒的形式。
#include<iostream>
using namespace std;
int main(){
cout<<8000/(60*60)<<"h"<<8000%(60*60)/60<<"m"<<8000%60<<"s"<<endl;
return 0;
}
//执行输出结果:2h13m20s
7. 浮点数输出格式控制
浮点数也就是小数,同理还存在定点数,也就是我们说的整数。
当我们要输出 :3.1415926535 保留小数点后3位的时候,就需要使用输出格式控制了!如下程序
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
cout<<fixed<<setprecision(3)<<3.1415926535<<endl;
return 0;
}
通过 fixed<<setprecision(3);
就可以达到这个效果了,如下图。
但是我们使用的这个函数是其他库里的,所以我们需要导入iomanip
这个头文件。
fixed
:是指定位小数点
setprecision(num)
:是指控制输出num位有效数字
原则还是和数学上相同:对第num+1位进行四舍五入
8. 洛谷OJ(Oline Judge)注册
洛谷是一个在线程序评测平台,主要用于对程序的评分。
详细的账号注册流程等信息,查看链接:如何注册洛谷、加入团队以及提交作业