题目
编写程序,演示使用冒号运算符 <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