大学计算机程序设计c++自学教案

上传人:龙*** 文档编号:603115 上传时间:2017-04-17 格式:PPT 页数:68 大小:2.61MB
返回 下载 相关 举报
大学计算机程序设计c++自学教案_第1页
第1页 / 共68页
大学计算机程序设计c++自学教案_第2页
第2页 / 共68页
大学计算机程序设计c++自学教案_第3页
第3页 / 共68页
大学计算机程序设计c++自学教案_第4页
第4页 / 共68页
大学计算机程序设计c++自学教案_第5页
第5页 / 共68页
点击查看更多>>
资源描述

《大学计算机程序设计c++自学教案》由会员分享,可在线阅读,更多相关《大学计算机程序设计c++自学教案(68页珍藏版)》请在金锄头文库上搜索。

1、14:55 1 自 我 介 绍 姓名:王坤 14:55 2 教 学 用 书 西南交通大学出版社 计算机程序设计基础( C+) 2017年 14:55 3 考核方式 实验项目: 20% 半期考试: 20% 期末考试: 60% 课堂表现:考勤三次缺勤,可取消期末考试资格 14:55 4 第一章 引论 计算机程序设计基础与 Visual C+ 前一页 休息 14:55 5 教学内容 1软件开发和编制的概念; 2计算机算法; 3程序设计语言和开发工具 4. C+基本程序框架 5. 程序设计的简单示例 前一页 休息 14:55 6 一、什么是程序? 程序 就是让计算机完成某项任务的一系列命令的集合。 人

2、们编写程序的过程称为 程序设计(程序开发)。 软件开发和编制 二、程序设计基本步骤 : 1 分析问题 通过原始资料,取得对问题的一个清晰的理解,进而确定解决问题的目标(称为输出)以及实现该目标所需要的条件(称为输入) 2规划数据结构与设计算法 数据结构 指数据的表示及相关操作;算法 描述了求解问题的步骤或规则。 设计合理的数据结构可以简化算法,好的算法使程序具有更高的效率 3验证算法 使用多组样本数据,通过手工计算,对方案的正确性进行证明和验证 4编码实现 选用一种程序设计语言(如 C+语言)将算法转换成计算机能够理解的程序(称为编程) 5调试和测试程序 “调试” 就是查找和排除程序错误,直到

3、能够得到正确的运行结果为止。 “测试” 是在计算机上用样本数据运行程序,测试代码的正确性。 程序中的错误可能是 语法错误 ,也可能是 逻辑错误 。大多数语法错误容易找到和改正,但逻辑错误就较难找到,因为导致逻辑错误的原因很多 前一页 休息 14:55 11 计算机算法 什么是计算机算法? 计算机算法规定了利用计算机解决某个(或某类)问题的一系列运算(或称操作序列),它是对计算机解题方案 的准确与完整描述。 一、算法的表示方法 1.自然语言 2.传统流程图 3.结构化流程图 ( 1)三种基本结构的流程图 ( 2) N-S流程图 自然语言是人们日常使用的语言,用自然语言表示算法通俗易懂; 但文字冗

4、长,含义往往不太严格,容易出现 “歧义性”,要根据上下文才能判断其正确含义。而且用自然语言来描述包含分支和循环的算法,很不方便。因此,除了一些简单的问题外,一般不用自然语言描述算法。1.自然语言表示算法 例 计算 5! 步骤 1 : 先 求 1 2 , 得 到 结 果 2 步骤 2 : 步 骤 1 的结果 2 乘以 3 , 得 到 结 果 6 步骤 3 : 步 骤 2 的结果 6 乘以 4 , 得 到 结 果 24 步骤 4 : 步 骤 3 的结果 24 乘以 5 , 得 最 终 结果 120 设 T 为被乘数, I 为乘数S1 :输入 n 值S2: 将 1 TS3 :将 1 IS4 :将 T

5、 I TS5 :将 I+1 IS6 :若 I n 成立,返回重新执行 S 4 ,以及其后的步骤 S5 、 S6 ;否则执行 S7S7 :输出 T ,算法结束例 计算 n! ? 2I 流程图是用一些图框表示各种类型的操作用图形表示算法 , 直观形象 , 易于理解美国国家标准化协会 A N SI ( A m er i canN at i onal St andard I nst i t ut e ) 规定了一些常用的流程图符号2.传统流程图表示算法 前一页 休息 14:55 17 起止框 输入输出框 判断框 处理框或 流程线 联结点 注释框这些符号已为世界各国程序设计者普遍采用 前一页 休息 14

6、:55 18 例 将求 n!的算法用传统流程图表示 设 T 为被乘数, I 为乘数 S1 :输入 n 值 S2: 将 1 T S3 :将 1 I S4 :将 T I T S5 :将 I+1 I S6 :若 I n 成立,返回重新执行 S 4 ,以及 其后的步骤 S5 、 S6 ;否则执行 S7 S7 :输出 T ,算法结束 3.结构化流程图表示算法 A B A、顺序结构 ( 1)三种基本结构的流程图 1966年, Bohra和 Jacopini提出了三种基本结构作为表示算法的基本单元 前一页 休息 B、选择结构 (又称选取结构 ) 前一页 休息 14:55 21 当型循环结构 直到型循环结构当

