C语言学习笔记:(三)算法的概述及特性

目录

一、沃思公式

二、算法的初步认识

(一)计算机算法的两大类别

(二)简单算法举例(用自然语言表示的算法)

三、算法的特性


一、沃思公式

        程序主要包括两方面信息:① 对数据的描述,即数据结构。② 对操作的描述,即算法(要求计算机进行操作的步骤)。即“沃思公式”:

程序=算法+数据结构

二、算法的初步认识

(一)计算机算法的两大类别

数值运算算法:目的是求数值解。

非数值运算算法:常见于事务管理领域,如图书检索、姓名排序等。

(二)简单算法举例(用自然语言表示的算法)

例1:求1×2×3×4×5。

算法:

S1:令t=1;

S2:令i=2;

S3:使t与i相乘,将结果放在t中;

S4:使i值加1;

S5:若i的值不大于5,返回重新执行S3、S4与S5;若i的值大于5,则算法结束。

例2:求1×3×5×7×9×11。

算法:

S1:令t=1;

S2:令i=3;

S3:使t与i相乘,将结果放在t中;

S4:使i值加2;

S5:若i的值不大于11,返回重新执行S3、S4与S5;若i的值大于11,则算法结束。

例3:有50个学生,要求输出成绩在80分以上的学生的学号和成绩。

n_{i}为第i个学生的学号,g_{i}为第i个学生的成绩。

算法:

S1:令i=1;

S2:若g_{i}≥80,则输出n_{i}g_{i},否则不输出;

S3:i=i+1;

S4:若i≤50,则返回S2继续执行;否则,算法结束。

 例4:判定2000-2500年中的每一年是否为闰年,并将结果输出。

注:闰年的条件:① 能被4整除,但不能被100整除的年份都是闰年;② 能被400整除的年份都是闰年。

算法:

S1:year=2000;

S2:若year不能被4整除,则输出year的值和“不是闰年”;然后转至S6;

S3:若year能被4整除,不能被100整除,则输出year的值和“是闰年”;然后转至S6;

S4:若year能被400整除,则输出year的值和“是闰年”;然后转至S6;

S5:其他年份,则输出year的值和“不是闰年”;

S6:year=year+1;

S7:当year≤2500,转至S2,继续执行;否则,算法结束。

例5:求1-1/2+1/3-1/4+…+1/99-1/100。

算法

S1:sign=1;

S2:sum=1;

S3:deno=2;

S4:sign=(-1)* sign;

S5:term=sign * (1/deno);

S6:sum=sum+term;

S7:deno=deno+1;

S8:当deno≤100时,转至S4,继续执行;否则,算法结束。

例6:判断一个大于等于3的整数n是否为素数。

算法:

S1:输入n的值;

S2:i=2;

S3:计算n/i,得余数r;

S4:若r=0,则输出n“不是素数”,算法结束;否则,转至S5;

S5:i=i+1;

S6:若i≤(n-1),则返回S3;否则输出n的值以及“是素数”,算法结束。

三、算法的特性

(一)有穷性:算法的操作步骤是有限的(或指在符合常理的范围之内)。

(二)确定性:算法每一个步骤都应该确定。

(三)有零个或多个输入。

(四)有一个或多个输出,没有输出的算法是无意义的。

(五)有效性:算法中的每一步都应当有效执行,并得到确定结果。

参考文献

C语言程序设计(第五版)谭浩强

你可能感兴趣的:(C语言学习笔记,学习,c语言,算法)