当前位置: 首页 > news >正文

2.2 C语言程序的错误条件

在C语言程序中,条件语句决定程序的执行路径,因此条件表达式是程序的关键。

应用最经典的程序,除法的减法实现程序,解释条件表达式的重要性。x=y*q+r,x是被除数,y是除数,q是商,r是余数。 程序的方法, x=(r-y)+y*(1+q)。

main(){ /*错误条件的程序*/

   r:=x;  q:=0;

   while(r>y){

        r:=r-y;  q:=q+1;

   }

}

此程序中,r是被减数,也是余数。根据经验在程序中,余数r应大于除数y,实际上余数可以为0,因此while语句的条件表达式r>y,应是r>=y。

r=r-y,要求r减少,因此y不能是负数,而且根据除法的要求y>0,程序的初始化数据y>0。

若x<0,则r<0。若y>0,则程序不能执行,若y<0,而且y<r,则程序的方法错误。例如x=-2,y=-4,第一次迭代,r=2, q=1,与数学的除法规定不相符。因此x>0 而且x可以为0,即x>=0。

编写正确的程序,又称为程序正确性证明。用前后断言判断语句的正确性,P{Q}R,P是前断言,R是后断言。断言描述变量值的特征与变量间的关系。[论文题目《An axiomatic basis for computer progamming》,作者  C.A.R. Hoare。这篇论文很简单

http://www.lryc.cn/news/28994.html

相关文章:

  • laravel 邮件发送
  • 高性能 Jsonpath 框架,Snack3 3.2.57 发布
  • Android---进程间通信机制3
  • Python实战,爬取金融期货数据
  • Allegro如何导入第三方网表操作指导
  • 高码率QPSK调制解调方案(FPGA实现篇)
  • Elasticsearch的RESTful Api使用
  • 软著申请需要注意的
  • SpringBoot入门 - 添加Logback日志
  • 社会实践报告
  • LeetCode 460. LFU 缓存 -- 哈希查询+双向链表
  • Dubbo 源码分析 – SPI 机制
  • JDBC概述二(JDBC编程+案例展示)
  • 广度和深度优先搜索解析与示例代码
  • 基于SLIC超像素的归一化分割算法
  • C语言刷题(4)——“C”
  • 带你看懂RuoYi动态数据源切换
  • 家有女儿必看:盲目的和青春期女儿较劲,不如掌握4个沟通技巧
  • 【VC 7/8】vCenter Server 基于文件的备份和还原Ⅰ——基于文件的备份和还原的注意事项和限制
  • 【ROS学习笔记10】ROS中配置自定义Cpp头文件和导入自定义Python库
  • svn 分支(branch)和标签(tag)管理
  • @Transactional详解
  • 机器学习:Transformer
  • pytorch-模型构建,参数访问,模型存取API接口,对比学习
  • javaEE 初阶 — 数据链路层中的以太网数据帧
  • 泼辣修图Polarr5.11.4 版,让你的创意无限延伸
  • leetcode打卡-深度优先遍历和广度优先遍历
  • 【0177】Linux中POSIX信号量实现机制
  • 跳表--C++实现
  • c#:System.Text.Json 的使用一