浅谈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++。
目录
相关文章
|
19天前
|
C++
c++的学习之路:27、红黑树
c++的学习之路:27、红黑树
30 4
|
19天前
|
Java C++
C++的学习之路:21、继承(2)
C++的学习之路:21、继承(2)
18 0
|
19天前
|
编译器 C语言 C++
c++的学习之路:19、模板
c++的学习之路:19、模板
32 0
|
19天前
|
设计模式 存储 Android开发
c++的学习之路:18、容器适配器与反向迭代器
c++的学习之路:18、容器适配器与反向迭代器
21 0
|
19天前
|
存储 算法 C++
c++的学习之路:17、stack、queue与priority_queue
c++的学习之路:17、stack、queue与priority_queue
30 0
|
19天前
|
存储 C++ 容器
c++的学习之路:26、AVL树
c++的学习之路:26、AVL树
27 0
|
19天前
|
编译器 C++
c++的学习之路:22、多态(1)
c++的学习之路:22、多态(1)
21 0
c++的学习之路:22、多态(1)
|
19天前
|
安全 编译器 程序员
c++的学习之路:20、继承(1)
c++的学习之路:20、继承(1)
29 0
|
2天前
|
编译器 C++
【C++】继续学习 string类 吧
首先不得不说的是由于历史原因,string的接口多达130多个,简直冗杂… 所以学习过程中,我们只需要选取常用的,好用的来进行使用即可(有种垃圾堆里翻美食的感觉)
7 1
|
2天前
|
算法 安全 程序员
【C++】STL学习之旅——初识STL,认识string类
现在我正式开始学习STL,这让我期待好久了,一想到不用手撕链表,手搓堆栈,心里非常爽
10 0