C语言第1讲--C语言概述及算法
合集下载
第一章 C语言概述、算法介绍

算法表示方法
常用的算法表示方法
用自然语言表示 用传统流程图表示 用结构流程图表示 用伪代码表示 用计算机语言表示
用自然语言表示
前面介绍的算法就是用自然语言表示的。 优点: 通俗易懂 缺点: 1)文字冗长,容易出现歧义。 2)表示分支和循环算法不方便。
用传统流程图表示
起始框
处理框
输入输出框
流程线
例2.1(问题变化) 2.1(问题变化)
问题改为:求1*3*5*7*9*11。 问题改为:求1*3*5*7*9*11。 算法只需作很少的改动: S1:1 =》 p S1: S2:3 =》 i S2: S3:p*i =》 p S3: S4:i+2 =》 i S4: S5:若i <= 11,返回S3;否则,结束。 S5:若i 11,返回S3;否则,结束。 思考:仔细分析循环结束的条件,即S5步骤,如 思考:仔细分析循环结束的条件,即S5步骤,如 果将S5修改为:i 11,返回S3。 果将S5修改为:i < 11,返回S3。 会有什么问题?
判断框
用传统流程图表示例2.1算法 用传统流程图表示例2.1算法
开始 1 =》t 2 =》i t*i =》t i+1 =》i N i>5 Y 结束
用传统流程图表示例2.2算法 用传统流程图表示例2.2算法
开始 0 =》t Y 输出n[i],g[i] N g[i] > 80
i+1 =》i Y
i < 50 N 结束
内容
算法的概念 算法举例 算法特性 算法表示方法 结构化的程序设计方法
算法的概念
算法的概念
为解决一个问题而采取的方法和步骤,就称为算 为解决一个问题而采取的方法和步骤,就称为算 法。 生活中同样存在算法:吃饭、上学、跳舞 …… 算法分类: 数值运算算法 非数值运算算法:常见的是用于事务管理。
第1章c语言概述

1.1
什么是计算机程序
用户可以根据自己的实际需要设计一些应用程序,例 如学时成绩统计程序、财务管理程序、工程中的计算 机程序等。 计算机的一切操作都是由程序控制的,离开程序,计 算机将一事无成。 计算机的本质是程序的机器 程序和指令是计算机系统中最基本的概念
1.2 什么是计算机语言
计算机语言:人和计算机交流信息,计算机和人都能 识别的语言
1.4.1 最简单的C语言程序举例
在以上程序各行的右侧,如果有//,则表示从此到本 行结束是“注释”,用来对程序有关部分进行必要的 说明。注释是给人看的,而计算机不执行。 说明:C语言允许用两种注释方式:
//:单行注释 可单独占一行 可出现在一行中其他内容的右侧 /*„„*/:块式注释 可包含多行
1.3 C语言的发展及其特点
2001、2004年先后进行了两次技术修正(TC1和 TC2)。 ISO/IEC 9899:1999(及其技术修正)被称为 C99。 C99是C89(及1995基准增补1)的扩充。 目前不同软件公司提供的各C语言编译系统多数并未 完全实现C99建议的功能。 本书中程序基本上都可以在目前所用的编译系统(如 VC++ 6.0,Turbo C++ 3.0)上编译和运行。
1.4.1 最简单的C语言程序举例
其中 main 表示“主函数”。Main前面的int表示此函 数的类型是int类型。在执行主函数后会得到一个值 (即函数值),其值为整型。每一个C程序都必须有一 个 main 函数。函数体由大括弧{}括起来。本例中主 函数内只有一个输出语句,printf是C编译系统提供的 函数库中的输出函数(详见第4章),双引号(双括号) 内的字符串原样输出。“\n”是换行符,即在输出 “This is a c program.”后,显示屏上的光标位置 移到下一行的开头。下一个输出的字符出现在此位置 上。每个语句最后有一分号,表示语句的结束。
大学C语言第1讲C语言基础知识

