ch1 绪论及算法概述20131015

时间:2022-11-25 14:30:52 作者:壹号 字数:5382字

课程说明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个月应发工资是:%fn”,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=%dn”,s);

a=1,b=2

}输出s 运行结果: 结束 a+b=3

② 选择(分支)结构 例:判断用户输入的整数是否是偶数。开始 输入n #include “stdio.h” main() { int n; scanf(“%d”,&n); if (n%2==0) printf(“yesn”); else printf(“non”); 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(“%dn”,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(―最大值为%dn‖,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

…… 此处隐藏32字 ……

执行语句

连线

/* 显示“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)