程序设计的分类?

程序设计的分类?,第1张

1、结构化程序设计

在结构化程序设计中,任何程序段的编写都基于3种结构:分支结构、循环结构和顺序结构。程序具有明显的模块化特征,每个程序模块具有惟一的出口和入口语句。结构化程序的结构简单清晰,模块化强,描述方式贴近人们习惯的推理式思维方式,因此可读性强。

2、面向对象程序设计

面向对象程序设计方法是尽可能模拟人类的思维方式,使得软件的开发方法与过程尽可能接近人类认识世界、解决现实问题的方法和过程,也即使得描述问题的问题空间与问题的解决方案空间在结构上尽可能一致,把客观世界中的实体抽象为问题域中的对象。

程序设计的分类

1、按照结构性质,有结构化程序设计与非结构化程序设计之分。前者是指具有结构性的程序设计方法与过程。它具有由基本结构构成复杂结构的层次性,后者反之。

2、按照用户的要求,有过程式程序设计与非过程式程序设计之分。前者是指使用过程式程序设计语言的程序设计,后者指非过程式程序设计语言的程序设计。

3、按照程序设计的成分性质,有顺序程序设计、并发程序设计、并行程序设计、分布式程序设计之分。按照程序设计风格,有逻辑式程序设计、函数式程序设计、对象式程序设计之分。

单分支程序(if then)

