第64章 代数与平面几何
代数部分的方程求解、函数应用,以及平面几何中的图形性质、坐标运算等,是处理数学建模、图形绘制、逻辑判断等问题的基础。八级大纲要求"能求解一元一次方程、二元一次方程,并掌握长方形、三角形、圆形的面积计算"。
64.1 代数基础
64.1.1 实数与代数式
实数分类
- 有理数:整数、分数,可写成 ;
- 无理数:无限不循环小数,如 。
实数运算律
代数式与整式
- 代数式:由数字、字母经加减乘除乘方开方构成,例 ;
- 单项式:数字字母乘积,如 ;
- 多项式:多个单项式相加; 整式运算:
- 合并同类项:;
- 幂运算:
64.1.2 方程与不等式
一元一次方程 标准形式 步骤:去分母→去括号→移项→合并同类项→系数化为1。
二元一次方程组 形如
解法:代入消元、加减消元。
一元二次方程 标准式 判别式 求根公式:
- :两个不等实数根
- :两个相等实数根
- :无实数根
不等式基本性质
- 同加同减,不等号不变;
- 同乘除正数,不等号不变;
- 同乘除负数,不等号反转。
64.1.3 函数基础
一次函数
- 为正比例函数 ;
- , 随增大而增大;反之。
反比例函数 图像为双曲线,在一、三象限,在二、四象限。
二次函数 对称轴: 顶点坐标:
- 开口向上,顶点最小值;
- 开口向下,顶点最大值。
64.1.4 用 C++ 求解方程(教学代码)
一元一次方程 的解析解:
#include <iostream>
using namespace std;
// 解 ax + b = 0,返回是否有唯一解;解写入 x
bool solveLinear(double a, double b, double &x) {
if (a == 0) return false; // a=0 时不是一元一次方程(无解或无穷解)
x = -b / a;
return true;
}
二元一次方程组 可用克拉默法则(行列式):
#include <iostream>
using namespace std;
// 解二元一次方程组,行列式 det = a1*b2 - a2*b1;det=0 无解/无穷解
bool solve2(double a1, double b1, double c1,
double a2, double b2, double c2,
double &x, double &y) {
double det = a1 * b2 - a2 * b1;
if (det == 0) return false;
x = (c1 * b2 - c2 * b1) / det;
y = (a1 * c2 - a2 * c1) / det;
return true;
}
实际编程中 a == 0 对 double 不保险,应写成 fabs(a) < 1e-9。八级题目数据通常整数,直接用 == 0 也能过,但养成"误差区间"习惯能避免隐藏 bug。
64.2 平面几何基础
64.2.1 点、线、角
- 直线:两端无限延伸,两点确定一条直线;
- 线段:两点之间部分,两点之间线段最短;
- 射线:一端无限延伸。
角分类:锐角、直角、钝角。 平行线性质:同位角相等、内错角相等、同旁内角互补。
64.2.2 三角形
三边关系:两边之和大于第三边,两边之差小于第三边。 内角和:;外角等于不相邻两内角和。
全等判定:SSS、SAS、ASA、AAS、HL(直角三角形) 相似判定:两角相等 / 两边成比例夹角相等 / 三边成比例;面积比等于相似比平方。
直角三角形勾股定理:
- 30°对直角边为斜边一半;
- 等腰直角三角形斜边直角边。
64.2.3 四边形
平行四边形:对边平行相等、对角相等、对角线平分; 矩形:四角直角,对角线相等; 菱形:四边相等,对角线垂直平分; 正方形:兼具矩形、菱形全部性质; 等腰梯形:两腰相等,同底两角相等,对角线相等。
64.2.4 圆
垂径定理:垂直弦的直径平分弦; 圆心角=对应弧度数,圆周角=弧度数一半; 直径对应圆周角为直角。 直线与圆:
- 相离; 相切; 相交。
64.2.5 平面直角坐标系
点对称
- 关于x轴:
- 关于y轴:
- 关于原点:
两点距离公式()
线段中点坐标:
64.2.6 常用图形面积计算(C++)
| 图形 | 面积公式 | 说明 |
|---|---|---|
| 长方形 | 长 × 宽 | |
| 三角形(底高) | 底 × 高 ÷ 2 | |
| 三角形(三顶点/鞋带) | $$S = \frac12\left | x_1(y_2-y_3)+x_2(y_3-y_1)+x_3(y_1-y_2)\right |
| 圆 |
#include <iostream>
#include <cmath>
using namespace std;
const double PI = 3.141592653589793;
// 由三个顶点坐标求三角形面积(鞋带公式 / 叉积)
double triangleArea(double x1, double y1, double x2, double y2,
double x3, double y3) {
return 0.5 * fabs(x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2));
}
// 圆面积
double circleArea(double r) {
return PI * r * r;
}
// 长方形面积
double rectArea(double a, double b) {
return a * b;
}
给坐标时,"底和高"要先算垂足,麻烦且易错;鞋带公式直接代入 6 个数即可,还能推广到任意多边形,是编程求面积的首选。
64.3 数学在编程中的应用
- 代数:循环迭代解方程、函数数值计算;
- 几何:坐标求距离、图形碰撞检测、绘图;
64.4 注意事项
- 浮点运算选用float/double保证精度;
- 平方开方使用pow、sqrt库函数;
- 判断浮点数相等不能直接==,需设置极小误差区间。
64.5 真题示例(坐标求三角形面积)
【GESP 八级风格·编程题】 题目描述:输入 6 个实数 ,表示平面上一个三角形的三个顶点,输出该三角形的面积,保留两位小数。 输入格式:一行六个实数。 输出格式:一个实数,面积。 样例输入:
0 0 3 0 0 4样例输出:6.00
参考解答(鞋带公式):
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main() {
double x1, y1, x2, y2, x3, y3;
cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
double area = 0.5 * fabs(x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2));
cout << fixed << setprecision(2) << area << endl;
return 0;
}
样例三点 (0,0),(3,0),(0,4) 是直角边 3 和 4 的直角三角形,面积应为 ,与程序输出一致,说明公式正确。
练习题
下列选择题考查代数方程与几何面积/距离,参考答案默认折叠,点击"参考答案"展开。
1.(一次方程) 方程 的解是?
- A.
- B.
- C.
- D.
参考答案
B。。
2.(勾股定理) 直角三角形的两条直角边分别为 3 和 4,斜边长是?
- A. 5
- B. 6
- C. 7
- D. 25
参考答案
A。。
3.(圆面积) 半径为 2 的圆,面积是?(取 )
- A. 6.28
- B. 12.56
- C. 4
- D. 25.12
参考答案
B。。
4.(两点距离) 点 与 之间的距离是?
- A. 5
- B. 7
- C. 12
- D. 25
参考答案
A。。
5.(方程组) 鸡兔同笼:共有 35 个头、94 只脚,设鸡 只、兔 只,方程组是?
- A.
- B.
- C.
- D.
参考答案
A。头数即总只数 ;鸡 2 脚、兔 4 脚,脚数 。解得鸡 23 只、兔 12 只。