实验3:认识程序调试方法和工具

合集下载

实验三_M_文件及_MATLAB_程序设计与调试

实验三_M_文件及_MATLAB_程序设计与调试

实验三M 文件及MATLAB 程序设计与调试一、实验目的全面掌握在MA TLAB 下进行程序设计的有关问题,具体涉及到M 脚本文件和M 函数文件的编写、全局和局部变量的使用、流程控制结构、提高程序执行效率的设计技术、程序调试等问题。

二、实验内容1、关于M 脚本文件和M 函数文件MATLAB 的M 文件有两类:脚本文件和函数文件。

(1)脚本文件——将原本要在MATLAB 的指令窗口中直接输入的语句,放在一个以.m 为后缀的,称为脚本文件中。

有了脚本文件,可直接在MATLAB 中输入脚本文件名(不含后缀)。

MATLAB 会打开这一脚本文件,并依次执行脚本文件中的每一条语句,这与在MATLAB 中直接输入语句的结果完全一致。

(2)函数文件——它的第一行必须是函数定义行。

M 函数文件由5 部分构成:◆函数定义行◆H1 行◆函数帮助文本◆函数体◆注释注意:在函数文件中,除了函数定义行之外,其它部分都是可以省略的。

但作为一个函数,为了提高函数的可用性,应加上H1 行和函数帮助文本,为了提高函数的可读性,应加上适当的注释。

例如:function y = mean(x)% MEAN Average or mean value.% For vectors, MEAN(X) is the mean value of the elements in X.% For matrices, MEAN(X) is a row vector containing the mean value of each column.[m,n]=size(x);if m==1% Determine whether x is a vectorm=n;endy = sum(x)/m;①函数定义行:function y = mean(x)function 为函数定义的关键字,mean 为函数名,y 为输出变量,x 为输入变量当函数具有多个输出变量时,则以方括号括起;当函数具有多个输入变量时,则直接用圆括号括起。

实验3GXDeveloper编程软件的使用

实验3GXDeveloper编程软件的使用

实验3 GX Developer编程软件的使用一、实验目的(1) 熟悉GX Developer软件界面;(2) 掌握梯形图的基本输入操作;(3) 掌握利用PLC编程软件编辑、调试等基本操作。

二、实验器材(1) 可编程控制器1台(FX2N-48MR );(2) 计算机1台(已安装GX Developer编程软件)。

三、实验指导1 .编程软件简介三菱PLC编程软件有好几个版本,早期的FXGP/ WIN-C和最新的GX Developer相互兼容,但GX Developer界面更友好、功能更强大、使用更方便。

这里介绍GX Developer7.08版本,它适用于Q系列、QnA系列、A系列以及FX系列的所有PLC。

GX编程软件可以编写梯形图程序和状态转移图程序,它支持在线和离线编程功能,并具有软元件注释、声明、注解及程序监视、测试、故障诊断、程序检查等功能。

此外,具有突出的运行写入功能,而不需要频繁操作STOP/RUN开关,方便程序调试。

GX编程软件简单易学,具有丰富的工具箱,直观形象的视窗界面。

此外,GX编程软件可直接设定CC-link及其他三菱网络的参数,能方便地实现监控、故障诊断、程序的传送及程序的复制、删除和打印等功能,下面介绍GX编程软件的使用方法。

2 . GX编程软件的操作界面图6-34所示为GX Developer编程软件的操作界面,该操作界面大致由下拉菜单、工具条、编程区、工程数据列表、状态条等部分组成。

这里特别注意的是在FXGP/WIN-C编程软件里称编辑的程序为文件,而在GX Developer编程软件中称之为工程。

与FXGUWIN-C编程软件的操作界面相比,该软件取消了功能图、功能键、并将这两部分内容合并,作为梯形图标记工具条,新增加了工程参数列表数据切换工具条、注释工具条等。

这样友好直观的操作界面使操作更加简便。

图6-34中引出线所示的名称、内容说明如表6-1所示。

表6-1 GX Developer 编程软件的操作界面3. 文件管理 (1) 创建新工程12106 图6-34 GX Developer 编程软件的操作界面创建一个新工程的操作方法是:在菜单栏中单击【工程】【新建工程】命令,或者按【Ctrl + N】组合键操作,或者单击常用工具栏中的D工具,弹出建立工程对话框,如图6-35所示。

实验报告的程序分析(3篇)

实验报告的程序分析(3篇)

