C语言程序设计 第二章 程序的灵魂 -- 算法.

Slides:



Advertisements
Similar presentations
2.5 函数的微分 一、问题的提出 二、微分的定义 三、可微的条件 四、微分的几何意义 五、微分的求法 六、小结.
Advertisements

数据结构的引入. 通讯录管理 社团机构管理 校园导航管理 通讯录管理 社团机构管理 校园导航管理.
100 學年度 勞委會就業學程 國際企業管理學系-物業管理學程介紹. 何謂物業管理? 以台灣物業管理學會 所述,物業管理區分為 「物」、「業」、「人」三區塊。台灣物業管理學會 「物」係指傳統的建物設備、設施 「業」為不動產經營的資產管理 「人」則以生活服務、商業服務為主,並以人為 本位連結物與業,形成今日物業管理三足鼎立新.
While 迴圈 - 不知重複執行次數
行政命令.
第一章 C语言概述.
共产党领导的多党合作和政治协商制度: 中国特色的政党制度.
普通高中新课程实验 若干问题 广东省教育厅教研室 吴惟粤 2004年4月29日 广州.
前言 採購程序每一環節所涉及人員,無論是訂定招標文件、招標、審標、決標、訂約、履約管理、驗收及爭議處理,如缺乏品德操守,有可能降低採購效率與品質,影響採購目標之達成,甚有違法圖利情事發生,致阻礙政府政策之推動並損害公共利益。因此,較之一般公務人員,採購人員更需遵循較高標準之道德規範。 主講人:林中財.
欢迎新同学.
2015年新课标高考历史试题分析 暨考试方向研判 李树全 西安市第八十九中学.
课题四 以天池、博斯腾湖 为重点的风景旅游区
热爱党、热爱祖国、热爱人民 泉州九中初二年(10)班主题班会.
“健康的基督徒” 入门.
南台科技大學電子工程系 指導老師:楊榮林 老師 學生姓名:蔡博涵 巨物索餌感測裝置(第II版)
營利事業所得稅查核準則 相關概念介紹 南區國稅局 新營分局 林俊標 各位學員大家好:
2015年汕头一模质量分析会 34(1)题分析 濠江区河浦中学 詹金锋 34(2)题分析 汕头市实验学校 董友军
士師逐個捉(II) 石建華牧師 24/07/2016.
C语言程序设计 主讲教师 :贾月乐 电话:
《电算化会计》形成性考核 简易操作流程.
二级C语言程序设计及同步训练 涂玉芬 主编 中国水利水电出版社.
高澱粉蔬菜是主食 文字取材: 蘇逸晴.
第五单元 群星闪耀 复法指导 阅读与欣赏 单元重点 1.了解传记文的基本体例与特征。
學 號:997I0010、997I0024 組 員:洪韋鈴、王婷婷 日 期: 指導老師:王立杰 老師
第3章 简单算法设计 3.1 结构化程序的算法设计 3.2 结构化算法的性质及结构 3.3 结构化算法的描述方法 自然语言 流程图 伪码
小学生游戏.
公司法(六) 股份有限公司 1.
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
计算机基础知识 丁家营镇九年制学校 徐中先.
第一章 如何用计算机解决问题 第二节 算法描述与设计.
走进编程 程序的顺序结构(二).
第2讲 绪论(二).
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第五讲 四则运算计算器(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
What have we learned?.
第二章 程序的灵魂--算法.
第2章 算法—程序的灵魂.
第二章 Java语言基础.
計數式重複敘述 for 迴圈 P
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C语言程序设计 主讲教师:陆幼利.
$9 泛型基础.
课题:1.5 同底数幂的除法.
VisComposer 2019/4/17.
第2章 算法与C语言程序 程序 (1)数据的描述:数据的类型和组织形式(数据结构) (2)操作的描述:操作步骤(算法) 沃思指出:
算法初步 §1.1.2 程序框图.
C程序设计.
Lightweight Data-flow Analysis for Execution-driven Constraint Solving
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
信号量(Semaphore).
《计算机应用基础》 第9章 程序设计基础(二).
第4章 Excel电子表格制作软件 4.4 函数(一).
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
第九节 赋值运算符和赋值表达式.
iSIGHT 基本培训 使用 Excel的栅栏问题
用穷举法设计程序 南京师范大学 教育技术系 倪佳慧
3.16 枚举算法及其程序实现 ——数组的作用.
算法初步 §1.1.2 程序框图.
College of Computer Science & Technology
第一章 绪论 1.1 引言 1.2 逻辑结构和存储结构 1.3 算法.
C程序设计 实验二 数据类型、运算符和表达式 第6讲
OpenStack vs CloudStack
初三VB 复习一.
第二节 C语言的特点.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
学习数据结构的意义 (C语言版) 《数据结构》在线开放课程 主讲人:李刚
任课教师:戴开宇 TA:时均帅、谭肖、王安华 程序设计B班 :20-16:50(90分钟)
顺序结构程序设计 ——关于“字符串”和数值.
循环结构 刘华 江苏省苏州中学.
Presentation transcript:

C语言程序设计 第二章 程序的灵魂 -- 算法

主要内容 2.1 算法的概念 2.2 简单算法举例 2.3 算法的特性 2.4 怎样表示一个算法 2.5 结构化算法设计方法

2.1 算法的概念 沃思公式: 数据结构+算法=程序 具体化: 程序=算法+数据结构+程序设计方法+语言工具和环境   数据结构+算法=程序 具体化: 程序=算法+数据结构+程序设计方法+语言工具和环境  对数据的描述,要指定数据的类型、数据的组织形式 对操作的描述,即操作步骤

2.1 算法的概念 做任何事都有一定的次序和步骤;如:召开会议,购物等; 算法是为解决一个问题而采取的方法和步骤; 注意: 解决同一个问题可以有不同的方法和步骤,方法有优劣之分, 采用简单的和运算步骤少的方法为优!

2.1 算法的概念 算法分两大类别 数值运算算法:目的是求数值解,算法成熟; 非数值运算算法:种类繁多,要求各异,难以规范

2.2 简单算法举例 例1 求1×2×3×4×5 手工计算方法: 通用的方法: 设两个变量(被乘数p,乘数i) 第一步:1=>p 例1 求1×2×3×4×5 手工计算方法: 通用的方法: 设两个变量(被乘数p,乘数i) 第一步:1=>p 第二步:2=>i 第三步:p×i=>p 第四步: i+1=>i 第五步:若i≤5,返回第三步;否则结束 1×2,得2; ① 2×3,得6; ② 6×4,得24; ③ ④ 24×5=120

2.2 简单算法举例 如果题目改为求1×3×5×7×9×11 第一步:1=>p 第二步:3=>i 第三步:p×i=>p 第四步: i+2=>i 第五步:若i≤11,返回第三步;否则结束 用这种方法表示的算法具有通用性、灵活性

2.2 简单算法举例 例2 有50个学生,要求将他们之中成绩在80分以上者打印出来 例2 有50个学生,要求将他们之中成绩在80分以上者打印出来 算法分析:用n表示学生学号,n1代表第一个学生学号,ni代表第i个学生的学号,g1代表第一个学生成绩,gi代表第i个学生成绩 算法 第一步: 1=>i 第二步: 若gi≥80则打印ni和gi,否则不打印 第三步: i+1=>i 第四步: 若i≤50返回第二步,否则算法结束

2.2 简单算法举例 例3 判断2000-2500年中的每一年是否闰年,将结果输出。 分析:闰年的条件: 能被4整除,但不能被100整除的 例3 判断2000-2500年中的每一年是否闰年,将结果输出。 分析:闰年的条件: 能被4整除,但不能被100整除的 年份都是闰年,如1996,2004年是闰 年; 能被100整除,又能被400整除的年 份是闰年,如1600,2000年是闰年。 不符合这两个条件的年份不是闰年 y不能被4整除 ① y能被4整除但不能被100整除 ② 闰年 非闰年 ③y能被100整除又能被400整除 ④其他

2.2 简单算法举例 算法 2000=>y 若y不能被4整除,输出y“不是闰年”,然后转到第5步

2.2 简单算法举例 例4 求 1- 1/2 + 1/3 -1/4+ … + 1/99 - 1/100 算法: sign=1 sum=1 deno=2 sign=-sign term=sign×(1/deno) sum=sum+term deno=deno+1 若deno≤100返回第4步,否则算法结束

2.3 算法的特性 算法应具有以下特点: 有穷性 确定性 有零个或多个输入 有一个或多个输出 有效性

2.4 怎样表示一个算法 用自然语言表示算法:通俗易懂,但文字冗长,容易产生歧义。 用流程图表示算法: 直观形象,容易理解。

2.4 怎样表示一个算法 . . 算法的三种基本结构 选择结构 p A B 成立 不成立 a b A B a b 顺序结构 当 型 2.4 怎样表示一个算法 选择结构 p A B 成立 不成立 a b 算法的三种基本结构 A B a b 顺序结构 当 型 (while) 循 环 p 成立 A b a . 不成立 A p 不成立 成立 a b . 直 到 型 (until) 循 环

2.4 怎样表示一个算法 例1 用流程图表示算法:1×2×3×4×5 第一步:1=>p 第二步:2=>i 2.4 怎样表示一个算法 例1 用流程图表示算法:1×2×3×4×5 第一步:1=>p 第二步:2=>i 第三步:p×i=>p 第四步: i+1=>i 第五步:若i≤5,返回第三 步;否则结束 开始 1=>p 2=>i p×i=>p i+1=>i i≤5 N 结束 Y

2.4 怎样表示一个算法 例2 有50个学生,要求将他们之中成绩在80分以上者打印出来.用流程图表示算法。 第一步: 1=>i 2.4 怎样表示一个算法 例2 有50个学生,要求将他们之中成绩在80分以上者打印出来.用流程图表示算法。 第一步: 1=>i 第二步: 若gi≥80则打 印ni和gi,否则不打印 第三步: i+1=>i 第四步: 若i≤50返回第 二步,否则算法结束 开始 1=>i gi≥80 Y N 打印ni和gi i+1=>i i≤50 结束

2.4 怎样表示一个算法 例 用伪代码表示1×2×3×4×5: 开始 置t的初值为1 置i的初值为2 当i≤5,执行下面操作 使t=t×i 2.4 怎样表示一个算法 例 用伪代码表示1×2×3×4×5: 开始 置t的初值为1 置i的初值为2 当i≤5,执行下面操作   使t=t×i   使i=i+1 (循环到此结束) 打印t的值 结束

2.4 怎样表示一个算法 也可以写成以下形式: BEGIN (算法开始) 1=>t 2=>i while i<=5 2.4 怎样表示一个算法 也可以写成以下形式: BEGIN (算法开始) 1=>t 2=>i while i<=5 { t×i=>t i+1=>i } print t END (算法结束)

2.4 怎样表示一个算法 用计算机语言表示算法:求5!用c语言表示 void main( ) { int i,t; t=1; i=2; 2.4 怎样表示一个算法 用计算机语言表示算法:求5!用c语言表示 void main( ) { int i,t; t=1; i=2; while(i<=5){ t=t*i;   /* 120 */ i=i+1; } printf("%d",t);

2.5 结构化程序设计方法 一个结构化程序就是用高级语言表示的结构化算法 用三种基本结构组成的程序必然是结构化程序 结构化程序的特点 自顶向下 逐步细化 模块化设计 结构化编码

本章小结 算法的概念 简单算法的设计 算法的特性 算法的表示(流程图、伪代码) 算法的3种结构 结构化程序设计思想