目录

1 算法的表示形式 ——传统流程图

1.1 概 念 及 符 号

1.1.1 规则

1.1.2 常见的符号

1.2 案 例 分 析

1.2.1 案例 

1.2.2 案例解析

1.2.3 传统流程图缺点 

2 算法的表示形式 ——N-S流程图

2.1 结 构 化 程 序 设 计

2.1.1 模块化设计思想

2.1.2 结构化程序设计之父

2.2 N - S 图 

2.2.1 N - S流程图

2.2.2 N - S流程图符号

2.3 案例

3 算法的表示形式 ——伪代码及程序设计语言

3.1 伪 代 码

3.1.1 伪代码

3.1.2案例

3.1.3 伪代码

3.2 程 序 设 计 语 言 

3.2.1 程序设计语言描述

3.2.2 案例:C语言描述

 


1 算法的表示形式 ——传统流程图

1.1 概 念 及 符 号

1.1.1 规则

规则:使用规定的流程图符号描述算法思想。

1.1.2 常见的符号

 (1)符号:起止框                                             (2)输入输出

         

(3)判断:修改密码

(4)处理框:求和                                          (5)符号:连接框

     

(6)注释框

1.2 案 例 分 析

1.2.1 案例 

【案例】从键盘输入一个学生的成绩,并判断, 如果该成绩大于等于60分时,输出:及格;
则输出:不及格。请用流程图描述该算法。

1.2.2 案例解析

1.2.3 传统流程图缺点 

箭头较多,步骤稍微复杂点的算法,流程图显得很乱

算法的表示形式 ——N-S流程图

2.1 结 构 化 程 序 设 计

2.1.1 模块化设计思想

模块化 :要解决的 总目标 分解为 子目标 ,再进一步分解为具体的小目标 ,把每个小目标称为一个 模块

2.1.2 结构化程序设计之父

(1)1965 艾兹格·迪科斯特拉 E.W.Dijikstra ):提出采用自顶向下、逐步求精的程序设计方法。
(2)三种基本控制结构: 顺序 分支 循环

2.2 N - S 图 

2.2.1 N - S流程图

(1)流程线不一定是必需的。
(2)N-S图: 1973年,美国学者 艾克纳西 (Ike N assi)和 本·施耐 德曼 (Ben S hneiderman)提出算法的每一步都用一个矩形框描述,按执行次序连接起来就是一个完整的算法描述。

2.2.2 N - S流程图符号

(1)循环结构1

执行流程 :只有当满足一定条件时,才重复执行某操作,条件不满足时,停止执行。
举例 阿甘正传
特点 : 先判断, 可能一次也不做
相当于while、for循环
(2)循环结构2
执行流程 先执行一次 操作,再判断条件是否成立, 条件满足 ,则 继续 执行, 直到 条件 不满足 时, 停止 执行。
举例 :猜数字谜,直到猜对为止
特点 至少做一次!
相当于do-while循环

2.3 案例

【案例】从键盘输入一个学生的成绩,并判断,如果该成绩大于等于60分,输出:及格;否则输出:不及格。请用N-S图描述该算法。

算法的表示形式 ——伪代码及程序设计语言

3.1 伪 代 码

3.1.1 伪代码

定义 :使用一种 仿 程序设计语言 来描述算法。
目的 :便于转换为某种编程语言描写的算法。

3.1.2案例

【案例】从键盘输入一个学生的成绩,并判断,如果该成绩大于等于60分,输出:及格;否则输出:不及格。请用伪代码 描述该算法。

3.1.3 伪代码

Begin
    int sc; 
    Input score; 
    if(sc>=60) 
        print “及格” 
    else
        print “不及格” 
End

3.2 程 序 设 计 语 言 

3.2.1 程序设计语言描述

定义: 使用某种具体的程序设计语言,如C、C++、Java等描述算法。
特点: 可直接在计算机中运行验证。

3.2.2 案例:C语言描述

#include<stdio.h>

int main(void)

{

	int sc;

	printf("该输入成绩:");            

	scanf( "%d",&sc);           //d:decimal,&:取地址 

	if(sc>=60)

	        printf("及格\n");

	else

	        printf("不及格\n");

	return 0;

}

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