当前课程知识点:程序设计基础 >  第八章 非文本数据处理 >  程设论道 >  程设论道二

返回《程序设计基础》慕课在线视频课程列表

程设论道二在线视频

程设论道二

下一节:师生问答

返回《程序设计基础》慕课在线视频列表

程设论道二课程教案、知识点、字幕

第二方面就跟我们生活中类似就是说你看你

这个可以长久的去存储

然后比如说备份的文件用来备份用

所以有的我们会说存档

日常生活中间有很多有什么需要翻出来去查找

文件可以做这个

有的地方就把文件翻译成档案或者翻译成文档卷宗

另外就是存信息就是有的时候跟你有些东西讲不清楚

写下来给你一份文字的材料

给你一份文件去弄

这跟我们日常生活中有些意义是比较一致的

所以计算机这个我觉得它发挥越来越大作用

其实跟这个文件能够永久存储其实关系度很大的

因为它能存储所以你看它可以长时间的保存

那于是很多信息我都可以把它用文件来存储

让计算机来管理

那如果计算机不具备这种能力的话

那人们想都不会想肯定把它淘汰了或者不去用它

因为你能存储所以我们相互之间交换的时候

我拿个优盘拷个东西给你

你拿个硬盘拷个电影给我

那它这个东西才成为可能

然后我觉得大家自己用电脑的时候也会有这个体会

你一旦这个数据存在硬盘上了我只要不去删它

它就一直在那然后这个数据可能越攒越多越攒越多

就形成了我们数据量越来越大

然后我们产生了各种不同的新问题

而且这种存储的话其实有时候有一种

很神奇的死而复生的效果

说机器崩溃了 他它以恢复

这个恢复我们第一次看到它觉得很神奇

其实现在想一想我们现在学完第七章第八章就会想到

它无非就是把在它死机之前在崩溃之前状态

放到硬盘上存起来了

所以它下次再起的时候把它读进来

然后它就没问题了所以这个永久存储

远非是说我把一个数据在硬盘上存着

然后拷给你拷给他这么简单

他其实背后体现一个怎么能够让信息不断地流转

然后不断的去做不同处理

到这个概念的时候就不仅限于存储了不仅限于硬盘了

然后我们就会发现其实就跟我们上课讲的那个例子

就把原来的cin cout直接改成一个文件fin fout

这个程序就对了就差不多 长得都一样

所以就是最后大家发现凡是我有这种一个

一个流一样的有输入有输出的的情况

这个东西我也可以当成文件一样的处理

所以就是实际上就是我们第一章讲过的

最早的c语言发明的时候的unix系统

以它为基础发展出的一大类的unix操作系统都是这样的

就是我们用文件的这种模式

来处理所有的各种各样的设备

就比如说大家平时上网

那么这种上网的需求最后是通过网卡来实现的

那么网卡最后大家发现其实对于我用户来说

也就是别人传给我的信息我能从网卡里读出来

然后我想告诉别人的信息我会写到网卡上去

那实际上我对网卡这个操作就是像文件一样一个读一个写

而且你数据是一个挨一个所以刚才说流嘛

就是一个挨一个这样的序列这样的情形

然后有进有出有读有写

那我们也会说有进有出

所以一旦把这个设备不局限在硬盘

扩展到更多的设备的时候

那我们这个文件的功能也就不仅限于存储了

或者说是把文件更本质的属性抽出来

其实就是一个不管它是什么东西

反正一个未知的东西在那放着

然后我能够用写入的方式

传递给它一些信息可以用

读取的方式从里头得到一些信息

也就我可以对它进行input和output操作的话

我们都可以用文件的思想去看待这个东西

所以这样的话你前面举得

那个cin cout实际上就是说

我能够从in这个计算机的外设

键盘和屏幕都可以是外设的组成部分

从它的外设可以读入 键盘 可以读入东西

那么它的cin跟课上我们举的例子

你比如说一般输入的文件名通常叫做fin

对吧其实故意就想这么取名

其实可以任意取名的对不对

故意就想这样去和那个cin对应

那么cout我们叫fout

当然也是一样还可以取别的名字

然后我可以往里头去输出东西

这时候输出它是输出到屏幕上去

打印机 只不过打印机很奇怪

他不能读入 不能产生新信息

我们对应的只读的一个文件它就只能读

