From b5939c90d4d27817a350f24338bec38d3f8ca0c5 Mon Sep 17 00:00:00 2001 From: sairate Date: Sat, 19 Apr 2025 19:58:38 +0800 Subject: [PATCH] =?UTF-8?q?docs(NOI=E7=AB=9E=E8=B5=9B=E5=A4=A7=E7=BA=B2):?= =?UTF-8?q?=20=E6=B7=BB=E5=8A=A0=20C++=20=E7=A8=8B=E5=BA=8F=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E5=9F=BA=E7=A1=80=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增程序基本概念、基本数据类型、程序基本语句等文档 - 更新 mkdocs.yml 配置,优化文档结构- 调整部分文档路径,提高可读性 --- .idea/workspace.xml | 12 +- .../NOI竞赛大纲/二.C++程序设计/4.基本运算.md | 156 ++++++++++++++++++ 2 files changed, 166 insertions(+), 2 deletions(-) create mode 100644 notebook/docs/NOI竞赛大纲/二.C++程序设计/4.基本运算.md diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 5bf400ab..a448cf92 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -5,8 +5,8 @@ + - diff --git a/notebook/docs/NOI竞赛大纲/二.C++程序设计/4.基本运算.md b/notebook/docs/NOI竞赛大纲/二.C++程序设计/4.基本运算.md new file mode 100644 index 00000000..41161703 --- /dev/null +++ b/notebook/docs/NOI竞赛大纲/二.C++程序设计/4.基本运算.md @@ -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 +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 +``` + +--- + +## 总结 + +- 熟练掌握算术、关系、逻辑、自增减、三目和位运算是编程的基础。 +- 编程时建议使用 `括号` 明确优先级,增强代码可读性。 +- 多做练习能更好地掌握各种运算符的特性。 +