Files
project1/第05课-嵌套循环与图形打印/教案-学生版.md
2026-07-02 16:54:05 +08:00

3.9 KiB
Raw Blame History

第5课嵌套循环与图形打印

教学目标

  • 理解嵌套循环的执行流程(外层管行、内层管列)
  • 能分析图形规律,写出对应的行列公式
  • 掌握矩形、直角三角形、等腰三角形、菱形的打印方法
  • 掌握多层循环以及分支与循环相互嵌套

核心考点:嵌套循环中的行列关系

考什么

根据图形推导每一行的________数和________数再使用嵌套循环输出。

必须理解

________循环负责行数________循环负责当前行中的字符数量。等腰三角形第 i 行有________个前导空格、________个星号。

核心写法

for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= ________; j++) cout << ' ';
    for (int j = 1; j <= ________; j++) cout << '*';
    ____________________;
}

常见错误

  • 换行应写在内层循环里面还是外面________________
  • 为什么内层循环的次数常常与 i 有关________________
  • 行号从0开始时能否直接使用从1开始的公式________

判断是否掌握

  • 我能列出每行空格数和符号数。
  • 我能由行号推导数量公式。
  • 我能正确安排内外层循环与换行。

课堂编程题

课堂1实心与空心矩形【适中】

题目描述: 输入行数 n、列数 m 和模式 type。当 type=1 时打印实心矩形;当 type=2 时打印空心矩形。

输入格式: 依次输入行数、列数和图形模式。

输出格式: 用星号打印指定矩形。

数据范围: 1≤n,m≤30type 为 1 或 2。

输入样例:

3 5 2

输出样例:

*****
*   *
*****

解题思路: 双层循环枚举行列。实心模式总输出星号;空心模式只在首尾行或首尾列输出星号。

易错提醒: 每打印完一行才换行;n=1m=1 时所有位置都在边界上。

课堂2四种直角三角形【适中】

题目描述: 输入 n 和类型 type,打印边长为 n 的直角三角形1 左下、2 右下、3 左上、4 右上。

输入格式: 输入三角形边长和图形类型。

输出格式: 指定方向的星号三角形。

数据范围: 1≤n≤301≤type≤4

输入样例:

4 2

输出样例:

   *
  **
 ***
****

解题思路:i 行星号数量为 in-i+1;右对齐时先输出相应数量空格。

易错提醒: 右对齐不是改变星号数量,而是在星号前补空格。

课堂3等腰三角形与菱形【适中】

题目描述: 输入 n 和模式 type。模式 1 打印高为 n 的实心等腰三角形;模式 2 打印上下高度均为 n、中间行不重复的菱形。

输入格式: 输入图形高度和图形模式。

输出格式: 指定图形。

数据范围: 1≤n≤20

输入样例:

3 2

输出样例:

  *
 ***
*****
 ***
  *

解题思路: 上半部分第 i 行有 n-i 个空格和 2i-1 个星号;菱形下半部分按相反规律输出。

易错提醒: 菱形下半部分从 n-1 开始,避免中间最长行重复。

课堂4九九乘法表【适中】

题目描述: 输入 n,打印 1n 的下三角乘法表。第 i 行输出 1×ii×i

输入格式: 输入乘法表的最大因数。

输出格式: 下三角乘法表,每项格式为 j*i=积,项之间一个空格。

数据范围: 1≤n≤9

输入样例:

3

输出样例:

1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9

解题思路: 外层 i 控制行和第二个因数,内层 j 从 1 走到 i

易错提醒: 内层上界是当前行号 i,不是固定的 n


课后作业

请完成本课对应的课后作业,见编程题文件。