当前位置: 网站首页>小程序开发>网络推广

常宁400电话办理【常宁网站公司】常宁百度优化、常宁域名注册、常宁网店美工、常宁微信公众号托管

发表日期: 2021-03-27 15:53:34 浏览次数:106

常宁400电话办理【常宁网站公司】常宁百度优化、常宁域名注册、常宁网店美工、常宁微信公众号托管

常宁,隶属湖南省,是由衡阳市代管的县级市。位于湖南省南部、湘江中游南岸,东隔舂陵水与耒阳市为界,南与郴州市桂阳县相连,西与永州市祁阳县接壤,北濒湘江与祁东县、衡南县二县相望。2020年,常宁下辖14个镇、4个乡、5个街道。境内地势南高北低,大致呈两级阶梯形分布,属亚热带季风性湿润气候。地处北纬26°07'至26°36',东经112°07'至112°41'之间。面积2046.6平方千米 [1]  。

常宁为中国油茶之乡 [2]  、杉木楠竹之乡 [3]  、公交免费城市 [4]  、全国第二批商务综合行政执法试点县级城市 [5]  、全国第三批资源枯竭城市 [6]  。

2018年,常宁市地区生产总值(GDP)331.93亿元,常住人口80.5万人。 [7] 

2018年10月22日,入选2018年全国农村一二三产业融合发展先导区创建名单。 [8]  2019年1月9日,凭借版画入选2018—2020年度“中国民间文化艺术之乡”名单。 [9]  天堂山-西江风景区被评为省级风景名胜区。 [1] 

2019年3月6日,中央宣传部、财政部、文化和旅游部、国家文物局《中央宣传部 财政部,文化和旅游部,国家文物局关于公布《革命文物保护利用片区分县名单(第一批)》的通知》常宁市名列其中。 [10]  2021年1月29日,入选湖南省人民政府公布的2020年度真抓实干成效明显的地区名单。

1.1 本书主要内容

本书目标读者应当具有一定的ANSI C语言程序设计实践经验,本书旨在为这些读者介绍计算机科学的基本概念和重点内容。书中强调了如下三种重要的问题解决工具。

1. 数据模型。数据特征的抽象,用来描述问题。我们已经提到了两种模型:逻辑和图,而在本书中还会看到很多其他的模型。

2. 数据结构。用来表示数据模型的编程语言结构。例如,C语言提供了内置的抽象,比如结构和指针,使我们能够构建数据结构,表示像图这类的复杂抽象。

3. 算法。操作用数据模型抽象、数据结构等形式表示的数据,从而获取解决方案的技术。

1.1.1 数据模型

我们在两种情况下会提到数据模型。像本章开头讨论的图这样的数据模型,是常用于协助形成问题解决方案的抽象。我们还会在本书中了解多种这样的数据模型,比如第5章介绍的树、第6章介绍的表、第7章介绍的集、第8章介绍的关系、第9章介绍的图、第10章介绍的有限自动机、第11章介绍的语法,以及第12章和第14章介绍的逻辑。

数据模型还与编程语言及计算机相关。比如,C语言的数据模型就包含诸如字符、多种长度的整数以及浮点数这类的抽象。C语言中的整数和浮点数只是数学意义上整数和实数的近似值,因为计算机所能提供的算术精度是有限的。C语言数据模型还包括结构、指针和函数这样的类型,我们将在1.4节中详细介绍。

1.1.2 数据结构

当手头问题的数据模型不能直接用编程语言内置的数据模型表示时,我们就必须使用该语言所支持的抽象来表示所需的数据模型。为此,我们研究了数据结构,将编程语言中没有显式包含的抽象,以该语言的数据模型表示出来。不同的编程语言可能有着大不相同的数据模型。例如,与C语言不同,Lisp语言直接支持树,而Prolog语言则内置了逻辑数据模型。

1.1.3 算法

算法是对可机械执行的一系列步骤精准而明确的规范。用来表示算法的可以是任何一种可被常人理解的语言,不过在计算机科学领域,算法多用编程语言正式地表现为计算机程序,或用编程语言混合英语语句的非正式风格来表示。大家在学习编程时很可能已经遇到过一些重要算法。例如,有不少为数组元素排序的算法,就是按照从小到大的顺序排列数组元素。有一些诸如二叉查找(binary searching)之类的查找算法很巧妙,可以通过反复将某给定元素在数组中可能出现的部分对半划分,迅速地找到这个元素。

这些算法以及其他一些解决常规问题的“招数”,是计算机科学家们在设计程序时会用到的工具。我们将在本书中学习诸多此类技巧,包括重要的排序和查找方法。此外,我们还要了解使一种算法优于其他算法的因素。很多时候,运行时间(running time),或者说算法处理输入所花的时间,是算法“质量”的重要一环,我们会在第3章中讨论。

算法的其他方面也很重要,特别是简易性。理想情况下,算法应该易于理解,并易于转变成可运转的程序。而且,懂得相应知识的人在阅读了实现该算法的代码后,应该能理解由该算法转变而来的程序。不过快速和简易往往是不能两全的,所以我们必须要明智地选择算法。

1.1.4 基本思路

在进一步阅读本书的过程中,我们将遇到一些重要的统一原则。在这里要提以下两点。

1. 设计代数。在底层模型得到充分了解的某些领域,我们可以提出一些表示法,以便表示和评价某些折衷的设计方案。通过这样的认识,我们可以提出一些设计理论以构建出设计良好的系统。命题逻辑,加上第12章中的布尔代数这种相关的表示法,就是设计代数的一个好例子。有了它,我们可以为数字计算机中的子系统设计高效的电路。其他设计代数的例子还包括第7章中的集代数、第8章中的关系代数,以及第10章中的正则表达式代数。

