🧶

面积计算:铺满地板要多少块砖

给地毯店当小助手:客人要铺满一块地,需要多少块 1×1 的方砖?「多少块」就是面积——长方形数砖、三角形拼一拼、圆用 π 估一估。

💡 打个比方

想象你开一家地毯店:每块方砖都是 1 厘米 × 1 厘米 = 1 平方厘米。客人指着地板说「铺满这块地要多少钱」,你只要数一下:要多少块砖?这个数就是面积(单位:平方厘米 cm²)。

长方形最简单:4 厘米 × 3 厘米的地,横着铺 4 块、竖着铺 3 排,4 × 3 = 12 块砖 → 面积 12。所以长方形面积 = 长 × 宽。

三角形呢?拿两个完全一样的三角形拼一拼——正好拼成一个平行四边形(长方形是特殊的平行四边形)!所以三角形面积 = 底 × 高 ÷ 2,那个 ÷2 就是「我只有一半,另一半是别人的」。

圆没法数砖,古人用π(3.14…)估:圆面积 = π r²(r 是半径,圆心到边缘的距离)。π 是「圆周长 ÷ 直径」,不管圆多大这个比值都一样——这就是 π 的魔力。

组合图形(比如「房子」= 长方形墙 + 三角形屋顶):把它切成会算的部分,分别求面积再加起来。这就是几何编程的三板斧。

术语:面积(铺满图形要多少块 1×1 方砖,单位平方厘米 cm² / 平方米 m²);底和高(三角形:选一条边当底,从对角顶点向底作垂线,垂线段就是高,面积 = 底×高÷2);半径 r(圆心到圆上任意一点的距离,直径 = 2r);π(圆周率 ≈ 3.14,圆周长 = 2πr,圆面积 = πr²);组合图形(由基本图形拼成,面积 = 各部分面积之和)。

🖼️ 大图看明白

长方形:4 × 3 = 12 块砖 S = 长 × 宽 = 12 cm² 两个一样的三角形 → 一个长方形 三角形 S = 底 × 高 ÷ 2 房子 = 墙 + 屋顶 S = 4×3 + 4×2÷2 = 16 cm² r 圆 S = πr²(π ≈ 3.14) 周长 C = 2πr 面积计算器(菜单式) 1 → 长方形:S = 长 × 宽 2 → 三角形:S = 底 × 高 ÷ 2 3 → 圆:S = 3.14 × r × r 房子 = 墙 + 屋顶(切开再相加)

🧩 子任务 1:长方形与正方形——数砖头

🎯 小目标:会算长方形 S = 长 × 宽、正方形 S = 边长 × 边长,分清「面积」和「周长」。

地毯店开张第一单:一块 4 厘米 × 3 厘米 的地板要铺 1×1 方砖。横着一排铺 4 块,一共铺 3 排:

// 数砖法:一排 4 块 × 3 排 = 12 块 → 面积 = 12 cm²
// 不用真数——直接乘:
S = 长 × 宽 = 4 × 3 = 12 cm²

// 正方形是「长 = 宽」的长方形:边长 5 cm
S = 边长 × 边长 = 5 × 5 = 25 cm²

// 长条地板:8 cm × 2 cm
S = 8 × 2 = 16 cm²

// 逆用公式:已知面积和长,求宽
// S = 长 × 宽 → 宽 = S ÷ 长
S = 24 cm²,长 = 8 cm → 宽 = 24 ÷ 8 = 3 cm

// ⚠️ 周长 ≠ 面积(单位都不同!)
// 4×3 的长方形:
// 周长 = (4 + 3) × 2 = 14 cm    ← 围一圈的长度(厘米)
// 面积 = 4 × 3 = 12 cm²         ← 铺满的砖数(平方厘米)
✅ 小检查:① 长方形 6 cm × 4 cm 的面积?② 正方形边长 7 cm,周长和面积各是多少?(单位一样吗?)③ 长方形面积 30 cm²、长 6 cm,宽是多少?
看看答案 ① S = 6 × 4 = 24 cm²。② 周长 = 7 × 4 = 28 cm;面积 = 7 × 7 = 49 cm²。单位不一样:周长是「厘米」(长度),面积是「平方厘米」(砖的块数)——数字 28 和 49 也不能直接比大小说谁「更大」。③ 宽 = S ÷ 长 = 30 ÷ 6 = 5 cm(验:6 × 5 = 30 ✓)。
易错:把「4×3 = 14」当面积——(4+3)×2 = 14 是周长(围一圈),4×3 = 12 才是面积(铺满)。看到「一圈/边/围栏」想周长,看到「铺/盖/占地」想面积。

🧩 子任务 2:三角形——拼出来的 ÷ 2

🎯 小目标:理解「三角形 = 底 × 高 ÷ 2」里 ÷2 的来历(两个同底同高的三角形拼成平行四边形),会选底和高。

三角形没法直接数砖。秘诀:复制一个一模一样的三角形,拼起来——两个同底同高的三角形正好拼成一个平行四边形(长方形是特殊的平行四边形)。所以三角形面积 = 平行四边形面积 ÷ 2:

