题目

编写程序,演示使用冒号运算符 <code>start:step:stop</code> 生成等差数值序列,涵盖正步长、负步长递减以及当终止值无法整除步长时的自动截断行为。

输入格式:无需外部输入。

输出格式:依次打印生成的 3 组等差向量。

数据范围与约定:实数数列。

思路与算法

1. 双参数与三参数形式
省略步长时 1:5 默认为步长 1;指定步长为 1:2:9(产生 1, 3, 5, 7, 9)。

2. 边界判定准则
冒号语法生成的最后一个元素不会严格要求等于 stop,而是满足不超过 stop 的最大等差项。例如 0:3:10,最后一个元素为 9。

3. 负步长递减
若需递减,步长必须为负,如 10:-2:2;若 start > stop 且步长为正,将静默生成 1×0 空向量。

完整程序

% Octave / MATLAB 第12题:冒号生成等差数列
v1 = 1:5;          % 默认步长 1
v2 = 0:3:10;       % 无法整除截断示例
v3 = 10:-2.5:0;    % 浮点负步长递减

fprintf("默认步长 1:5:\n");
disp(v1);

fprintf("正步长 0:3:10 (末尾截断为 9):\n");
disp(v2);

fprintf("负步长递减 10:-2.5:0:\n");
disp(v3);

运行示例

输出:

默认步长 1:5:
   1   2   3   4   5
正步长 0:3:10 (末尾截断为 9):
    0    3    6    9
负步长递减 10:-2.5:0:
    10.0000     7.5000     5.0000     2.5000          0