第1篇一、实验目的1. 理解程序分析的基本概念和原理。

2. 掌握程序分析的基本方法和技术。

3. 培养对程序进行调试和优化的能力。

4. 提高对程序错误定位和排除的能力。

二、实验原理程序分析是指对程序进行静态或动态分析,以获取程序的结构、行为和性能等方面的信息。

程序分析有助于发现程序中的错误、优化程序性能、提高代码可读性等。

1. 静态分析:通过对源代码进行语法分析、控制流分析、数据流分析等,获取程序的结构、语义和类型信息,而不需要运行程序。

2. 动态分析:在程序运行过程中,收集程序执行过程中的信息,如变量值、执行路径、内存分配等,以分析程序的行为和性能。

三、实验内容1. 静态分析(1)选择一个C语言程序作为实验对象。

(2)使用C语言的语法分析器(如YACC)对程序进行语法分析,生成抽象语法树(AST)。

(3)对AST进行控制流分析,识别程序中的基本块、控制流图等。

(4)对AST进行数据流分析,识别变量定义、使用、作用域等。

2. 动态分析(1)选择一个C语言程序作为实验对象。

(2)使用C语言的调试器(如GDB)对程序进行调试,观察程序运行过程中的变量值、执行路径等。

(3)使用性能分析工具(如gprof)对程序进行性能分析,观察程序的执行时间、CPU占用率等。

四、实验步骤1. 静态分析(1)编写C语言程序。

(2)使用YACC进行语法分析,生成AST。

(3)使用控制流分析工具对AST进行控制流分析。

(4)使用数据流分析工具对AST进行数据流分析。

2. 动态分析(1)编写C语言程序。

(2)使用GDB进行调试,观察程序运行过程中的变量值、执行路径等。

(3)使用gprof进行性能分析,观察程序的执行时间、CPU占用率等。

五、实验结果与分析1. 静态分析结果通过静态分析,我们得到了以下信息:(1)程序中的基本块和控制流图。

(2)程序中的变量定义、使用和作用域。

(3)程序中的错误,如语法错误、类型错误等。

2. 动态分析结果通过动态分析,我们得到了以下信息:(1)程序运行过程中的变量值。

c语言实习报告3篇

c语言实习报告3篇

c语言实习报告3篇c语言实习报告1在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。

在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,更多的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。

由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。

包括了程序模块处理.简单界面程序.高级界面程序.程序的添加修改.用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。

上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。

对于程序设计语言的.学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。

学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。

因为学时所限,课程不能安排过多的上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。

为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。

课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1.加深对课堂讲授内容的理解课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。

然而要使用c语言这个工具解决实际问题,又必须掌握它。

通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。

对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。

学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。

实验报告程序调试

实验报告程序调试

实验报告程序调试进行实验时,程序调试是必不可少的一步。

下面我将详细讨论程序调试的重要性以及常见的调试技术。

首先,程序调试是确保程序能够正常运行的关键步骤。

在开发过程中,我们常常会遇到各种各样的错误,包括语法错误、逻辑错误和运行时错误。

通过调试,我们可以准确地找出错误所在,并对其进行修复。

只有通过调试,我们才能保证程序的功能的正确性和稳定性。

其次,程序调试可以提高开发效率。

如果我们没有进行调试,而是一味地猜测错误的原因和位置,那么我们可能会花费大量的时间才能找到问题的根源。

然而,通过调试工具,我们可以定位到具体的代码行,并查看变量的值,从而更加快速地找出错误。

调试可以帮助我们逐步地验证代码的正确性,这对于复杂的程序来说尤为重要。

在进行程序调试时,有几个常见的技术是非常有用的。

首先,我们可以使用断点来调试代码。

断点是指在代码中设定一个停止位置,程序在执行到该位置时会暂停,可以查看此时的变量状态和执行路径。

通过设置断点,我们可以逐步执行程序代码,观察变量的变化,从而找出问题的所在。

其次,利用日志输出是一种非常常见的调试技术。

我们可以在代码中插入一些输出语句,将程序运行时的一些关键信息打印出来,以便观察程序的执行过程和变量的值。

通过分析日志输出,我们可以更加准确地判断程序的执行情况,找到问题的所在。

另外,利用单元测试也是一种非常有效的调试技术。

单元测试是指针对程序的各个单元进行独立测试的方法,通过编写各种测试用例,用于检查程序的各个功能是否正常工作。

