大学计算机共85页第2页大学计算机基础第一章基于计算机的问题求解第二章计算机信息数字化基础第三章计算机的工作原理与硬件体系结构第四章计算机软件平台第五章计算机网络平台第六章数据处理与数据库第七章关于计算第八章算法与程序设计第九章实用软件第十章计算机科学前沿技术共85页第3页1.1问题描述与抽象1.2基于计算机的问题求解方法2.3计算机科学学科的知识领域第1章基于计算机的问题求解实验1图灵机模型与计算机硬件系统虚拟拆装实验共85页第4页第二章计算机数字化基础问题导入:因特网梅森素数大搜索?共85页第5页1.1问题描述与抽象1.1.1问题描述不仅是靠计算机技术,而更重要的是靠分析问题、解决问题的能力,本课程我们强调的是计算思维的能力共85页第6页1.1问题描述与抽象1.1.2问题抽象1.抽象的概念2.实际问题的抽象实例抽象就是把事物的特点从具体实例里面抽取出来,形成一套适合所有实例的框架。住宅小区在两个楼前面建一个小型花坛,两个楼横向之间的间距为80米,从花坛到两个楼之间铺两条小路,请问小路要铺多长?图1-1共85页第7页1.1问题描述与抽象问题描述——鸡兔同笼1.1.3建模与求解抽象过程352494xyxy鸡x兔y数学模型分析问题和抽象方法不同,求解的途径就不同共85页第8页1.1问题描述与抽象1.1.4面向计算机的问题分析1.面向计算机的问题抽象计算机抽象包括:过程抽象数据抽象过程抽象是针对对象的行为特征数据抽象就是针对对象的属性共85页第9页1.1问题描述与抽象1.1.4面向计算机的问题分析2.鸡兔同笼问题的计算机求解面向计算机的问题分析----问题所涉及的参数----答案要满足的条件计算机求解过程开始取一种可能情况判断是否符合条件找到答案输出所有可能性均尝试完毕结束否是否是鸡兔数量为整数;鸡兔总数为35;鸡兔总脚数为94根据这个流程图,说明用计算机解决该问题与人的思维解决该问题,有哪些相同与不同之处?图1-2共85页第10页1.1问题描述与抽象1.1.4面向计算机的问题分析[情景问题1-1]要对n阶方程组求解,理论上是可以用行列式的方法求解得,需要计算n+1个n阶行列式的值,要做的乘法运算是(n!)(n-l)(n+1)次。假如n取值为20,你认为计算机可以做吗?人可以做吗?[思考与练习1-1]请分析图1-2中的“判断是否符合条件”这件事计算机需要做多少次?共85页第11页1.1问题描述与抽象1.2基于计算机的问题求解方法2.3计算机科学学科的知识领域第1章基于计算机的问题求解共85页第12页1.2基于计算机的问题求解方法1.2.1基于计算机软件的问题求解问题描述软件名称问题描述软件名称文件与信息下载讯雷下载视频制作影视屏王文档浏览HedExLite压缩软件WinRAR图像浏览ACDSee计算机安全使用360杀毒音频浏览酷狗音乐播放器硬盘检测工具HDTunePro视频浏览超级解霸数学建模Mathematica图像制作美图秀秀电路设计Protel三维动画制作3DSmax机械制图AutoCAD,Pro/E表1-1通用问题与求解问题的相应软件共85页第13页1.2基于计算机的问题求解方法1.2.2基于计算机程序的问题求解1.求解问题的程序方法程序主要包含如下两方面的信息:(1)对程序中操作的描述。(2)对程序中数据的描述。计算机程序求解的关键问题?可计算,即能够形式化描述有限步骤,即能自动化执行共85页第14页1.2基于计算机的问题求解方法1.2.2基于计算机程序的问题求解1.求解问题的程序方法共85页第15页1.2基于计算机的问题求解方法1.2.2基于计算机程序的问题求解2.求正弦曲线并打印输出问题描述:编写程序,对于0到2π一组确定的x值,输出如图所示的sin(x)函数结果,并以图形的形式打印到计算机屏幕上。图1-3计算机程序方式打印的正弦曲线#definePAI3.14159#includemath.h#includestdlib.h#includestdio.hvoidmain(){doublex;inty,i,yy;for(i=1;i80;i++)/*打印图形的第一行*/if(i==40)printf(*);/*i控制打印的列位置*/elseprintf(-);printf(\n);for(x=10.0;x=360.0;x+=10.)/*从10度到360度*/{y=40+30*sin(x*PAI/180.0);/*计算对应的列*/yy=40y?40:y;/*下一行要打印的字符总数*/for(i=1;i=yy;i++)/*控制输出图形中的一行*/{if(i==y)printf(*);/*i控制打印的列位置*/elseif(i==40)printf(|);/*打印中心的竖线*/elseprintf();}printf(\n);}getch();}共85页第16页1.2基于计算机的问题求解方法1.2.2基于计算机程序的问题求解3.用程序方法求素数(a)算法描述(b)求解结果图1-4求素数的计算机程序算法与求解结果共85页第17页1.3基于系统的工程问题求解方法基于系统的工程问题求解过程分为5个必须的步骤:•清晰的陈述问题•描述输入、输出和接口信息•对于多个简单的数据集抽象的解答问题•设计解决方案并将其转换成计算机程序•利用多种方案和数据测试该答案天气预报系统WindowsNT/UNIX服务器客户端巨型机集群服务器资源网络卫星接收系统应用服务器预报业务操作平台客户端客户端数据库服务器共85页第18页1.3基于系统的工程问题求解方法[思考与练习1-2]请从网上查找解你所学专业领域的计算机应用系统实例,了解其用途,把这个系统的组成及各部分的功能作简单描述。并思考这个解决的是该领域的什么问题。共85页第19页1.1问题描述与抽象1.2基于计算机的问题求解方法2.3计算机科学学科的知识领域第1章基于计算机的问题求解共85页第20页1.3计算机科学的知识领域1.计算机科学2.计算机学科计算机及其周围各种现象和规律的科学,即研究计算机系统结构、程序系统(即软件)、人工智能以及计算本身的性质和问题的学科。计算机科学是一门包含各种各样与计算和信息处理相关主题的系统学科,从抽象的算法分析、形式化语法等等,到更具体的主题,如编程语言、程序设计、软件和硬件等。计算机学科就是指计算机科学与技术,是研究计算机的设计,制造和利用进行信息获取,表示,存储,处理控制等的理论、原则、方法和技术的学科。计算机学科包括科学和技术两个方面,计算机科学侧重于研究现象揭示规律;计算机技术则侧重于研制计算机和研究使用计算机进行处理的方法和技术手段。共85页第21页1.3计算机科学的知识领域3.计算机科学与技术专业的知识领域计算机科学与技术学科的知识领域(IEEE-CS/ACMCC2001)01.离散结构(DiscreteStructures-DS)02.程序设计基础(ProgrammingFundamentals-PF)03.算法和复杂性(Algorithms&Complexity-AL)04.程序设计语言(ProgrammingLanguages-PL)05.计算机结构与组织(Architecture&Organization-AR)06.操作系统(OperatingSystems-OS)07.人-机交互(Human-ComputerInteraction-HC)08.图形学与可视计算(Graphics&VisualComputing-GR)09.智能系统(IntelligentSystems-IS)10.信息管理(InformationManagement-IM)11.以网络为中心的计算(Net-CentricComputing-NC)12.软件工程(SoftwareEngineering-SE)13.数值计算科学(ComputationalScience-CN)14.社会道德和职业问题(Social&ProfessionalIssues-SP)共85页第22页1.3计算机科学的知识领域3.计算机科学与技术专业的知识领域[思考与练习1-3]查阅你本科课程设置,了解与计算机科学与技术知识领域相关的课程有哪些?共85页第23页1.1问题描述与抽象1.1.4面向计算机的问题分析[情景问题1-1]要对n阶方程组求解,理论上是可以用行列式的方法求解得,需要计算n+1个n阶行列式的值,要做的乘法运算是(n!)(n-l)(n+1)次。假如n取值为20,你认为计算机可以做吗?人可以做吗?[思考与练习1-1]请分析图1-2中的“判断是否符合条件”这件事计算机需要做多少次?共85页第24页小结【阅读与思考】NFC技术