ch1 绪论及算法概述20131015
发布时间:2021-06-12
发布时间:2021-06-12
课程说明1. 教学重点: 掌握程序设计的思想和方法,培养编程能 力。 2. 教学方法: 以程序设计为主线,从应用出发,通过案 例和问题引入内容; 重点讲解程序设计的思想和方法; 结合相关的语言知识的介绍
Ch1-2 概述及算法2014年12月23日星期二
1.1 程序和程序设计1. C程序① 程序:用某种编程语言实现解决某一问题的 算法的代码序列。 ② C程序 ③ 最简单的程序:Hello,World! ④ 一个简单的应用题:小张工作了三个月,能 拿到多少工资?#include “stdio.h” main() { float ygz,zgz; scanf(“%f”,&ygz); zgz=ygz*3; printf(“3个月应发工资是:%f\n”,zgz); }
1.1 程序和程序设计2.程序设计① ② ③ ④ ⑤ 确定数据结构 确定算法 编码 调试(静态调试、上机调试) 整理并写出文档
1.1 程序和程序设计3.运行C程序 输入、编辑源程序 对源程序进行编译 与库函数连接
运行目标程序
1.2 算法——程序设计的灵魂1. 算法:为解决某个特定问题而采取的确定 且有限的步骤。 2. 具有5个特性① 有穷性:一个算法应包含有限个步骤,在合 理时间内完成。 ② 确定性:算法中每个指令都必须有确定含义, 无二义性,相同输入当相同结果 ③ 可行性:算法中指定的操作,都可以通过已 经实现的基本运算执行有限次后实现。 ④ 有零个或多个输入 ⑤ 有一个或多个输出
1.3 流程图与NS图1. 流程图常见图形起止框 处理框 输入输出框
判断框 流程线
连接点
2.NS图:去掉流程线,算法的每一步都用 矩形框来描述。
1.4 结构化程序设计和模块化结构1. 结构化程序(三种基本结构)① 顺序结构 例:求两个整数和。开始 a=1,b=2 s=a+b s=a+b 输出s #include “stdio.h” main() { int a,b,s; a=1; b=2; s=a+b; printf(“a+b=%d\n”,s);
a=1,b=2
}输出s 运行结果: 结束 a+b=3
② 选择(分支)结构 例:判断用户输入的整数是否是偶数。开始 输入n #include “stdio.h” main() { int n; scanf(“%d”,&n); if (n%2==0) printf(“yes\n”); else printf(“no\n”); N }
Y
判断n是否是偶数
输出“是”
输出“否” Y 结束
输入n n为偶数? N
输出“是”
输出“否”
i=1,s=0
③ 循环结构 例:求1+2+…+100。开始 i=1,s=0 Ni<=100 ?
i<=100 s=s+i i=i+1 输出s
Y
s=s+ii=i+1 输出s 结束
#include “stdio.h” main() { int i=1,s=0; while (i<=100) { s=s+i; i=i+1; } printf(“%d\n”,s); }
③ 循环结构(C语言中) – 当型循环 – 直到型循环(与标准直到型有差异)
P
假 当p为真
A 真 P 假
A 直到P为假
真A (a) 当型循环结构 A (b)
(a)
(b)
直到型循环结构(C语言)
三种基本控制结构共有的特点是:1. 有一个入口,有一个出口; 2. 结构中每一部分
都有被执行到的机会,也就是 说,每一部分都有一条从入口到出口的路径通
过它(至少通过一次);3. 没有死循环(无终止的循环)。A B 顺序结构 P 真 A 假 B
当p为真 A当型循环结构
A 直到P为真 直到型循环结构(标准)
选择结构
2. 模块化结构 将复杂的大任务划分成若干子任务,每个 子任务完成一个简单功能。程序设计时, 程序设计人员分别完成一个或多个小模块, 称此程序设计方法为“模块化”。 C语言中用函数实现。 例子:求2个整数中的最大数。
#include ―stdio.h‖ int max(int x,int y) { int r ; if (x>y) r=x; else r=y ; return r ; }main() { int a,b,c; scanf(―%d,%d‖,&a,&b); c=max(a,b); printf(―最大值为%d\n‖,c); }
1.5 C语言程序的结构 (1)1. 一个程序由一个或多个源程序文件组成; 一个源程序文件可包括:① 预处理命令; ② 全局声明; ③ 函数定义; 一个函数可包括:a. 函数首部; b. 函数体; – 一个函数体可包括: a) 声明部分; b) 执行部分;
1.5 C语言程序的结构 (2)P10-122. 函数是C程序的主要组成部分; 3. 函数包括两个部分; 4. 程序总是从main()开始执行,而不管 main()位置如何; 5. 程序对计算机的操作是由函数中的语句完 成的; 6. 每个数据声明和语句后必须有一个分号; 7. 程序应包含注释; 8. C对输入输出实行“函数化”;
C程序
源程序文件1
源程序文件2
源程序文件n…
预处理命令
数据声明
函数1
函数n…
函数首部
函数体
数据声明
执行语句
连线
/* 显示“Hello World!” */ # include <stdio.h> int main(void) { printf(“Hello World! \n”); return 0; }
注释文本 预处理命令 主函数 语句结束 输出函数
1.任何程序都有主函数 2.程序由若干语句组成 3.语句由;结束
本章要点(小组讨论)什么是程序?程序设计语言包含哪些功能? 程序设计语言在语法上包含哪些内容? 结构化程序设计有哪些基本的控制结构? C语言有哪些特点? C语言程序的基本框架如何? 形成一个可运行的C语言程序需要经过哪些 步骤? 7. 如何用流程图描述简单的算法? 1. 2. 3. 4. 5. 6.
思考题1. 分析下列问题,用流程图或NS图描述算法:① 交换两个瓶子中的液体。 ② 求n!(n由用户输入)。 ③ 根据用户输入x的值,计算并输出y的值。 1 ( x 0) y 1 ( x 0) ④ 根据用户输入x的值,计算并输出y的值。 1 ( x 0) y 0 ( x 0) 1 ( x 0)
下一篇:黑龙江省水资源可持续发展初探