C程序设计-谭浩强 第三版-学习笔记 第2章 程序的灵魂 算法

本文介绍了程序设计中的核心概念——算法,包括算法的定义、特性、表示方法(如自然语言、流程图、伪代码等)以及结构化程序设计方法。通过实例展示了算法在数值运算和非数值运算中的应用。
摘要由CSDN通过智能技术生成

第 2 章 算法 --程序的灵魂

  • 程序 = 算法 + 数据结构 (沃思,计算机科学家)

  • 一个程序应该包括两方面:

    1. 对数据的描述:在程序中要指定数据的类型和数据的组织形式,即数据结构(data structure)。
    2. 对操作的描述: 即操作步骤,也就是算法(algorithm)。
  • 数据是操作的对象,操作的目的是对数据进行加工处理,以得到期望的结果。

  • 程序设计人员需具备知识:

    1. 算法

    2. 数据结构

    3. 程序设计方法

    4. 语言工具

1.算法的概念

  • 广义来说,为解决一个问题而采取的方法和步骤,就称为“算法”。

  • 同一问题有不同的解题方法和步骤,方法有优劣之分。因此,不仅需要保证算法正确,还要考虑算法的质量。

  • 算法分为 数值运算算法 和 非数值运算算法

    1. 数值运算:目的是求数值解,如求方程根、函数定积分等。

    2. 非数值运算:包括面十分广泛,最常见的是用于事务管理领域,如图书馆检索、人事管理等。

  • 数值运算有现成的模型,可以应用数值分析方法。故常将这些算法汇编成册(写成程序形式),供用户调用。如 数学程序库 等。

2.简单算法举例

  • 例2.1 求 1x2x3x4x5

    • 设两个变量,一个代表被乘数,一个代表乘数。直接将每一步的乘积放在被乘数变量中

    • 设 p 为被乘数 , i 为乘数。

    1. 使 p =1;
    2. 使 i = 2;
    3. 使 p x i,乘积放在 p 中,可表示为 p x i ⇨ p;
    4. 使 i 的值加 1 ,即 i + 1 ⇨ i;
    5. 若 i 的值不大于5,返回重新执行 S3 以及 之后的 S4 和 S5,否则,算法结束。最后得到的 p 的值就是 5!的值。
  • 例2.2 将50个学生中成绩在80分以上的学号和成绩输出。

    • 用 n 表示学生号,n1代表第一个学生,ni代表第i个学生;
    • 用 g 代表学生成绩,g1代表第一个学生的成绩。
    1. i =1;
    2. 如果 g1>80,则输出 n1 和 g1 ;否则不输出。
    3. i = i + 1;
    4. 如果 i<=50,返回S2,继续执行;否则,结束算法。
  • 例2.3 判定 2000-2500年中的每一年是否为闰年,将结果输出。

    • 闰年的条件 :

      • 能被4整除,但不能被100整除的年份;

      • 能被100整除,又能被400整除。

    • 设 y 为被检测的年份

    1. y = 2000;
    2. 若 y 不能被
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值