QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 512|回复: 0
打印 上一主题 下一主题

编程中常见错误

[复制链接]
字体大小: 正常 放大

413

主题

36

听众

1854

积分

升级  85.4%

  • TA的每日心情
    开心
    2019-9-18 21:55
  • 签到天数: 258 天

    [LV.8]以坛为家I

    社区QQ达人

    群组2015国赛冲刺

    群组2016美赛公益课程

    群组国赛讨论

    群组第三届数模基础实训

    群组Matlab讨论组

    跳转到指定楼层
    1#
    发表于 2015-7-14 22:10 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    1        编程中常见错误
    1.1        常见语法错误
    1.1.1        引用未定义变量

    clear all
    a=234
    b=a
    c=d


    ??? Undefined function or variable 'd'.
    1.1.2        下标越界
    clear all
    a=rand(1,100);

    for i=1:100,
       a(i)=i^2;
    end
    for j=2:101,
       b(j)=a(j);
    end       

    ???  Index exceeds matrix dimensions.
    1.1.3        维数不同赋值
    ?clear all
    a=[1 2 3 4];
    b=zeros(1,5);
    for i=1:10,
       b(i,=a.^i;
    end

    ???  In an assignment  A(matrix, = B, the number of columns in A and B
    must be the same.

    1.2        逻辑错误
    1.2.1        变量未初始化
    a=fix(10*rand(1,10));
    m = length(a);
    for i=1:m-1,
       for j=i+1:m,
          it=it+1;
          %error code
          b(it)=a(i)*a(i);%right code: b(it)=a(i)*a(j)
       end   
    end

    计数器变量it没有初始化

    1.2.2        变量名误用
    例子1:获得向量a中任取2个元素相乘的所有结果
    a=fix(10*rand(1,10));
    m = length(a);
    it=0;
    for i=1:m-1,
       for j=i+1:m,
          it=it+1;
          %error code
          b(it)=a(i)*a(i);%right code: b(it)=a(i)*a(j)
       end   
    end
    1.2.3        程序实现错误
    没有按照模型(或算法)本身的意图实现编程。这种错误可能出现在程序的任何地方。
    1.3        如何查找程序中的错误
    有两类错误:
    语法错误;
    运行错误

    如果碰到语法错误,相对来说比较容易解决;
    如果遇到“运行错误”,即运行结果明显错误或者怀疑有错,此时查找错误比较困难;

    1.3.1        查找错误的一般原则
    先检查最可能出现错误的代码;
    从上到下,逐行查错;
    1.3.2        一般查错顺序
    此时查错可以按以下顺序:
    1、        表达式中的变量名是否用错了
    2、        原则查看循环变量的范围是否有问题;
    3、        查看向量、矩阵变量在赋值语句的下标表达式是否有问题
    4、        查看算法中的逻辑错误,即程序没有实现算法的意图(这种错误不一定好找)
    5、        检查for,while,if等语句是否与end配对,确保正确配对
    6、        其他

    注意:以上是一些经验性东西,还需要在实践中总结;

    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    数学中国版主团队!
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-5-22 01:54 , Processed in 0.330358 second(s), 50 queries .

    回顶部