2. 递归。作为一种可用来定义概念和解决问题的实用技术,递归特别值得一提。我们会在第2章中详细讨论递归,本书后续内容中也会反复用到它。每当我们需要精确地定义对象,或需要解决问题时,都应该问一问:“递归解决方案应当是什么样子呢?”递归方案的简易和效率常使其成为最优方法。

1.2 本章主要内容

本章接下来的部分将为计算机科学的学习做好铺垫,要介绍以下主要概念。

  • 数据模型(1.3节)。

  • C语言的数据模型(1.4节)。

  • 软件开发流程的主要步骤(1.5节)。

我们会介绍一些例子,讲讲抽象和模型出现在计算机系统的几种方式。其中特别提到了编程语言中的模型、特定系统程序(比如操作系统)中的模型,以及计算机所使用电路中的模型。由于软件是当今计算机系统的重要组成部分,因此我们需要理解软件开发流程、模型和算法扮演的角色,以及软件开发中计算机科学只能以有限方式解决的那些方面。

在1.6节中会介绍一些常规定义,它们在全书的C语言程序中都将用到。

1.3 数据模型

任何数学概念都可称为数据模型。而在计算机科学领域,数据模型通常包含以下两个方面。

1. 对象可以采用的值。例如,很多数据模型包含具有整数值的对象。数据模型的这个方面是静态的,它告诉我们对象能接受哪些值。编程语言数据模型的这一静态部分通常被称为类型系统

2. 数据的运算。例如,我们常常会对整数执行加法这样的运算。模型的这一方面是动态的,它告诉我们改变值和创建新值的方式。

1.3.1 编程语言数据模型

每种编程语言都有自己的数据模型,这些数据模型互不相同,而且通常有相当大的差异。多数编程语言处理数据所遵循的基本原则是,每个程序都可以访问我们用于表示存储区域的“框”。每个框都具有一个类型,比如intchar。框中可以存储类型对应的值,通常将可以存储到这些框中的值称为数据对象

我们还要为这些框命名。一般来说,框的名称可以是任何指示该框的表述性词语。我们通常会将框的名称视作该程序的变量,不过情况并非完全如此。例如,如果x 是递归函数F 的局部变量,那么就可能会有很多名为x 的框,每个x 都与对F 的不同调用相关联。这样的话,这种框的真实名称就是x 与对F 的某次调用的组合。

C语言中的多数数据类型都是我们熟悉的:整数、浮点数、字符、数组、结构和指针。这些都是静态的概念。

可以对数据进行的操作包括整数和浮点数的常规算术运算、数组或结构元素的存取操作,以及指针的解引用(也就是找到指针所指向的元素)。这些运算都只是C语言数据模型动态部分的一部分。

在程序设计课程中,我们可能会看到C语言中不包括的重要数据模型,比如表、树和图。用数学语言来讲,表就是可以写成(a1a2 , … , an)这种形式的n 个元素组成的序列,其中a1是第一个元素,a2是第二个,以此类推。表的运算包含插入新元素、删除元素,以及拼接表(也就是将一个表追加到另一表的末端)。

示例1.1

在C语言中,整数表可以用链表这种数据结构表示,表的元素被存储在链表的节点中。链表及其节点可用如下类型声明定义。

typedef struct CELL *LIST;struct CELL {
    int element;
    struct LIST next;};复制代码

该声明定义了有着两个字段的自引用结构CELL。第一个字段是element,存放着表中元素的值,而且其类型为int

每个CELL的第二个字段是next,存放着指向节点的指针。请注意,LIST类型其实是指向CELL的指针。因此,CELL类型的结构可以通过它们的next字段链接起来,构成我们通常所说的链表,如图1-3所示。next字段既可以被视为指向下一个节点的指针,也可以代表从某节点起的整段链表。同理,整个链表也可以用指向链表第一个单元的LIST类型的指针表示。

{%}

图 1-3 表示表(a1a2, … , an)的链表

单元是用长方形表示的,其左边部分表示元素,右边部分存放指针(表示为指向下一个单元的箭头)。存放指针的方框中的点表示该指针为NULL1。第6章将更详细地介绍表。

1NULL是标准头文件stdio.h中定义的符号常量,用来表示未指向任何内容的指针的值。本书中的NULL指针都作此义解释。

数据模型与数据结构

尽管名称类似,但“表”和“链表”却是非常不同的概念。表是种数学抽象,或者说是数据模型。而链表则是种数据结构,是通常用于C语言及相似语言中的数据结构,用来表示程序中的抽象表。而有些编程语言则不需要用数据结构来表示抽象表。例如,表(a1a2, … , an)在Lisp语言中可以直接表示为[a1a2,… , an],而在Prolog语言中也可以表示为类似形式。


常宁400电话办理常宁网站公司常宁百度优化、常宁域名注册、常宁网店美工、常宁微信公众号托管

400-111-6878
服务热线
顶部

备案号: 苏ICP备11067224号

CopyRight © 2011 书生商友信息科技 All Right Reserved

24小时服务热线:400-111-6878   E-MAIL:1120768800@qq.com   QQ:1120768800

  网址: https://www.768800.com  网站建设上往建站

关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|

企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|

400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 昌平殡葬| 朝阳殡葬|

预约专家

欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系

  

服务热线:400-111-6878