160 likes | 360 Views
计算机科学与技术系. C 程序设计. 课程说明. 教学重点: 使学生掌握 程序设计的思想和方法 ,培养学生的实践编程能力。 教学方法: 以程序设计为主线,从应用出发,通过案例和问题引入内容; 重点讲解程序设计的思想和方法; 结合相关的语言知识的介绍 教学组织实施: 主题-案例-实训. Ch1 概述及算法. 讲授:潘洁珠 合肥师范学院计算机科学与技术系. 1.1 程序和程序设计. C 程序 程序:用某种编程语言实现解决某一问题的算法的代码序列。 C 程序 一个简单的应用题: 小张工作了三个月,能拿到多少工资?.
E N D
计算机科学与技术系 C程序设计
课程说明 • 教学重点:使学生掌握程序设计的思想和方法,培养学生的实践编程能力。 • 教学方法:以程序设计为主线,从应用出发,通过案例和问题引入内容;重点讲解程序设计的思想和方法;结合相关的语言知识的介绍 • 教学组织实施:主题-案例-实训
Ch1 概述及算法 讲授:潘洁珠 合肥师范学院计算机科学与技术系
1.1 程序和程序设计 • C程序 • 程序:用某种编程语言实现解决某一问题的算法的代码序列。 • C程序 • 一个简单的应用题:小张工作了三个月,能拿到多少工资? #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 算法——程序设计的灵魂 • 算法:为解决某个特定问题而采取的确定且有限的步骤。 • 具有5个特性 • 有穷性:一个算法应包含有限个步骤,在合理时间内完成。 • 确定性:算法中每个指令都必须有确定含义,无二义性,相同输入当相同结果 • 可行性:算法中指定的操作,都可以通过已经实现的基本运算执行有限次后实现。 • 有零个或多个输入 • 有一个或多个输出
起止框 处理框 输入输出框 判断框 连接点 流程线 1.3 流程图与NS图 • 流程图常见图形 2.NS图:去掉流程线,算法的每一步都用矩形框来描述。
开始 a=1,b=2 a=1,b=2 s=a+b s=a+b 输出s 输出s 运行结果: a+b=3 结束 1.4 结构化程序设计和模块化结构 • 结构化程序(三种基本结构) • 顺序结构例:求两个整数和。 #include “stdio.h”main(){ int a,b,s; a=1; b=2; s=a+b; printf(“a+b=%d\n”,s); }
开始 输入n 输入n Y N n为偶数? 判断n是否是偶数 输出“是” 输出“否” Y N 输出“是” 输出“否” 结束 • 选择(分支)结构 例:判断用户输入的整数是否是偶数。 #include “stdio.h”main(){ int n; scanf(“%d”,&n); if (n%2==0) printf(“yes\n”); else printf(“no\n”); }
i=1,s=0 i<=100 开始 s=s+i i=i+1 i=1,s=0 输出s s=s+i i=i+1 Y i<=100 ? N 输出s 结束 • 循环结构 例:求1+2+…+100。 #include “stdio.h”main(){ int i=1,s=0; while (i<=100) { s=s+i; i=i+1; } printf(“%d\n”,s); }
真 当型循环结构 直到型循环结构 A 假 P 当p为真 P A 真 A 假 A 直到P为假 (a) (b) (b) (a) • 循环结构 • 当型循环 • 直到型循环
选择结构 直到型循环结构 当型循环结构 顺序结构 当p为真 A A 直到P为真 P A B 假 真 A B • 三种基本控制结构共有的特点是: • 有一个入口,有一个出口; • 结构中每一部分都有被执行到的机会,也就是说,每一部分都有一条从入口到出口的路径通过它(至少通过一次); • 没有死循环(无终止的循环)。
模块化结构 • 将复杂的大任务划分成若干子任务,每个子任务完成一个简单功能。程序设计时,程序设计人员分别完成一个或多个小模块,称此程序设计方法为“模块化”。 • 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); }
思考题 • 分析下列问题,用流程图或NS图描述算法: • 交换两个瓶子中的液体。 • 求n!(n由用户输入)。 • 根据用户输入x的值,计算并输出y的值。 • 根据用户输入x的值,计算并输出y的值。