双字长数存放于dx和ax寄存器(高位于dx),求该数的绝对值(用16位指令

算法分析:判断数正负,正数(首位为0),不需处理,负数(首位为1),对该数求补,即反码加一

复合分支程序

从键盘输入一位十六进制数,将其转换为十进制数显示输出

算法分析:

输入为数字(30h~39h),直接输出

为大写字母A~F(41h~46h)时,可减11h

a~f时(61h~66h),可减去31h得到30h~35h(0~5的ascii码),再输出2位十进制数字,

其他输入为非法输入,退出程序

多分支程序

采用分支向量表法,int 21h指令就是根据中断类型号21h*4得84h直接到84h内存中的向量表取出中断向量(即系统子程序的首地址),来执行一段程序,我们把各分支地址集中存放于分支向量表中,根据分支号快速进入分支

根据键盘输入的一位数字1~4,使程序转移到4个不同的分支中去,以显示键盘输入的数字

算法分析:建立一个分支向量表branch,集中存放4个分支的偏移地址,因偏移地址为16位,所以每两个字节存放一个偏移地址,据输入的数字指向分支向量表,从表中取出对应分支的偏移地址,用jmp branch[bx]指令间接寻址方式转向对应分支

循环程序设计

循环有两种结构,do while和do null

do while先判断条件,再执行循环,do null先循环一遍再判断要不要下次循环

把bx寄存器中的二进制用16进制数格式显示输出

算法分析:

bx寄存器每4位表示一位16进制数位,从左到右循环移位,每移四位,就把要显示的4位二进制位移到最右边。取出最右边的4位,加上30h,转换成8位ascii字符码。因显示输出的十六进制是数字(30h~39h)和A~F(41h~46h),所以8位二进制大于39h时,应再加上7,程序采用计数循环,计数值为4

从键盘输入一个四位的十六进制数(其中字母大写),并将其转换为二进制数显示输出

算法分析:该程序需要两段循环,第一个循环接收键盘输入的16进制数,30h~39h时减30h,输入为41h~46h时,减37h,应把四次的输入拼装成四位16进制数存放在bx寄存器,第二个循环利用16次位移从左到右显示bx寄存器中的二进制数

条件循环程序

循环体有分支时,依据标志位判断,标志位为1表示执行a *** 作,为0表示执行b *** 作等,把这种标志字称为逻辑尺

先从键盘输入8位二进制数作为逻辑尺,再从键盘输入一个英文字母,根据逻辑尺当前的最高位标志显示输出该英文字母的相邻字符,标志位为0则显示前趋字符,标志位为1则显示其后继字符,显示相邻字符后,逻辑尺循环左移一位再接收下一个英文字母的输入,并依据逻辑尺显示相邻字符,直到回车键结束程序

算法分析:8位二进制数的输入构成一个8次循环,把输入整合到

8位寄存器bl中。键盘输入一个英文字母后依据逻辑尺最高标志位显示相邻字符,把最高位移到cf位,以cf位决定显示,构成一个条件循环,以回车键退出循环

打开CSDN,阅读体验更佳

算法导论考试题目_Spike_Bebop的博客

A 子问题必须是一样的 B 子问题不能够重复 C 子问题的解可以合并 D 原问题和子问题使用相同的方法解 14.下列算法中不能解决0/1背包问题的是(A ) A 贪心法 B 动态规划 C 回溯法 D 分支限界法 ...

继续访问

Matlab入门基础详解_weixin_43731886的博客

1.直接输入法 matlab在创立数组时以逗号或空格表示分列,分号或回车表示分行。数组开头“[”、结尾“]” 行数组:如a=[1,2,3,8,-1] 列数组: b=[1238-1] 或a’ 矩阵:A= [2,4,18:-2:42,4,6] ...

继续访问

实验1:汇编语言语法练习与分支循环子程序设计.doc

实 验 报 告 2018 / 2019 学年 第 1学期 课程名称 微型计算机原理与接口技术 实验名称 实验1汇编语言语法练习与分支循环子程序设计 实验时间 2018 年 10 月 22 日 指导单位 通信工程学院 指导教师 祁正华 学生姓名 杨单妮 班级学号 17120205 学院(系) 通信工程学院 专 业 通信工程 PAGE 5 实 验 报 告 实验名称 汇编语言语法练习与分支循环子程序设

热门推荐 第一章: 利用神经网络识别手写数字

人类视觉系统是大自然的一大奇迹。 考虑下面的手写数字序列: 大部分人能够毫不费力的识别出这些数字是 504192。这种简单性只是一个幻觉。在我们大脑各半球,有一个主要的视觉皮层,即V1,它包含1.4亿个神经元以及数以百亿的神经元连接。而且人类不只是有V1,还有一系列的视觉皮层——V2,V3,V4和V5,它们能够执行更加复杂的图像处理。我们可以将大脑想象成一台超级计算机

继续访问

数据结构复习提纲(必考知识点整理)_a1043362562的博客_数据...

1.数据:数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序所处理的符号的总称。 2.数据元素:数据元素是数据的基本单位,是数据这个集合中的个体,也称之为元素,结点,顶点记录。

继续访问

MATLAB基础_dfql83704的博客

3.2.1 直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素,输入的方法按照上面的规则。建立向量的时候可以利用冒号表达式,冒号表达式可以产生一个行向量,一般格式是: e1:e2:e3,其中e1为初始值,e2为步长,e3为终止值。还可以...

继续访问

微机原理与接口技术-指令

上级目录 目录 指令分类 数据传送指令 通用数据传送指令 累加器专用传送指令 地址传送指令 标志传送指令 数据类型转换指令 算数运算指令 加法指令 减法指令 乘法指令 除法指令 十进制调整指令 位运算指令 逻辑运算指令 移位指令 循环移位指令 串 *** 作指令 基本串 *** 作指令 重复前缀指令 控制转移指令 无条件转移指令(长转移) 条件转移指令(短转移, -128~127的距离内) 循环控制指令 过程调用与返回指令 中断指令 处理器控制指令 标志位 *** 作指令

继续访问

8086系列(8):逻辑尺

题目 设有数组X和Y。X数组中有X1,…,X10;Y数组中有Y1,…,Y10。试编制程序计算Z1=X1+Y1,Z2=X2+Y2,Z3=X3-Y3,Z4=X4-Y4,Z5=X5-Y5,Z6=X6+Y6,Z7=X7-Y7,Z8=X8-Y8,Z9=X9+Y9,Z10=X10+Y10,结果存入Z数组。 思路 对于这种问题可以使用循环结构来完成,由于每次循环的 *** 作位不同,我们可以事先设立标志位存放于逻辑尺中,进入循环后取出每一个位就可以判断做哪种 *** 作了。 代码 datasg segment x dw 0,1,

继续访问

数据结构算法笔记_Alanders的博客

所有的简单排序方法(包括:直接插入、冒泡和简单选择)和堆排序的空间复杂度为O(1) 快速排序为O(logn),为栈所需的辅助空间 归并排序所需辅助空间最多,其空间复杂度为O(n) 链式基数排序需附设队列首尾指针,则空间复杂度为O(rd) 排...

继续访问

[学习笔记] python深度学习---第四章 机器学习基础_Cr_南猫的博客-CS...

一、机器学习的四个分支 1. 监督学习 这属于目前最常见的机器学习类型。给定一组样本,它可以学会将输入数据映射到已知目标(也叫标注annotation)。近年来广受关注的深度学习应用几乎都属于监督学习,比如光学字符识别、语音识别、图像识别和...

继续访问

逻辑尺的使用

今天看汇编程序,看到一道题,X1-Y1,X2-Y2,X3+Y3....X8-Y8,X9+Y9,X10-Y10,加法,减法毫无规律可循,最后书本介绍了“逻辑尺”的方法:设置一个设置了一个字型的变量,然后使用逻辑右移,读取CF中的1/0,从而确定知道该次运算的预算法则。闲来无聊,便用JAVA模拟了一下逻辑尺的使用package logicRule/* * 逻辑尺的模拟使用 *

继续访问

汇编语言实现四则运算

32 位模式下,MUL(无符号数乘法)指令有三种类型: 第一种执行 8 位 *** 作数与 AL 寄存器的乘法; 第二种执行 16 位 *** 作数与 AX 寄存器的乘法; 第三种执行 32 位 *** 作数与 EAX 寄存器的乘法。 例如,当 AX 乘以一个 16 位 *** 作数时,乘积存放在 DX 和 AX 寄存器对中。其中,乘积的高 16 位存放在 DX,低 16 位存放在 AX 32 位模式下,DIV(无符号除法)指令执行 8 位、16 位和 32 位无符号数除法。其中,单寄存器或内存 *** 作数是除数。格式如下: ..

继续访问

慕课袁春风老师《计算机系统基础》一二三部分练习题_GloomyHarbor的博客...

解析: D、现代计算机的主存储器由半导体存储器构成,其中存放信息的地方称为存储阵列每个存储阵列包含若干个存储单元,每个存储单元由若干个记忆单元(cell)构成,每个记忆单元存放一位信息(0或1)。 某一台计算机的主存储器编址方式,总是...

继续访问

python中的小知识点_代码小学渣的博客

input().split()用法:接收多个输入。返回的数据类型是str year,month,day=map(int,input().split('/'))#2018/2/1#如果是整数就需要转化为int才能正常使用。 map()用法:map(function, iterable, …),python3 返回迭代器,要加li...

继续访问

汇编语言程序设计 实验6 分支程序设计

本文章为个人博客的备份版本、作者:小游、作者博客:点击访问 实验目的:掌握分支程序的基本编程方法。熟悉数制转换。用LOOP指令、条件转移指令和向量地址法实现程序转移。 1.编写程序,如果输人的是大写字母,则输出对应的小写字母;如果输入的是小写字母则输出对应的大写字母;如果输人的是数字,原样输出;按回车结束。 code segment assume cs:code 代码部分 start: inchr: 这里我们读取键盘的输入 mov ah,1 输入字符 int 21.

继续访问

汇编语言及应用——分支结构程序设计

一、实验目的 掌握条件转移指令的使用方法及指令对标志寄存器中各标志位的影响;掌握标志位和转移指令之间的关系;会用条件转移指令和无条件转移指令设计多分支结构程序;掌握设置断点调试程序的方法。 二、示 例 内存自BUF单元开始的缓冲区连续存放着10个学生的英文分数,编程序统计其中90~100,60~89,60以下者各有多少人?并把90-100分人数结果存放在P1单元中、60-89分人数结果存放在P2单元中,60分以下人数结果存放在P3单元中(P1、P2、P3为数据段的单元),最后把P1、P2、P3中的数以”P

继续访问

汇编语言编一程序段,求双字(DX,AX)的绝对值

a100 mov ax,ffff;把双字长数的低字放到AX中 mov dx,ffff;把双字长数的高字放到DX中 test dx,8000;测试双字长数的符号 jz 0113;如果是非负数,则直接保存 neg dx;如果是负数,则求补 neg ax;求补 sbb dx,0 int 3 g=073f:0100 0113 运行附图如下: ...

继续访问

汇编语言的程序设计方法(循环结构和分支结构)

汇编语言中常见的形式有:顺序程序设计,分支程序设计,循环程序设计以及子程序设计 1.今天通过实例来详细说明分支程序设计,和循环程序设计 分支程序设计实例 给定一下符号函数: 给定X值,假设为-25,且存放于X单元,函数值Y存放于Y于单元,根据给定的X值确定Y得值 程序如下 DATAX SEGMENT x DB-25 y DB? DATAX ENDS CODEX SEG...

继续访问

第五章 5.7汇编程序设计举例

5.7汇编程序设计举例 汇编源程序的设计步骤: ①分析问题,建立数学模型 ②确定最佳算法 ③合理分配存储单元和寄存器 ④绘制流程图 ⑤编写程序 ⑥调试程序 5.7.1程序基本结构 程序设计的三种基本结构:顺序结构、选择结构、循环结构 顺序结构:顺序结构程序中,完全按照指令先后顺序逐条执行。 选择结构 选择结构又称分支结构,有以下两种形式: ①它们共同的特点是:运行方向是向前的,在某一种特定条件下,只能执行多个分支中的一个分支。 ②程序的分支一般用...

继续访问

微机原理复习整理

第一章 微型计算机系统概述 1. 微型计算机系统组成 微处理器:运算器、控制器、寄存器 微型计算机:输入输出接口、总线、内存 微型计算机系统:由硬件和软件共同组成的完整的计算机系统 2. 系统总线 地址总线AB 输出将要访问的内存单元或I/O端口的地址 地址线的多少决定了系统直接寻址存储器的范围 数据总线DB CPU读 *** 作时,外部数据通过数据总线送往CPU CPU写 *** ...

继续访问

树状数组

树状数组 学之前感觉这是个非常非常难的数据结构,学完才发现也没有想象中那么难,但是题可以出的非常难。 这里就有一些同学坚持认为树状数组没有用,其实树状数组虽然功能少一点,却也是很有优势的。1.常数小;2.代码短;3.内存小; 翻了翻学习资料的文件夹,发现关于这两个数据结构的课件还是比较多的,难度分布也非常的广泛... 前两天强行抓着wzx讲这个,感觉在讲的过程中自己也更明白...

继续访问

ARM异常、中断以及他们的向量表分析

作者:wogoyixikexie@gliet以前,我一直很疑惑这个“ARM异常、中断以及他们的向量表”是怎么回事,他们到底是怎么实现的,没有想到今天偶然看到(ARM System Developers Guide: Designing and Optimizing System Software的ARM异常、中断以及他们的向量表的章节,豁然开朗。——ARM嵌入式系统开发:软件设计与优

继续访问

Java基础之数组与集合

Java基础之数组与集合一、数组 一、数组   数组保存的是一组有顺序的、具有相同类型的数据。在一个数组中,所有数据元素的数据类型都是相同的。可以通过数组下标(索引)来访问数组,数据元素根据下标的顺序,在内存中按顺序存放。本节的主要内容是介绍数组的基础知识。   数组的定义: 数据类型 数组名 [] = new 数据类型[数组长度]  要想知道数组的大小可以使用数组的 length 属性 语法:数组名.length   初始化: int arr [] = new int[12]arr[0] =

继续访问

【汇编程序】求一个双字节数AX:BX的绝对值,放入CX:DX中。

【汇编程序】求一个双字节数AX:BX的绝对值,放入CX:DX中,高位放入CX CODE SEGMENT ASSUME CS:CODE START: MOV CX,AX MOV DX,BX TEST CX,8000H 将CX与8000H与 *** 作 看是否最高位为1 JZ EXIT 若结果为0 则为整数 结束dos NOT DX NOT CX ADD DX,1 将BX取反+1 即求补 ADC CX,0 目的是将CF进位加进去 因为为双字 末

继续访问

汇编实验二 分支与循环程序设计

实验二 分支与循环程序设计 一、实验目的 1、掌握程序设计中的3种基本结构(顺序结构、选择程序、循环程序)。 2、熟练使用汇编语言的指令:数据传送类指令、数据运算类指令、逻辑判断类指令与转移指令、循环指令等。 3、初步了解系统功能调用的使用方法,尝试使用01H号功能调用进行字符输入的方法及使用02H号功能调用进行字符输出(显示)的方法。 二、实验环境与设备 计算机一台,并且安装Windows *** 作系统和macro assembler 5.0以上版本的系统软件。 三、预备知识 1、掌握汇编...

继续访问

汇编语言的分支程序设计与循环程序设计

汇编语言的分支程序设计: 例题1:比较三个无符号数的大小,按照从大到小的顺序排列 关键的语句是:无符号数,因此所用语句是JAE实现跳转: 此外比较两个 *** 作数所用的是CMP,交换两个 *** 作数的是XCHG 书上的代码: 代码1:这样写法比较占用寄存器,但是寄存器之间交换数值比较快 程序名称:实现三个无符号数的由小到大的排序 DATAS SEGMENT BUFFER DB ...

继续访问

Part2【程设】分支程序设计+循环程序设计

一、分支程序设计 if语句的易错点、switch的易错点。 二、循环程序设计 for循环、while、do-while常见的错误。

继续访问

最新发布 win32汇编·指令

win32汇编·指令常用伪指令数字常量字符串常量预留空间复制重复符号定义伪指令等号伪指令 *** 作符伪指令算术运算符逻辑 *** 作符关系 *** 作符框架定义样例函数声明语句include 语句程序结束跨行语句数据存放invoke伪指令MessageBox输入输出有关的API函数printfscanf分支与循环单分支结构无符号类比IF_THEN_ELSE结构升序数组查找一个数(折半查找)SWITCH_CASE结构分支程序 [名字] 助记符 < *** 作数>[注释] 常用伪指令 类型 助记符 简写 字节数 数字

继续访问

使用分支向量


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11274519.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存