定义变量就是在内存中申请空间存放变量值 num int num; 5 一个整型数大小 char ch; ch a 一个字符大小
定义之后立即初始化是好的编程风格。 定义之后立即初始化是好的编程风格。不然你 引用它时,可能是随机值,没有错误提示。 引用它时,可能是随机值,没有错误提示。 例:
数据是否带符号 有符号型 无符号型
不同的数据集合上定义了不同的运算 长度和精度的限制
基本数据类型
关键字 short unsigned [int] int long float double char
表示数据
短整 型Байду номын сангаас
无符号整型
整型 实型 长整型 单精 度 4 4
实型 双精度 8
字符
占字节数
2
4
1
取值范围
编程序) 人(用、编程序) 高级语言( 高级语言(C,C++,Java等) 等 数据结构 软件工程 编译程序 数据库管理系统 操作系统 计算机硬件组成原理
软件
什么是ASCII码? 码 什么是
计算机中用得最广泛的字符集及其编码, 计算机中用得最广泛的字符集及其编码,是由 美国国家标准局(ANSI)制定的 制定的ASCII码 美国国家标准局 制定的 码 (American Standard Code for Information Interchange,美国标准信息 , 交换码) 交换码) 分析
C语言的产生 语言的产生 语言的
C语言 语言
年代初研制出来的, C语言是贝尔实验室于70年代初研制出来的,用于 语言是贝尔实验室于 年代初研制出来的 编写UNIX。后来又被多次改进,并出现了多种版本。 编写 。后来又被多次改进,并出现了多种版本。 80年代初,美国国家标准化协会(ANSI),根据C 年代初, ),根据 年代初 美国国家标准化协会( ),根据C 语言问世以来各种版本对C语言的发展和扩充, 语言问世以来各种版本对C语言的发展和扩充,制定 标准( 年再次做了修订)。 了ANSI C标准(1989年再次做了修订)。 标准 年再次做了修订
C语言程序设计-第一章C基础知识-C语言概述讲解

程序执行
编译链接完成后,可执行文件可以被加载到 内存中执行。程序执行时,操作系统会负责 加载和运行可执行文件,并分配必要的资源。 在程序运行过程中,操作系统会与程序进行 交互,处理各种事件和请求。
THANKS FOR WATCHING
感谢您的观看
VS
库函数
库函数是C标准库提供的函数,用于实现 各种常用的功能,如输入输出、数学计算 等。通过包含相应的头文件,可以在程序 中使用库函数。
编译链接和程序执行
编译链接
将源代码文件编译成目标文件后,需要将多 个目标文件链接成一个可执行文件,才能执 行程序。链接过程将解决符号引用问题,将 程序中的函数调用和变量引用与相应的实现 关联起来。
C语言与其他语言的比较
C语言与C、Java等高级编程语 言相比,具有更接近硬件的底层 访问能力,但编写代码相对复杂。
C语言与Python、Ruby等解释 型语言相比,具有更高的执行效 率,但需要手动管理内存和进行
类型检查。
C语言与JavaScript、PHP等脚 本语言相比,具有跨平台和可移 植性,但需要编译成机器码才能
C语言程序设计-第一章 C基础知 识-C语言概述讲解
目录
• C语言概述 • C语言语法基础 • C语言控制结构 • C语言函数 • C语言程序结构
01 C语言概述
C语言的起源和发展
C语言起源于20世纪70年代,由美国贝尔实验室的Dennis Ritchie设计开发。它 最初被用于UNIX操作系统的开发,后来逐渐发展成为一种广泛使用的通用编程 语言。
要点一
总结词
调用函数和作用域是函数使用的关键
要点二
详细描述
在C语言中,可以通过函数名和参数列表来调用函数。调 用函数时,会执行函数体中的代码,并返回函数的返回值 。函数的作用域指的是函数在程序中的可见性和可访问性 。在C语言中,函数的作用域可以是全局或局部的。全局 函数可以在程序的任何位置被访问,而局部函数只能在定 义它的代码块中访问。
C语言程序设计 第一章C语言概述

