自顶向下 逐步求精

自顶向下,逐步求精 “自顶向下, 逐步求精”(又称分治法)的程序设计方法是结构化程序设计,是面向数据流进行需求分析的方法。采用自顶向下、逐步求精,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。 具体而言“自顶向下” 是将复杂、大的任务按功能进行分解划分为小问题,找出问题的关键、重点所在,然后用精确的思维定性、定量地去描述问题。“逐步求精” 是将现实世界的问题经抽象转化为逻辑空间或求解空间 阅读详情

过程:

自顶向下:将复杂问题逐层分解为若干个更简单的子问题。

复杂问题——>较简单的子问题——>更简单的子问题——>。。。。(继续拆分)

逐步求精:将现实中的问题逐步求精变化为能够以一定算法或者组合解决的问题。

现实问题——>。。。。——>能以算法或组合解决的问题

详细说来,“自顶向下,逐步求精”就是从问题的整体(最顶层)出发,将问题分解成独立而互不交叉的若干子问题,每个子问题解决问题的一部分或一种情况。然后再将各个子问题分别分解为更简单的子问题,一直分解,直到各个问题都好解决,这和我们程序设计课上学到的差不多。

这里写图片描述

优点:

”自顶向下,逐步求精“能够将复杂问题逐步简单化,使得一个复杂问题的解决方案更加清晰。

例子:洗衣机运行过程

0)选择洗衣模式: 对应水位,注水时间
1)注水,水位计计水位
2)浸泡,计时器计时
3)电机转动,左3次,右3次
4)排水,水位计计水位
5)电机转动,脱水
6)结束

细|化:

设置模式
打开上水开关,检测水位,当水位到达设定的时候关闭上水开关
计时器计时到设定时间
电机按设定转动
打开排水开关
电机转动脱水,计时到时后停止
blog.
关机

伪代码:

照片:

这里写图片描述
这里写图片描述

实体:

water_in_switch(open_close) // open 打开上水开关, close关闭
water_out_switch(open_close) // open 打开排水开关, close关闭
get_water_volume() //返回洗衣机内部水的高度

motor_run(direction) // 电机转动。 left左转, right右转, stop停
time_counter() // 返回当前时间计数,以秒为单位
halt(returncode) //停机, success 成功 failure 失败
input mode,waterlevel
water_in_switch(open)
if(get_water_volume()>=waterlevel)
water_in_switch(close);
start_time=time_counter();
if (time_counter()-start_time>=time_setting[mode])
repeat
start_time2=time_counter();
motor_run(left);
motor_run(stop);
motor_run(left);
motor_run(stop);
motor_run(left);
motor_run(stop);
motor_run(right);
motor_run(stop);
motor_run(right);
motor_run(stop);
motor_run(right);
motor_run(stop);
until (time_counter()-start_time2>=time2_setting[mode])
water_out_switch(open);
motor_run(right);
start_time3=time_counter();
if (time_counter()-start_time3>=time3_setting[mode])
motor_run(stop);
water_out_switch(close);
halt(success);

“自顶向下,逐步求精”的方法 1.什么叫做“自顶向下,逐步求精”? 目前软件开发方法使用最广泛的,当属结构化的方法和面向对象的方法。而其中,结构化程序设计支持“自顶向下, 逐步求精”的程序设计方法。 “自顶向下”的具体内涵是将复杂、大的问题划分为小问题,找出问题的关键、重点所在,然后用精确的思维定性、定量地去描述问题。而“逐步求精”的具体内涵是是将现实世界的问题经抽象转化为逻辑空间或求解空间的问题。复杂问题经抽象化处理变为 阅读详情

相关推荐

自顶向下,逐步求精的程序设计方法。

自顶向下,逐步求精的程序设计方法。“自顶向下” 是将复杂、大的问题划分为小问题,找出问题的关键、重点所在,然后用精确的思维定性、定量地去描述问题。“逐步求精” 是将现实世界的问题经抽象转化为逻辑空间或求解空间的问题。复杂问题经抽象化处理变为相对比较简单的问题。经若干步抽象(精化)处理,最后到求解域中只是比较简单的编程问题。若想让计算机解题必须用清晰而无两义性的方式给它提供算法。要求: 1 .

MADAYEI的博客 3226

深入“自顶向下,逐步求精”——面向过程程序设计方法

程序设计初学者常常受困于不会想问题:“不知道让计算机解决这个问题该如何做”。其实,程序员的一个基本功是,能够将复杂的问题分解开来。学会分解任务,因超级大分为大的、中的、小的、超小的,直到能用很直接的方法解决。记住一个很管用的策略:自项向下,逐步求精。不管做何事,都拿这个策略套一套,程序能编好,其他事也都能做。   本讲的主要目标在于:   (1)让你建立“自顶向下,逐步求精”的思维方式,你的大

迂者-贺利坚的专栏 1万+

程序设计中自顶向下,逐步求精的方法

