《计算机是怎么跑起来的》--读书笔记

《计算机是怎么跑起来的》--读书笔记,第1张

《计算机是怎么跑起来的》–读书笔记

这周我将第1、4、5、6、7、9、10章大概的扫一遍,这是一本挺有意思的科普书,帮我回忆起了一些关于本科时期学的C语言、数据结构和计算机网络课程的内容。


这其中有让我想要记录的一些笔记,虽然可能是硬搬过来,但确实挺有意思的:

  • 计算机的三大原则:

    1. 计算机是执行输入、运算、输出的机器
    2. 程序是指令和数据的集合
    3. 计算机的处理方式有时和人们的思维习惯不同
  • 程序像河水一样流动
    这里将程序比喻成河流,感觉很有意思。


    从高山的泉眼中涌出的清泉形成了河流的源头(程序执行的起点)。


    水流从山中缓缓流下,有时向着一个方向流淌(顺序执行),有时中途分出了支流(条件分支),还有时由于地势卷起了漩涡(循环)。


    在正式编程之前,一定要将算法或者是流程图写出来,首先保证在理论上或者是逻辑上这个算法是没有问题的。


  • 和算法成为好朋友的7个要点

    1. 算法中解决问题的步骤是明确且有限的
    2. 计算机不靠直觉而是机械地解决问题
    3. 了解并应用经典的算法
    4. 利用计算机的处理速度
    5. 使用编程技巧提升程序的执行速度
    6. 找出数字间的规律
    7. 先在纸上考虑算法
  • 和数据结构成为好朋友的7个要点

    1. 了解内存和变量的关系

    2. 了解基础的数据结构–数组

    3. 了解数组的应用–作为典型算法的数据结构

    4. 了解典型数据结构的类型–栈、队列、链表、二叉树

    5. 了解栈和队列的实现方法
      栈:数组、栈顶指针(变量)、入栈函数、出栈函数 (后进先出)
      队列:数组、标识数据存储位置的索引,标识数据读取位置的索引(两个变量)、存储数据的函数,读取数据的函数

    6. 了解结构体的组成
      把若干数据项汇集到一处并赋予其名字后所形成的一个整体。


    7. 了解链表和二叉树的实现方法
      链表是结构体中在添加一个指向其他元素的指针

          char Chinese;           /*语文成绩*/
          char Math;              /*数学成绩*/
          char English;           /*英语成绩*/
          struct TestResult* Ptr; /* 指向其他元素的指针*/
      }
      

      改变Ptr的值就可以实现对数值中元素的排序,使元素的排列顺序不同于其在内存上的物理排列顺序。


      二叉树多用于搜索数据的算法,如二分查找法

          char Chinese;
          char Math;
          char English;
          struct TestResult* Ptr1; /*指向其他元素的指针1*/
          struct TestResult* Ptr2; /*指向其他元素的指针2*/
      }```
      
  • 面向对象编程
    这是一种编写程序的方法,旨在提升开发大程序的效率,使程序易于维护。



    面向对象编程是一种基于一下思路的程序设计方法:将关注点置于对象本身,对象的构成要素包含对象的行为及 *** 作。



    在C语言中,结构体是数据的集合,它将数据捆绑在一起,使得我们可以将这些数据看成一个整体。


    而对结构体中的数据进行 *** 作的函数却写在结构体外部。


    然而在面向对象编程中,将表示事物行为的函数也放入到这个整体中,这就形成了对象的概念,使得这个整体既能描述属性又能描述行为。


    1. 面向对象编程通过把组件拼装到一起构建程序
    2. 面向对象编程能够提升程序的开发效率和可维护性
    3. 面向对象编程是适用于大型程序的开发方法
    4. 面向对象编程就是在为现实世界建模
    5. 面向对象编程可借助UML设计程序(不是特别理解,感觉是要培养这样的编程思想)
    6. 面向对象编程通过在对象间传递消息驱动程序
    7. 在面向对象编程中使用继承、封装和多态
      继承:通过继承已存在的类所拥有的成员而生成新的类
      封装:在类所拥有的成员中,隐藏一些没必要展现给该类调用者的成员
      多态:针对同一消息,不同的对象可以进行不同的 *** 作

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/563866.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-03
下一篇 2022-04-03

发表评论

登录后才能评论

评论列表(0条)

保存