7.允许直接访问物理地址,能进行位(bit)操作
8.目标代码质量好,程序执行效率高
9.可移植性好
1.2 c语言的基本语法成分
1.C语言字符集:字符是C语言的最基本的元素,C语言字符 集由字母、数字、空白、标点和特殊字符组成(在字符串 常量和注释中还可以使用汉字等其它图形符号)。由字符 集中的字符可以构成C语言进一步的语法成分(如,标识 符,关键词,运算符等)
2.标识符 标识符用来标识变量名、符号常量名、函数名、
类型名、文件名等的有效字符序列。
3.关键字 C语言中一些具有特殊意义的标识符称为关键字。
这些关键字在任何时候都不得用作变量名、符号常量 名、函数名、类型名、文件名等。
4.运算符: 运算符将常量、变量、函数连接起来组成表达式,
表示各种运算。
5.分隔符:分号,空格。起分隔、间隔作用。
int x, y; /*对形参x、y作类型定义*/
{ int z;
/*max函用到的变量z,也要加以定义*/
z=y;
if (x>y) z=x;
return (z); /*将z的值返回,通过max带回调用处*/
}
通过分析,初步看出:
1. C程序全部由一个一个的函数构成。至少有一个 主函数main ( ), 其它函数可被主函数调用或相 互调用。其它函数可为C 函数库中函数,也可为自
1.1 c语言的特点 1.2 c语言的基本语法成分 1.3 c语言的程序结构
1.1 C语言的特点
C语言是在B语言的基础上发展起来的一种中级语 言。它具有高级语言和低级语言(汇编语言)双重功能的 特点,被广泛用于系统软件和应用软件的开发,成为目 前生命力最旺盛的高级语言之一。其主要特点有:
1.C语言源程序由多个相互独立的函数组成 2.语言简洁、紧凑,使用方便、灵活
8.目标代码质量好,程序执行效率高
9.可移植性好
1.2 c语言的基本语法成分
1.C语言字符集:字符是C语言的最基本的元素,C语言字符 集由字母、数字、空白、标点和特殊字符组成(在字符串 常量和注释中还可以使用汉字等其它图形符号)。由字符 集中的字符可以构成C语言进一步的语法成分(如,标识 符,关键词,运算符等)
2.标识符 标识符用来标识变量名、符号常量名、函数名、
类型名、文件名等的有效字符序列。
3.关键字 C语言中一些具有特殊意义的标识符称为关键字。
这些关键字在任何时候都不得用作变量名、符号常量 名、函数名、类型名、文件名等。
4.运算符: 运算符将常量、变量、函数连接起来组成表达式,
表示各种运算。
5.分隔符:分号,空格。起分隔、间隔作用。
int x, y; /*对形参x、y作类型定义*/
{ int z;
/*max函用到的变量z,也要加以定义*/
z=y;
if (x>y) z=x;
return (z); /*将z的值返回,通过max带回调用处*/
}
通过分析,初步看出:
1. C程序全部由一个一个的函数构成。至少有一个 主函数main ( ), 其它函数可被主函数调用或相 互调用。其它函数可为C 函数库中函数,也可为自
1.1 c语言的特点 1.2 c语言的基本语法成分 1.3 c语言的程序结构
1.1 C语言的特点
C语言是在B语言的基础上发展起来的一种中级语 言。它具有高级语言和低级语言(汇编语言)双重功能的 特点,被广泛用于系统软件和应用软件的开发,成为目 前生命力最旺盛的高级语言之一。其主要特点有:
1.C语言源程序由多个相互独立的函数组成 2.语言简洁、紧凑,使用方便、灵活
第1,2章 C语言概述和算法

