第3章 简单算法设计 3.1 结构化程序的算法设计 3.2 结构化算法的性质及结构 3.3 结构化算法的描述方法 自然语言 流程图 伪码

Slides:



Advertisements
Similar presentations
完美殺人筆記簿 【爸!我受夠了!】 第七組組員: 林正敏 陳筱涵 李蓓宇 許純宜 羅玉芬 謝文軒.
Advertisements

—— 海淀区高三化学《考试说明》解读 2015 年 1 月 29 日 学习《考试说明》 备考理综化学.
While 迴圈 - 不知重複執行次數
營利事業所得稅查核準則 相關概念介紹 南區國稅局 新營分局 林俊標 各位學員大家好:
2011年10月31日是一个令人警醒的日子,世界在10月31日迎来第70亿人口。当日凌晨,成为象征性的全球第70亿名成员之一的婴儿在菲律宾降生。 ?
第4章 條件判斷與迴圈 Java 2 程式設計入門與應用.
循环模式 流程图的画法: 条件 y 循环体 伪代码: n Do while 条件 循环体 loop 每个循环模式的结构都是一个入口,一个出口.
初级会计实务 第八章 产品成本核算 主讲人:杨菠.
密码程序设置.
二级C语言程序设计及同步训练 涂玉芬 主编 中国水利水电出版社.
四年級課程綱要細目解讀 第四組 冠瑛、家珍、惠卿、琬婷.
中考阅读 复习备考交流 西安铁一中分校 向连吾.
學 號:997I0010、997I0024 組 員:洪韋鈴、王婷婷 日 期: 指導老師:王立杰 老師
我国的宗教政策 第七课第三框.
中央广播电视大学开放教育 成本会计(补修)期末复习
人教版义务教育课程标准实验教科书 小学数学四年级上册第七单元《数学广角》 合理安排时间 248.
常用逻辑用语复习课 李娟.
公司法(六) 股份有限公司 1.
中考语文积累 永宁县教研室 步正军 2015.9.
小学数学知识讲座 应用题.
倒装句之其他句式.
C语言实验 第一课 标题:学号+姓名.
数学建模与MATLAB 第五讲:循环结构(1) 2017/9/12.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
三角形的邊角關係 大綱:三角形邊的不等關係 三角形邊角關係 樞紐定理 背景知識:不等式 顧震宇 台灣數位學習科技股份有限公司.
第 22 课 孙中山的民主追求 1 .近代变法救国主张的失败教训: “师夷之长技以制 夷”“中体西用”、兴办洋务、变法维新等的失败,使孙中山
第7章:文件共享 与远程控制——回顾 第8章:bash脚本编程 本章教学目标: 了解shell程序的基本结构 网络文件系统NFS的概念
循环结构 NEAU ACM-ICPC TEAM 主讲人:NEAU_ACM_Team.
走进编程 程序的顺序结构(二).
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
電腦解題─流程圖簡介 臺北市立大同高中 蔡志敏老師.
第2章 算法—程序的灵魂.
第二章 Java语言基础.
計數式重複敘述 for 迴圈 P
第六章 安全衛生工作守則 6-1 前 言  6-2 訂定依據相關法令規定  6-3 工作守則製作程序及製作前應注意事項  6-4 如何訂定適合需要之安全衛生工作守則  6-5 結 論.
第4章 PHP流程控制语句.
C语言程序设计 主讲教师:陆幼利.
软件工程 第四章 软件设计 软件过程设计技术与工具.
C语言程序设计 第二章 程序的灵魂 -- 算法.
第2章 算法与C语言程序 程序 (1)数据的描述:数据的类型和组织形式(数据结构) (2)操作的描述:操作步骤(算法) 沃思指出:
第5章 软件详细设计 本章内容结构 本章引言 学习目标 教学内容 本章小结 思考和练习 课堂讨论 2019年4月26日.
工业机器人知识要点解析 (ABB机器人) 主讲人:王老师
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
Lightweight Data-flow Analysis for Execution-driven Constraint Solving
信号量(Semaphore).
《计算机应用基础》 第9章 程序设计基础(二).
第4章 Excel电子表格制作软件 4.4 函数(一).
第九节 赋值运算符和赋值表达式.
用穷举法设计程序 南京师范大学 教育技术系 倪佳慧
3.16 枚举算法及其程序实现 ——数组的作用.
算法初步 §1.1.2 程序框图.
College of Computer Science & Technology
第4课时 绝对值.
1.2基本算法语句 1.2.3循环语句.
输入语句 输出语句 赋值语句 条件语句 循环语句
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
問題解決與流程圖 高慧君 台北市立南港高中 2006年12月22日.
第二章 Java基本语法 讲师:复凡.
临界区问题的硬件指令解决方案 (Synchronization Hardware)
遞迴 Recursion.
3.13 选择结构程序设计初步.
五 循环结构程序设计 厦大附中信息技术.
鸡兔同笼(续) ——选择结构.
1.2.2条件语句.
畢氏定理(百牛大祭)的故事 張美玲 製作 資料來源:探索數學的故事(凡異出版社).
顺序结构程序设计 ——关于“字符串”和数值.
1.2.3 循环语句.
第二次课后作业答案 函数式编程和逻辑式编程
最小生成树 最优二叉树.
102年人事預算編列說明 邁向頂尖大學辦公室製作.
Presentation transcript:

