计算机导论语言与算法之程序与递归:组合-抽象-重复-构造

1.抽象计算对象与函数的定义与构造方法,程序是组合抽象构造出来的。

2.程序:由基本动作指令构造的,若干指令的一个组合或一个执行序列,用以实现复杂动作。程序执行机构节省了开发时底层的操作。

3.计算机系统的抽象过程、组合与构造层次。程序是构造出来的,而组合、抽象是构造程序的基本手段。

4.抽象与构造:命名计算对象、构造中使用名字、计算中以计算对象替换名字。

5.递归的定义:自身调用自身,高阶调用低阶,构造无限的计算步骤。由后向前带入,再由前向后计算。

6.原始递归函数

时间: 2024-10-04 06:48:29

计算机导论语言与算法之程序与递归:组合-抽象-重复-构造的相关文章

计算机导论-第一部分

------------恢复内容开始------------ 计算机的发展 计算机从0-1, 程序, 递归的思想 到冯诺依曼计算机/到个人计算机环境-并行计算环境-云计算环境 比较重要的抽象手段 语言和编译系统, 解决了人和机器交流的问题 协议和解码器, 解决了机器和机器通信的基础 模型和系统, 解决了业务模型到计算模型的基础 这三种抽象机制是比较核心的基础 数据化思维 数据库, 数据分析, 大数据分析 网络化思维 物联网, 互联网, 深化对这些概念的理解 发展 计算机 --> 计算科学----

计算机导论之语言与算法(1)

开始在网易云课堂复习计算机基础了,谢谢战德臣老师给我学习的机会! 1.把社会自然问题通过符号化.计算化把它变成一个算法,再通过计算把它变成一个算法的结果,再语义化为问题求解的结果. 2.高级语言的基本要素 3.问题的解决步骤即为算法,计算机可理解的步骤为程序. 4.集成封装思路 5.高级语言程序要素.通过变量类型确定多少存储单元,通过关键字来确定程序目的. 6.程序设计环境:编辑.编译.链接.调试.运行... 程序设计过程:编辑源程序.编译.链接.执行.

1014 C语言文法定义与C程序的推导过程 程序:冒泡算法C程序(语法树)

1014 C语言文法定义与C程序的推导过程  程序:冒泡算法C程序(语法树)1 阅读并理解提供给大家的C语言文法文件. 2 参考该文件写出一个自己好理解版的现实版的完整版的C语言文法. 3 给出一段C程序,画出用上述文法产生这段C程序的完整语法树. 程序:冒泡算法C程序 点此文字查看原图(完整图片) 1 #include <stdio.h> 2 3 main() 4 { 5 int i,j,temp; 6 int a[10]; 7 8 for(i=0;i<10;i++) 9 scanf

推些C语言与算法书籍

c语言系统学习与进阶: 1. C primer plus C primer plus 作为一本被人推崇备至的 c 入门经典,C primer plus 绝非浪得虚名.应该 算得上 C 教材里最好的入门书了.    在知识广度上,很少有书能匹及.它能为你系统学习 c 提供一个良好的平台.作者对 c 的见解精辟.在娓娓叙述的同时,作者辅以大量程序以分析.它让我对 C 有了更加系统的全 新认识.决非国人所写的那些公理化的教条说教,我觉得作者把自己的心血全部吐露.书很 厚,近 700 页,却不没有让我觉

C语言排序算法总结

学计算机程序设计的应该都知道,算法是程序之魂.所谓算法,就是解决问题的方法加上有限的实现步骤.算法的特点有有穷性,确定性,有效性,有零个或多个输入,有一个或多个输出.下面我们就来简单总结一下C语言中的三种经典排序算法. 一.冒泡算法. 所谓冒泡排序法,就是对一组数字进行从大到小或从小到大排序的一种算法.具体方法是,相邻的数字两两交换.从第一个数值开始,如果相邻两个数的排列顺序与我们的期望不相同,则将两个数的位置进行交换(对调):如果其余我们期望的相同,则不交换位置.重复这样的过程,一直到最后没有

程序算法艺术与实践:递归策略之递归,循环与迭代

众所周知,递归的实现是通过调用函数本身,函数调用的时候,每次调用时要做地址保存,参数传递等,这是通过一个递归工作栈实现的,同时影响效率的.递归是利用系统的堆栈保存函数当中的局部变量来解决问题的,而递归就是在栈处理栈上一堆的指针指向内存中的对象,这些对象一直不被释放,直到递归执行到最后一次后,才释放空间. 循环效率与递归效率 递归与循环是两种不同的解决问题的典型思路.当然也并不是说循环效率就一定比递归高,递归和循环是两码事,递归带有栈操作,循环则不一定,两个概念不是一个层次,不同场景做不同的尝试.

避免死锁的银行家算法C++程序实现

 本篇博文为追忆曾经写过的算法系列第二篇(20081021) 温故知新 目的:具有代表性的死锁避免算法是Dijskstra给出的银行家算法.本实验是基于银行家算法的思想通过编写C++程序实现银行家算法的计算机程序化,使其更实用.同时也加深了有关自愿申请.避免死锁等概念,体会避免死锁的实际实现过程与方法. 要求: 1.设定进程p对各类资源r合理的最大需求max及初值确定:2.设定系统提供资源初始状况allocation:3.设定每次某个进程对各类资源的申请表示need:4.编制C++程序,基于

C语言排序算法复习

排序算法有很多种,这里在复习和分析的基础上,做一个自己的总结: 首先要知道有哪些排序算法,google一下,有云C语言7大经典排序算法(也有8大).主要包括冒泡排序,快速排序,选择排序,插入排序,希尔排序,归并排序,堆排序,8大的还有基数排序.各有各的版本,代码写法也各不相同.所以这里以整理思路为先,代码只是作为自己的一个备份. 搞清楚的概念:稳定排序和不稳定排序,就看序列中两个值相等的数,排完序之后的相对位置是否改变,如果改变了就不稳定. 内部排序和外部排序,只用到内存即可完成排序的就叫内部排

C语言的算法

什么是算法|算法的概念 一个程序应包括: 对数据的描述:在程序中要指定数据的类型和数据的组织形式,即数据结构(data structure). 对操作的描述:即操作步骤,也就是算法(algorithm). Nikiklaus Wirth提出的公式:程序=数据结构+算法 这三个方面是一个程序涉及人员所应具备的知识.本教程的目的是使同学知道怎样编写一个C程序,进行编写程序的初步训练,因此,只介绍算法的初步知识. 做任何事情都有一定的步骤.为解决一个问题而采取的方法和步骤,就称为算法. 简单的C语言算