<
>
原码、补码及反码
原码:将真值x的正、负号分别换成0、1, 即得到x的原码 [x]原。
例如: x = +1001011, [x]原=01001011 x = -1100111, [x]原=11100111
<
>
反码
正数的反码等于原码; 负数的反码等于其原码除符号位外,其余各位 按位求反。 [X1]原=0100 1001, [X2]原=1100 1001 [X1]反=0100 1001, [X2]反=1011 0110
0 1 0 0 0 0 1
(B0) (B1) (B2) (B3) (B4) (B5) (B6)
(66)10 = (1000010)2
十进制 八进制:采用除8取余法。
十进制 十六进制:采用除16取余法。
<
>
2. 小数部分的转换
十进制小数二进制:采用乘 2 取整法。
<
>
0.8125
2 1.6250 0.6250 2 1.2500 0.2500 2 0.5000 2 1.0000
< >
整数
高位 …… 1 (B-1)
……
1
(B-2)
…… ……
0 1
(B-3) (B-4) 低位
(0.8125)D = (0.1101)B
十进制小数八进制数:采用乘 8 取整的 方法。 十进制小数十六进制数:采用乘 16 取 整的方法。
格式特点
大小写敏感,习惯用小写字母 一行可写多个语句, 一个语句可分写在多行上。 最好一行只写一个语句。 常用锯齿形书写格式 {}对齐 有恰当的注释
/* 程序举例 */ void main( ) { int i,j; float sum; sum= 0; for(i=1;i<10;i++) { for(j=1;j<10;j++) { sum+=i*j; } } printf(“%d\n”,sum); }
第1章_C语言概述(C语言程序设计)