7、型循环和直到型循环结构条件互逆C、循环结构 (又称重复结构 ) 前一页 休息 14:55 22 传统流程图的弊端 对流程线的使用没有严格限制,流程图变得毫无规律,使人难以理解算法的逻辑。这种情况如下图算法的可靠性和可维护性难以保证1971 年由两位美国学者提出了一种新的流程图形式,这种流程图完全去掉了带箭头的流程线,称为 N-S 流程图。 N - S 流程图符号如下: 顺序结构AB( 2) N-S流程图 选择结构 循环结构 例 用 N-S流程图表示求 n!的算法 二、算法要素与效率: 1、算法的特征 有效性: 算法中的每一步骤都能够被计算机理解和执行,不是抽象和模糊的 有穷性: 算法应该在执行

8、有限的步骤后结束,不能是无限的 确定性: 组成算法的每一步骤应该有确定的语义,不能有任何歧义 有零个或多个输入: 部分数据在操作之前需要通过外界赋值,称为输入 有一个或多个输出: 算法的运算结果即是算法的输出 正确性 对于任意的一组输入,包括合理和不合理的输入,总能得到预期的结果。 可读性 清晰易读的算法有助于对算法的理解,易于调试和修改。 健壮性 对于非法的输入,能够做出适当的反应或异常情况处理。 高效性 占用计算机资源量(主要是运行时间和存储空间)越少效率越高。 14:55 28 2、算法的性能: 14:55 29 通常把对算法效率的度量,称为 算法的复杂性分析 。它是算法运行所需要的计算

9、机资源的量,是依赖于算法要解决的问题的规模、算法的输入和算法本身的函数。 其中,需要的时间资源的量称为 时间复杂性 ,需要的存储空间资源的量称为 空间复杂性 。 3、算法的评价 14:55 30 算法一:从第一个元素 a1开始逐一比较,此时,最好的情况是 a1就是要查找的元素,只需比较一次。最坏情况则需要比较 n 次,即一直比较到 an才能得到结果;假定每个元素与 b相同是等概率的,则平均需要比较 n/2 次。例 欲在按非降次序排列的 n个元素 a1,a2,a n(aia i+1)中查找是 否有与 b相同的元素。 前一页 休息 14:55 31 算法二: 采用折半查找 (二分查找 )的方法,即

10、先用位居中点的元素 a( n/2) 与 b比较,若 b= a( n/2) ,则查找成功。若 ba( n/2) ,同时 b a( n/2) ,则在 a1,a2, ,a( n/2-1) 中采用上述方法继续查找;否则在 a( n/2+1) ,a( n/2+2) ,a n 中采用上述方法继续查找。这种算法显然要优越于前一种算法,因为最多也只需要比较log2n次。 不同类型的问题有不同的算法 同一类型的问题也有多种算法 解决一个实际问题时,可能会有多种算法可供使用,我们需要对这些算法进行分析,选择最优的一个使用。 前一页 休息 14:55 33 程序设计语言和开发工具 一、程序设计语言简介 人与机器交换

11、信息的语言。 四个阶段: 1.机器语言 2.汇编语言 3.面向过程的高级语言 4.面向对象的高级语言 14:55 34 1.机器语言: 由二进制数组成的指令代码的集合,机器能直接识别,各种机器指令系统互不相同。 计算机编码: 常用 ASCII码(美国标准信息交换编码) American Standard Code for Information Interchange 14:55 35 示例:按 ASCII码将 A=1+2 写成机器语言 字符 ASCII码 十进制 A 01000001 65 = 00111101 61 1 00110001 49 + 00101011 43 2 0011001

12、0 50 14:55 36 按 ASCII码写出的 A=1+2的机器语言: 010000010011110100110001001010110011001 机器语言优点: 质量高、执行速度快、占存储空间小。 机器语言缺点: 编程难度大、指令难记、繁琐、直观性差、容易出错、检查调试困难、通用性差不兼容。 2.汇编语言 用助记符代替指令代码,符号化 例: ADD (加法) DIV (除法) 汇编语言不能直接在机器上运行,要转换成机器语言才能执行。 例:汇编语言源程序: main proc pay mov ax,dseg mov ax,0b00h add ax,dx mov al,bl mul bl

13、,ax mov bl,04h 汇编语言优点: 质量高、执行速度快、占存储空间小、可读性有所提高。 汇编语言缺点: 类似机器语言,通用性、可移植性差,与人的自然语言还相差很悬殊。 机器语言和汇编语言也称为 低级语言 。 3.面向过程的高级语言 特点:接近人们习惯用的自然语言和数学语言,通用性强,可移植性好。 常见语言: BASIC 、 PASCAL、 FORTRAN、C、 . 示例: input “ Entername”;name$ input “ Enterhoursworked”;hours input “Enter pay rate”;rate grossPay=hours*rate fe

14、deralTax=.02*grossPay socSecTax=.07*grossPay stateTax=.06*grossPay netPay=grossPay-federalTax-socSecTax-stateTax print name$,netPay 4.面向对象的高级语言 围绕真实世界中的对象概念来组织模型,使问题求解更容易,程序的编制、调试和维护更容易。 常见的面向对象程序设计语言: Visual C+、 Visual Basic、 Java. 示例: class Date public: void changeDate(int month,int day,int year); void displayDate(); private: int month; int day; int year; ; Date payDay; 高级语言(面象过程及面象对象)所编写的程序均不能直接在计算机上执行,要转换成机器指令代码。 两种转换方式: (1)编译方式 通过编译程序(编译、链接)将整个程序转换为机器语言。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号