文档介绍:程序=数据结构+算法
数据的类型和组织形式
解决问题的方法和步骤
第五章 算法
描述算法的方法:自然语言、流程图
例1:输入两个数a和b,要求实现将a和b中的数据进行交换。
算法描述
12
5
a
b
t
1、定义三个变量a、b、t
2、输入a和b的值
3、t=a;a=b;b=t;
4、输出a和b
算法的概念和使用举例
一、三个典型实例
main( )
{float a, b ,t;
scanf (“%f %f ”,&a ,&b);
t=a;
a=b;
b=t;
printf ( “%f, %f ”.a. b);}
思考题: 从键盘输入两个数, 将这两个数按照从小到大的顺序输出来。比如输入5和1,则输出结果为1,5。
例2:从键盘输入三个整数,将这三个整数按照从大到小的顺序输出来。
比如:如果输入34、12、89;则输出为89、34、12
1、定义四个变量a、b、c、t;
2、输入a、b、c的值
3、如果b>a,则{ t=b;b=a;a=t;}
4、如果c>a,则{ t=c;c=a;a=t;}
5、如果c>b,则{ t=c;c=b;b=t;}
6、输出a、b、c的值
例3:编写一个程序,求1×3×5×……×99
1×3×5×7×9×……×99
假设用S表示乘积结果,用i表示被乘数
S=1
i=1
1、定义2个变量S和i
2、S=1;i=1;
3、S=S*i;i=i+2;
4、如果i<=99;返回3继续
否则,转到5
5、输出s
执行算法所占用的空间资源和时间资源
二、衡量算法好坏的两个因素
算法是否容易理解、调试和测试
有穷性应该在有限的步骤内完成
三、算法的特点
确定性明确而可以执行
必须有输出
有效性
每一步都应该有效而可以执行
算法的流程图表示
例1:输入两个数a和b,要求实现将a和b中的数据进行交换。用传统流程图表示。
返回
定义a、b、t
输入a、b
t=a; a=b; b=t;
输出a、b
开 始
结 束
一、算法的传统流程图表示
例2:从键盘输入三个整数,将这三个整数按照从大到小的顺序输出来。
1、定义四个变量a、b、c、t;
2、输入a、b、c的值
3、如果b>a,则{t=b;b=a;a=t;}
4、如果c>a,则{t=c;c=a;a=t;}
5、如果c>b,则{t=c;c=b;b=t;}
6、输出a、b、c的值
常用的流程图符号
开始/结束框
处理框
输入/输出框
条件判断框
流程线