这周我将第1、4、5、6、7、9、10章大概的扫一遍,这是一本挺有意思的科普书,帮我回忆起了一些关于本科时期学的C语言、数据结构和计算机网络课程的内容。
这其中有让我想要记录的一些笔记,虽然可能是硬搬过来,但确实挺有意思的:
-
计算机的三大原则:
- 计算机是执行输入、运算、输出的机器
- 程序是指令和数据的集合
- 计算机的处理方式有时和人们的思维习惯不同
-
程序像河水一样流动
这里将程序比喻成河流,感觉很有意思。从高山的泉眼中涌出的清泉形成了河流的源头(程序执行的起点)。
水流从山中缓缓流下,有时向着一个方向流淌(顺序执行),有时中途分出了支流(条件分支),还有时由于地势卷起了漩涡(循环)。
在正式编程之前,一定要将算法或者是流程图写出来,首先保证在理论上或者是逻辑上这个算法是没有问题的。
-
和算法成为好朋友的7个要点
- 算法中解决问题的步骤是明确且有限的
- 计算机不靠直觉而是机械地解决问题
- 了解并应用经典的算法
- 利用计算机的处理速度
- 使用编程技巧提升程序的执行速度
- 找出数字间的规律
- 先在纸上考虑算法
-
和数据结构成为好朋友的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语言中,结构体是数据的集合,它将数据捆绑在一起,使得我们可以将这些数据看成一个整体。而对结构体中的数据进行 *** 作的函数却写在结构体外部。
然而在面向对象编程中,将表示事物行为的函数也放入到这个整体中,这就形成了对象的概念,使得这个整体既能描述属性又能描述行为。
- 面向对象编程通过把组件拼装到一起构建程序
- 面向对象编程能够提升程序的开发效率和可维护性
- 面向对象编程是适用于大型程序的开发方法
- 面向对象编程就是在为现实世界建模
- 面向对象编程可借助UML设计程序(不是特别理解,感觉是要培养这样的编程思想)
- 面向对象编程通过在对象间传递消息驱动程序
- 在面向对象编程中使用继承、封装和多态
继承:通过继承已存在的类所拥有的成员而生成新的类
封装:在类所拥有的成员中,隐藏一些没必要展现给该类调用者的成员
多态:针对同一消息,不同的对象可以进行不同的 *** 作
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)