结 算法 大学计算机(理工科类) 6学时授课
1 大学计算机(理工科类) 6学时授课
程序设计中的思维方式 程序设计:安排计算机操作的步骤,以逻辑思维工作、人—机 交互语言实现。应注意语言学习与思维方式改变同等重要。 直觉思维:以天资和悟性在整体上对诸多现象直觉领悟而获得智慧 以公理宣告,受人推崇。产生人文学。如孔子、耶酥、诸葛亮等。 类比思维:以事物之间存在的普遍联系而联想、比较、推理,从 而达到举一反三、触类旁通。易形成技术。如前人的鲁班大师。 形象思维:从感性上形象地反映客体的具体形状和姿态,通过意想 联想和想象揭示对象的本质及规律。如中医的脉络、气功、功夫 逻辑思维:在感性认识的基础上,运用概念、判断、推理对客观世 界貓低绷歟科学。如牛顿、爱因斯坦及贝尔·盖慈等 分析:把客观对象的整体分解为一定单元、要素, ifthess 综合:在分析基础上把单元、要素、部分的认识联系起来。 逻辑思维的高级阶段 归纳:通过个别实验得到科学规律的方法。即从现象到本质。 演绎:通过一般规律进一步认识,解决个别问题的方法。 罗辑思维方法正是我们中国人缺乏的思维方法,注意思维方式改变
2 直觉思维:以天资和悟性在整体上对诸多现象直觉领悟而获得智慧 , 以公理宣告,受人推崇。产生人文学。如孔子、耶酥、诸葛亮等。 类比思维:以事物之间存在的普遍联系而联想、比较、推理,从 而达到举一反三、触类旁通。易形成技术。如前人的鲁班大师。 形象思维:从感性上形象地反映客体的具体形状和姿态,通过意想 、 联想和想象揭示对象的本质及规律。如中医的脉络、气功、功夫。 逻辑思维:在感性认识的基础上,运用概念、判断、推理对客观世 界的认识过程。推动了科学。如牛顿、爱因斯坦及贝尔·盖慈等 。 逻辑思维的低级阶段: 分析:把客观对象的整体分解为一定单元、要素,ifthen 综合:在分析基础上把单元、要素、部分的认识联系起来。 逻辑思维的高级阶段: 归纳:通过个别实验得到科学规律的方法。即从现象到本质。 演绎:通过一般规律进一步认识,解决个别问题的方法。 逻辑思维方法正是我们中国人缺乏的思维方法,注意思维方式改变。 程序设计中的思维方式 程序设计:安排计算机操作的步骤,以逻辑思维工作、人—机 交互语言实现。应注意语言学习与思维方式改变同等重要
程序设计课程特点 语言:人类表达意念、交流思想的工具,由语音、词汇和语法组成。 ①机器语言:以“0/1表示数据和指令,使静态机器变成自动机 ②汇编语言:以符号编码数据和指令,使自动工具变成人类助手 程殍蔓铧擾癣性以本示剌撅錐鳙(箅洏清轍罾硪 魁奪嫌:郾瀚樨縴构猖惹篝壅溎表趣算性命砌懣傩。 数据的多型性:以值制/型/位格组织,形成类型、存贮、逻辑结构。 运算符多样用性:算术、关系、逻辑等几十种。有结合性和优先级 算法的灵活性:以指令与数据描述,实现操作步骤(算法)灵活多变 操作的严密性:输入“10”错、全错:变量错结果乱程序错死机。 蘚演绩櫲自由性:面向问题自由化、过程结构化、对象系统化 教強魉辑難训繃筌序渊矧学玊讲巔而分恫题 2程序设计教学须长流水、不断线,不能连续十周草草结束
3 程序设计课程特点 语言:人类表达意念、交流思想的工具,由语音、词汇和语法组成。 ① 机器语言:以‘0/1‘表示数据和指令,使静态机器变成自动机 。 ② 汇编语言:以符号编码数据和指令,使自动工具变成人类助手 。 ③ 高级语言:以人语言表示机器操作方法(算法),人教机器工作 。 ④ 查询语言:以数据结构和对象方法表现主题,人命令机器工作 。 程序设计逻辑性:以“是/否”判断多重推理,严密而清晰,需要耐心 。 二进制特殊性:0/1简单性、信息再生性、单加运算性、编码还原性。 数据的多型性:以值/制/型/位/格组织,形成类型、存贮、逻辑结构。 运算符多样用性:算术、关系、逻辑等几十种。有结合性和优先级。 算法的灵活性:以指令与数据描述,实现操作步骤(算法)灵活多变 。 操作的严密性:输入“1/0”错、全错;变量错结果乱;程序错死机。 程序结构的自由性:面向问题自由化、过程结构化、对象系统化。 教学方法不适应性:内容多、学时短、学生习惯讲教而非引导。 解决办法: 1. 加强逻辑思维训练,循序渐进,引导学生从上到下分析问题。 2. 程序设计教学须长流水、不断线,不能连续十周草草结束
算符变量表达式 法有穷效管确对C程序设计复习音算按步加工数 外指程序设计语言简们盛错误能提示 句函数结构化 环饶结果编译连 语 特点 数据 初学者语言BASC简单易学方便使用不分类型1.输入输出 工程语言 FORTRAN便于计算快速整、实、逻辑2.赋值语句 教学语言 PASCAL思路清晰好懂数组、字符串3.调用语句 计算机工作者操作地址的低级语言增指针(地址)(函数过程 语言C以函数为基本单元结构体联合,程序块) 数据及运算符复杂枚举、位域、流4.控制语句 实用程序设计以对象为基本单元指针应用枚举选择 felse 语言C++使用封装,继承多态类对象,事件循环for 完成软件重组、复用成员(变量函数) while、Do 大众化视窗语利用控件资源组装文窗口按钮控件5辅助语句 言 Visual o艹件嵌入程序实现功能组数据嵌编程空,转向中断 应用查询语言用于管理、网络等,让计算机编程由“怎么做”变为“做什么
4 语 言 特 点 数 据 语 句 初学者语言BASIC 简单,易学方便 使用不分类型 1. 输入输出 工程语言FORTRAN 便于计算,快速 整、实、逻辑 2. 赋值语句 教学语言PASCAL 思路清晰好懂 数组 、字符串 3. 调用语句 计算机工作者 (函数, 过程 语言 C 程序块) 4. 控制语句 实用程序设计 选择 if else 语言C++ 循环for(…) while、 DO 大众化视窗语 5.辅助语句 言Visual C ++ 空,转向,中断 应用查询语言 C程序设计复习 程序设计语言简介 语句算式连数据 言算按步加工数 环饶结果编译连 境遇错误能提示 算符变量表达式 法有穷效行确对 语句函数结构化 言外指针构造类 操作地址的低级语言 以函数为基本单元 数据及运算符复杂 以对象为基本单元 使用封装, 继承, 多态 完成软件重组、复用 利用控件资源组装文 件嵌入程序实现功能 增指针(地址)、 结构体, 联合, 枚举、位域、流 窗口,按钮,控件 组数据,嵌编程 指针,应用,枚举 类, 对象, 事件 成员(变量,函数) 用于管理、网络等,让计算机编程由“怎么做”变为“做什么 ”?
C语言复习 、程序设计概念 数据:类型(算法)、存贮(机器)、逻辑(算题) 算符数据表达式运算符:型式符号优先级结合性、自增减 表达式:算术、关系、逻辑、条件、赋值。 数值算法:解析、判断、穷举、递推、矩阵。 法则编码字控数字符算法:统计、排序、(添删改编辑、转换 控制算法:分支、循环、跳转、交换、分类。 语句:加工数据、组成程序的基本元素。 包括表达式、函数,控制、复合、空语句 语句函数组程序函数:完成具体功能,程序的基本单元 包括函数头、函数参数、函数体、返回值 程序:文件组成、编译运行、预定义、调函数 言外指针构造类指针:可指向变量数组、函数、结构体的地址 结构体:不同类相关数据集合。联合、枚举等
5 算符数据表达式 法则编码字控数 语句函数组程序 言外指针构造类 数据:类型(算法)、存贮(机器)、逻辑(算题) 运算符:型式符号、优先级、结合性、自增减 表达式:算术、关系、逻辑、条件、赋值。 数值算法:解析、判断、穷举、递推、矩阵。 字符算法:统计、排序、(添删改)编辑、转换。 控制算法:分支、循环、跳转、交换、分类。 语句:加工数据、组成程序的基本元素。 包括表达式、函数,控制、复合、空语句。 函数:完成具体功能,程序的基本单元。 包括函数头、函数参数、函数体、返回值。 程序:文件组成、编译运行、预定义、调函数 指针:可指向变量、数组、函数、结构体的地址 结构体:不同类相关数据集合。联合、枚举等 C 语言复习 一、程序设计概念
C 二、C程序设计方法 主函数(输入、调用、输出 逻辑结构输入/出控制中间数据 函 函数类,名(参数) 数 常/变量、局/全域 自定义函数体(变量语句) 类型结构{警(长短、实(单双) 数 返回值(数组名,指针) 结构,联合,指针,位域 库函数(包含、功能、返回) 存贮结构动静内外寄存位 化题义定函数 安排数据逻类贮 算符或/用大小 确定算法基数符 编表达式数拟算符+ 表达式,空语句 /基本艳,推加工编码算式 复合,函数调用 字符:比较,转换 码语 条件 开关 法 排序,查找 控制循环 数值:迭代,积分 辅助
6 细化题义定函数 安排数据逻类贮 确定算法基数符 加工编码算式句 主函数(输入、调用、输出) 函 函数,类,名,(参数) 自定义 函数体(变量,语句) 数 返回值(数组名,指针) 库函数(包含、功能、返回) C程序设计复习 二、C程序设计方法 解析, 穷举 转换,递推 比较,转换 排序,查找 迭代,积分 基本: 算 字符: 法 数值: 输入/出,控制,中间数据 常/变量、局/全域 整(长短)、实(单双) 字符(字串)、数组 结构, 联合,指针,位域 动,静,内,外,寄存,位 逻辑结构 数 类型结构 据 存贮结构 +/-/*/除/与 /或 /非/大小/等 数据+算符+数 算/逻/条/逗/位 表达式, 空语句 复合, 函数调用 条件 开关 控制 循环 辅助 运算符 表达式 语 句 编 码
数有整实字串型 值存补码型不同 据守补码占内存 C语言复习 位出值入保精度 结合题意想逻辑 数据类型 型符制算自转换 构造新类与指针 格式转义修饰符 数据:常值:值确定的常量与变量。如:3、213、25s4、等 变量:值变化的量。用前定义、确定地址、分配单元 整型:短整: short int a, score吗i;字 节存贮 00-00:0:0 运算中自动转换 基 长整: long as an; 00112int<char、 short 本{实型:单精度: float c;axni; boi-mjiz7 i 型双精度: double d,max; 10-00:128:126 Unsigned←必然 字符型:字符: char.2a’;m12song 按需 字串: charan=“ student” 构(数组:∫同类数据集合。一维与多维。 double e float 造 多维可按行列顺序使用。如:aNlb{mn 型结构:不同类型的相关数集合。如:姓名、性别、年龄等 联合:占用同一存贮单元的不同类型相关数据集合。如职业等 指针型:用于存放地址的变量。按地址操作程序紧凑快捷
7 值确定的常量与变量。如:3、-2.13、2.5e-4、PI等。 值变化的量。用前定义、确定地址、分配单元。 short int a,score[n]; long as a[n]; 单精度: float c,ax[n]; double d,max[n]; 字符:char c,sa=’a’; 字串:char a[n]=“student” C 语言复习 三、数据类型 运算中自动转换 int char、short Unsigned 必然 long 按需 double float 数有整实字串型 据守补码占内存 结合题意想逻辑 构造新类与指针 同类数据集合。一维与多维。 多维可按行列顺序使用。如:a[N];b{m][n]; 不同类型的相关数集合。如:姓名、性别、年龄等 占用同一存贮单元的不同类型相关数据集合。如职业等。 用于存放地址的变量。按地址操作程序紧凑快捷。 值存补码型不同 位出值入保精度 型符制算自转换 格式转义修饰符 00-00 0 0 00-01 1 2 : : : 01-11 127 127 10-00 128 -126 : : : 11-10 254 -2 11-11 255 -1 字节存贮 数据:常值: 变量: 整型:短整: 基 长整: 本 实型: 型 双精度: 字符型: 构 数组: 造 型 结构: 联合: 指针型:
变量:计算机中有名子的存贮C语言复习 单元。代替固定类型的数据,四、简单变量 其存贮方式(存贮结构)直接影响着计算机的运行速度 外部变量:即全局变量,定义在本文件之外,用 extern引用。 作局部变量:在定义范围内有效。如函数、复合语句内。 用1.auto型(省略时隐含)。2静态局部型3.寄存器型 域全局变量:定义在函数外(即外部变量), 在函数或程序块内auto(可省),用时分配地址 动态变量:用完回收。如:局部、寄存器、形参。 存 static编译时分配地址,程序结束回收。 贮静态变量:1内部(局部)静态。 static int a, b 类 2.外部(全局)静态。 static int a,b 寄存器变量: register设的定在CPU或主板中的变量。 数据在内存、运行速度快。如: register int
8 外部变量: 作 局部变量: 用 域 全局变量: 动态变量: 存 贮 静态变量: 类 寄存器变量: C 语言复习 四、简单变量 即全局变量,定义在本文件之外,用extern引用。 在定义范围内有效。如函数、复合语句内。 1. auto 型(省略时隐含)。 2. 静态局部型 3. 寄存器型。 定义在函数外(即外部变量), 在函数或程序块内auto(可省),用时分配地址 用完回收。如:局部、寄存器、形参。 static 编译时分配地址,程序结束回收。 1. 内部(局部)静态。static int a,b 2. 外部(全局)静态。static int a,b register 设的定在CPU或主板中的变量。 数据在内存、运行速度快。如:register int 变量:计算机中有名子的存贮 单元。代替固定类型的数据, 其存贮方式(存贮结构)直接影响着计算机的运行速度
1.1数据结构基本概念 1、小故事1“千年虫”问题? 当2000年新年钟声即将敲响,亿 万人们在企盼新的千年会给他们带 来好运的时刻,有些人却难以高兴 00 起来。因为“千年虫”可能给他的 事业带来难以预料的损失,因百年 时间可能为零、飞机难以降落等 2、小故事2“啤酒”和“尿布”的故事 年轻的爸爸在购买尿布之余,总是忘不 了给自己带上几罐啤酒。百货公司将原本 放在两处的啤酒和尿布集中一起摆放,还 提供包括啤酒和尿布在内的日用杂货,结
9 1、小故事1 “千年虫”问题? 当2000年新年钟声即将敲响,亿 万人们在企盼新的千年会给他们带 来好运的时刻,有些人却难以高兴 起来。因为“千年虫”可能给他的 事业带来难以预料的损失,因百年 时间可能为零、飞机难以降落等。 2、小故事2 “啤酒”和“尿布”的故事 : 年轻的爸爸在购买尿布之余,总是忘不 了给自己带上几罐啤酒。百货公司将原本 放在两处的啤酒和尿布集中一起摆放,还 提供包括啤酒和尿布在内的日用杂货,结 果销售额大增。 1.1 数据结构基本概念
启示11数据结构基本概念 1、类似以上的故事情况早有发生,启发我们: ①数据在内存中占有一定的空间,如何组织它们? ②许多数据之间是孤立、离散的,但也可能在数据之间 具有明显的一定关系,需要管理; ③有许多数据具有隐藏在深处的关系,需要挖掘 2、研究数据的三个工具: ①程序设计人员要熟悉数据结构。 ②软件应用人员利用数据库可以动态管理数据 ③高层管理人员利用数据仓库可以获得决策支持 3、数据结构:指数据与数据间相互关系。包括数据类 型结构、数据存贮(逻辑)结构和对数据的操作。即研究计 算机中放置二进制数据及符号的方法。以便快速运行
10 启示 1、类似以上的故事情况早有发生,启发我们: ① 数据在内存中占有一定的空间,如何组织它们? ② 许多数据之间是孤立、离散的,但也可能在数据之间 具有明显的一定关系,需要管理; ③ 有许多数据具有隐藏在深处的关系,需要挖掘。 2、研究数据的三个工具: ① 程序设计人员要熟悉数据结构。 ② 软件应用人员利用数据库可以动态管理数据。 ③ 高层管理人员利用数据仓库可以获得决策支持 3、数据结构:指数据与数据间相互关系。包括数据类 型结构、数据存贮(逻辑)结构和对数据的操作。即研究计 算机中放置二进制数据及符号的方法。以便快速运行。 1.1 数据结构基本概念