浅谈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++。
目录
相关文章
|
4天前
|
算法 网络安全 区块链
2023/11/10学习记录-C/C++对称分组加密DES
本文介绍了对称分组加密的常见算法(如DES、3DES、AES和国密SM4)及其应用场景,包括文件和视频加密、比特币私钥加密、消息和配置项加密及SSL通信加密。文章还详细展示了如何使用异或实现一个简易的对称加密算法,并通过示例代码演示了DES算法在ECB和CBC模式下的加密和解密过程,以及如何封装DES实现CBC和ECB的PKCS7Padding分块填充。
19 4
2023/11/10学习记录-C/C++对称分组加密DES
|
4月前
|
算法 C语言 C++
C++语言学习指南:从新手到高手,一文带你领略系统编程的巅峰技艺!
【8月更文挑战第22天】C++由Bjarne Stroustrup于1985年创立,凭借卓越性能与灵活性,在系统编程、游戏开发等领域占据重要地位。它继承了C语言的高效性,并引入面向对象编程,使代码更模块化易管理。C++支持基本语法如变量声明与控制结构;通过`iostream`库实现输入输出;利用类与对象实现面向对象编程;提供模板增强代码复用性;具备异常处理机制确保程序健壮性;C++11引入现代化特性简化编程;标准模板库(STL)支持高效编程;多线程支持利用多核优势。虽然学习曲线陡峭,但掌握后可开启高性能编程大门。随着新标准如C++20的发展,C++持续演进,提供更多开发可能性。
89 0
|
2月前
|
编译器 C语言 C++
配置C++的学习环境
【10月更文挑战第18天】如果想要学习C++语言,那就需要配置必要的环境和相关的软件,才可以帮助自己更好的掌握语法知识。 一、本地环境设置 如果您想要设置 C++ 语言环境,您需要确保电脑上有以下两款可用的软件,文本编辑器和 C++ 编译器。 二、文本编辑器 通过编辑器创建的文件通常称为源文件,源文件包含程序源代码。 C++ 程序的源文件通常使用扩展名 .cpp、.cp 或 .c。 在开始编程之前,请确保您有一个文本编辑器,且有足够的经验来编写一个计算机程序,然后把它保存在一个文件中,编译并执行它。 Visual Studio Code:虽然它是一个通用的文本编辑器,但它有很多插
|
2月前
|
Java 编译器 C++
c++学习,和友元函数
本文讨论了C++中的友元函数、继承规则、运算符重载以及内存管理的重要性,并提到了指针在C++中的强大功能和使用时需要注意的问题。
27 1
|
5月前
|
存储 安全 编译器
【C++入门 四】学习C++内联函数 | auto关键字 | 基于范围的for循环(C++11) | 指针空值nullptr(C++11)
【C++入门 四】学习C++内联函数 | auto关键字 | 基于范围的for循环(C++11) | 指针空值nullptr(C++11)
|
5月前
|
人工智能 分布式计算 Java
【C++入门 一 】学习C++背景、开启C++奇妙之旅
【C++入门 一 】学习C++背景、开启C++奇妙之旅
|
5月前
|
存储 自然语言处理 编译器
【C++入门 三】学习C++缺省参数 | 函数重载 | 引用
【C++入门 三】学习C++缺省参数 | 函数重载 | 引用
|
5月前
|
小程序 C++
【C++入门 二 】学习使用C++命名空间及其展开
【C++入门 二 】学习使用C++命名空间及其展开
|
5月前
|
存储 C++ 索引
|
5月前
|
存储 C++ 容器