noip初赛重点总汇
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
noip初赛重点总汇
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议超文本传输协议(HTTP,HyperText Transfer Protocol) TCP:Transmission Control Protocol 传输控制协议
FTP 是File Transfer Protocol(文件传输协议)的英文简称POP3(Post Office Protocol 3)即邮局协议的第3个版本,它是规定个人计算机如何连接到互联网上的邮件服务器进行收发邮件的协议
Noip推荐使用的语言环境
1. Windows平台:
Dev-C++ 4.9.9.2(其中包括了Windows版gcc/g++ 3.4.2版);Lazarus 0.9.10 (其中包括了Windows版free pascal 编译器2.0.1版); 2. Linux平台:
Red Hat 9.0 自带了gcc/g++ 3.2.2版;Lazarus 0.9.6版;
free pascal编译器1.9.8版
gdb 6.3版(Lazarus调试时需要使用高版本的gdb,而Red Hat 9.0自带的gdb版本过低.)
推荐的pascal: free pascal Lazarus c及c++: Dev C++ gcc/g++ 不推荐的:
TP7(turbo pascal 7) TC(turbo C)
2. Visual C++
C语言面向过程
机器语言:1.优点: 计算机能够直接识别,不用转换。
缺点:编程很很复杂,一个字,难。
相当于你要用(01)两个数字完成所有的程序编译。
汇编语言:优点:编程比机器语言简单的多,但要转换后计算机才能识别。
学习起来也不是很难。
高级语言:优点:编程简单(比汇编还要简单,灵活),但要转换后计算机才能识别,学习起来较难。
高级语言
程序设计语言的类型:
1.命令式语言。
这种语言的语义基础是模拟“数据存储/数据操作”的图灵机可计算模型,十分符合现代计算机体系结构的自然实现方式。
其中产生操作的主要途径是依赖语句或命令产生的副作用。
现代流行的大多数语言都是这一类型,比如Fortran、Pascal、Cobol、C、C++、Basic、Ada、Java、C# 等,各种脚本语言也被看作是此种类型。
2.函数式语言。
这种语言的语义基础是基于数学函数概念的值映射的λ算子可计算模型。
这种语言非常适合于进行人工智能等工作的计算。
典型的函数式语言如Lisp、Haskell、ML、Scheme
等。
3.逻辑式语言。
这种语言的语义基础是基于一组已知规则的形式逻辑系统。
这种语言主要用在专家系统的实现中。
最著名的逻辑式语言是Prolog。
4.面向对象语言。
现代语言中的大多数都提供面向对象的支持,但有些语言是直接建立在面向对象基本模型上的,语言的语法形式的语义就是基本对象操作。
主要的纯面向对象语言是Smalltalk。
虽然各种语言属于不同的类型,但它们各自都不同程度地对其他类型的运算模式有所支持。
内存一般采用半导体存储单元,包括随机存储器(RAM),只读存储器(ROM),以及高速缓存(CACHE)。
摩尔定律:
1、集成电路芯片上所集成的电路的数目,每隔18个月就翻一番。
2、微处理器的性能每隔18个月提高一倍,而价格下降二分之一。
3、用一个美元所能买到的电脑性能,每隔18个月翻两番。
INTEL的处理器桌上型用CPU Intel 4004 Intel 4040 Intel 8086 Intel 8088 8018 __ __ __ 奔腾(Pentium)Pentium Pro Pentium II 赛扬(Celeron)奔腾III(Pentium III)奔腾4 (Pentium 4)奔腾4至尊版(Pentium 4 Extreme Edition)赛扬D(Celeron D)奔腾D(Pentium D)
奔腾D至尊版(Pentium D Exterme Edition) 酷睿双核Intel Core Duo 酷睿2 双核Intel Core 2 Duo
奔腾双核Intel pentium dual-core 酷睿 2 至尊版Intel Core 2 Extreme 酷睿2 四核Intel Core 2 Quad
酷睿2 四核至尊版Intel Core 2 Quad eXtreme 赛扬双核Intel Celeron duo-core
酷睿i7-四核心(8__/9__)/六核心(9__)处理器酷睿i5-双核心(6__)/四核心(7__)处理器
酷睿i3-双核心(5__)处理器笔记型电脑用
移动式酷睿i7-双核心(6__)/四核心(7__/8__/9__)处理器移动式酷睿i5-双核心(4__/5__)处理器移动式酷睿i3-双核心(3__)处理器Pentium III Mobile
Pentium 4 Mobile 区别于机动版Pentium 4 Mobile Pentium 4 最高至3.06GHz,区别与P4M 奔腾M(Pentium M)
赛扬M(Celeron M)
酷睿双核(Intel Core Duo)酷睿2 双核(Intel Core 2 Duo)酷睿单核(Intel Core Solo)酷睿2 单核(Intel Core 2 Solo)奔腾双核(Intel pentium dual-core ) 凌动超低功耗处理器(Atom)
赛扬双核(Intel celeron dual-core) 服务器用CPU
奔腾II至强(Pentium II Xeon)奔腾III至强(Pentium III
Xeon)奔腾III服务器(Pentium III Sever)至强(Xeon)安腾(Itanium)安腾2(Itanium 2)安腾3(Itanium 3)常用数据结构数组(Array)
在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。
这些按序排列的同类数据元素的集合称为数组。
在C语言中,数组属于构造数据类型。
一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。
因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。
栈(Stack) 是只能在某一端插入和删除的特殊线性表。
它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。
队列(Queue)
一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。
进行插入操作的端称为队尾,进行删除操作的端称为队头。
队列中没有元素时,称为空队列。
链表(Linked List)
是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。
链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。
每个结点包括两个部分:一个是存储数据元素的数据
域,另一个是存储下一个结点地址的指针域。
树(Tree) 是包含n(n0)个结点的有穷集合K,且在K中定义了一个关系N,N满足以下条件:
(1)有且仅有一个结点k0,他对于关系N来说没有前驱,称K0为树的根结点。
简称为根(root)。
(2)除K0外,k中的每个结点,对于关系N来说有且仅有一个前驱。
(3)K中各结点,对关系N来说可以有m个后继(m=0)。
图(Graph)
图是由结点的有穷集合V和边的集合E组成。
其中,为了与树形结构加以区别,在图结构中常常将结点称为顶点,边是顶点的有序偶对,若两个顶点之间存在一条边,就表示这两个顶点具有相邻关系。
堆(Heap)
在计算机科学中,堆是一种特殊的树形数据结构,每个结点都有一个值。
通常我们所说的堆的数据结构,是指二叉堆。
堆的特点是根结点的值最小(或最大),且根结点的两个子树也是一个堆。
散列表(Hash)
若结构中存在关键字和K相等的记录,则必定在f(K)的存储位置上。
由此,不需比较便可直接取得所查记录。
称这个对应关系f为散列函数(Hash function),按这个思想建立的表为散列表。
常用数据库IBM 的DB2
作为关系数据库领域的开拓者和领航人,IBM在1977年完成了System R系统的原型,1980年开始提供集成的数据库服务器―― System/38,随后是SQL/DSforVSE和VM,其初始版本与SystemR研究原型密切相关。
DB2 forMVSV1 在1983年推出。
该版本的目标是提供这一新方案所承诺的简单性,数据不相关性和用户生产率。
1988年DB2 for MVS 提供了强大的在线事务处理(OLTP)支持,1989 年和1993 年分别以远程工作单元和分布式工作单元实现了分布式数据库支持。
最近推出的DB2 Universal Database 6.1则是通用数据库的典范,是上功能的多媒体关系数据库管理系统,支持包括Linux在内的一系列平台。
Oracle
Oracle 前身叫SDL,由Larry Ellison 和另两个编程人员在1977创办,他们开发了自己的拳头产品,在市场上大量销售,1979 年,Oracle公司引入了第一个商用SQL 关系数据库管理系统。
Oracle公司是最早开发关系数据库的厂商之一,其产品支持最广泛的操作系统平台。
目前Oracle关系数据库产品的市场占有率名列前茅。
Informix
Informix在1980年成立,目的是为Unix等开放操作系统提供专业的关系型数据库产品。
公司的名称Informix便是取自Information 和Unix的结合。
Informix第一个真正支持SQL语言的关系数据库产品是Informix SE(StandardEngine)。
InformixSE
是在当时的微机Unix环境下主要的数据库产品。
它也是第一个被移植到Linux上的商业数据库产品。
Sybase
Sybase公司成立于1984年,公司名称“Sybase”取自“system”和“database” 相结合的含义。
Sybase公司的创始人之一Bob Epstein 是Ingres 大学版(与System/R同时期的关系数据库模型产品)的主要设计人员。
公司的第一个关系数据库产品是1987年5月推出的Sybase
SQLServer1.0。
Sybase首先提出Client/Server 数据库体系结构的思想,并率先在Sybase SQLServer 中实现。
SQL Server 1987 年,微软和IBM合作开发完成OS/2,IBM 在其销售的OS/2 ExtendedEdition 系统中绑定了OS/2Database Manager,而微软产品线中尚缺少数据库产品。
为此,微软将目光投向Sybase,同Sybase 签订了合作协议,使用Sybase的技术开发基于OS/2平台的关系型数据库。
1989年,微软发布了SQL Server 1.0 版。
PostgreSQL
PostgreSQL 是一种特性非常齐全的自由软件的对象――关系性数据库管理系统(ORDBMS),它的很多特性是当今许多商业数据库的前身。
PostgreSQL最早开始于BSD的Ingres项目。
PostgreSQL 的特性覆盖了SQL-2/SQL-92和SQL-3。
首先,它包括了可以说是目前世界上最丰富的数据类型的支持;其次,目
前PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统. mySQL
mySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。
在2022年1月16号被Sun公司收购。
目前MySQL被广泛地应用在Internet上的中小型网站中。
由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
Access数据库
美国Microsoft公司于1994年推出的微机数据库管理系统。
它具有界面友好、易学易用、开发简单、接口灵活等特点,是典型的新一代桌面数据库管理系统。
其主要特点如下:
(1)完善地管理各种数据库对象,具有强大的数据组织、用户管理、安全检查等功能。
(2)强大的数据处理功能,在一个工作组级别的网络环境中,使用Access开发的多用户数据库管理系统具有传统的XBASE(DBASE、FoxBASE的
统称)数据库系统所无法实现的客户服务器(Cient/Server)结构和相应的数据库安全机制,Access具备了许多先进的大型数据库管理系统所具备的特征,如事务处理/出错回滚能力等。
(3)可以方便地生成各种数据对象,利用存储的数据建立窗体
和报表,可视性好。
(4)作为Office套件的一部分,可以与Office集成,实现无缝连接。
(5)能够利用Web检索和发布数据,实现与Internet的连接。
Access主要适用于中小型应用系统,或作为客户机/服务器系统中的客户端数据库。
FoxPro数据库
最初由美国Fox公司1988年推出,1992年Fox公司被Microsoft公司收购后,相继推出了FoxPro2.5、2.6和VisualFoxPro 等版本,其功能和性能有了较大的提高。
FoxPro2.5、2.6分为DOS和Windows两种版本,分别运行于DOS和Windows环境下。
FoxPro比FoxBASE在功能和性能上又有了很大的改进,主要是引入了窗口、按纽、列表框和文本框等控件,进一步提高了系统的开发能力。
(1)层次结构模型
层次结构模型实质上是一种有根结点的定向有序树(在数学中\树\被定义为一个无回的连通图)。
下图是一个高等学校的组织结构图。
这个组织结构图像一棵树,校部就是树根(称为根结点),各系、专业、教师、学生等为枝点(称为结点),树根与枝点之间的联系称为边,树根与边之比为1:N,即树根只有一个,树枝有N个。
按照层次模型建立的数据库系统称为层次模型数据库系统。
IMS(Information Manage-mentSystem)是其典型代表。
(2)网状结构模型
按照网状数据结构建立的数据库系统称为网状数据库系统,其典型代表是DBTG(Data Base Task Group)。
用数学方法可将网状数据结构转化为层次数据结构。
(3)关系结构模型
关系式数据结构把一些复杂的数据结构归结为简单的二元关系(即二维表格形式)。
例如某单位的职工关系就是一个二元关系。
由关系数据结构组成的数据库系统被称为关系数据库系统。
在关系数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过对这些关系表格的分类、合并、连接或选取等运算来实现数据的管理。
dBASEII就是这类数据库管理系统的典型代表。
对于一个实际的应用问题(如人事管理问题),有时需要多个关系才能实现。
用dBASEII建立起来的一个关系称为一个数据库(或称数据库文件),而把对应多个关系建立起来的多个数据库称为数据库系统。
dBASEII的另一个重要功能是通过建立命令文件来实现对数据库的使用和管理,对于一个数据库系统相应的命令序列文件,称为该数据库的应用系统。
因此,可以概括地说,一个关系称为一个数据库,若干个数据库可以构成一个数据库系统。
数据库系统可以派生出各种不同类型的辅助
文件和建立它的应用系统。
微机上常见的操作系统有DOS、OS/2、UNIX、XENIX、LINUX、Windows、Netware 关系型数据库:ACCESS, MS SQL Server, Oracle, DB2, Sybase, mySQL,Foxpro
应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。
传输层:在此层中,它提供了节点间的数据传送,应用程序之间的通信服务,主要功能是数据格式化、数据确认和丢失重传等。
如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP 和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。
互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。
网络接口层(主机-网络层):接收IP数据包并进行传输,从网络上接收物理帧,抽取IP数据报转交给下一层,对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line 等)来传送数据。