自顶向下设计自顶向下设计, 一种逐步求精的设计程序的过程和方法。对要完成的任务进行分解,先对最高层次中的问题进行定义、设计、编程和测试,而将其中未解决的问题作为一个子任务放到下一层次中去解决。这样逐层、逐个地进行定义、设计、编程和测试,直到所有层次上的问题均由实用程序来解决,就能设计出具有层次结构的程序。 自顶向下逐步求精的应用简单的说, 自顶向下就是将复杂的,大的问题是将复杂、大的问题划分为小问题

akanine的博客 1922

模块化程序设计、条件编译、模块化程序设计与多文件编程实例、自顶向下、逐步求精、模块分解的基本原则

变量声明与变量定义不同的是:对于变量声明,编译器并不对其分配内存,因为这个变量实际是在其他模块定义的,即希望这个变量的内存是在其他模块分配的,用extern 声明表示要使用在其他模块定义的变量。按照模块化程序设计的思想,无论多么复杂的任务,都可以划分为若干个子任务。模块化程序设计的好处是,可以先将模块各个击破,最后再将他们集成在一起完成总任务,这样不仅便于进行单个模块的设计、开发、调试、测试和维护等工作,而且还可以使得开发人员能够团队合作,按模块分配和完成任务,实现并行开发,有利于缩短软件开发的周期。

ww1425408527的博客 2305

“自顶向下,逐步求精”方法简要介绍

什么是自顶向下,逐步求精 “自顶向下, 逐步求精”是结构化程序设计常见的思路。 “自顶向下”是将复杂、大的问题划分为小问题,找出问题的关键、重点所在,然后用精确的思维定性、定量地去描述问题。 “逐步求精” 是将现实世界的问题经抽象转化为逻辑空间或求解空间的问题。复杂问题经抽象化处理变为相对比较简单的问题。经若干步抽象(精化)处理,最后到求解域中只是比较简单的编程问题。 总的来说,就是采用模块分解与功

penhison的博客 4829

简述“自顶向下,逐步求精”的方法

结构化程序设计支持“自顶向下, 逐步求精”的程序设计方法。什么叫作“自顶向下,逐步求精”呢?“自顶向下” 将复杂的大问题分解为相对简单的小问题,找出每个问题的关键、重点所在,然后用精确的思维定性、定量地去描述问题。其核心本质是”分解”。 “逐步求精” 将现实问题经过几次抽象(细化)处理,最后到求解域中只是一些简单的算法描述和算法实现问题。即将系统功能按层次进行分解,每一层不断将功能细化,到最

ray_cube4869的博客 2937

自顶而下,逐步求精

若想让计算机解题必须用清晰而无两义性的方式给它提供算法。要求: 1. 找出一个算法,它能提供所解问题的从输入到输出所需的映象。 2. 选择一种程序语言写出程序,用计算机能接受的方式表述算法。关键是如何找出算法。因为写出程序,只是表述算法,应该没有困难。“自顶向下、逐步求精”的程序设计技术是目前较为时髦的、合理的找出算法的一种思维方法。它的核心思想是: 对于某一个要解决

jyyn______的博客 766

"自顶向下,逐步求精" ——程序结构化设计方法

