docs(NOI竞赛大纲): 添加 C++ 程序设计基础文档
- 新增程序基本概念、基本数据类型、程序基本语句等文档 - 更新 mkdocs.yml 配置,优化文档结构- 调整部分文档路径,提高可读性
This commit is contained in:
parent
9895758f6a
commit
b5939c90d4
|
@ -5,8 +5,8 @@
|
||||||
</component>
|
</component>
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="02f9b0c7-a97d-4689-afaa-3f6563382100" name="更改" comment="docs(NOI竞赛大纲): 添加 C++ 程序设计基础文档 - 新增程序基本概念、基本数据类型、程序基本语句等文档 - 更新 mkdocs.yml 配置,优化文档结构- 调整部分文档路径,提高可读性">
|
<list default="true" id="02f9b0c7-a97d-4689-afaa-3f6563382100" name="更改" comment="docs(NOI竞赛大纲): 添加 C++ 程序设计基础文档 - 新增程序基本概念、基本数据类型、程序基本语句等文档 - 更新 mkdocs.yml 配置,优化文档结构- 调整部分文档路径,提高可读性">
|
||||||
|
<change afterPath="$PROJECT_DIR$/notebook/docs/NOI竞赛大纲/二.C++程序设计/4.基本运算.md" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/notebook/mkdocs.yml" beforeDir="false" afterPath="$PROJECT_DIR$/notebook/mkdocs.yml" afterDir="false" />
|
|
||||||
</list>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
|
@ -254,7 +254,15 @@
|
||||||
<option name="project" value="LOCAL" />
|
<option name="project" value="LOCAL" />
|
||||||
<updated>1745063376462</updated>
|
<updated>1745063376462</updated>
|
||||||
</task>
|
</task>
|
||||||
<option name="localTasksCounter" value="19" />
|
<task id="LOCAL-00019" summary="docs(NOI竞赛大纲): 添加 C++ 程序设计基础文档 - 新增程序基本概念、基本数据类型、程序基本语句等文档 - 更新 mkdocs.yml 配置,优化文档结构- 调整部分文档路径,提高可读性">
|
||||||
|
<option name="closed" value="true" />
|
||||||
|
<created>1745063694397</created>
|
||||||
|
<option name="number" value="00019" />
|
||||||
|
<option name="presentableId" value="LOCAL-00019" />
|
||||||
|
<option name="project" value="LOCAL" />
|
||||||
|
<updated>1745063694397</updated>
|
||||||
|
</task>
|
||||||
|
<option name="localTasksCounter" value="20" />
|
||||||
<servers />
|
<servers />
|
||||||
</component>
|
</component>
|
||||||
<component name="TypeScriptGeneratedFilesManager">
|
<component name="TypeScriptGeneratedFilesManager">
|
||||||
|
|
|
@ -0,0 +1,156 @@
|
||||||
|
# 4. 基本运算
|
||||||
|
|
||||||
|
在编程中,运算符是用于执行运算的符号,C++ 提供了多种类型的运算符,涵盖从基本的加减乘除到位运算等功能。本节将系统讲解各种常见运算符。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 【1】算术运算
|
||||||
|
|
||||||
|
### 概念说明
|
||||||
|
算术运算符用于执行基本的数学计算。
|
||||||
|
|
||||||
|
| 运算符 | 含义 | 示例表达式 | 结果 |
|
||||||
|
|--------|----------|------------|------------|
|
||||||
|
| `+` | 加法 | `3 + 2` | 5 |
|
||||||
|
| `-` | 减法 | `3 - 2` | 1 |
|
||||||
|
| `*` | 乘法 | `3 * 2` | 6 |
|
||||||
|
| `/` | 除法 | `5 / 2` | 2(整型) |
|
||||||
|
| `//` | 整除 | `5 / 2` | 2(整型) |
|
||||||
|
| `%` | 取余 | `5 % 2` | 1 |
|
||||||
|
|
||||||
|
### 示例代码(C++)
|
||||||
|
```cpp
|
||||||
|
#include <iostream>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
int a = 5, b = 2;
|
||||||
|
cout << "a + b = " << a + b << endl;
|
||||||
|
cout << "a - b = " << a - b << endl;
|
||||||
|
cout << "a * b = " << a * b << endl;
|
||||||
|
cout << "a / b = " << a / b << endl;
|
||||||
|
cout << "a % b = " << a % b << endl;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 【1】关系运算
|
||||||
|
|
||||||
|
### 概念说明
|
||||||
|
关系运算用于比较两个值的关系,结果为布尔值(true 或 false)。
|
||||||
|
|
||||||
|
| 运算符 | 含义 | 示例 |
|
||||||
|
|--------|------------|----------|
|
||||||
|
| `>` | 大于 | `a > b` |
|
||||||
|
| `>=` | 大于等于 | `a >= b` |
|
||||||
|
| `<` | 小于 | `a < b` |
|
||||||
|
| `<=` | 小于等于 | `a <= b` |
|
||||||
|
| `==` | 等于 | `a == b` |
|
||||||
|
| `!=` | 不等于 | `a != b` |
|
||||||
|
|
||||||
|
### 示例代码
|
||||||
|
```cpp
|
||||||
|
int a = 5, b = 3;
|
||||||
|
cout << (a > b) << endl; // 输出 1(true)
|
||||||
|
cout << (a == b) << endl; // 输出 0(false)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 【1】逻辑运算
|
||||||
|
|
||||||
|
### 概念说明
|
||||||
|
逻辑运算符用于多个条件的组合判断。
|
||||||
|
|
||||||
|
| 运算符 | 含义 | 示例 | 说明 |
|
||||||
|
|--------|------|------------------|-------------------|
|
||||||
|
| `&&` | 与 | `a > 0 && b > 0` | 两个都为真才为真 |
|
||||||
|
| `||` | 或 | `a > 0 || b > 0` | 一个为真就为真 |
|
||||||
|
| `!` | 非 | `!(a > 0)` | 条件取反 |
|
||||||
|
|
||||||
|
### 示例代码
|
||||||
|
```cpp
|
||||||
|
bool a = true, b = false;
|
||||||
|
cout << (a && b) << endl; // 输出 0
|
||||||
|
cout << (a || b) << endl; // 输出 1
|
||||||
|
cout << (!a) << endl; // 输出 0
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 【1】变量自增与自减运算
|
||||||
|
|
||||||
|
### 运算符
|
||||||
|
| 运算符 | 含义 | 示例 |
|
||||||
|
|--------|--------------|----------|
|
||||||
|
| `++` | 自增 | `a++` |
|
||||||
|
| `--` | 自减 | `b--` |
|
||||||
|
|
||||||
|
### 前缀和后缀的区别:
|
||||||
|
- `++a`:先加后用
|
||||||
|
- `a++`:先用后加
|
||||||
|
|
||||||
|
### 示例代码
|
||||||
|
```cpp
|
||||||
|
int a = 5;
|
||||||
|
cout << ++a << endl; // 输出 6
|
||||||
|
cout << a++ << endl; // 输出 6,再加变成 7
|
||||||
|
cout << a << endl; // 输出 7
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 【1】三目运算符
|
||||||
|
|
||||||
|
### 概念说明
|
||||||
|
三目运算符是一种简洁的条件表达式写法。
|
||||||
|
|
||||||
|
### 语法格式:
|
||||||
|
```cpp
|
||||||
|
condition ? value_if_true : value_if_false;
|
||||||
|
```
|
||||||
|
|
||||||
|
### 示例代码
|
||||||
|
```cpp
|
||||||
|
int a = 5, b = 10;
|
||||||
|
int max = (a > b) ? a : b;
|
||||||
|
cout << "较大值是: " << max << endl;
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 【2】位运算
|
||||||
|
|
||||||
|
### 概念说明
|
||||||
|
位运算是直接对整数的二进制位进行操作的运算。
|
||||||
|
|
||||||
|
| 运算符 | 含义 | 示例 | 说明 |
|
||||||
|
|--------|----------|-----------|---------------------------|
|
||||||
|
| `&` | 按位与 | `a & b` | 都为1才为1 |
|
||||||
|
| `|` | 按位或 | `a | b` | 有一个为1就为1 |
|
||||||
|
| `~` | 按位非 | `~a` | 1变0,0变1(按位取反) |
|
||||||
|
| `^` | 按位异或 | `a ^ b` | 相同为0,不同为1 |
|
||||||
|
| `<<` | 左移 | `a << 1` | 相当于乘2 |
|
||||||
|
| `>>` | 右移 | `a >> 1` | 相当于除2 |
|
||||||
|
|
||||||
|
### 示例代码
|
||||||
|
```cpp
|
||||||
|
int a = 5, b = 3; // 二进制: a=0101, b=0011
|
||||||
|
cout << (a & b) << endl; // 1
|
||||||
|
cout << (a | b) << endl; // 7
|
||||||
|
cout << (a ^ b) << endl; // 6
|
||||||
|
cout << (~a) << endl; // -6(因为补码)
|
||||||
|
cout << (a << 1) << endl; // 10
|
||||||
|
cout << (a >> 1) << endl; // 2
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 总结
|
||||||
|
|
||||||
|
- 熟练掌握算术、关系、逻辑、自增减、三目和位运算是编程的基础。
|
||||||
|
- 编程时建议使用 `括号` 明确优先级,增强代码可读性。
|
||||||
|
- 多做练习能更好地掌握各种运算符的特性。
|
||||||
|
|
Loading…
Reference in New Issue