通过单元测试,我们可以快速地发现问题所在,并有针对性地进行修复。

此外,我们还可以使用调试器来进行程序调试。

调试器是一种专门用于调试程序的工具,可以让我们逐行执行程序代码,查看变量的值和执行路径。

通过调试器,我们可以更加直观地观察程序的执行情况,并且可以方便地进行变量查看和修改。

调试器通常提供了丰富的功能,如条件断点、变量监视和堆栈跟踪等,可以帮助我们更加高效地调试程序。

安卓程序实验报告(3篇)

安卓程序实验报告(3篇)

第1篇一、实验目的1. 熟悉安卓开发环境及工具的使用。

2. 掌握安卓应用程序的基本开发流程。

3. 学习安卓界面设计、布局、事件处理等基本技能。

4. 提高编程能力及团队协作能力。

二、实验环境1. 操作系统:Windows 102. 开发工具:Android Studio3.53. 编程语言:Java4. 虚拟机:Android 9.0 (Pie)三、实验内容1. 创建安卓项目2. 设计界面3. 编写功能代码4. 测试与调试四、实验步骤1. 创建安卓项目(1)打开Android Studio,点击“Start a new Android Studio project”;(2)选择“Empty Activity”模板,点击“Next”;(3)输入项目名称、保存位置等信息,点击“Finish”;(4)在项目目录中,找到MainActivity.java文件,修改其中的代码,以实现特定功能。

2. 设计界面(1)打开res/layout/activity_main.xml文件;(2)使用布局编辑器设计界面,添加控件(如Button、EditText等);(3)设置控件的属性(如文本、颜色、大小等)。

3. 编写功能代码(1)在MainActivity.java文件中,编写代码实现功能;(2)例如,编写按钮点击事件,实现数据计算、页面跳转等操作。

4. 测试与调试(1)在Android Studio中,点击“Run”按钮,启动模拟器或连接真机进行测试;(2)观察程序运行效果,如有问题,进行调试;(3)根据需要,修改代码,直至程序正常运行。

五、实验结果与分析1. 实验结果本次实验成功创建了一个安卓应用程序,实现了简单的功能,如按钮点击事件、页面跳转等。

2. 实验分析(1)在创建安卓项目时,熟悉了Android Studio的使用,掌握了项目结构及文件管理方法;(2)在设计界面时,学会了使用布局编辑器,掌握了常用控件的属性设置;(3)在编写功能代码时,学习了Java编程语言的基本语法,掌握了事件处理及页面跳转等操作;(4)在测试与调试过程中,提高了问题定位及解决能力。

电大在线编程实验报告(3篇)

电大在线编程实验报告(3篇)

第1篇一、实验目的通过本次在线编程实验,旨在提高我的编程能力,加深对编程语言的理解,熟悉编程环境的使用,并培养良好的编程习惯。

同时,通过实际编程练习,解决实际问题,提升我的逻辑思维和问题解决能力。

二、实验内容本次实验选择了电大在线编程平台提供的C语言编程课程,主要包括以下内容:1. C语言基本语法;2. 数据类型、变量和运算符;3. 控制结构(分支和循环);4. 函数的定义和调用;5. 数组、指针和字符串操作;6. 文件操作。

三、实验步骤1. 准备工作:登录电大在线编程平台,选择C语言编程课程,熟悉编程环境和操作界面。

2. 编写代码:根据实验指导书,逐个完成实验任务,编写相应的C语言程序。

3. 调试程序:使用调试工具,检查代码中的错误,修正语法错误和逻辑错误。

4. 运行程序:成功编译并运行程序,观察输出结果,确保程序功能符合预期。

5. 总结与反思:对实验过程中遇到的问题进行总结,分析原因,提出改进措施。

四、实验结果与分析1. C语言基本语法:通过实验,我掌握了C语言的基本语法,包括数据类型、变量、运算符等。

2. 控制结构:实验中,我学会了使用if语句、switch语句进行分支控制,以及for循环、while循环进行循环控制。

3. 函数:通过编写和调用函数,我了解了函数的定义、参数传递和返回值等概念。

4. 数组、指针和字符串操作:实验中,我掌握了数组的定义、初始化、访问和操作方法,了解了指针的概念和用法,以及字符串操作函数。

5. 文件操作:通过实验,我学会了使用文件操作函数,实现文件的读写操作。

五、实验总结通过本次在线编程实验,我收获颇丰。

