版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一第一(dy)讲回顾讲回顾C语言的特点(tdin)C程序的基本结构算法的概念第1页/共26页第一页,共27页。4 程序设计程序设计(chn x sh j)的任务的任务问题分析:建模。(条件、目标、方法)设计(shj)算法与数据结构:求解步骤,流程图编程与调试:编辑和编译编译检查语法错误,运行、分析检查逻辑(算法)错误编写程序文档:开发者注释说明和使用者说明第2页/共26页第二页,共27页。5 书写程序书写程序(chngx)时应遵循的规则时应遵循的规则从书写清晰,便于阅读,理解,维护的角度出发,在书写程序时应遵循以下规则: 一个说明或一个语句占一行。 用 括起来的部分,通常表示了程序的某一层次
2、结构。一般与该结构语句的第一个字母(zm)对齐,并单独占一行。 低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。以便看起来更加清晰,增加程序的可读性。 在编程时应力求遵循这些规则,以养成良好的编程风格。第3页/共26页第三页,共27页。 程序程序(chngx)例例 (1)求正弦(zhngxin)值#include #includeint main() double x,s; printf(input number:n); scanf(%lf,&x); s=sin(x); printf(sine of %lf is %lfn,x,s); return(0); include文件包含
3、命令扩展名为.h的文件称为头文件定义两个实数变量,以被后面程序使用显示提示信息从键盘获得一个实数x求x的正弦,并把它赋给变量s显示程序运算(yn sun)结果main函数结束第4页/共26页第四页,共27页。 求两个(lin )数之和 #include int main() int a,b,sum; a=123; b=456; sum=a+b; printf(“sum is %d n”,sum); return (0); 第5页/共26页第五页,共27页。6 程序程序(chngx)的灵魂的灵魂算法算法 一个程序应包括: 对数据的描述。在程序中要指定数据的类型(lixng)和数据的组织形式,即数
4、据结构 data structure 对操作的描述。即操作步骤,也就是算法 algorithm Nikiklaus Wirth提出的公式: 数据结构+算法=程序第6页/共26页第六页,共27页。算法(sun f)的概念做任何事情都有一定的步骤。为解决一个问题而采取的方法和步骤,就称为算做任何事情都有一定的步骤。为解决一个问题而采取的方法和步骤,就称为算法。法。计算机算法:计算机能够执行计算机算法:计算机能够执行(zhxng)的算法。的算法。计算机算法可分为两大类:计算机算法可分为两大类:数值运算算法:求解数值;数值运算算法:求解数值;非数值运算算法:事务管理领域。非数值运算算法:事务管理领域。
5、如何求如何求 sigma(1.n)?第7页/共26页第七页,共27页。简单简单(jindn)算法举例算法举例 回顾上一讲【例】求5!=12345。 最原始方法: 步骤1:先求12,得到结果2。 步骤2:将步骤1得到的乘积2乘以3,得到结果6。 步骤3:将6再乘以4,得24。 步骤4:将24再乘以5,得120。 这样(zhyng)的算法虽然正确,但太繁。第8页/共26页第八页,共27页。 改进的算法(sun f):设两个变量,使用循环 S1: 使t=1 S2: 使i=2 S3: 使ti, 乘积仍然放在在变量t中,可表示为tit S4: 使i的值+1,即i+1i S5: 如果i5, 返回重新执行步
6、骤S3以及其后的S4和S5;否则,算法(sun f)结束。第9页/共26页第九页,共27页。 如果计算100!只需将S5:若i5改成(i chn)i100即可。 如果该求1357911,算法也只需做很少的改动: S1: 1t S2: 3i S3: tit S4: i+2t S5:若i11, 返回S3,否则,结束。 该算法不仅正确,而且是计算机较好的算法,因为计算机是高速运算的自动机器,实现循环轻而易举。 思考:若将 S5写成:S5:若i11, 返回S3;否则,结束。第10页/共26页第十页,共27页。 【例】有50个学生,要求将他们之中成绩在80分以上者打印(d yn)出来。 如果,n表示学生
7、学号,ni表示第i个学生学号;g表示学生成绩,gi表示第i个学生成绩则算法可表示如下: S1: 1i S2: 如果gi80,则打印(d yn)ni和gi,否则不打印(d yn) S3: i+1i S4:若i50, 返回S2,否则,结束。 (思考:表示学生成绩需要50个变量吗?)第11页/共26页第十一页,共27页。 【例】判定2000 2500年中的每一年是否闰年,将结果输出。 润年的条件: 能被4整除,但不能被100整除的年份; 能被100整除,又能被400整除的年份; 设y为被检测的年份,则算法可表示如下: S1: 2000y S2:若y不能被4整除,则输出y“不是闰年”,然后(rnhu)
8、转到S6 S3:若y能被4整除,不能被100整除,则输出y“是闰年”,然后(rnhu)转到S6 S4:若y能被100整除,又能被400整除,输出y“是闰年” 否则输出y“不是闰年”,然后(rnhu)转到S6 S5:输出y“不是闰年”。 S6:y+1y S7:当y2500时, 返回S2继续执行,否则,结束。第12页/共26页第十二页,共27页。 判断条件(tiojin)正确才能得到正确结果; 多个条件(tiojin)的判断顺序有时候是有逻辑关系的,即顺序错了会得到错误结果。第13页/共26页第十三页,共27页。 【例】求 算法可表示如下: S1: sign=1/符号项 S2: sum=1/累加和
9、 S3: deno=2 /分母 S4: sign=(-1)sign S5: term= sign(1/deno ) /当前项 S6: sum=sum+term S7: deno= deno +1 S8:若deno100,返回(fnhu)S4;否则,结束。1001991.4131211第14页/共26页第十四页,共27页。 【例】对一个大于或等于3的正整数,判断它是不是一个素数。 算法可表示如下: S1: 输入n的值 S2: i=2 S3: n被i除,得余数r S4:如果(rgu)r=0,表示n能被i整除,则打印n“不是素数”,算法结束;否则执行S5 S5: i+1i S6:如果(rgu)in-
10、1,返回S3;否则打印n“是素数”;然后算法结束。 改进: S6:如果(rgu)i ,返回S3;否则打印n“是素数”;然后算法结束。n第15页/共26页第十五页,共27页。算法(sun f)的特性有穷性:一个算法应包含有限的操作步骤而不能是无限的。有穷性:一个算法应包含有限的操作步骤而不能是无限的。 确定性:算法中每一个步骤应当是确定的,而不能应当是含糊的、模棱两确定性:算法中每一个步骤应当是确定的,而不能应当是含糊的、模棱两可的。可的。有零个或多个输入。有零个或多个输入。有一个或多个输出。有一个或多个输出。有效性:算法中每一个步骤应当能有效地执行,并得到确定的结果。有效性:算法中每一个步骤应
11、当能有效地执行,并得到确定的结果。对于程序设计对于程序设计(shj)人员,必须会设计人员,必须会设计(shj)算法,并根据算法写出程算法,并根据算法写出程序。序。第16页/共26页第十六页,共27页。用流程图表示用流程图表示(biosh)算法算法 统计学生成绩(chngj)的例子第17页/共26页第十七页,共27页。 判断(pndun)闰年的例子第18页/共26页第十八页,共27页。用计算机语言用计算机语言(yyn)实现算法实现算法 我们的任务是用计算机解题,就是用计算机实现算法; 用计算机语言表示(biosh)算法必须严格遵循所用语言的语法规则。 【例】求12345用C语言表示(biosh)
12、。int main()int i,t; t=1; i=2; while(i=5) t=t*i;i=i+1; printf(“%d”,t); 第19页/共26页第十九页,共27页。对比:算法对比:算法(sun f)的表示与实现方式的表示与实现方式自然语言流程图伪语言计算机语言请课后思考(sko):交换两个(或两组)数据的值,第20页/共26页第二十页,共27页。结构化程序设计结构化程序设计(shj)方法方法 N。Wirth 公式:数据结构( jigu)+算法=程序 即 结构( jigu)特性设计 + 过程特性设计 结构( jigu)化程序设计:面向过程 (分别考虑数据和过程) 【注】面向对象程序
13、设计:面向对象(数据和过程的封装) 结构( jigu)化算法 由基本结构( jigu)顺序组成的算法结构( jigu),在基本结构( jigu)之间不存在向前或向后的跳转第21页/共26页第二十一页,共27页。 结构化程序设计方法 自顶向下 逐步细化 模块化设计 结构化编码 核心思想是算法设计:自顶向下、逐步细化- 讲一个复杂任务逐步分拆,逐层细化到便于(biny)理解和描述的程度;最终形成一个由若干独立模块组成的树状层次结构第22页/共26页第二十二页,共27页。第23页/共26页第二十三页,共27页。第24页/共26页第二十四页,共27页。Questions? 作业(zuy): 15页: 5,6 36页: 4-(3); 4-(5)第25页/共26页第二十五页,共27页。谢谢您的观看(gunkn)!第26页/共26页第二十六页,共27
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农产品销售合同协议范本
- 招标文件房产项目
- 版短期无担保个人
- 第三方支付保证金协议
- 知识产权顾问合同的争议解决方法分享
- 学生健康饮食承诺保证书
- 装饰拆除改造合同
- 道具采购合同范本中文模板样式
- 导购员合同协议的交通补贴
- 幼儿园食品订购合同范本
- 电影作品解读-世界科幻电影智慧树知到期末考试答案章节答案2024年成都锦城学院
- NB-T47003.1-2009钢制焊接常压容器(同JB-T4735.1-2009)
- 聚焦高质量+探索新高度+-2025届高考政治复习备考策略
- 惠州市惠城区2022-2023学年七年级上学期期末教学质量检测数学试卷
- 北京市西城区2022-2023学年七年级上学期期末英语试题【带答案】
- ISO45001-2018职业健康安全管理体系之5-4:“5 领导作用和工作人员参与-5.4 工作人员的协商和参与”解读和应用指导材料(2024A0-雷泽佳)
- 看图猜成语共876道题目动画版
- 小学二年级上册数学-数角的个数专项练习
- 曲式与作品分析智慧树知到期末考试答案章节答案2024年兰州文理学院
- 园林设施维护方案
- 特种设备使用单位日管控、周排查、月调度示范表
评论
0/150
提交评论