宜宾学院教案

C语言程序设计_课程

周 次

第1周,第2次课

章 节

名 称

第二章 程序的灵魂——算法

授 课

方 式

课堂讲授(√ );实验课( );其他方式( )

教 学

时 数

2

教 学 目 的

1、了解算法的概念

2、掌握结构化程序的三种基本结构,及算法的程序流程图、N-S图表示法

教学重点与难点

重点:

怎样表示一个算法

难点:

三种基本结构,N-S图表示法

参考资料

《C语言程序设计教程》 谭浩强 高等教育出版社

《C高级实用程序设计》 王士元 清华大学出版社

《C程序设计及应用》 李盘林、孟宪福著  高等教育出版社

《C语言程序设计》 王树义 钱达源 编著 大连理工大学出版社

C语言程序设计课程教案 何明儒教授等 四川大学计算机学院

授课内容与过程

步骤一 复习引导

从C程序的构成到C程序的设计过程

步骤二 讲授新课

一个程序包括以下两方面内容:

1.? 1. 对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构;

2.?对操作的描述。即算法,为解决一个问题而采取的方法和步骤。

3.?著名计算机科学家Wirth提出一个公式:数据结构+算法=程序

?

简单的算法举例

?

例1:设有两个杯子A和B,分别盛放酒和醋,要求将它们互换。

S1:C ← A

S2:A ← B

S3:B ← C

例2:从10个数中挑出最大数,并将之置入max。

S1:i=1, 令max等于第一个数;

S2:i=i+1;

S3:将max与第 i 个数进行比较,若前者小于后者,将修正max为第 i 个数;否则进行S4;

S4:若i <10,则转到S2;否则输出max并结束。

例3:求1~100的和

S1:sum←0,t←1;

S2:sum←sum+t

S3:t←t+1

S4:若t <= 100,则转到S2,否则转到S5;

S5:输出sum,结束。

例4:求n!

S1:s ← 1,t ←1;

S2:s ← s * t;

S3:t ← t+1;

S4:若 t <= n,则返S2,否则输出s并结束。

?

算法的特征:

1.有穷性;

2.确定性;

3.有零个或多个输入;

4.有一个或多个输出;

5.有效性;

怎样表示一个算法

1.用自然语言表示算法–通俗易懂,但易出现“歧义性”。

2.用流程图表示算法–直观形象,易于理解。

程序的三种基本结构:顺序结构、选择结构、循环结构

B

B

A

A

B

P

A

P

A

P

A

P

3.用N-S流程图表示算法

A?

A

?

B

P

T

F

A

B

A

当P成立

A

当P成立

4.用伪代码表示算法

?

5.用计算机语言表示算法(即实现算法)

我们的任务是用计算机解题,也就是要用计算机实现算法。计算机是无法识别流程图和伪代码的。只有用计算机语言编写的程序才能被计算机执行(当然还要经过编译成目标程序才能被计算机识别和执行)。因此,在用流程图或伪代码描述出一个算法后,还要将它转换成计算机语言程序。

用计算机语言表示算法必须严格遵循所用语言的语法规则,这是和伪代码不同的。我们将前面介绍过的算法用C语言表示。

四、结构化程序设计方法

前面介绍了结构化的算法和三种基本结构。一个结构化程序就是用高级语言表示的结构化算法。用三种基本结构组成的程序必然是结构化的程序,这种程序便于编写、阅读、修改和维护。这就减少了程序出错的机会,提高了程序的可靠性。

结构化程序设计强调程序设计风格和程序结构的规范化,提倡清晰的结构。如果面临一个复杂的问题,是难以一下子写出一个层次分明、结构清晰、算法正确的程序的。结构化程序设计方法的基本思路是,把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。

具体说,采取以下方法保证得到结构化的程序。

(1) 自顶向下;(2) 逐步细化;(3) 模块化设计;(4) 结构化编码。

在接受一个任务后应怎样着手进行呢?有两种不同的方法:一种是自顶向下,逐步细化;一种是自下而上,逐步积累。以写文章为例来说明这个问题。有的人胸有全局,先设想好整个文章分成哪几个部分,然后再进一步考虑每一部分分成哪几节,每一节分成哪几段,每一段应包含什么内容,如图2.36示意。

用这种方法逐步分解,直到作者认为可以直接将各小段表达为文字语句为止。这种方法就叫 做“自顶向下,逐步细化”。

结构化程序设计方法强调:1.程序设计风格和程序结构的规范化,2.提倡清晰的结构。

①自顶向下

②逐步细化

③模块化设计

④结构化编码

?

步骤三--课堂小结:

1.程序的三种基本结构:顺序、选择、循环

2.5种描述算法的方法,关键是N-S图

3.灵活运用三种基本结构

