大学计算机基础与计算思维

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【问题4-1】用户输入一个三位自然数,让计算机输出佰位、十位和个位。
开始 输入三位数x 用100除x取出商的整数部分a 用10除(x-100a)取出商的整数部分b 用x减去(100a+10b)得到个位c 输出a、b、c 结束
1-25 Copyright © SWFU-SCI, 2012. All rights reserved.
状态10,读到的值为1的规则无定义,从而停机。 计算结果为5
1-16 Copyright © SWFU-SCI, 2012. All rights reserved.
图灵机就其计算能力而言,它能模拟任何现代的 计算机。丘奇-图灵论题也已经得到计算机科学界 的公认。
图灵机形式简洁且功能强大,但是图灵机形式化 表示一个算法非常复杂。比如乘法需要近23条规 则。
计算机语言是人与计算机沟通的桥梁。
1-28
Copyright © SWFU-SCI, 2012. All rights reserved.
4.5.1 C语言
C语言于1972年由Dennis Ritchie在贝尔电话实验室实现 Unix操作系统时开发。
美国国家标准协会(ANSI)于1983年为C语言制定了第一个 ANSI标准,称为ANSI C,简称标准C。
(2)非数值计算问题
通常要用到一些复杂的数据结构
1-18
Copyright © SWFU-SCI, 2012. All rights reserved.
4.3 解决问题的一般方法
用计算机解决问题的一般方法:
(1)描绘出解决问题的步骤
自然语言 、框图 等 (2)用程序设计语言实现上述步骤
1-19
Copyright © SWFU-SCI, 2012. All rights reserved.
4.1 可计算问题
算法的概念: 算法(Algorithm)是求解特定问题的步骤。 算法的五个重要特性: (1)有穷性 一个算法必须在执行有穷步之后 结束,且每一步都可在有穷时间内完成。 (2)确定性 算法中每个步骤必须有确切的含 义,读者理解不会产生二义性。 (3)可行性 一个算法是能行的,即算法中描 述的操作都是可以通过已经实现的基本运算执行有限 次来实现的。 (4)输入 一个算法有0个或多个输入。 (5) 输出 一个算法有一个或多个输出。 1-4 Copyright © SWFU-SCI, 2012. All rights reserved.
1-7 Copyright © SWFU-SCI, 2012. All rights reserved.
4.2 图灵机
英国数学家图灵于1936年发表《论可计算数及其在 判定问题中的应用》一文,文中提出了一种十分简单而 运算能力极强的理想计算装置———图灵机的概念,推
进了计算机理论的发展。图灵机的基本思想就是用机器
由于计算机已经发明出来,为了充分利用计算机 的计算功能,因此通常用框图(流程图)、自然 语言来表示算法。
1-17 Copyright © SWFU-SCI, 2012. All rights reserved.
4.3 解决问题的一般方法
用计算机可以解决两类问题: (1)数值计算问题
抽象出数学模型 设计算法 编程 测试 修改
大学计算机基础与计算思维
***大学 计算机与信息学院
第四章 算法与程序设计基础
本章作者:***
1-2
Copyright © SWFU-SCI, 2012. All rights reserved.
ቤተ መጻሕፍቲ ባይዱ
本章主要内容
4.1 可计算问题 4.2 图灵机 4.3 解决问题的一般方法 4.4 用框图表示解决问题的算法 4.5 常用语言简介 4.6 Python程序设计初步 附录 Python常用知识
4.4 用框图表示解决问题的算法
框图又称流程图,是表达程序设计思想和程序设计步骤 的一种直观工具。
开始
结束
流程线
1-20
Copyright © SWFU-SCI, 2012. All rights reserved.
4.4 用框图表示解决问题的算法
功能框
例子1: x=1 y=3*x 例子2: x=0.5 y=math.sin(x)
C++、C#、Java语言这三种语言都是从C语言派生出来的,C 语言的知识几乎都适用于这三种语言。 C语言是一种通用的、程序结构化、面向过程的计算机程序 设计语言。
种抽象的计算模型。实际上,一切“可计算”函数
都等价于图灵机可计算函数,而图灵机可计算函数
类又等价于一般递归函数类。图灵机能表示算法、
程序和符号行的变换,因而可作为电子计算器的数
学模型。
1-9 Copyright © SWFU-SCI, 2012. All rights reserved.
图灵(Turing) 图灵机(Turing Machine)的艺术表示
(3)是带字母表,其中且; (4):Q -> Q{L,R}是转移函数,其中L,R 表示读写头是向左移还是向右移; (5)q0Q是起始状态; (6)qacceptQ是接受状态; (7)qrejectQ是拒绝状态,且qaccept qreject。
1-13 Copyright © SWFU-SCI, 2012. All rights reserved.
来模拟人们用纸和笔进行数学运算的过程,他把这样的
过程看作是两种简单的动作,即在纸上写上或擦除某个
符号;把注意力从纸的一个位置移动到另一个位置。
1-8 Copyright © SWFU-SCI, 2012. All rights reserved.
图灵机在理论上能够模拟现代数字计算机的一
切运算,可视为现代数字计算机的数学模型,是一
例子: if x>0: n=n+1
1-22
Copyright © SWFU-SCI, 2012. All rights reserved.
4.4 用框图表示解决问题的算法
双分支判断框 — 用于解决双分 支问题
条件
False
True
例子: if x>0: y=1+2*x else: y=x**2
1-23
4.1 可计算问题
算法的设计要求: (1)正确性 算法应当满足具体问题的需求。对 正确的输入应有正确的输出。 (2)可读性 算法应当尽可能设计得易读易懂, 以便以进行阅读和修改。 (3)键壮性 当输入数据非法时,算法也能适当 地作出反应或处理,而不会意外停止或输出错误结果。 (4)高效率 设计算法时应考虑使算法的执行时 间尽可能短。 (5)低存储量 设计算法时应考虑使算法占用的存 储空间尽可能少。
【问题4-2】由键盘输入一个整数,如果是偶数则输出“偶数”,如果 是奇数是输出“奇数”。
开始 输入整数x False x被2整除 True 输出“偶数” 输出“奇数”
结束
1-26
Copyright © SWFU-SCI, 2012. All rights reserved.
【问题4-3】 编程计算1+2+3+…+n 的值,n由键盘输入。 开始 i、s赋初值1、0 输入n
0 , 1->0 , 0
1 , A->10 , 1,
1 , 1 ->1 ,1, R 遇到未定义的规则时停机,纸带上的内容就是计 算结果。
1-15 Copyright © SWFU-SCI, 2012. All rights reserved.
例 用加法图灵机计算3+2
以1的个数表示数值,在纸带上的数据是
1-12 Copyright © SWFU-SCI, 2012. All rights reserved.
4.2.2 图灵机的形式化定义
一台图灵机是一个七元组(Q, ,,,q0,qaccept, qreject), 其中Q,,都是有限集合,且满足: (1)Q是状态集合;
(2)是输入字母表,其中不包含特殊的空白符 ;
1-10
Copyright © SWFU-SCI, 2012. All rights reserved.
4.2.1 图灵机的图形表示
图灵机由以下几个部分组成: (1)一条无限长的纸带TAPE。
(2)一个读写头HEAD。
(3)一套控制规则TABLE。 (4)一个状态寄存器。 图灵认为这样的一台机器就能模拟人类所能进 行的任何计算过程。
1-5 Copyright © SWFU-SCI, 2012. All rights reserved.
4.1 可计算问题
计算的可行性是算法设计与分析的基础,也是计 算机科学的理论基础。为了回答什么是计算,什么是 可计算性等问题,许多科学家提出了计算模型。 K.哥德尔 S.C.克林尼提出了递归函数。 A.M.图灵和E.波斯特各自独立地提出了抽象计算 机的概念(后人把图灵提出的抽象计算机称为图灵机 )。 胡海星和宋方敏提出了算盘机。 理论上已经证明,递归函数、 图灵机、算盘机 具有相同的计算能力。
1-6 Copyright © SWFU-SCI, 2012. All rights reserved.
4.1 可计算问题
可计算问题:
能够在上述任何一种数学模型上编出算法(有 限步骤)进行计算的问题称为可计算问题,否则就是 不可计算问题。 丘奇-图灵论题:
能够在抽象计算机上编出算法(有限步骤)进行 计算的问题称为可计算问题,否则就是不可计算问 题。 该论题是一个经验结论,未经证明。已得到计 算科学界的公认。
请同学们猜一下该规则的意思。
1-14 Copyright © SWFU-SCI, 2012. All rights reserved.
加法图灵机
根据图灵机的计算规则,人们设计了不同的图灵 机来完成不同的计算。如加法图灵机、乘法图灵机、 除法图灵机等。加法图灵机的规则如下: (简化版)
0 , 0->1 , 0, R
用于向程序输入数据 例子: x=input('x=') 用于向程序输出数据 例子: print s
Copyright © SWFU-SCI, 2012. All rights reserved.
输入框
输出框
1-21
4.4 用框图表示解决问题的算法
单分支判断框—用于解决单分支问题
False
条件 True
Copyright © SWFU-SCI, 2012. All rights reserved.
4.4 用框图表示解决问题的算法
循环框—用于解决需要反复进行的问题
例子: n=100 i=1 s=0 while i<=n: s=s+i i=i+1 print s
条件 True
False
1-24
Copyright © SWFU-SCI, 2012. All rights reserved.
111A110 ,表示3+2。加法图灵机的规则如下:
(1) 0 , 1->0 , 0 (2) 0 , 0->1 , 0, R (3) 1 , A->10,1 (4) 1 , 1->1 ,1, R (5) 遇到无定义规则时停机 0 0 1 1 1 1 A 1 1 0 1 0 1 1 A 1 1 0 0 1 1 A 1 1 0 1 0 1 1 A 1 1 0 0 1 1 A 1 1 0 10 0 1 1 1 1 1 0
i <= n
False
True
将i累加到s中 i的值自增1
输出s
结束
1-27 Copyright © SWFU-SCI, 2012. All rights reserved.
4.5 常用语言简介
如果需要把用框图、自然语言表示的算法 在计算机上执行,还需要用某种计算机语言表 示出来。 算法是程序的灵魂,语言是灵魂的表示。
图灵机的计算规则
根据图灵机的形式化定义,图灵机的计算规则如
下:
aa, x -> bb, y, D 中aa是当前状态,x是当前格子的值,bb是程序下 一步的状态,y是当前格的修改值,D是读写头移动的 方向(L为左移,R为右移,空则表示不移动)。 具体规则由算法设计者根据计算需要而定义。 如: 0,0->1,0,R
1-11 Copyright © SWFU-SCI, 2012. All rights reserved.
图灵机模型
读写头沿着固定的纸带移动。要进行的指令 (q1)存储在读写头内。图中“空白”的纸带全部 填入0。有阴影的方格,包括读写头扫描到的空白, 标记了1,1,B的那些方格,和读写头符号,构成了整 个系统的状态。
相关文档
最新文档