专业解读“程序”:一文弄清什么是计算机程序!
点击上方"蓝字"
一个IT人共同提高的地方!
今天总结一下数据结构与算法的小知识~
著名计算机科学家沃思提出一个公式:
程序=数据结构+算法
先看个思维导图:
1
数据结构
1.概念
数据:数据是对客观事物的符号表示,在计算机中指所有能输入到计算机中并能被计算机程序处理的符号的总称,是计算机程序加工的“原料”。
数据元素:是数据的基本单位,一个数据元素由若干个数据项组成。在计算机程序中通常作为一个整体进行考虑和处理。
数据项:数据项是数据的不可分割的最小单位。
数据对象:是性质相同的数据元素的集合,是数据的一个子集。
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。数据元素之间的关系称为结构。
(另外数据结构在计算机科学中还是一门综合性的专业基础课程。是介于数学、计算机硬件、计算机软件三者之间的一门核心课程。)
组成数据结构的三个要素有:数据逻辑结构、物理结构、数据的操作。
数据的逻辑结构:数据元素之间的逻辑结构,是结构的“关系”描述,逻辑结构有4种:集合、线性结构、树形结构、图状结构或网状结构。
集合:结构中的数据元素之间除了“同属于一个集合”的关系外,别无其他的关系。
线性结构:结构中的数据元素之间存在一对一的关系。
树形结构:结构中的数据元素之间存在一对多的关系。
网状结构:结构中的数据元素之间存在多对多的关系。
物理结构:又称存储结构,是数据结构在计算机中的表示。数据的存储结构有两种存储方式:顺序存储结构和链式存储结构。
数据的操作可以理解为数据元素可以对其进行一系列的操作的集合,例如可以对数据元素进行插入、删除、修改等操作。
2.实例:
例如九九乘法表,我们可以将每个乘式看作一个元素:1*1=1;5*5=25;都是一个数据元素。
每个数字看作是一个数据项。
数据对象看作是:两个在1~9之间的正整数乘积公式所组成的一个集合。
逻辑数据结构是4种结构中的集合结构。
2
算法
算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。算法是一个程序的灵魂。算法是解决“做什么”和”怎么做”的问题。广义的讲为解决一个问题而采取的方法和步骤,就称为算法。
对同一个问题可以有不同的解题方法和步骤,例如求1*2*3*4*5的积,我们可以按次序依次相乘,也可以按倒序依次相乘,我们也可以先算2乘5再乘3乘4乘1,打乱顺序算。这就是不同的算法。
一个算法有5个特点:
有穷性,一个算法应该包含有限的操作步骤,而不能是无限的。
确定性:算法的每一个步骤都应当是确定的,而不应当是含糊的、模棱两可的。
可行性:一个算法是能够有效执行的,即所有的操作都是可以通过已经实现的基本运算的有限次来实现的。
输入:一个算法有另个或多个的输入。
输出:一个算法有一个或多个的输出。
算法的表示方法:可以用自然语言或者流程图的方式来表示。
例如:判断2000年到2500年的每一个年份是否是闰年的算法流程图可以这么表示:
3
写个简单的小程序
用C语言写个99乘法表:
#include <stdio.h>int main(){int lim,row,cos,p,q;while(1){printf("请输入1-9的数字(输入0退出):");scanf("%d",&lim);if(lim==0){break;}else if(lim>0&&lim<10){q=1;}else{q=0;}if(q){for (row=1;row<=lim;row++){for(cos=1;cos<=row;cos++){p=row*cos;printf("%d*%d=%d ",cos,row,p);}printf("\n");}}}
return 0;
}
程序编写完后,到文件目录下就可以看到exe的可执行程序文件:
今天就到这里吧~~~
END
扫码关注我们
勤勤恳恳,善始善终
持之以恒,专心致志
今天因为你的分享,让我元气满满!
专业解读“程序”:一文弄清什么是计算机程序!相关推荐
- 支付宝接口程序、文档及解读(ASP.NET)
支付宝接口程序.文档及解读(ASP.NET) 最近需要为网站加入支付宝的充值接口,而目前关于支付宝接口开发的资料比较杂乱,这里就我此次开发所用到的资料进行汇总整理,希望能够帮助需要的朋友. 开发步骤: ...
- 付宝接口程序、文档及解读(ASP.NET) 學習
支付宝接口程序.文档及解读(ASP.NET) 2009-11-03 14:45 by LanceZhang, 39 visits, 网摘, 收藏, 编辑 最近需要为网站加入支付宝的充值接口,而目前关于 ...
- 计算机科学技术专业解析,专业解读—计算机科学与技术
原标题:专业解读-计算机科学与技术 专业培养目标:本专业培养具有良好的科学素养,系统地.较好地掌握计算机科学与技术包括计算机硬件.软件与应用的基本理论.基本知识和基本技能与方法,能在科研部门.教育单位 ...
- 如何成为一名真正专业的程序员
要想成为一名专业的程序员,仅仅会写代码是不够的.从团队合作去解决问题到版本控制,你还得具备其他关键技能的工具包.当我们询问相关的专业开发人员,那些必备的关键技能都是什么的时候,下面是我们了解到的情况. ...
- 计算机毕业设计springboot基于疫情背景下的新型点餐送餐系统bpe1s源码+系统+程序+lw文档+部署
计算机毕业设计springboot基于疫情背景下的新型点餐送餐系统bpe1s源码+系统+程序+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开发软件:idea ecli ...
- java计算机毕业设计培训学校教学管理平台源码+程序+lw文档+mysql数据库
java计算机毕业设计培训学校教学管理平台源码+程序+lw文档+mysql数据库 java计算机毕业设计培训学校教学管理平台源码+程序+lw文档+mysql数据库 本源码技术栈: 项目架构:B/S架构 ...
- ssm+Vue计算机毕业设计医院人事及科室病区管理(程序+LW文档)
ssm+Vue计算机毕业设计医院人事及科室病区管理(程序+LW文档) 项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Ec ...
- 微信小程序_文档_01_入门
小程序API文档地址: https://developers.weixin.qq.com/miniprogram/dev/ 微信小程序 小程序是一种新的开放能力,开发者可以快速地开发一个小程序.小程序 ...
- 计算机毕业设计springboot交通事故档案管理平台ryug8源码+系统+程序+lw文档+部署
计算机毕业设计springboot交通事故档案管理平台ryug8源码+系统+程序+lw文档+部署 计算机毕业设计springboot交通事故档案管理平台ryug8源码+系统+程序+lw文档+部署 本源 ...
最新文章
- 机器模拟共情,情感AI正踏足诸多行业
- 使用java9的uuid生成方式,让uuid生成速度提升一个档次...
- sql server 清空数据库表数据
- Centos 配置mailx使用外部smtp发送邮件
- SVN的安装和启动SVN的安装
- 程序员学习网站备份(小众+不定时更新ing...)建议收藏
- B站直播中HLS和去中心化P2P的实际应用
- 构造函数不能为虚函数
- Factory Method(工厂方法)--对象创建型模式
- Random Forest算法中的参数详解
- 在Golang中使用Protobuf
- 学前端有什么好方法,怎么才能更快学会前端?
- 问题 L: The 3n + 1 problem
- 老板应该如何运用人才?
- TLE82453-3SA-芯片手册
- 2015-5-10分享pdf
- Data URL 基本介绍
- 武汉科技大学计算机课程设置,武汉科技大学课程建设管理办法
- win10迁移C盘Administrator目录
- 知乎高赞:哪些事坚持做3个月就会有巨大改变?
热门文章
- python matplotlib二维平面等高线的绘制, plt.contour 与 plt.contourf, plt.clabel和plt.colorbar, plt.xticks([])
- Special Numbers 进制(1100)
- Java开发专业通过swot分析岗位_掌起智能科技 | 你们要的安卓岗位来了,还有JAVA,技术经理等岗位...
- Redis 的缓存异常处理 —— 缓存雪崩、缓存击穿、缓存穿透
- JDK/Dubbo/Spring 三种 SPI 机制,谁更好呢?
- static在内存层面的作用_static的作用和内存划分?
- mysql right syntax_mysql the right syntax to use near 'not null comment '身份'
- python 对话框的创建及调用_单击按钮创建新对话框
- 俄罗斯小方块游戏html,通过h5的canvas手写一个俄罗斯方块小游戏
- Java判断工作日计算,计算随意2个日期内的工作日