【精】图编程总结(编程过程的总结)

博图SCL编程手册 1、简单绍在可参考《程序块/编程语言》中《S7-SCL编程语言简介》 http://www.ad.siemens.com.cn/productportal/prods/1500published/1500list/prog_list1.html 2、更多的内容可参考: STEP7 (TIA 博途) SCL SIMATIC STEP 7 Professional V14.0 系统手册 SCL: 35... 阅读详情

编程过程与思维状态

  编程是一个需要注意力高度集中的过程,不仅是编码的过程,而且构建算法与数据结构的过程也必须如此。因为整个过程可能有很多状态,稍微不注意就会忽略或陷入混乱。人是高度进化的动物,能够处理很多出乎意料之外的事情,但是计算机却没有办法,如果出现之前未考虑的情况,计算机最可能的反应就是出错与崩溃。

  然而就算注意力完全集中,一个人大脑中的缓存也是有限的,不可能同时保持着那么多状态与变量的状态,但人脑不会内存溢出,取而代之的是混乱。我们要清晰编程,而不要混乱编程。因此就必须应用从上至下,逐步求精的过程,先从问题的性质与规律入手,然后进行算法与数据结构的构想,等这一切都无懈可击之后在开始写代码,编码中写好注释,真正的编码时间不应该超过整个过程的百分之三十。尽量在纸张上写出相关的状态与过程,以便于之后的参照。

  进一步具体的说一下编程的过程:

  1、问题探索过程,观察思考问题的性质,找到问题及其对象中存在的规律,从而找到一种人能够实现的有周期性的解法。

  2、算法的求精与数据结构、模块、接口的设计:将抽象性较高的周期性解法转化为计算机能够执行的算法,将程序框架以及具体实现都设计好,最后的代码就是这个过程结果的充实。

  3、根据伪代码编码,在写每个块状结构之前都必须注释上这个块状结构的功能与实现。

  4、debug与测试。

 

debug

 

 

    debug是非常重要的,我总结的常用办法有三个:

  1、错误代码段定位,缩小搜索范围是节省时间的重要方法。

  2、抓住一些关键的量(状态指示量),将代码的运行状态显示出来。不要让代码成为脱缰的野马,在写代码的时候,每一个结构块之前都要注释这一个结构块的功能实现,在debug的时候,用运行状态变量来保证代码的运行情况在掌握之中。

  3、利用大量的多种类型的可能输入进行测试(对于初步运行正常的程序)

  虽然debug技非常关键,但是一次性命中仍然是努力的目标,每次写代码都必须努力减少bug出现的几率,一个好的方法是分块分段来写程序,对块段的测试bug的出现,也可以减少debug上的时间。

 

debugee1:当vertex[n]被声明但n还没定义的时候,DEV并不报错,但运行的时候却有时会出现诡异的错误,也就是vertex的地址发生改变,访问vertex内的元素时出现崩溃。这个bug虽然是被编译器放过而变得很隐蔽,但是仍然不应该困扰那么长时间,因为当系统中某一个环节问题的时候,你必须考虑它所有的元素是否都正常,如果能看到的元素是正常的,就必须考虑那些隐藏的元素。一个变量出现诡异的变化,不仅要看它被调用、修改的过程,也要注意到它的声明与定义的过程。

 

debugee2:二维数组的传递需要列的信息,为了克服这一问题,用一个指针数组来存储这个各行的头指针。

 

debugee3:算法与数码实现的代沟,或者说是伪代码与代码之间的代沟,当你用抽象语言来期望完成某个功能的时候,用代码写出来却会出现言不达意的错误。就像这里,原来把if中语句放在for语句的中间期望完成同样的功能,但实际上会出现bug。这类问题的解决方法在于编程过程的把握。

 

debugee4:debugee5:算法本身的漏洞,没有把问题考虑周全,可能将同一个未访问的顶点多次放入栈中。debugee5中指针指来指去比较复杂,容易出错。这类问题的解决方法在于编程过程的把握。

 

debugee6:对于向量的应用不是很熟悉,对于迭代子也不了解,很多功能函数是基于向量迭代子的,所以,很多时候用迭代子比较好。但是如果直接用计数变量也可以,因为可以用再一次计数方法来得到相应位置的迭代子。

 

