版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第01章C语言程序设计基本概述-2,1,2020/7/4,主要内容,算法结构化程序设计方法课堂练习,2,2020/7/4,算法,算法:算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用有效的方法描述解决问题的策略机制。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。,3,2020/7/4,算法,必须具备以下五个特性有穷性确定性有效性没有输入或有多个输入有一个或多个输出,4,2020/7/4,算法(2),算法的描述自然语言伪码流程图N-S图,例1:求三个数中最大值问题,5,2020/7/4,
2、算法(3),自然语言:日常使用的语言先将a,b两个数进行比较,找出其中的大数,然后再把它和第三个数c进行比较,如果它比c大,则它就是最大数,否则c是最大数。,伪码:介于自然语言和计算机语言之间的文字和符号进行描述,IFabTHENmax=aELASmax=bIFmaxcTHEN输出maxELSE输出c,6,2020/7/4,算法(4),流程图:图语言表示法ANSI规定了一些常用的流程图符号:,起止框输入输出框判断框处理框流程线连接圈,7,2020/7/4,算法(5),三个数中最大值问题的流程图图1-4,8,2020/7/4,算法(6),N-S图:图语言表示法三个数中最大值问题的N-S图,9,2
3、020/7/4,算法(7),算法仅仅提供了解决某类问题可采用的方法和步骤,还必须使用某种计算机程序设计语言根据算法的描述去实现,即编程。,/求三个数中最大值#includeintmax_value(inta,intb,intc)intmax;if(ab)max=a;elsemax=b;if(maxc)max=c;return(max);main()intx,y,z,maxx;scanf(%d%d%d,10,2020/7/4,算法(8),例2:求解两个自然整数的最大公约数采用“欧几里得算法”,又称辗转相除法1、自然语言描述S1:输入两个正整数M和N;S2:比较M和N,如果M小于N,则两数交换,保
4、证M是大数;S3:求M除以N的余数R;S4:使M=N,即用N代替M;S5:使N=R,即用R代替N,S6:如果N0,转向S3;S7:如果N=0,转向S8;S8:输出M,M为M和N的最大公约数。,11,2020/7/4,算法(9),2、伪代码描述:INPUTM,NIFMNTHEN交换M和NWHILEN0DOR=MOD(M,N)M=NN=RENDDO输出M其中M除以N的余数用符号MOD(M,N)表示。,12,2020/7/4,算法(10),3、流程图描述,13,2020/7/4,算法(11),4、N-S图描述,14,2020/7/4,结构化程序设计方法,结构化程序设计的基本方法:自顶向下,逐步求精复
5、杂问题分解为若干的独立的小问题(小模块),例:求解两个数的平均值1、分解:问题分解为三个模块S1:输入两个数a,bS2:求两个数的平均值赋给averS3:输出平均值,15,2020/7/4,结构化程序设计方法(2),2、实现方法,算法细化S1:调用输入函数,完成输入S2:设计一个求解平均值的函数averge()S3:调用输出函数,完成输出,3、C语言实现主函数的编程/求两个数的平均值main()/主函数floata,b,ave;/声明a、b和ave为实型变量scanf(“%f%f”,/输出ave的值return0;,16,2020/7/4,结构化程序设计方法(3),4、逐步求精:设计avera
6、g()函数的算法。设两个参数为floatx,floaty。S2.1:把x加y的和除2的值送给averS2.2:把aver的值返回给主函数。,5、C语言实现averag()函数的编程#includefloataverage(floatx,floaty)/求两个数的平均值floatz,aver;/声明aver为实型变量aver=(x+y)/2;/计算两个数的平均值赋给averreturn(aver);/aver的值作为函数的的返回值,17,2020/7/4,结构化程序设计方法(4),6、两模块连接成一个完整的求解程序#includefloataverage(floatx,floaty)/求两个数的
7、平均值floatz,aver;/声明aver为实型变量aver=(x+y)/2;/计算两个数的平均值赋给averreturn(aver);/aver的值作为函数的的返回值main()/主函数floata,b,ave;/声明a、b和ave为实型变量scanf(“%f%f”,/输出ave的值return0;,18,2020/7/4,结构化程序设计方法(5),结构化程序设计三种基本控制结构:顺序结构选择结构循环结构(while,repert_until),19,2020/7/4,结构化程序设计方法(6),顺序结构,N-S图,流程图,执行过程:先执行A操作,再执行B操作。,20,2020/7/4,结构
8、化程序设计方法(7),选择结构,N-S图,流程图,P为条件:当P条件成立(为真T)执行A条件不成立(为假F)执行B,21,2020/7/4,结构化程序设计方法(8),循环结构(while),当P条件成立(为真T)反复执行A,直到P为假。,流程图,N-S图,22,2020/7/4,结构化程序设计方法(9),循环结构(repert_until),流程图,N-S图,先执行A操作,再判断P,若为假,再执行A,直到P为真。,23,2020/7/4,结构化程序设计方法(10),三种基本结构的共同特点是:1)只有一个入口2)只有一个出口3)结构内的每一部份都有可能被执行到。4)结构内不存在“死循环”。,顺序,选择(分支),循环,24,2020/7/4,课堂练习一,1、程序设计语言大致可分为三类,分别是、和。2、语言是计算机能直接识别的语言。3、C语言是由构成的,至少有一个且仅有一个的函数,称主函数。4、C语言以为语句的终止符。5、表示程序的结构层次范围,必须使用。6、算法可以用多种方式来表示,通常有4种、和。,1、机器语言汇编语言高级语言2、机器语言3、函数main4、;5、配对6、自然语言伪码流程图N-S图,25,20
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026福建工行面试题及答案
- 第16章 跨国营运资本的存量管理
- 甘肃省武威第十一中学九年级信息技术 制作形变动画教案2
- 第2课 律动青春教学设计初中艺术·美术人教版2024七年级下册-人教版2024
- 第一节 能源及其应用教学设计高中物理沪科版2020必修第三册-沪科版2020
- Unit 4 Body Language Using language Explore body language 教学设计-人教版高中英语选择性必修第一册
- 2025-度九年级历史下册教案
- 《中学生男女交往教育-花开应有时》主题班会教学设计
- 八年级生物下册 13.3 原生生物教案 北京课改版
- 第7课 近代殖民活动和人口的跨地域转移 教学设计高二历史统编版(2019)选择性必修3
- 2026年东省济南第一中学高考语文二模试卷
- 2026年高中化学学业水平考试知识点归纳总结(复习必背)
- 生物芯片中光电传感器的技术解析与应用探索
- 三下道法 第三单元《我是家庭一员》素养测评卷26春
- 广西壮族自治区2025广西农业科学院及直属单位招聘笔试历年参考题库典型考点附带答案详解
- 2026生物制造关键装备与工艺革新白皮书
- 2026年北京市初二学业水平地生会考真题试卷+解析及答案
- 水利厅内部审计工作制度
- 幼儿园托班工作制度
- 2026年高考(陕西卷)英语试题及答案
- 2026年医院药剂招聘考核考前冲刺练习题含完整答案详解(名校卷)
评论
0/150
提交评论