计算机软件分别的概念,计算机结构、原理与程序的基本概念

一、计算机工作原理

计算机:是一种具有内部存储能力、由程序自动控制的电子设备。因此要控制计算机,就需要把计算机要完成的工作写成一定的指令形式,并把它存储在计算机的存储器内。

1. 计算机的结构

(1) 硬件构成

一般的通用计算机是典型的冯诺依曼结构,见图1。

191516748_1_20200528081406488

图1:以内存为核心的冯诺依曼结构

(2) 三总线结构

地址总线:

通过地址线访问设备或者内存单元!不同的总线类型,地址线数量和传输方式是不一样的!

数据线:

一般是双向的,用于在CPU和设备,设备和设备之间传输数据!显存数据线高达128位甚至256位。台式机CPU一般是64位。

控制总线:

写控制信号:发出信号,从CPU向设备写入数据

读控制信号:发出信号,从设备取数据部到CPU

片选线:选择不同的芯片用

其它控制信号

(4) 计算机结构分类

冯诺依曼结构

所有设备共用数据总线

哈佛结构

程序存储器和数据存储器分别拥有自己的数据总线

2. 工作过程

(1)数据读取过程

程序存储器(硬盘、U盘/光盘)---- 加载到内存 ------ 送到CPU

(2)数据存储过程

CPU运算结果存储于内存---- 输出数据(硬盘、U盘/光盘)

3. 数据处理

强大的计算机只能读取、输出、运算二进制!

因此输入设备要把数据编码成二进制,比如键盘的ASCII编码,音频设备话筒的输出的电压要通过A/D电路变成数字信号。计算机扬声器的输出也是二进制的,需要通过D/A转换把数字信号转换成模拟信号,才能还原声音!

计算机保存硬盘上的数据,不论是图片、视频、文字,都是用二进制存储的!

二、程序基本概念{!-- PGC_COLUMN --}

1. 程序的定义

可以连续执行的一条条指令的集合称为程序,也称为程序设计语言。

2. 高级语言

高级语言更接近于人类的习惯,屏蔽了程序的细节和硬件操作的细节,方便编程,但是通常需要通过编译程序转化成低级语言(通常是汇编),然后再生成计算机可执行的代码,常见的语言,除了汇编、二进制执行程序等少数语言外,都是高级语言。

3. 低级语言直接的二进制代码

汇编

其他类似程序

更接近机器代码,低级语言操作效率高,但是编程难度大,比如汇编的效率大约是C语言的2倍,但是汇编的编程工作量大,难度高,不易编制大型程序;汇编针对具体的硬件,移植性差。

4. 机器语言

能够被计算机直接执行的二进制代码,叫做机器语言。

5. 源程序

我们把编写的代码称为源程序,C语言编写的程序称为“C源程序”。

三、程序的算法与结构

1. 算法

举个例子,我们设计一个计算园的周长的程序,首先要输入圆的半径,然后通过数学公式:

L=2πR

来计算周长,R为半径,计算完毕的值储存在L中,最后我们要把L的打印出来,显示计算结果!我们完成这个任务的整个过程就叫做算法。

算法有如下几个特点:

(1) 有穷性

算法包含的操作步骤有限,也就是说在执行若干个操作步骤后,算法将结束,且每一步都在合理的时间内完成。反面例子,程序死循环,无法得出运行结果!

(2) 确定性

每条指令的意义必须确切,没有二义性,对于相同的输入必须能得出相同的执行结果。

每写一条语句,都能明确的说出他要干什么,实现什么功能。每次输入相同的半径R,得出的周长是确定的!

(3) 可行性

算法中的操作,都是通过已验证过的可以实现的基本运算执行有限次后实现。也就是说能够在现有的技术条件下执行有限次运算后完成。

比如上面我们使用的公式, L=2πR,他是经过无数科学家以及实验验证过的,一条语句就能够计算出结果。

(4) 有零个或多个输入

必要则输入数据,不必要则没有输入数据。上面需要输入半径R。

(5) 有一个或多个输出

执行结果至少应该有一个输出,比如在屏幕上显示、写入文件等。上面例子需要在屏幕上输出周长L。

2. 算法的描述-流程图

我的经验,如果设计复杂程序,避免各种问题,提高一次性成功率,流程图是一个非常好的工具。我曾经使用流程图一次性成功设计电焊机控制程序!

(1) 普通流程图

简单直观,缺点,转向没有限制,复杂算法时占用篇幅较多,见图2。

191516748_2_20200528081406581

图2:普通流程图

(2) N-S流程图

只有这5种基本结构的NS流程图,见图3。

191516748_3_20200528081406660

图3:结构化的NS流程图

优点:

首先,它强制设计人员按结构化方法进行思考并描述设计方案,因为除了表示几种标准结构的符号之处,不再提供其他描述手段,这就有效地保证了设计的质量,从而也保证了程序的质量。

第二,NS图形象直观,具有良好的可见度。例如循环的范围、条件语句的范围都是一目了然的,所以容易理解设计意图,为编程、复查、选择测试用例、维护都带来了方便。

第三,NS图简单、易学易用,可用于软件教育和其他方面。

缺点:

手工修改比较麻烦,这是有些人不用它的主要原因。

3. 结构化

使用结构化设计,是程序设计的基本要求,有利于程序的设计、阅读、调试、维护!结构化程序设计有三种基本结构:

(1) 顺序结构

191516748_4_20200528081406722

图4:顺序结构的普通流程图(左)与NS流程图(右)

(2) 选择结构

191516748_5_20200528081406816

图5:选择结构的普通流程图(左)与NS流程图(右)

(3) 循环结构

191516748_6_20200528081406894

图6:循环结构的普通流程图(左)与NS流程图(右)

已经证明上述三种结构组成的算法可以解决任何复杂的问题。

4. 模块化

模块化,也就是把一个复杂的功能拆分为几个简单的尽量独立的函数或者模块,这个思想是编程的核心思想,用于调试程序也是一个非常有用的方法,把有问题的程序划分几个简单部分,去查找和调试,是编程的重要思想!

(1)自顶向下的模块方法

先设计总体的流程图,然后根据流程图去设计每个功能模块或者函数,就是搭好架构,再去填充细节!自顶向下的设计方法,先解决主程序的算法,然后再设计子程序的算法。逐步细化。

(2)从下到上的模块化方法

就是先考虑每个重要的模块或者算法,解决了重要的细节问题,然后再去构建整个程序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值