// 底 4 cm、高 3 cm 的三角形:
// 拼成的长方形:4 × 3 = 12 cm²
// 三角形只占一半:
S = 底 × 高 ÷ 2 = 4 × 3 ÷ 2 = 6 cm²

// 直角三角形:两条直角边互相垂直——
// 一条当底、一条就是高(不用额外画垂线!)
// 直角边 3 cm 和 4 cm:
S = 3 × 4 ÷ 2 = 6 cm²

// 一般三角形找「高」:选一条边当底,
// 从对角顶点向底(或其延长线)作垂线,垂线段 = 高。
// 底 10 cm、对应高 6 cm:
S = 10 × 6 ÷ 2 = 30 cm²

// 逆用:已知面积和底,求高
// S = 底 × 高 ÷ 2 → 高 = 2 × S ÷ 底
S = 18 cm²,底 = 6 cm → 高 = 2 × 18 ÷ 6 = 6 cm
✅ 小检查:① 底 12 cm、高 5 cm 的三角形面积?② 直角三角形两条直角边 6 cm、8 cm,面积?③ 为什么 ÷2 不能漏?(漏了会算成什么?)
看看答案 ① S = 12 × 5 ÷ 2 = 30 cm²。② 直角边互相垂直,直接当底和高:S = 6 × 8 ÷ 2 = 24 cm²。③ 漏掉 ÷2 就算成整个平行四边形的面积(把「别人的那个三角形」也算进来了),结果是正确值的 2 倍——比如 ① 会错算成 60。
易错:底和高「不配对」——底选 10 cm 那条边,高却拿另一条斜边上的 4 cm 来乘。高必须是从对角顶点向这条底作的垂线段,底和高要「垂直配对」才成立。

🧩 子任务 3:圆——π 的魔力

🎯 小目标:记住 S = πr²(π 取 3.14)和 C = 2πr,会手推 r = 2 的圆,分清 r 和 r² 在代码里怎么写。

圆没法数砖,古人发现一个神奇的事实:不管圆多大,周长 ÷ 直径 ≈ 3.14(这个比值就是 π)。有了 π,圆面积也能算:S = π r²(r 是半径,圆心到边缘的距离)。手推 r = 2 的圆:

// 圆:半径 r = 2 cm,π 取 3.14
// 面积:S = π × r² = 3.14 × (2 × 2) = 3.14 × 4 = 12.56 cm²
// 周长:C = 2 × π × r = 2 × 3.14 × 2 = 12.56 cm
// (r = 2 时,面积和周长的「数字」碰巧一样——单位不同,别得意!)

// 再算两个:
// r = 1:S = 3.14 × 1 = 3.14,C = 2 × 3.14 × 1 = 6.28
// r = 5:S = 3.14 × 25 = 78.5,C = 2 × 3.14 × 5 = 31.4

// 直径 d = 6(题目给直径时:r = d ÷ 2 = 3)
// S = 3.14 × 9 = 28.26 cm²

// 代码里 r² 怎么写?C++ 没有「平方」符号:
// r * r  ← 两个 r 相乘(先算 r*r,再乘 3.14!)
// double s = 3.14 * r * r;
// ⚠️ 不是 3.14 * 2 * r(那是周长的一半),更不是 (3.14 * r) * (3.14 * r)
✅ 小检查:① r = 3 的圆:S 和 C 各是多少?② 直径 10 cm 的圆面积?③ 为什么 r = 2 时 S 和 C 的数字一样?r = 3 时还一样吗?
看看答案 ① S = 3.14 × 9 = 28.26 cm²;C = 2 × 3.14 × 3 = 18.84 cm。② r = 10 ÷ 2 = 5,S = 3.14 × 25 = 78.5 cm²。③ S = 3.14r²、C = 2πr,数字相等 ⇔ r = 2(3.14 × r² = 3.14 × 2r → r = 2)。r = 3 时 S = 28.26 ≠ 18.84 = C,不一样——r = 2 纯属巧合。
易错:把 S = πr² 算成 3.14 × r × 2(那是周长公式 C = 2πr)——r² 是 r 自己乘自己,不是 r 乘 2。写代码时 3.14 * r * r 和 2 * 3.14 * r 一字之差,答案差一倍还多。

🧩 子任务 4:编程——菜单式面积计算器 + 「房子」

🎯 小目标:会写 if/else 菜单(1 长方形 2 三角形 3 圆),会把「房子」切成墙 + 屋顶分别算再相加。

把三个公式装进一个程序:先问客人要算哪种图形(输入菜单号),再按类型读入不同参数。组合图形「房子」= 长方形墙 + 三角形屋顶,切开、分别算、加起来:

// 菜单结构(完整代码在下一节):
int type;
cin >> type;
if (type == 1) {           // 长方形:读 长 宽
    double a, b;
    cin >> a >> b;
    cout << a * b << endl;
} else if (type == 2) {    // 三角形:读 底 高
    double a, b;
    cin >> a >> b;
    cout << a * b / 2 << endl;
} else {                   // 圆:读 半径
    double r;
    cin >> r;
    cout << 3.14 * r * r << endl;
}