debugee7:对于指针的new的理解模糊,实际情况是new一个空间,把给定的指针的值改为new空间的首地址。因此,a=b,a=new int这样的行为会使a的值改变,但是不会使b的值改变,这是很明显的。这是指针与普通变量的相似点。

 

 

 

 

附上代码,代码在DEV下编译通过。(代码有点乱,因为同时用了邻接表与邻接矩阵两种方式来锻炼下。)

易语言编程学习的精易编程助手实践指南 代码智能提示是现代编程环境中不可或缺的功能,尤其对于提高开发效率和降低错误率有着极其重要的作用。智能提示功能允许开发者在编写代码时获得实时的建议,从而快速完成代码编写、提高开发效率。智能提示通常基于当前代码编辑器的上下文环境,提供方法、函数、变量名以及其他代码片段的自动完成建议。代码分析技术是智能提示功能实现的基础。它涉及多种技术手段,如词法分析、语法分析、抽象语法树(AST)生成和语义分析。通过这些分析,系统能够理解代码的结构和含义,从而生成智能提示。 阅读详情

相关推荐

精易编程助手V3.98 功能介绍与组件分析

scintilla.dll 提供了文本编辑器所需的核心功能,包括但不限于:语法高亮、代码折叠、自动缩进、行号显示、书签、查找和替换等。语法高亮功能能够根据不同的编程语言对关键词、字符串、注释等元素进行颜色区分,增强了代码的可读性。代码折叠允许用户展开或折叠代码块,有助于管理和浏览大型代码文件。自动缩进功能则确保了代码的格式整洁一致。通过 scintilla.dll,开发者可以创建自定义的脚本编辑器。

weixin_42163404的博客 1123

C语言编译过程总结详解(转帖)

C语言编译过程总结详解(转帖)转载:http://mcuos.com/thread-3793-1-1.html本来打算把编译部分的内容总结一下,偶然看到一位网友的文章写得很全面,故此稍加整理,以作备忘。       C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程。链接是把目标文件、操作系统的启动代码和用到的库文件进行组织形成最终生成可执行代码的过程。过程图解如下:        

tiantang46800的专栏 1000

精易模块V5.7易语言扩展组件库详解

易语言是一种简单易学的编程语言,它以中文为编程语言,让中文用户也能方便地进行软件开发。易语言的设计初衷是降低编程语言的门槛,使编程不再是少数人的专利,而是普通人都能掌握的技能。精易模块是易语言的一种扩展模块,它为易语言提供了更多的功能和工具,使得易语言的开发更加强大和便捷。精易模块通过提供丰富的函数和类库,让开发者能够以更高效的方式完成开发任务。模块化编程是一个古老但经久不衰的编程范式,其核心在于将大型复杂问题分解为更小、更易于管理的部分。

weixin_42601608的博客 1061

编程过程中的总结

1.重视每一个数据为空的情况,这样可以避免,一些不必要的空指针异常。 2.创建一个Log的管理类,方便开发环境和正式环境的切换 3.如果需要创建一个统一的对话框样式,既方便管理,也能保证统一性 4.创建一个Activity父类,用于管理一些相同操作。 5.如果一段代码使用超过三次及以上则有必要将它抽出来作为一个工具类,或者一个公用方法。 6.若项目中需要显示大量图片,一定要注意图片的处理

u014662112的专栏 422

别再怕ADRC调参了!手把手教你用MATLAB/Simulink搞定TD、ESO、NLSEF(附完整参数表)

本文详细解析了ADRC(自抗扰控制)的调参方法,通过MATLAB/Simulink实战演示,帮助工程师快速掌握TD、ESO和NLSEF模块的参数整定技巧。文章提供了完整的参数表和调参指南,解决ADRC调参难题,提升控制系统的鲁棒性和性能。

weixin_30252709的博客 177

C2000 ePWM与SDFM同步配置:从寄存器到Driverlib实战解析

在嵌入式实时控制系统中,脉宽调制(PWM)是实现电机驱动、数字电源等应用的核心技术,其信号质量和时序精度直接决定了系统性能。为实现精确控制,PWM信号常需与模数转换器(ADC)或Sigma-Delta滤波器(SDFM)的采样时刻严格同步,以消除开关噪声并获取准确的反馈信号。其技术原理在于通过硬件同步机制,将PWM的特定时间点(如周期中心)作为触发源,控制数据采集的启动时刻。这种硬件级同步能有效提升闭环控制的稳定性和动态响应速度,广泛应用于伺服驱动、变频器等高性能场景。本文聚焦于TI C2000系列微控制器,