通过以上例子可以看出: 通过以上例子可以看出: 1. C程序是由函数构成的。每个程序由一个或多个函数组成, 程序是由函数构成的。每个程序由一个或多个函数组成, 程序是由函数构成的 其中必须有且仅有一个主函数main( )。 有且仅有一个主函数 其中必须有且仅有一个主函数 。 2. 一个可执行的 语言程序总是从 一个可执行的C语言程序总是从main函数开始执行,而不 函数开始执行, 语言程序总是从 函数开始执行 论其在整个程序中的位置如何。 论其在整个程序中的位置如何。 3. C对输入输出实行函数化。 对输入输出实行函数化。 对输入输出实行函数化 4. C程序书写格式自由,一行内可以写几个语句,一个语句 程序书写格式自由,一行内可以写几个语句, 程序书写格式自由 也可以分写在多行上。 也可以分写在多行上。 5. 可用 可用/*……*/对C程序中的任何部分作注释,注释可以写在 对 程序中的任何部分作注释 程序中的任何部分作注释, 程序的任何位置上, 也可不在同一行上。 程序的任何位置上,“/*”与“*/”也可不在同一行上。 与 也可不在同一行上 6. 在C语言中,大小写字母是有区别的。( 语言习惯用小 语言中, 。(C语言习惯用小 语言中 大小写字母是有区别的。( 写字母) 写字母)
主函数
main( ) { int x, y, z; printf(“Please input two integers:\n”) ; scanf(“%d%d” , &x, &y); z = add_xy(x, y); printf(“%d %d %d.”, x, y, z); }
西南林学院计科系
第 1章 概述
西南林学院计科系
第 1章 概述
将汇编源程序翻译为目标程序(机器语言)的过程称 为汇编 汇编。 汇编 连接的原因是由于在目标程序中还可能要调用一些 连接 标准程序库中的标准子程序或其他自定义函数等,由于 这些程序还没有连接成一个整体,因此,需通过“连接 程序”将目标程序和有关的程序库组合成一个完整的 “可执行程序”。
C语言第一章

C语言程序设计
第一章 C语言概述
第1章 C语言概述
C语言发展历史 简单的C程序介绍 C语言数据类型概述
C语言程序设计
第一章 C语言概述
1.1 C语言的出现和发展历史
• 程序设计语言的发展
机 器 语 言
汇 编 语 言
高 级 语 言
面向过程
面向对象
用助记符号描述的指令系统,可进行地址、位操作 可读性,移植性好,编写应用程序 CPU指令系统,由0、1序列构成的指令码组成 C语言兼有高级和低级语言的功能 面向机器的语言适合写系统软件和应用软件 如 ADD A,一般较难实现汇编语言的某些功能 B 加 如:10000000 编写系统软件,直接对硬件操作,可读性,移植性差 如:地址和位的操作 10010000 减 又称中级语言 < >
数据类型决定: 1. 数据占内存字节数 2. 数据取值范围 3. 可以进行的操作
C语言程序设计
第一章 程序的灵魂——算法
数值数据的表示
C语言中数值数据有两种:整型和浮点小数 1.整数表示形式 十进制:123,-567 八进制:011,072 十六进制:0x12 2.整数的存储空间为两个字节,即16个二进制位。 取值范围为-32768—32767 如果超过这范围,使用占4个字节的长整型,在整 数后面加上一个字母L,此时取值范围可以扩大到 -2147483648—2147483647
C语言程序设计
第一章 C语言概述
1.2 简单的C程序介绍
例1.1 第一个程序This is a c program . 注释 /* example1.1 The first C Program*/ #include <stdio.h> 编译预处理 void main() 主函数 { printf(“This is a c program.\n”); 语句 } 输出: This is a c program.
第一章 C语言概述
第1章 C语言概述
C语言发展历史 简单的C程序介绍 C语言数据类型概述
C语言程序设计
第一章 C语言概述
1.1 C语言的出现和发展历史
• 程序设计语言的发展
机 器 语 言
汇 编 语 言
高 级 语 言
面向过程
面向对象
用助记符号描述的指令系统,可进行地址、位操作 可读性,移植性好,编写应用程序 CPU指令系统,由0、1序列构成的指令码组成 C语言兼有高级和低级语言的功能 面向机器的语言适合写系统软件和应用软件 如 ADD A,一般较难实现汇编语言的某些功能 B 加 如:10000000 编写系统软件,直接对硬件操作,可读性,移植性差 如:地址和位的操作 10010000 减 又称中级语言 < >
数据类型决定: 1. 数据占内存字节数 2. 数据取值范围 3. 可以进行的操作
C语言程序设计
第一章 程序的灵魂——算法
数值数据的表示
C语言中数值数据有两种:整型和浮点小数 1.整数表示形式 十进制:123,-567 八进制:011,072 十六进制:0x12 2.整数的存储空间为两个字节,即16个二进制位。 取值范围为-32768—32767 如果超过这范围,使用占4个字节的长整型,在整 数后面加上一个字母L,此时取值范围可以扩大到 -2147483648—2147483647
C语言程序设计
第一章 C语言概述
1.2 简单的C程序介绍
例1.1 第一个程序This is a c program . 注释 /* example1.1 The first C Program*/ #include <stdio.h> 编译预处理 void main() 主函数 { printf(“This is a c program.\n”); 语句 } 输出: This is a c program.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
结束
24
举例: 举例:求y/x之值的算法分析 之值的算法分析
计算并输出z=y/x 计算并输出z=y/x 步骤: 步骤: 输入x 的值。 (1)输入x,y的值。 (2)判断x是否为0: 判断x是否为0 x=0,则输出错误信息 则输出错误信息; 若x=0,则输出错误信息; 否则将 y/x ⇒ z 后输出z。 后输出z
数据
输入 计算(处理) 计算(处理)
结果
输出
只有“输入” 才能“计算(处理) 只有“输入”了数据 ,才能“计算(处理)”这些数 据,也只有“计算”产生了结果,才能“输出”它们 也只有“计算”产生了结果,才能“输出” 。这些顺序关系是绝不能随意改变的。 这些顺序关系是绝不能随意改变的
20
流程图
流程图: 流程图:用图形描述问题的处理过程的工 具即用一些约定的几何图形来描述算法。 具即用一些约定的几何图形来描述算法。
C
语言程序设计
任课教师: 任课教师:唐基宏 QQ: QQ: 1131764372
1
第一讲 C语言概述及算法
2
C语言程序设计 语言程序设计
教材
语言程序设计教程》 《 C语言程序设计教程》 语言程序设计教程 叶东毅主编 厦门大学出版社
3
学习要求
每次上机前复习相关内容, 每次上机前复习相关内容,对上机目的和要求要 做到胸中有数,编程题要求事先编写好程序。 做到胸中有数,编程题要求事先编写好程序。 独立完成作业。 独立完成作业。 上课时不要玩手机。 上课时不要玩手机。 实验课不准玩游戏,自我调节时间限制在10分钟 实验课不准玩游戏,自我调节时间限制在10分钟 10 以内。 以内。 实验课要互帮互助。 实验课要互帮互助。
4
考试方法
考试形式:参加福建省计算机二级考试 考试形式 参加福建省计算机二级考试
采用无纸化上机考试; 采用无纸化上机考试; 考试环境: 简体中文版, 考试环境: Windows XP 简体中文版, Turbo C 2.0或以上集成环境(IDE); 或以上集成环境( 或以上集成环境 ); 考试时间: 分钟 分钟。 考试时间: 90分钟。
用户 高级语言 汇编语言 机器语言 硬件
7
程序指令的执行过程
1011+0011=
1 0 1 1 1 0 1 1
1011-0011=
0 0 1 1
逻辑 电路 — 加法器
0 1 1 1 0
0 0 1 1
逻辑 电路 — 减法器
0 1 0 0 0
8
程序指令的执行过程
1011>0011
1 0 1 1 1 0 1 1 1 0 0 1 1
优点:计算机能直接识别和运行, 优点:计算机能直接识别和运行,效率高
缺点:不同类型的CPU具有不同的机器语 缺点:不同类型的 具有不同的机器语 可移植性差;不易阅读和修改。 言,可移植性差;不易阅读和修改。
11
汇编语言
汇编语言是用特定的助记符号代表数字代 帮助人们记忆, 码,帮助人们记忆,它和机器指令基本上 是一一对应的。 是一一对应的。
掌握了程序设计语言
深刻理解 计算机 的工作过程
开发系统 软件或 应用软件
使计算机能 做前人未能 做过的工作
6
程序设计语言
语言就是一种约定,是对话和交流的工具。 语言就是一种约定,是对话和交流的工具。 就是一种约定
程序设计语言是人与计算机之间进行对话 程序设计语言是人与计算机之间进行对话 和交流的一种约定。 和交流的一种约定。
1011==0011
0 0 1 1
逻辑 电路 —
比较运算
逻辑 电路 —
判等运算
0
9
机器语言
愓
指令名
操作数1 操作数1
操作数2 操作数2
加法指令 法指令 指令 指令
00 01 10 …
1011 1011 1011 …
0011 0011 0011 …
即 为 机 器 语 言
指 令 的 集 合
10
机器语言
说明:38H表示38是十六进制数,即为十进制的56 说明:38H表示38是十六进制数,即为十进制的56 表示38是十六进制数 2BH表示2B是十六进制数 即为十进制的43 表示2B是十六进制数, 2BH表示2B是十六进制数,即为十进制的43 (48H)表示地址而不是常量 (48H)表示地址而不是常量
main( ) { float x,y,z; scanf("%f%f",&x,&y); if(x==0) error!\ printf("Data error!\n"); else { z=y/x; printf("z=%f\ printf("z=%f\n",z); } }
27
结束
课堂练习
用传统流程图表示求解以下问题的算法: 用传统流程图表示求解以下问题的算法:
22
鸡兔同笼问题传统流程图及程序
传统流程图
开始
main( ) { int cock,rabbit; cock=(4*6-16)/2; rabbit=(16-2*6)/2; printf("cock=%d,rabbit= %d\n",cock,rabbit); }
计算cock=(4*6-16)/2 计算 计算rabbit=(16-2*6)/2 计算 2*6)/2 输出cock,rabbit的值 的值 输出
机器语言
汇编语言
00 01 10
1011 1011 1011
0011 0011 0011
ADD 11, 3 SUB 11, 3 COM 11, 3
12
例:计算 56+43的汇编程序 + 的汇编程序
汇编语言程序 START:LD A, 38H : LD B, 2BH ADD A, B LD (48H),A NOP HALT 功能及说明 将38H送入累加器A中 38H送入累加器A 送入累加器 2BH送入累加器 送入累加器B 将2BH送入累加器B中 将累加器A 将累加器A和B的值相加后送 入A中 将累加器A 将累加器A中的数值送入编号 48H的存储单元中 为48H的存储单元中 空语句 停止语句
试卷题型结构 1.选择题(20小题) 40%; 小题) .选择题( 小题 ; 2.程序改错题(2小题) 20%; 小题) .程序改错题( 小题 ; 3.程序填空题(2小题) 20%; 小题) .程序填空题( 小题 ; 4.编程题(2小题) 20%。 小题) .编程题( 小题 。
5
为什么要学习程序设计语言
18
利用计算机求解问题步骤
实际 问题
数学 模型
求解 算法
编制 程序
问题 实现
分析抽象 模型求解 命令编程 调试程序 流程图) 源程序) 数学) 算法) (数学) (算法) (流程图) (源程序)
19
简单程序执行举例
一个程序通常有三个程序段, 一个程序通常有三个程序段,分别执行 输入、计算(处理) 输入、计算(处理)和输出操作 执行顺序为: 执行顺序为:
●
传统流程图的符号及意义 圆边框 平行四边框 判断框 矩形框 箭头线 圆圈 工作的开始或结束 输入或输出 逻辑判断或检查 各种处理功能 流程的路线 连接点
21
举例: 举例:鸡兔同笼问题算法分析
问题:鸡兔同笼,共有头6只 问题:鸡兔同笼,共有头 只、脚16只,问鸡兔 只 各几? 各几? 数学分析:设鸡cock只,兔rabbit只,则有下列 数学分析:设鸡 只 只 方程: 2*cock+4*rabbit=16 方程:cock+rabbit=6 模型求解:计算机不会解方程,而需要对模型进 模型求解:计算机不会解方程, 不会解方程 行求解。应分别求出鸡兔的数量与头、 行求解。应分别求出鸡兔的数量与头、脚数量 之 关系,即抽象出下列方程: 关系,即抽象出下列方程: cock=(4*6-16)/2 rabbit=(16-2*6)/2 算法分析:先定义 个变量 个变量cock和rabbit分别存 算法分析:先定义2个变量 和 分别存 放鸡、兔的数量; 放鸡、兔的数量;再按照模型的求解结果计算鸡 兔的数量;最后输出计算结果。 兔的数量;最后输出计算结果。
17
程序设计的基本过程
程序设计不仅仅是编制一个程序,还包含多方面的内容。 程序设计不仅仅是编制一个程序,还包含多方面的内容。 程序设计可用如下公式描述: 程序设计可用如下公式描述: 程序设计 = 数据结构 + 算法 + 程序设计方法 + 语言工具和环境 程序设计的过程: 程序设计的过程: ★ 问题的分析 ★ 算法的设计 ★ 流程的描述 ★ 编写程序
个数a、 、 ,要求按大小顺序把它们输出。 有3个数 、b、c,要求按大小顺序把它们输出。 个数 判断一个数n能否同时被 能否同时被3和 整除 整除。 判断一个数 能否同时被 和5整除。
再用N-S图表示以上算法。 图表示以上算法。 再用 图表示以上算法
28
14
可移植性
C语言 语言 机器语言 源程序 程序1 程序 (.C) 编译器1 编译器 CPU 1执行 执行 结果
C语言 语言 机器语言 源程序 程序2 程序 (.C) 编译器2 编译器 CPU 2执行 执行 结果
15
算法
通过对程序指令的不同组合可以得到不同 的结果, 的结果,即算法
main( ) { … a=56; b=43; sum=a+b; sum=a-b; … } main( ) { … a=56; b=43; sum=a-b; sum=a+b; … }
结束
23
传统流程图与N-S流程图比较 流程图比较 传统流程图与
传统流程图
开始
Nቤተ መጻሕፍቲ ባይዱS流程图
计算cock=(4*16-6)/2 计算
计算cock=(4*16-6)/2 计算 计算rabbit=(16-2*6)/2 计算 2*6)/2 输出cock,rabbit的值 的值 输出