// 「房子」组合图形:墙 4×3,屋顶底 4 高 2
// 第 1 步:墙(长方形)= 4 × 3 = 12
// 第 2 步:屋顶(三角形)= 4 × 2 ÷ 2 = 4
// 第 3 步:房子总面积 = 12 + 4 = 16 cm²
// 代码:double house = wall + roof;

// ⚠️ 整数除法陷阱:底×高为奇数时 a*b/2 会截断
// 3 × 3 / 2 = 9 / 2 = 4(int 除法丢 0.5!)
// 解法:变量用 double 读入(cin >> a >> b 读进 double,9/2 = 4.5 ✓)
✅ 小检查:① 菜单输入 2,再输入 5 和 8,输出多少?② 房子:墙 3×4,屋顶底 3 高 2,总面积?③ 为什么菜单程序里三角形用 double 读入而不是 int?
看看答案 ① 三角形 S = 5 × 8 ÷ 2 = 20。② 墙 = 3 × 4 = 12;屋顶 = 3 × 2 ÷ 2 = 3;房子 = 12 + 3 = 15 cm²。③ 底×高可能是奇数(如 3×3 = 9),int ÷ 2 会截断小数(9/2 = 4,丢 0.5);用 double 读入,9/2 = 4.5 就对了。面积经常带小数,一律 double 最稳。
易错:组合图形「整体硬算」——看到房子就想找一个「房子公式」,其实没有。先切成会算的基本图形(长方形、三角形、圆),分别算面积,再加(或减)起来。切法不唯一,结果唯一。

💻 完整代码:菜单式面积计算器(1 长方形 / 2 三角形 / 3 圆 / 4 房子)

// 输入:type(菜单号 1~4);按类型再读参数
//   1 → 读 长 宽;2 → 读 底 高;3 → 读 半径;4 → 房子(固定尺寸)
// 输出:对应图形的面积
// 示例:1 4 3 → 12;2 4 3 → 6;3 2 → 12.56;4 → 16
#include <iostream>
using namespace std;

double rectArea(double a, double b) {    // 长方形:长 × 宽
    return a * b;
}
double triArea(double base, double h) {  // 三角形:底 × 高 ÷ 2
    return base * h / 2;
}
double circleArea(double r) {            // 圆:πr²(π ≈ 3.14,r*r 不是 r*2)
    return 3.14 * r * r;
}

int main() {
    int type;
    cin >> type;
    if (type == 1) {
        double a, b;
        cin >> a >> b;
        cout << rectArea(a, b) << endl;
    } else if (type == 2) {
        double base, h;
        cin >> base >> h;
        cout << triArea(base, h) << endl;
    } else if (type == 3) {
        double r;
        cin >> r;
        cout << circleArea(r) << endl;
    } else {  // type == 4:房子 = 墙 + 屋顶
        // 墙 4×3,屋顶底 4 高 2——切开、分别算、加起来
        double house = rectArea(4, 3) + triArea(4, 2);
        cout << house << " cm²" << endl;
    }
    return 0;
}
// 动手验证:输入 1 4 3 → 12
// 输入 2 10 6 → 30;输入 3 5 → 78.5;输入 4 → 16 cm²

✋ 你来试试

第 1 题:长方形 7 cm × 5 cm 和正方形边长 6 cm,谁的面积大?大多少? 长方形 S = 7 × 5 = 35 cm²;正方形 S = 6 × 6 = 36 cm²。正方形大 36 − 35 = 1 cm²。注意:长方形周长 (7+5)×2 = 24 cm,正方形周长 6×4 = 24 cm——周长相等、面积不等,面积不能只看周长。
第 2 题:三角形底 8 cm 高 5 cm 的面积?底变成 16 cm(高不变),面积怎么变? S = 8 × 5 ÷ 2 = 20 cm²。底 ×2,面积也 ×2:16 × 5 ÷ 2 = 40 cm²。S = 底×高÷2 里底是「乘数」,底翻倍面积翻倍(高同理)。
第 3 题:r = 3 cm 的圆,面积和周长?(π 取 3.14) S = 3.14 × 3 × 3 = 3.14 × 9 = 28.26 cm²;C = 2 × 3.14 × 3 = 18.84 cm。r = 3 时两者数字不一样(只有 r = 2 才碰巧相同)。
第 4 题(加餐):L 形——4×4 正方形切掉右上角 2×2 的小正方形,面积多少?(至少两种切法) 切法一(减法):16 − 4 = 12 cm²。切法二(加法):竖着切,左条 2×4 = 8 + 右下 2×2 = 4 → 8 + 4 = 12 cm²。切法三:横着切,下条 4×2 = 8 + 左上 2×2 = 4 → 12。切法不唯一,结果唯一——这就是组合图形的自由。
🎯 一句话记住:面积三板斧——长方形 长×宽、三角形 底×高÷2(÷2 = 「我只有一半」)、圆 πr²;组合图形 = 切开、分别算、加起来(房子 = 墙 + 屋顶 = 12 + 4 = 16)。