weixin_33692284的博客 444

C 语言编译过程总结详解

C 语言编译过程总结详解 从图上可以看到,整个代码的编译过程分为编译和链接两个过程,编译对应图中的大括号括起的部分,其余则为链接过程。 编译过程 编译过程又可以分成两个阶段:编译和会汇编。编译 编译是读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,源文件的编译过程包含两 1 个主要阶段:第一个阶段

上善若水 1248

从零构建无线AM信号模拟系统:基于STM32与AD9959的国赛一等奖方案解析

本文详细解析了基于STM32F103RCT6与AD9959芯片构建无线AM信号模拟系统的国赛一等奖方案。文章从项目背景、核心芯片选型出发,深入剖析了系统架构、硬件电路设计及软件控制逻辑,重点分享了“直流偏置叠加法”实现AM调制、多径模拟以及高频电路调试的实战经验与避坑指南,为参加全国大学生电子设计大赛的选手提供了一套完整、可靠的复现路径。

weixin_29182481的博客 181

编程工作总结

不知不觉从校园出来已经有两年了,在两年的工作过程中,也着实悟出了点经验,下面进行总结。1. 如果可以,请选择一个有资深工作经验的人负责的项目。一个好的系统离不开一个好的框架,好的框架必定由好的架构师来架构。XPR项目从一开始就是一个错误,首先是Vision的错误,开发这个项目的目的是用目前较流行的开源框架来重新实现现有系统XPC的全部功能,并且把XPR的部分功能能开源出去。要重新实现现有系统XPC

广东妃子笑科技 5174

winform自定义控件(gdi+)(1)———设置透明背景色

本文详细讲解了如何在winform中设置控件的背景色为透明色

qq_34059233的博客 3686

基于YOLOv8的城市违建识别系统:从数据集构建到UI界面实现

YOLOv8是Ultralytics公司于2023年推出的最新一代YOLO(You Only Look Once)系列目标检测算法。更高效的骨干网络设计改进的锚框机制更精确的损失函数支持分类、检测、分割等多任务YOLOv8特别适合像违建识别这样的实时检测任务,能够在保持高精度的同时实现快速推理。

YOLO 674

大二数据结构第七次总结---图

图 1.图的定义 图是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为: G=(V,E) 其中:G表示一个图,V是图G中顶点的集合,E是图G中顶点之间边的集合。 2.图的基本术语 简单图:在图中,若不存在顶点到其自身的边,且同一条边不重复出现。 邻接、依附 ...

qq_43550247的博客 710

泛微OA与泛微OA之间打通实现统一待办配置

问题:学校OA与集团OA均为泛微Ecology8.0 ,由于流程审批互通的需要,要将两套OA系统打通,实现跨系统的流程流转。

symstandsun的博客 2269

初识C#

因为有了C++的基础,C#入门也就自然简单多了。其实所有的编程语言都是如出一辙的,从VB开始接触了面向过程的编程语言,并通过VB课本、百例、陈伟视频的学习逐步强化这一编程思想。当然VB是编程的入门,慢慢的从面向过程演进到逐步面向对象的编程思想。从中也体会到了编程过程的精简化。总结一下看楚广明老师讲的C#视频 【UML与C#】 刚刚学完UML并完成了九种图,我就在想UML和C#...

weixin_33672400的博客 130

一文读懂 SAP ICF Services:从 SICF 激活到 ABAP OData V2/V4 安全与实战

本文系统化介绍了ABAP系统中ICF服务的关键概念及实践要点。主要内容包括:ICF服务的核心安全机制,需显式激活才能响应HTTP请求;在SICF中正确激活服务的操作步骤;OData V2/V4服务所需的不同ICF节点配置,如V4统一入口节点/sap/opu/odata4;典型问题如default_host未激活会导致HOST_INACTIVE错误;安全实践包括CSRF防护机制和权限对象(S_ICF_ADM)配置;以及实际案例分析和常见ICF服务节点的功能说明。文章为ABAP开发者与运维人员提供了ICF服务管

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 472

1篇2章1节:在 Mac 上安装 Python,从环境检查到工具配置的完整指南

