c语言谭浩强:谭浩强c语言教程——第二章程..来源: 发布时间:星期一, 2009年1月12日 浏览:2次 评论:0
灵魂—算法 个应包括:
l 对数据描述在中要指定数据类型和数据组织形式即数据结构(data structure) l 对操作描述即操作步骤也就是算法(algorithm) Nikiklaus Wirth提出公式: 数据结构+算法= 教材认为: =算法+数据结构+设计思路方法+语言工具和环境 这4个方面是个涉及人员所应具备知识 本课程目是使同学知道怎样编写个C进行编写初步训练因此只介绍算法初步知识 2.1 算法概念 做任何事情都有定步骤为解决个问题而采取思路方法和步骤就称为算法 l 计算机算法:计算机能够执行算法 l 计算机算法可分为两大类: n 数值运算算法:求解数值; n 非数值运算算法:事务管理领域 2.2 简单算法举例 【例2.1】求1×2×3×4×5 最原始思路方法: 步骤1:先求1×2得到结果2 步骤2:将步骤1得到乘积2乘以3得到结果6 步骤3:将6再乘以4得24 步骤4:将24再乘以5得120 这样算法虽然正确但太繁 改进算法: S1: 使t=1 S2: 使i=2 S3: 使t×i, 乘积仍然放在在变量t中可表示为t×i→t S4: 使i值+1即i+1→i S5: 如果i≤5, 返回重新执行步骤S3以及其后S4和S5;否则算法结束 如果计算100!只需将S5:若i≤5改成i≤100即可 如果该求1×3×5×7×9×11算法也只需做很少改动: S1: 1→t S2: 3→i S3: t×i→t S4: i+2→t S5:若i≤11, 返回S3否则结束 该算法不仅正确而且是计算机较好算法计算机是高速运算自动机器实现循环轻而易举 研究:若将 S5写成:S5:若i<11, 返回S3;否则结束 【例2.2】有50个学生要求将他们的中成绩在80分以上者打印出来 如果n表示学生学号ni表示第个学生学号;g表示学生成绩gi表示第个学生成绩; 则算法可表示如下: S1: 1→i S2: 如果gi≥80则打印ni和gi否则不打印 S3: i+1→i S4:若i≤50, 返回S2否则结束 【例2.3】判定2000 — 2500年中每年是否闰年将结果输出 润年条件: 1) 能被4整除但不能被100整除年份; 2) 能被100整除又能被400整除年份; 设y为被检测年份则算法可表示如下: S1: 2000→y S2:若y不能被4整除则输出y“不是闰年”然后转到S6 S3:若y能被4整除不能被100整除则输出y“是闰年”然后转到S6 S4:若y能被100整除又能被400整除输出y“是闰年” 否则输出y“不是闰年”然后转到S6 S5:输出y“不是闰年” S6:y+1→y S7:当y≤2500时, 返回S2继续执行否则结束 【例2.4】求 算法可表示如下: S1: sigh=1 S2: sum=1 S3: deno=2 S4: sigh=(-1)×sigh S5: term= sigh×(1/deno ) S6: term=sum+term S7: deno= deno +1 S8:若deno≤100返回S4;否则结束 【例2.5】对个大于或等于3正整数判断它是不是个素数 算法可表示如下: S1: 输入n值[/ 0
相关文章读者评论
发表评论 |