第3章 简单算法设计 3.1 结构化程序的算法设计 3.2 结构化算法的性质及结构 3.3 结构化算法的描述方法 自然语言 流程图 伪码 3.1 结构化程序的算法设计 3.2 结构化算法的性质及结构 3.3 结构化算法的描述方法 自然语言 流程图 伪码 3.4 算法设计范例

3.1 结构化程序的算法设计 算法:解决问题的具体方法和步骤。 例1:从键盘输入三个数,找出其中最小的那个数。 算法:1.输入三个数 3.1 结构化程序的算法设计 算法:解决问题的具体方法和步骤。 例1:从键盘输入三个数,找出其中最小的那个数。 算法:1.输入三个数 2.找出三个数中的最小数 3.输出最小数

细化后的算法: 1.输入三个数,其值分别赋给三个变量a,b,c 2.比较a与b的值,如果a<b, 则min=a; 否则min=b。 3.比较c与min的值,如果c<min, 则min=c。 4.输出min的值 编程:根据算法,编写出计算机可执行的命令序列。

3.2 结构化算法的结构 按照结构化的观点,任何算法都可以用三种基本结构的组合来实现 顺序结构:语句按书写顺序顺次执行。 3.2 结构化算法的结构 按照结构化的观点,任何算法都可以用三种基本结构的组合来实现 顺序结构:语句按书写顺序顺次执行。 分支结构:根据条件成立与否有选择地执 行。 循环结构:根据条件的成立与否重复执行。

3.3 结构化程序算法描述 算法的描述方式 自然语言 流程图 N-S图 PAD图 伪代码

一、自然语言 例2:输入变量a和b,按由小到大顺序输出到屏幕 算法:1.输入变量a、b的值; 2.比较a与b,如果a<=b,则先输出a再输出b,否则先输出b再输出a; 3.算法结束。 优点:通俗易懂,简单明了 缺点:有歧义性,无法描述包含分支和循环的算法

例3:算术级数求和:sum=1+2+3+…+(n-1)+n 算法: 1.给定一个大于0的正整数n的值; 2.定义整型变量sum,设其初始值为0; 3.定义一个整型变量i,设其初始值为1; 4.如果i小于等于n,则转第5步,否则执行第8步; 5.将sum的值加上i的值后,重新赋值给sum; 6.将i的值加1,重新赋值给i; 7.执行第4步; 8.输出sum的值。

二、流程图 1.开始/结束框 2.处理框 3.连接符 4.输入输出框 5.判断框 6.流程线

顺序结构是一种简单的线性结构,根据流程线所示的方向,各矩形框按顺序执行。 1. 顺序结构 开始 结束 输入 输出 A B C 顺序结构是一种简单的线性结构,根据流程线所示的方向,各矩形框按顺序执行。

选择结构是对给定的条件进行判断,根据判断结果的真假而分别执行不同的处理框的内容。 2. 分支结构 选择结构是对给定的条件进行判断,根据判断结果的真假而分别执行不同的处理框的内容。 开始 B 输入 A 条件 结束 输出 不成立 成立 条件 结束 输出 开始 输入 A 不成立 成立