以下是我对本次实验的总结:1. 编程能力得到提高:通过实际编程练习,我对C语言有了更深入的了解,编程能力得到提升。

2. 问题解决能力增强:在实验过程中,我遇到了各种问题,通过查阅资料、请教同学和老师,我学会了如何分析和解决实际问题。

3. 良好的编程习惯:在实验过程中,我养成了良好的编程习惯,如规范命名、注释代码、代码复用等。

环路响应调试实验报告(3篇)

环路响应调试实验报告(3篇)

第1篇一、实验目的1. 理解环路响应的概念及其在通信系统中的作用。

2. 掌握环路响应调试的基本方法和技术。

3. 培养实际操作和问题解决能力。

二、实验原理环路响应是指在通信系统中,由于信号传输路径的延时、噪声等因素,导致信号在传输过程中产生回环,从而影响通信质量的现象。

环路响应调试旨在消除或减少环路响应,提高通信系统的稳定性和可靠性。

三、实验器材1. 通信系统模拟器2. 网络分析仪3. 信号发生器4. 电脑及调试软件四、实验步骤1. 搭建实验环境:根据实验要求搭建通信系统模拟器,连接信号发生器、网络分析仪等设备。

2. 设置实验参数:根据实验要求设置信号发生器的频率、幅度等参数,以及网络分析仪的测量参数。

3. 信号注入:将信号发生器产生的信号注入到通信系统中,模拟实际通信场景。

4. 测量环路响应:使用网络分析仪测量通信系统中的环路响应,包括环路的时延、增益、相位等参数。

5. 分析环路响应:根据测量结果分析环路响应的原因,如延时、噪声等。

6. 调试环路响应:针对分析出的原因,采取相应的调试措施,如调整系统参数、优化信号传输路径等。

7. 验证调试效果:再次使用网络分析仪测量环路响应,验证调试效果。

五、实验结果与分析1. 实验数据:实验过程中,测量得到以下数据:- 环路时延:100μs- 环路增益:-20dB- 环路相位:180°2. 分析:- 环路时延较大,可能是由于信号传输路径过长或设备延时过大。

- 环路增益为负值,表明信号在传输过程中受到了衰减。

- 环路相位为180°,说明信号在传输过程中产生了相位反转。

3. 调试措施:- 缩短信号传输路径,减少设备延时。

- 使用低损耗传输线,降低信号衰减。

- 调整系统参数,使信号相位恢复。

4. 调试效果:经过调试,环路时延降低至50μs,环路增益提高至-10dB,环路相位恢复至0°,通信系统性能得到明显提升。

