单片机C程序设计4.pptx

  1. 1、本文档共47页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机C程序设计4

单片机C程序设计 (C Programming for MCU)第四章:模块化程序设计(函数)本章目标了解模块化程序设计思想掌握函数的定义及调用方式掌握函数参数传递方式了解递归函数了解变量存储类型及作用域了解C预处理程序模块化程序设计将复杂问题分解为简单问题的程序设计方法称为结构化程序设计,其特点为:自顶向下(top-down design);逐步细化(stepwise refinement);模块化(modular programming);模块化的好处:功能分解的需要;代码重用;在程序设计中如何划分函数程序中可能有重复出现的相同或相似的计算片段,可以考虑从中抽取出共同的东西,定义为函数。这样可以缩短程序代码,提高程序的可读性和易修改性。程序中具有逻辑独立的片段。这样做主要用于分解程序的复杂性。问题3.1问题:某老师给某年级1~4班讲程序设计课,期末考试后,请统计每个班及格和不及格的学生人数。假设学生成绩从标准输入中输入,首先输入的是班级代号(如1,2,),然后是每个学生的成绩,每个班的成绩以-1结束,对于非法输入(成绩值大于100或小于0)应给出必要提示。问题3.1:问题分析与算法设计main(){ 统计1班成绩; 统计2班成绩; 统计3班成绩; 统计4班成绩;}问题分析:有两种方法解决该问题依次编写代码分别统计每个班成绩;将统计某班成绩功能放到一个函数中,然后使用函数来统计每个班的成绩;问题3.1:问题分析与算法设计(续)1. 读入班级代号到ClassID;2. 读入一成绩到变量 score;3. while score值不为-1 if score 不合法 结束处理 if score 大于或等于60 PassNum加1 else FailNum加1 读入下一成绩到变量 score;4. 输出变量ClassID, PassNum和FailNum 值统计某班成绩的算法为:问题3.1:代码实现函数原型说明int dealScore( ){ int score, classid, passnum, failnum; passnum = failnum = 0; scanf(%d, classid); scanf(%d, score); while( score != -1) { if(score 100 || score 0) { printf(Input error!\n); return -1 ; } if(score = 60) passnum++; else failnum++; scanf(%d, score); } printf(%d: Pass %d, Fail %d\n, classid, passnum,failnum); return 0;} 例3_1:#include stdio.hint dealScore();int main(){ int i; for(i=0; i 4; i++) dealScore(); return 0;} 函数定义头部,其中int 为函数类型dealScore为函数名局部变量函数定义体函数调用scanf和printf标准I/O库函数函数返回(return)语句标准(库)函数标准I/O库函数#include stdio.h ( getchar, putchar…)标准数学函数#include math.h (sin, cos, sqrt…)…函数定义与调用在ANSI C标准中,函数定义形式为:无参和有参类型 函数名(参数说明){ [局部变量定义或说明] 语句}例如:int dealScore( ) { …… }int max (int x, int y){int z; z = x y ? x : y; return z;}函数定义与调用(续)函数名一般是标识符,一个程序只有一个main函数,其它函数名可随意取,当然最好是有助于记忆的名字。 在ANSI C标准中,函数(返回值)类型不允许省略,即使是返回整型值(int),当函数无返回值时,应其类型说明为void类型。 局部变量定义或说明可有可无。注意:在C语言中,函数定义不允许嵌套,即在一个函数体内不能包含有其它函数的定义。函数定义与调用(续)函数调用形式:函数名([实参表]) 例如: dealScore(); c=max(a, b); m=max(a,max(b,c));其中实参个数、类型、排列次序应和形参定义时一致。(老版本的C编译器往往不做这方面的检查)问题3.2:代码实现例3-2:计算一个实数的n次幂。#include stdio.hdouble power(double x, int n);int main( ){int n;float f;scanf(%f %d, f, n);printf(%.2f

文档评论(0)

000 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档