只写的一个文件就只能告诉它一些事

所以说明就文件概念

其实就是说我们把它抽象起来去看

我们世界就不一样了

计算机访问的时候外设都是文件

其实我觉得这也是当时

unix操作系统为什么这么受重视

它其实是提了一个我觉得有点哲学层次的思考

最后它抽象成为了

everything is a file

就是所有的事情都是一个文件

然后它做一个统一的管理

然后在此之前设备就是设备

然后特别麻烦就是各种设备区分的管理特别麻烦

就到了unix所有东西都拿一个文件管理

那整个这个系统的架构就变得很清晰了

所以越是有思想的越能传承久远

文件因为它有思想所以很多地方都去用它

而且一直延续下来

所以我觉得确实是很重要的一个概念

程序设计基础课程列表:

第一章 编程初步

-1.1 基础知识

--1.1.1 什么是程序?什么是语言?

--1.1.2 什么是程序设计?

--1.1.3 计算机发展史

-1.2 买菜问题

--1.2.1 问题描述

--1.2.2 程序的基本结构

-1.3 数学运算

--1.3.1 数学运算符

--1.3.2 数学函数

-1.4 补充说明

--1.4.1 编程环境的下载与安装

--1.4.2 程序基本结构中的含义

--1.4.3 格式与风格

-1.5 总结

--1.5 总结

-程设论道

--程设论道

-师生问答

--师生问答一:怎样学好程序设计

--师生问答二:语言选择

--师生问答三:关于函数

-第一章 编程初步--语法自测

第二章 变量与代数思维

-2.1 关于超级计算器的几点思考

--2.1.1 关于超级计算器的几点思考

-2.2 电子秤模拟 — 背景介绍及需求分析

--2.2.1 电子秤模拟 — 背景介绍及需求分析

-2.3 电子秤模拟 — 代码实现

--2.3.1 电子秤模拟 — 代码实现

-2.4 变量定义与变量类型

--2.4.1 变量定义与变量类型

-2.5 猜数游戏与数据表示

--2.5.1 猜数游戏与数据表示

-2.6 关于变量的讨论

--2.6.1 变量的初始值

--2.6.2 变量类型

--2.6.3 变量内存单元地址

--2.6.4 存“变量地址”的变量——指针

--2.6.5 指针的 读/写 操作

--2.6.6 指针的 加/减 操作

--公告

-2.7 变量体现的计算思维

--2.7.1 变量体现的计算思维

-程设论道

--程设论道

-师生问答

--师生问答

-第二章 变量与代数思维--语法自测

第三章 逻辑推理与枚举解题

-3.1 谁做的好事——语义表示

--3.1.1 谁做的好事——语义表示

-3.2 谁做的好事——真假检查

--3.2.1 谁做的好事——真假检查

-3.3 谁做的好事——循环枚举

--3.3.1 谁做的好事——循环枚举

-3.4 谁是嫌疑犯——多重循环枚举

--3.4.1 谁是嫌疑犯——多重循环枚举

-3.5 谁是嫌疑犯——破案线索表示

--3.5.1 谁是嫌疑犯——破案线索表示

-3.6 谁是嫌疑犯——用二进制枚举

--3.6.1 谁是嫌疑犯——用二进制枚举

-程设论道

--程设论道一

--程设论道二

--程设论道三

-师生问答

--师生问答一:字符与ASCII码表

--师生问答二:其他循环语句、运算符优先级与变量作用域

-第三章 逻辑推理与枚举解题--语法自测

第四章 筛法与查找

-4.1 插花游戏

--4.1.1 问题提出(求素数)

--4.1.2 函数初探

--4.1.3 运行演示

-4.2 筛法

--4.2.1 筛法思路

--4.2.2 数组的定义

--4.2.3 代码翻译

--4.2.4 运行演示

--4.2.5 小朋友数人数

--4.2.6 运行演示

--4.2.7 韩信点兵

-4.3 线性查找

--4.3.1 扑克查找问题

--4.3.2 扑克查找问题代码翻译

--4.3.3 最小值问题

--4.3.4 最小值问题代码翻译

-4.4 折半查找

--4.4.1 提问

--4.4.2 折半查找思路

--4.4.3 折半查找代码翻译

--4.4.4 折半查找运行演示

-4.5 排序问题

--4.5.1 插入排序

--4.5.2 选择排序