c语言程序设计 k,《C语言程序设计》谭浩强版-教学教案 k.doc相关推荐

  1. c程序设计语言看第几版,到底该怎样评价谭浩强版《C程序设计》?

    原标题:到底该怎样评价谭浩强版<C程序设计>? 我想学过C语言的人都应该对谭浩强版<C程序设计>不陌生,有人对它大加赞赏,也有人对它吐槽颇多.那我们究竟应该怎样看待这本书呢?今 ...

  2. 谭浩强版c语言笔记(1)

    第1章 程序设计和c语言 1)机器指令:计算机能够识别和接受的二进制代码 2)机器语言:机器指令的集合 3)计算机程序:控制计算机操作的指令 第2章 一个程序主要包含两方面信息:对数据的描述(数据结构 ...

  3. C语言中怎么用循环统计买法,C语言入门谭浩强版简单选择法冒泡法用数组和for循环进行学生成绩简单统计处理...

    C语言入门谭浩强版 简单选择法排序 冒泡法排序 用数组和for循环进行学生成绩简单统计处理 例如:求个人平均分 学科平均分 单科最高分等 简单选择法 #include #define N 10 voi ...

  4. c语言教材课后题答案6,C语言谭浩强版6章课后练习题答案.doc

    C语言谭浩强版6章课后练习题答案 第6章课后练习题 单项选择题 以下程序执行后,a是: int a =0,i,j; for (i=5;i>0;i--) for(j=0;j<4;j++) a ...

  5. C程序设计谭浩强版总结笔记

    结构体 注:结构体类型的名字是由一个关键字struct和结构体名组合而成的(例如struct Student).结构体名是由用户指定的,又称"结构体标记",以区别于其他结构体类型. ...

  6. 谭浩强版 c语言程序设计,c语言程序设计

    c语言程序设计 (2000年清华大学出版社出版的图书) 编辑 锁定 讨论 上传视频 <c语言程序设计>是2000年清华大学出版社出版的图书,作者是谭浩强.[1] 书    名 C语言程序设 ...

  7. 谭浩强c语言第7章14题,谭浩强C语言课件第7章.ppt

    谭浩强C语言课件第7章.ppt 第7章 自定义数据类型 7.1 结构体类型 7.2 共用体 7.3 枚举类型 7.4 用typedef声明类型 C++提供了许多种基本的数据类型(如int.float. ...

  8. 谭浩强c语言第六章兔子数列,谭浩强 C语言 第6章_循环.ppt

    谭浩强 C语言 第6章_循环 第六章 本章要点 循环的基本概念 不同形式的循环控制 多重循环问题 主要内容 6.1 概述 6.2 goto语句以及用goto语句构成循环 6.3 用while语句实现循 ...

  9. 谭浩强c语言第7章14题,谭浩强C语言_第7章_函数2.ppt

    谭浩强C语言_第7章_函数2 第八章 函数 函数概述 #include void main() { float average(float array[10]); /* 函数声明 */ float s ...

  10. 清华大学谭浩强c语言PPT,C语言课件清华大学谭浩强版.ppt

    ,,,第一章 C语言概述,,1.1 C语言发展历史 程序设计语言的发展,CPU指令系统,由0.1序列构成的指令码组成 如:10000000 加 10010000 减,用助记符号描述的指令系统 如 AD ...

最新文章

  1. ICCV 2019论文投稿数破纪录,中科院、清华名列前茅,苹果垫底
  2. ActiveMQ简介与安装
  3. Python学习1 基础语法 数据类型 计算机基础
  4. elementui的tree组件页面显示不出数据_只要10分钟,教你配置出炫酷的数据可视化大屏...
  5. labview报表生成工具包_后台开发java 常见工具包 netty、mq 、分布式锁等,干货
  6. qq传文件 udp_软考网络工程师备考-10:网络互连与互联网3-TCPUDP
  7. 串口接收到的浮点数(解码后出现的错误)
  8. Vector Math for 3D Computer Graphics (Bradley Kjell 著)
  9. 【应用多元统计分析】CH5 判别分析3——贝叶斯判别
  10. Win7安装.net 4.7.2
  11. 汽车ECU的bootloader程序设计
  12. 零基础怎么学好3D建模?只需要了解下面几点
  13. Dichotomy二分法学习笔记
  14. 浅谈内存屏障,C++内存序与内存模型
  15. Python爬取京东笔记本电脑,来看看那个牌子最棒!
  16. 第四代反应堆的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  17. 机器学习_深度学习毕设题目汇总——车辆车牌
  18. P1196 [NOI2002] 银河英雄传说(带边权并查集)
  19. 【安卓SDK学习之anyChatSDK】 1_1 实现用户登录和房间进出(根据官方HelloAnyChat的demo整理的简要的开发流程)
  20. wireshark mysql 过滤_Wireshark过滤总结

热门文章

  1. python编程从入门到实践(第2版)第二章练习题解答
  2. linux下blast设计引物,Primer-BLAST:NCBI的引物设计和特异性检验工具
  3. 光纤尾纤的型号和作用有哪些?
  4. KML和KMZ 用什么软件打开?
  5. 国内开源镜像站点汇总
  6. Gephi教程———数据输入
  7. IEC 61850标准中ACSI映射实现研究
  8. W3CSchool离线文档下载
  9. roboguide程序导出_FANUC ROBOGUIDE下载-FANUC ROBOGUIDE(发那科机器人编程软件)下载v9.1-西西软件下载...
  10. VTD-XML解析XML入门简介