Python 是当今最流行的高级编程语言之一,广泛应用于数据分析、人工智能、自动化脚本和 Web 开发。虽然 macOS 曾自带 Python,但从 macOS 12.3 开始,系统不再默认提供可直接使用的版本,因此需要手动安装。本文将详细讲解如何在 Mac 上安装最新版本的 Python,如何验证安装是否成功,以及如何配置 IDLE 和 Python Launcher 等工具,为日常开发和学习打下坚实基础。即便你是完全的新手,也能按步骤完成环境搭建。

MD Code 848

易语言精易编程助手3.98下载介绍:编程效率提升利器

易语言精易编程助手3.98下载介绍:编程效率提升利器 【下载地址】易语言精易编程助手3.98下载介绍 易语言精易编程助手3.98是一款专为编程人员打造的高效辅助工具,基于国产易语言开发,体积小巧、运行流畅。它专注于帮助开发者快速探测并获取外部窗口信息,极大简化了窗口操作相关的编程流程,显著提升工作效率。无论是窗口属性识别...

gitblog_06785的博客 846

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

编程题实训-图

密密被困在一个迷宫里,迷宫有n个路口,编号为1-n。密密现在站在第一个路口,出口编号为m。先给出每个路口通向何处,问密密能否逃出迷宫。

a61233的博客 1万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Java网络编程精解

收藏自用 链接:Java网络编程精解

ZQ1csdn的博客 1353

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

精易编程助手

精易编程助手是一款强大的多功能网页编程助手,包括网页元素分析、窗口代码生成、图片等资源采集等实用功能   功能介绍 网页分析 → 穿透框架彻底分析网页元素,让你网页填表操作更加简单!  窗口探测 → 清晰的分析窗口中各种控件的ID,句柄,标题,类名,位置,大小!  生成代码 → 查找指定窗口控件,全智能生成易语言代码!  资源采集 → 采集网页上的CSS,JS,图片,背景,媒体文件

云淡风轻的博客 3959

易语言精易编程助手3.98下载介绍

易语言精易编程助手3.98下载介绍 【下载地址】易语言精易编程助手3.98下载介绍 易语言精易编程助手3.98是一款专为编程人员打造的高效辅助工具,基于国产易语言开发,体积小巧、运行流畅。它专注于帮助开发者快速探测并获取外部窗口信息,极大简化了窗口操作相关的编程流程,显著提升工作效率。无论是窗口属性识别还是信息提取,该工...

gitblog_06789的博客 652

精易模块v11.1.0下载介绍:高效编程助力工具

精易模块v11.1.0下载介绍:高效编程助力工具 【下载地址】精易模块v11.1.0下载介绍 精易模块V11.1.0是一款功能强大的易语言模块,专为提升编程效率而设计。本版本新增了多项实用功能,包括LDAP时间戳转换、文件路径获取、字符代码提取以及64位位运算等,全面优化了操作体验。无论是处理时间数据、管理文件路径,还是...

gitblog_06716的博客 1167

数控车椭圆编程实例带图_数控车床椭圆怎么编程

如图,就车削如图椭圆,只要车削一半(红色线段部分),精车部分,肯定大家都没问题,很容易,但在实际操作中,不可能直接精车,肯定要开粗,那要怎么开粗呢,最简单的就是嵌套在G71或G73中,方面快捷,但是不是每一种机床都合适,要看机床系统的新旧,老机床就放弃吧,不存在的,所以,我们还得想其他办法。精车程序附上O1236M03S800T0101#1=50WHILE[#1 GE 0] DO1#2=25*SQ...

weixin_35027170的博客 8118

JavaScript编程精解

《JavaScript编程精解》基本信息原书名:Eloquent JavaScript: A Modern Introduction to Programming作者: (美)哈弗贝克(Haverbeke,M.)译者: 徐涛丛书名: 华章专业开发者丛书出版社:机械工业出版社ISBN:9787111396659上架时间:2012-9-14出版日期:2012 年9月开本:16开页码:1版次:1-1所属...

weixin_34211761的博客 220

西门子HMI精智面板实现用户自动登陆

西门子HMI精智面板实现定时登录和按钮触发登录

yue008的博客 9010
上一篇: 时间管理
下一篇: Poj1094拓扑排序总结
chentingpc
博客等级 码龄20年 92粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值