--4.5.3 函数写法

--4.5.4 运行演示

-4.6 总结

--4.6.1 总结

-程设论道

--程设论道一:数组与编码思维

--程设论道二:筛法

-师生问答

--师生问答一:函数与面向过程编程

--师生问答二:数组的下标越界

-第四章 筛法与查找--语法自测

第五章 分治思想与递归

-5.1 阶乘

--5.1.1 阶乘问题

--5.1.2 递归解法

--5.1.3 递归小结

-5.2 排序

--5.2.1 归并排序——总体思路

--5.2.2 归并排序——思路分解

--5.2.3 归并排序——代码解说

--5.2.4 快速排序——总体思路

--5.2.5 快速排序——代码解说

--5.2.6 排序总结

-5.3 矩阵填充

--5.3.1 矩阵填充问题

--5.3.2 代码解说

-5.4 分书与八皇后

--5.4.1 问题描述

--5.4.2 问题分析——共性

--5.4.3 问题分析——区别

--5.4.4 解题准备——二维数组

--5.4.5 解题准备——递归设计

--5.4.6 代码解说——分书问题

--5.4.7 代码解说——八皇后问题

-5.5 青蛙过河

--5.5.1 问题描述

--5.5.2 问题分析——简单情况

--5.5.3 问题分析——复杂情况

--5.5.4 问题分析——一般情况

-程设论道

--程设论道一

--程设论道二

-师生问答

--师生问答一

--师生问答二

-第五章 分治思想与递归--语法自测

第六章 递推与动态规划

-6.1 兔子数列问题

--6.1.1 问题描述

--6.1.2 按大小兔子分别递推

--6.1.3 按总数递推

--6.1.4 不用数组递推

-6.2 分鱼问题

--6.2.1 问题描述

--6.2.2 从A到E递推

--6.2.3 从E到A递推

-6.3 橱窗的插花问题

--6.3.1 问题描述

--6.3.2 题意理解与分析

--6.3.3 用枚举思想解题

--6.3.4 采用递推的优化算法

--6.3.5.1 采用动态规划算法—优化分析

--6.3.5.2 采用动态规划算法—递推代码

--6.3.5.3 采用动态规划算法—计算过程

--6.3.5.4 采用动态规划算法—输出方案

--6.3.6 动态规划总结

-6.4 最长公共子序列问题

--6.4.1 问题描述与理解

--6.4.2 问题分析

--6.4.3.1 动态规划解题(1)

--6.4.3.2 动态规划解题(2)

--6.4.3.3 动态规划代码

-程设论道

--程设论道一

--程设论道二

-师生问答

--师生问答

-第六章 递推与动态规划--语法自测

第七章 文本数据处理

-7.1 统计记录总数

--7.1.1 问题分析

--7.1.2 读文件操作

-7.2 统计活跃用户数

--7.2.1 问题分析

--7.2.2 字符串

--7.2.3 程序翻译与演示

-7.3 统计在线时长

--7.3.1 问题分析

--7.3.2 结构

--7.3.3 程序翻译与演示

--7.3.4 写文件操作

-7.4 总结

--7.4.1 总结

-程设论道

--程设论道

-师生问答

--师生问答

-第七章 文本数据处理--语法自测

第八章 非文本数据处理

-8.1 将数据组织成链表

--8.1.1 链表的基本概念

--8.1.2 代码讲解

--8.1.3 链表遍历与释放

-8.2 提高链表访问效率 —— 哈希链表

--8.2.1 简单的哈希算法

--8.2.2 算法实现

-8.3 以二进制文件存储链表

--8.3.1 二进制文件的操作方法

--8.3.2 代码讲解

-程设论道

--程设论道一

--程设论道二

-师生问答

--师生问答

-第八章 非文本数据处理--语法自测

第九章 可配置的程序设计

-9.1 自动售卖程序

--9.1.1 提出问题与初步设计

--9.1.2 细化实现订单处理

--9.1.3 使程序更健壮

-9.2 配制水果信息

--9.2.1 提出问题与设计文件格式

--9.2.2 实现订单处理功能

-9.3 指定界面语言

--9.3.1 提出问题与命令行参数

--9.3.2 实现程序功能

-程设论道

--程设论道

-师生问答

--师生问答

-第九章 可配置的程序设计--语法自测

程设论道二笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。