浅谈C++初学者学习者的自学

在大学中,自学能力是异常重要的。当然,这个自学,是在教师指导下的自学,是向完全真正自学的过渡。在终身学习的年代,自主学习是核心,具备自学的能力是基础。自学有充分的自由,简单地可以理解为爱学什么学什么,想怎么学就学什么。这里面也有技术问题,比如学习内容的选择,针对内容对学习方法的选择等。从这个角度讲,也不是完全的自由。在大学,可以有课外知识的自学,课程的学习也要重视在教师的指导下能够自己进行预习、拓展,甚至就某个问题开展研究。
  以C++为例,我们在此做些探讨。
  C++作为一种人工语言,其语法是人为指定的,当然有设计者的想法,同时也是在程序设计理论指导下做出的规定。理解,甚至“记忆”这些语法现象成了初学者的首要障碍。作为实践性很强的专业基础课程,完全可以在实践中去理解和“记忆”。“记忆”二字加引号意在提醒大家,记忆的方法有多种,如重复、实践等等,切不可以理解为背诵。
  例:课本P24的表2.2列出转义字符及其含义,课堂上教师呈现的例子是:
#include<iostream>
usingnamespace std;
int main( ) 
{  cout << "看字母:"<<"\101\102"<< endl;
   getchar(); //等待用户从键盘输入一个字符,此处用于让程序“停下来,以便于观察输出
   cout << "再看字母:"<<"\101\b\102"<< endl;
   getchar();
   cout << "还看字母:"<<"\101\r\102"<< endl;
   return 0;
}
  通过设计并且运行这个程序,大家就可以理解\b(退格)和\r(回车)的含义了,这比用多少语言描述都直接。
  再例,在讲到浮点数的精度问题时,课堂上教师呈现的例子是:
int main()
{   float a = 0.65f, b = 0.6f;
    float c = a - b;
    if (c==0.05)
        cout<<"对了!"<<endl;
    else
        cout<<"错了!"<<endl;
}
  运行结果与你已有的数学知识存在反差,这将使学生深入思考其原因并留下深刻映像。
  在很多情况下,结果并非一定要用cout输出,而是采用调试的方法进行观察。要 学会并习惯单步执行程序,对照自己对程序执行的预期和实际执行结果的反差,不断思考,获得独特的答案。
  【实践】P29指出“如果a和b指定为实型变量,则不允许进行求余运算”,你如何针对这句话 设计一个实验进行验证
  【小技巧】学习材料中会提及这不行,那不行之类的,记不住。 主动“撞错”,你将得到体验,并且也见识了这种错误产生后的现象。当今后编制大程序无意中出现同类错误时,你会微微一笑:“小样,见过你了。” —— 在错误中成长,错误是财富;主动试错,是种境界(后半句仅限于学习程序设计)。
  【实践】还是求余运算(%),P32讲“多数编译系统采用……”,Visual C++是怎么做的?“向零取整”是什么意思?请设计实验进行验证。
  【提示】对后一问,正整数、负整数之间,正整数和负整数进行求余,将程序运行结果与自己的期望结果进行对比后得到结论。你还可以“撞”一次错,算算100%0会怎样。
  【技巧总结】当使用一个新的编译系统(如Boland C++)时,可以对一些与编译系统相关的敏感的指标借此作一测试。或者,在大项目进展过程中,针对可能出问题的地方,有意识地编制一个小程序对平台的的处理方式进行“实地考察”,而不必完全依赖于“翻手册”,要是手册写错了,“实地考察”更可贵。
  总之,多动些脑子,在方法上提高,不能凭蛮力征服c++。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迂者-贺利坚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值