循环结构是在某个条件为真的情况下,重复执行某个框中的内容。循环结构有两种基本形态:while型循环和do_while型循环。 3. 循环结构 循环结构是在某个条件为真的情况下,重复执行某个框中的内容。循环结构有两种基本形态:while型循环和do_while型循环。 不成立 条件 输出 输入 语句 成立 While型循环 输出 输入 语句 条件 不成立 成立 Do-While型循环 循环控制条件 循环体

循环结构注意: 1、在循环体中,必须对条件要判断的值进行修改,使得经过有限次循环后,循环一定能结束。 2、while型循环中循环体可能一次都不执行,而do_while型循环则至少执行一次循体。 3、do_while型循环可以很方便地转化为while型循环,而while型循环不一定能转化为do_while型循环。

例1:从键盘输入三个数,找出其中最小的那个数。 start 输入a,b,c T F a<b min=a min=b F c<min min=c 输出min end

例3:算术级数求和:sum=1+2+3+…+(n-1)+n start 输入n i=1,sum=0 F i<=n T sum=sum+i i=i+1 输出sum end 伪码

二、N—S 图(由I . Nassi和B . Shneiderman提出) 1. 顺序结构 A B 2. 分支结构 B F A T 条件 F A T 条件

例3:输入整数,并且累加,直到sum>=100为止,输出sum 3. 循环结构 当(条件)为真 A 当(条件)为真 A 例3:输入整数,并且累加,直到sum>=100为止,输出sum

三、PAD图(Problem Analysis Diagram) C 1. 顺序结构 2. 分支结构 B A 条件 A 条件

3. 循环结构 While型 A WHILE(条件) Do-While型 A UNTIL(条件)

流程图、N-S图、PAD图比较: 1. 流程图 优点:简单直观 缺点:大且混乱 2. N-S图 优点:精简 缺点:不便修改 3. PAD图 优点:层次清晰,二维的算法描述

三、伪代码 伪代码是一种接近于程序语言的算法描述方法,它用一些特定的符号来表示算法结构,具有较好的可读性。常用的伪代码符号如下7种: 1.算法名称 伪代码算法有两种:过程和函数。区别:过程不需要返回数据,而函数需要返回数据。 如:Procedure Hanoi_Tower()、Function Fac(x)

2.指令序列 算法名之后就是伪代码的指令序列 Begin 指令序列; End 或者: { /}

3.输入/输出 输入:Input 如:Input x; 输出:Output 或者Return 如:Output x; 4.分支选择 (1)If<条件>Then { 指令; /} (2)If <条件>Then else { 指令;/}

5.赋值 用:=或<-表示,如x:=x+1;y<-x*x; 6.循环 (1)计数式循环:For 变量:=初值 To 终值 { 指令; /} (2)条件式循环:While (条件) do 7.算法结束 End后面加上算法名称,如 End Hanoi_Tower、End Fac

例1:从键盘输入三个数,找出其中最小的那个数。 Procedure Minimal() Begin Input a,b,c; If(a<b)Then min:=a; Else min:=b; If(c<min)Then min:=c; Output min; End Minimal

例3:算术级数求和:sum=1+2+3+…+(n-1)+n Function Total(n) Begin i:=1; sum:=0; While(i<=n)do { sum:=sum+i; i:=i+1; /} Return sum; End Total

流程图与自然语言、伪码比较: 1. 流程图 优点:直观 缺点:不够灵活 2. 自然语言 优点:灵活自由 缺点:有歧义性 3. 伪码 优点:很容易转换成程序代码 缺点:有专门的符号体系,较难掌握

3.4 算法设计范例 例4:把从键盘输入的大写字母转换成小写字母输出,若为小写字母或其他字符,则不作任何转换直接输出。一直输入至按下Ctrl+Z为止。 1.用自然语言描述算法: 从键盘输入一个字符赋给字符变量ch; 如果(ch!=EOF) 则:如果(ch>=‘A’ && ch<=‘Z’) 则:ch=ch+_32 否则:程序结束 转①

2.用流程图描述算法: start 输入ch ch!=EOF ch>=65&&ch<=90 ch=ch+32 输出sum end

3.用伪码描述算法: Procedure CapToLow() Begin Input ch; While(ch!=EOF)do { If(ch>=65 && ch<=90)Then ch:=ch+32; Output ch; /} End CapToLow

作业: 题3.1,题3.2