docs(NOI竞赛大纲): 添加 C++ 程序设计基础文档

- 新增程序基本概念、基本数据类型、程序基本语句等文档
- 更新 mkdocs.yml 配置,优化文档结构- 调整部分文档路径,提高可读性
This commit is contained in:
sairate 2025-04-19 19:58:38 +08:00
parent 9895758f6a
commit b5939c90d4
2 changed files with 166 additions and 2 deletions

View File

@ -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++ 程序设计基础文档&#10;&#10;- 新增程序基本概念、基本数据类型、程序基本语句等文档&#10;- 更新 mkdocs.yml 配置,优化文档结构- 调整部分文档路径,提高可读性"> <list default="true" id="02f9b0c7-a97d-4689-afaa-3f6563382100" name="更改" comment="docs(NOI竞赛大纲): 添加 C++ 程序设计基础文档&#10;&#10;- 新增程序基本概念、基本数据类型、程序基本语句等文档&#10;- 更新 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++ 程序设计基础文档&#10;&#10;- 新增程序基本概念、基本数据类型、程序基本语句等文档&#10;- 更新 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">

View File

@ -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; // 输出 1true
cout << (a == b) << endl; // 输出 0false
```
---
## 【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变00变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
```
---
## 总结
- 熟练掌握算术、关系、逻辑、自增减、三目和位运算是编程的基础。
- 编程时建议使用 `括号` 明确优先级,增强代码可读性。
- 多做练习能更好地掌握各种运算符的特性。