“自顶向下”   是将复杂、大的问题划分为小问题,找出问题的关键、重点所在,然后用精确的思维定性、定量地去描述问题。 “逐步求精”   是将现实世界的问题经抽象转化为逻辑空间或求解空间的问题。复杂问题经抽象化处理变为相对比较简单的问题。经若干步抽象(精化)处理,最后到求解域中只是比较简单的编程问题。   “自顶向下、逐步求精”的程序设计技术是目前较为时髦的(当然也是较为合

White3zz的博客 3188

自顶向下、逐步求精

自顶向下、逐步求精自顶向下、逐步求精是计算机编程里面常用的思路 自顶向下将大问题分解为各个小问题,再逐步求解逐步求精对于每个问题逐次细化,不断完善例子就如对一个洗衣机程序 先将他的洗衣这个大问题分为多个小问题: 选择 洗衣模式 输入 水位、时间 注水至预设水位 浸泡预设时间 漂洗预设时间 每个周期 电机转动左三秒、右三秒 排水至水位为0 脱水 电机快速转动

Cynosure^ 577

“自顶向下,逐步求精”思想方法的介绍

有时,我们需要编写一个功能复杂的大程序。没有头绪?无从下手?那是因为你没有采用“自顶向下,逐步求精”的思想方法。

WillKen的博客 1164

在WPS/Office中免费使用AI,快速提升办公效率!​

《免费解锁WPS/Office AI办公神器教程》摘要: 本教程详解如何通过第三方插件OfficeAI免费实现WPS/Office智能办公,突破官方付费限制。从安全设置到安装配置,手把手教学,涵盖文档生成、PPT美化、Excel图表等核心功能。关键优势包括零成本、全场景支持及云端/本地双模式切换,并附常见问题解决方案。注意需使用WPS 2024+版本,安装时需临时关闭杀毒软件。教程强调工具来源合法性,建议商用购买正版授权。(149字)

杜哥无敌的博客 2304

自顶向下 逐步求精

一个让计算机处理问题的程序应该怎么写呢?处理一个问题的时候我们应该把问题分解,所以我们需要把一个问题一步步分解它. 一个超级大问题 > 大问题 > 问题 > 小问题 > 不是问题的问题. 一个程序员学会把问题简单化是非常重要的,超大问题大问题小问题超小问题,知道用一个简单的办法解决问题.这就是我们所说的: 自顶而下,逐步求精,采用自顶向下、逐步求精方法构造程序有如下优点: 1. 程序的层次分明、结构

EstebanLinOu的博客 890

多节阶梯阻抗变换器工程设计的公式推导

  多节阶梯阻抗变换器工程设计的公式推导,仔细看此文,有点烧脑,所以碎片十分钟,收获一丢丢。   现在就来设计一个超宽带多节阶梯阻抗变换器,要求带内纹波符合切比雪夫分布。   其实,此文已经是省去了大量中间公式推导,只剩下精炼内容了。   阶梯阻抗变换器指标需求   假设现在有一项目需求分析结果是:做一个微带线超宽带阶梯阻抗变换器,指标如下:   从50欧变换到100欧;   回波损耗22dB;   功率容量:2W;   频率范围2~18GHz;   插损能做多少就多少,用30mil板厚.

wusuowei1010的博客 7806

对 “自顶向下 逐步求精” 的理解

最近看知乎某答主提到“自顶向下,逐步求精”的思想,很受启发,在这里写下自己的理解和感悟吧。 什么是“自顶向下,逐步求精”? 自顶向下 把问题分解成一套子问题,然后把子问题分解成更小的问题。这一过程将一直持续到每个子问题足够基础,不再需要进一步分解为止。 逐步求精 将现实问题经过几次抽象(细化)处理,最后到求解域中只是一些简单的算法描述和算法实现问题。即将系统功能按层次进行分解,每一层不断将功能...

每天都要学Python的博客 1351

NRF52832调试方法1——HardFault_Handler问题定位

一、遇到问题 keil debug模式下,直接点击全速运行(Run)发现程序卡死,点击stop按钮后,停到了HardFault_Handler位置,如下图所示。 此时使用navigate backwards(蓝色左箭头)是无效的,找不到程序卡在哪里。 二、解决办法 此时首先观察register窗口 若Stack为MSP,则复制R13(SP)的值到memory观察窗的地址搜索栏。每一行显示连续的28个地址上的存储信息,每个地址上存有一个字节。 从第21个位置起的连续四个字节是LR的值,

小梁的博客 3650

麒麟操作系统Kylin如何从 2203 升级到 2403

fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;开始升级流程第一步:升级前准备1. 确认版本为 V10 SP1 22032. 备份全部重要数据3. 确保网络稳定4. 关闭应用第二步:选择升级方式方法一:图形界面升级方法二:命令行升级1. 更新现有系统至最新2. 启动“系统升级”工具3. 检测并开始下载2403。

让编程变的很简单!! 2663

模块化程序设计之自顶向下、逐步求精

模块化程序设计之自顶向下、逐步求精

hkiller1999的博客 6936

基于Gardner环的QPSK定时同步MATLAB仿真:四倍采样与多场景性能分析

本文详细介绍了基于Gardner环的QPSK定时同步MATLAB仿真方法,重点分析了四倍采样技术在定时同步中的应用与性能优化。通过MATLAB代码实例展示了Gardner环的实现原理、多场景性能分析及常见问题解决方案,为数字通信系统的定时同步设计提供实用参考。

weixin_29083475的博客 373

自顶向下、逐步求精的算法设计

采用自顶向下、逐步求精的方法来解决班级平均成绩的问题。这种方法对于开发结构良好的程序是必要的,自顶(top)顶指的是一条描述程序总体功能的伪代码语句:                 确定测验中的班级平均成绩 顶是一个程序有效的完整的描述。但是顶很少能将编写一个Java程序所需的细节充分地表达出来。因此,我们现在开始求精过程。先将顶划分成一系列的更小的任务,并将它们按照执行的先后顺序列出来。第

u013019004的博客 1597

初探802.11协议(0)——PCF/DCF与CSMA/CA机制

IEEE802.11 CSMA/CA机制与DCF机制

FanFF的博客 4505

从基础到前沿:深度剖析光束整形与扫描技术

光束扫描的核心在于通过特定手段改变光束的传播方向,从而实现对目标区域的扫描。在这个过程中,振镜、声光偏转器、电光偏转器等元件发挥着关键作用。振镜是一种常见的光束扫描元件,它主要由电机、反射镜和透镜组成。当电机驱动反射镜旋转时,根据光的反射定律,反射镜会改变入射光线的反射方向。假设初始时光束垂直入射到反射镜上,当反射镜绕某一轴旋转一定角度时,光束的反射方向就会相应改变,从而实现光束在空间中的扫描。在激光打标设备中,通过控制振镜的快速摆动,能够使激光束在工件表面快速移动,完成各种图案和文字的标记。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 2098
上一篇: 再次制作小游戏
下一篇: 人工智能与伦理道德
Excef
博客等级 码龄9年 7粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值