六、实验总结1. 通过本次实验,我们深入了解了环路响应的概念及其在通信系统中的作用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Debug 工具栏
单步执行
变量窗口
Watch 窗口
图 2 跟踪执行 运行出函数(Step Out) :按 Shift+F11 或对应命令按钮,运行程序,当 遇到断点或返回函数调用者时暂停。 运行到光标(Run to Cursor) :按 Ctrl+F10 或对应命令按钮,运行程序, 当遇到断点或光标时暂停。 (3)查看程序运行状态:当程序暂停时,可利用变量窗口观察和修改当前运行 环境所涉及的变量的值,以便发现程序是否按设计者的意图进行变化。而 Watch 窗口还可用来观察你感兴趣的表达式的值。变量窗口和 Watch 窗口可用 Debug 工具栏中相应命令按钮来打开或关闭。 通过上面的内容,我们了解了调试程序的几个武器。下面这些武器帮助 我们进一步理解和掌握所学知识: 程序执行流程 形参和实参的存储 形参和实参的单向值传递的方式 (4)单步运行程序,观察程序的执行流程和状态: ①按 F10,以调试状态运行程序。从图 3 可以看出,无论 main 函数处在程序 何处,程序运行总是从 main 函数开始执行的。main 函数是程序的入口。此时, 还未进入函数体,变量还未定义,因此变量窗口是空的。
对 程 温 温馨 馨提 提示 示: : 对于 于初 初学 学者 者, , 程序 序出 出错 错是 是不 不可 可避 避免 免的 的事 事情 情。 。面 面对 对编 编 译 产 也 毕 译器 器提 提示 示的 的众 众多 多错 错误 误, , 产生 生一 一点 点儿 儿畏 畏难 难情 情绪 绪, , 也是 是可 可以 以理 理解 解的 的, , 毕竟 竟 程 事 程序 序排 排错 错是 是困 困难 难的 的。 。 事实 实上 上, ,只 只要 要学 学会 会了 了一 一定 定的 的程 程序 序测 测试 试和 和排 排错 错技 技巧 巧, , 错 相 发 错误 误就 就不 不再 再可 可怕 怕了 了。 。 相反 反, , 发现 现的 的任 任何 何错 错误 误都 都能 能教 教导 导我 我们 们如 如何 何防 防止 止类 类 似 似错 错误 误的 的再 再次 次发 发生 生, ,即 即使 使发 发生 生, ,我 我们 们也 也可 可以 以尽 尽早 早识 识别 别它 它。 。本 本次 次实 实验 验, , 我 在 请 我们 们学 学习 习了 了程 程序 序调 调试 试和 和排 排错 错的 的基 基本 本方 方法 法。 。 在今 今后 后的 的学 学习 习中 中, , 请大 大家 家不 不 断 断应 应用 用它 它们 们, ,积 积累 累经 经验 验, ,努 努力 力提 提高 高自 自己 己的 的程 程序 序调 调试 试能 能力 力。 。
图 6 形参的存储和传递 图 6 表明程序当前运行环境是在函数 Add 中,变量窗口显示的是形参 x,y 值,而 Watch 窗口中显示了形参 x,y 的地址值,它们显然和图 4、图 5 中显示的 main 函数中实参 x,y 的地址值不同。实参、形参变量虽同名,但所占内存不同。 ④按 F10 继续单步运行程序,直至返回 main 函数。特别观察下图 7 中标注的 内容,并用所学知识加以解释。
《C 语言程序设计》实验指导书
实验 3 认识程序调试方法和工具
一、 实验目的
【知识点】
பைடு நூலகம்
1. 2. 3. 4.
掌握自定义函数的定义、声明和调用的方法; 掌握实参、形参的概念和单向值传递的方式; 掌握函数参数、返回值的设计的原则; 进一步掌握指针变量的应用。
【技能】
1. 掌握增设打印语句调试程序的方法; 2.掌握断点设置、单步运行、变量观察等调试工具的使用方法。
温 温馨 馨提 提示 示: :请 请按 按下 下面 面的 的步 步骤 骤继 继续 续完 完成 成实 实验 验, ,在 在这 这个 个过 过程 程中 中, , 你 你将 将领 领会 会一 一种 种有 有效 效的 的程 程序 序调 调试 试方 方法 法— —— —关 关键 键位 位置 置加 加设 设打 打印 印语 语句 句! !
图5
执行 scanf 语句后
4
《C 语言程序设计》实验指导书
从图 5 可以看出,scanf 语句输入的数据 5,6,分别对应存放到变量 x,y 所占空 间,变量值被修改。scanf 函数的返回值为 2,表明有两个数据正确接收。 ③按 F11,跟踪到函数 Add 内。观察变量窗口的变化。在 watch 窗口增加表达 式&x 和&y,比较图 6 中&x 和&y 的值和图 4、图 5 中&x 和&y 的值。它们表示的含 义是什么?
6
《C 语言程序设计》实验指导书
printf(“\nMyRand=%d\n”,MyRand); 反复运行程序,你会发现每次生成的是伪随机数,每次都相同。 (2) 在语句 MyRand=rand();前增加: srand(time(0)); 再运行程序看看。 (3)修改上面的代码,生成指定大小范围内(比如 0„100 以内)的一个 随机数。 注意:包含上述库函数涉及的头文件。 3. 小学生算术练习程序 MathLearn: 改进实验 2 中的 MathLearn 函数。要求将键盘输入两个加数,改为由程序自 动生成两个 0„10 范围内的加数。 4. 比较下面的函数,理解指针在函数参数传递中的应用。 将下面三个函数实现两个数据的交换, 把它们添加在 third.c 源程序的后面, 并在 main 函数中调用它们,验证它们是否实现了设计功能? void Swap1(int x, int y) //参数 x,y 为待交换的两个数 { int temp; temp = x; x = y; y = temp; } void Swap2(int *px, int *py) //指针 px,py 指向待交换的两个数 { int temp; temp = *px; *px = *py; *py = temp; } void Swap3(int *px, int *py) //指针 px,py 指向待交换的两个数 { int *temp; temp = px; px = py; py = temp; } 为验证上述三个“交换函数” ,main 函数的大致处理流程如下: ①待交换两个数据 iNum1、iNum2 赋值; ②调用 Swap1 函数; ③显示 iNum1、iNum2,以判断 Swap1 是否实现了设计功能; ④调用 Swap2 函数;
(3)运行程序,按提示输入:5,-6↙,观察程序运行结果。 (4)程序调试。在 scanf(“%d%d”,&x,&y); 输入语句后,增加下面的输出语句: printf(“\ndebug:x=%d y=%d”,x,y); 用以检查输入的数据是否正确接收。 (5)重新运行程序,按提示输入:5,-6↙,观察程序运行结果。 你会发现:变量 y 的值并不是你所期望的-6,问题就出在这里了! 接下来,请你分析原因,找到解决的办法。
跟踪执行
断点设置
图 1 断点设置 (1)设置断点:将光标移到语句 iSum=Add(x,y); 按 F9 或点击图 1 中 按 钮, 将在此处设置断点。 当以调试状态运行程序时, 每次运行到断点所在代码行, 程序就暂停,以便查看程序的状态。
2
《C 语言程序设计》实验指导书
(2)单步跟踪:按 F5 或 命令按钮,以调试状态运行程序。当程序在断 点处暂停,进入单步运行状态。在此状态下,对程序的执行有多种选择。见下图 2。 单步执行(Step Over) :按 F10 或对应命令按钮,执行一行代码。 单步进入(Step Into) :按 F11 或对应命令按钮,执行一行代码,若此行 中有函数调用,跟踪到函数内部,并在函数内部第一行代码处暂停。
1
《C 语言程序设计》实验指导书
2. 调试工具的使用: #include <stdio.h> int Add(int x,int y) { return(x+y); } int main() { int x,y,iSum; printf("Please input two integers x,y:\n"); scanf("%d,%d",&x,&y); iSum=Add(x,y); printf("Sum of %d and %d is %d\n",x,y,iSum); } 将上面的程序保存为 debug.c,并在 VC 集成环境中打开、编译并链接,让我 们先认识几个调试工具。
二、实验要求
1. 复习顺序结构程序设计的一般步骤。 2. 复习函数定义、声明、调用的方法。 3. 完成各项实验任务及问题讨论。
三、实验内容
在 自己的目录中建立新的 项目 third ;然后 创建一个新源程序文件名 third.c ,将在本实验中,你所编写的所有代码放入该文件。
(一)基础知识部分
从开发者的角度,函数可分为自定义函数和库函数两大类。若程序中调用库 函数,则需将包含其函数原型声明的头文件,使用 include 命令将相应的.h 文 件包含进来。若调用自定义函数,则要符合“先定义,后使用”的原则,在源程 序文件适当的位置,先定义或声明,后调用。 1.库函数的使用 在 third.c 源程序文件中, 编写函数 Input_xy( ): 输入 x, y, 求 z = x + |y| 的 值。(提示:求绝对值可用库函数 abs 或 fabs,头文件:stdlib.h。) 实验步骤与要求如下: (1)void Input_xy( )函数编写要求如下: ①输入前要加提示语句; ②使用语句 scanf(“%d%d”,&x,&y); 输入; ③输出结果前要有必要的文字说明。 (2)在 main 函数中调用 Input_xy( ),以验证程序运行结果是否正确。
图7
函数返回
5
《C 语言程序设计》实验指导书
⑤按 F10 继续单步运行程序,观察变量窗口和 Watch 窗口的变化,直至程序结 束。 3.自定义函数的设计 在 third.c 源程序文件中,编写函数 Area, 求三角形面积。在 main 函数中 输入三角形的三边长 a、b、c,调用函数 Area,输出计算结果。 三角形面积公式:S= p(p - a)(p - b)(p - c) (其中 p=(a+b+c)/2) 实验步骤与要求如下: (1) 按题目要求,设计函数 Area 原型并完成函数定义。考虑: 是否需要参数?参数个数,数据类型 有无返回值?返回值类型 (2)main 函数编写要求: 输入前要加提示语句; 调用 Area; 输出结果前要有必要的文字说明。 (3)程序测试: 输入一组数据 3,4,5,观察运算结果; 输入另外一组数据 3,4,8,观察运算结果; 分析这个运算结果是否有效? (4)使用上面介绍的调试工具,进行程序调试: ①在数据输入以后,设置断点,观察代表边长的变量值是否正常接收; ②Watch 监视窗口,适当增加观察表达式。 ③单步运行程序,观察各观察对象的变化,以期发现原因。
相关文档
最新文档