传智播客课件 PPT
- 格式:ppt
- 大小:419.00 KB
- 文档页数:21
传智播客C和C++与数据结构基础讲义传智扫地僧1、数据结构概念1.1数据结构相关概念1.1.1疑惑1、我学完了C语言,可是现在感觉还是写不出代码。
2、为什么会有各种各样的程序存在?3、程序的本质是什么?程序是为了具体问题而存在的程序需要围绕问题的解决进行设计同一个问题可以有多种解决方案如何追求程序的“性价比”?是否有可量化的方法判别程序的好坏?1.1.2数据结构起源计算机从解决数值计算问题到解决生活中的问题现实生活中的问题涉及不同个体间的复杂联系需要在计算机程序中描述生活中个体间的联系数据结构主要研究非数值计算程序问题中的操作对象以及它们之间的关系不是研究复杂的算法1.1.3数据结构中的基本概念数据–程序的操作对象,用于描述客观事物(inta,intb,)数据的特点:可以输入到计算机可以被计算机程序处理数据是一个抽象的概念,将其进行分类后得到程序设计语言中的类型。
如:int,float,char 等等数据元素:组成数据的基本单位数据项:一个数据元素由若干数据项组成数据元素之间不是独立的,存在特定的关系,这些关系即结构数据结构指数据对象中数据元素之间的关系如:数组中各个元素之间存在固定的线性关系编写一个“好”的程序之前,必须分析待处理问题中各个对象的特性,以及对象之间的关系。
基本概念总结:1.1.4数据的逻辑结构指数据元素之间的逻辑关系。
即从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。
逻辑结构可细分为4类:1.1.5数据的物理结构1.1.6数据的运算1.2、算法1.2.1算法概念算法是特定问题求解步骤的描述在计算机中表现为指令的有限序列算法是独立存在的一种解决问题的方法和思想。
对于算法而言,语言并不重要,重要的是思想。
1.2.2算法和数据结构区别数据结构只是静态的描述了数据元素之间的关系高效的程序需要在数据结构的基础上设计和选择算法=== 程序=数据结构+算法总结:算法是为了解决实际问题而设计的数据结构是算法需要处理的问题载体数据结构与算法相辅相成1.2.3算法特性输入算法具有0个或多个输入输出算法至少有1个或多个输出有穷性算法在有限的步骤之后会自动结束而不会无限循环确定性算法中的每一步都有确定的含义,不会出现二义性可行性算法的每一步都是可行的1.2.4算法效率的度量2.1线性表基本概念2.1.1线性表定义线性表(List)是零个或多个数据元素的集合线性表中的数据元素之间是有顺序的线性表中的数据元素个数是有限的线性表中的数据元素的类型必须相同2.1.2数学定义线性表是具有相同类型的n(≥0)个数据元素的有限序列(a1,a2,…,an)ai是表项,n是表长度。
传智播客C++课程讲义传智扫地僧1、C++对C的扩展1简单的C++程序求圆的周长和面积数据描述:半径,周长,面积均用实型数表示数据处理:输入半径r;计算周长= 2*π*r;计算面积= π* r2 ;输出半径,周长,面积;在带.h后缀的头文件里,c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。
因此,1)当使用<>时,相当于在c中调用库函数,使用的是全局命名空间,也就是早期的c++实现;2)当使用<iostream>的时候,该头文件没有定义全局命名空间,必须使用namespace std;这样才能正确使用cout。
二:由于namespace的概念,使用C++标准程序库的任何标识符时,可以有三种选择:1、直接指定标识符。
例如std::ostream而不是ostream。
完整语句如下: std::cout << std::hex << << std::endl;2、使用using关键字。
using std::cout; using std::endl; using std::cin; 以上程序可以写成 cout << std::hex << << endl;3、最方便的就是使用using namespace std; 例如: using namespace std;这样命名空间std 内定义的所有标识符都有效(曝光)。
就好像它们被声明为全局变量一样。
那么以上语句可以如下写: cout <<hex << << endl;因为标准库非常的庞大,所以程序员在选择的类的名称或函数名时就很有可能和标准库中的某个名字相同。
所以为了避免这种情况所造成的名字冲突,就把标准库中的一切都被放在名字空间std中。
但这又会带来了一个新问题。
无数原有的C++代码都依赖于使用了多年的伪标准库中的功能,他们都是在全局空间下的。
第一节课HTML基础加强班●什么是浏览器?1.浏览器就是接受浏览者的操作(打开一个网址、点击一个链接、点击一个按钮),然后帮浏览者去web服务器请求网页的内容(html格式返回),然后展现成人眼能够看得懂的可视化的页面的软件。
●IE=浏览器?这个说法是错误的。
IE是浏览器的一种,还有FireFox、Opera、Charome等,注意遨游(Maxthon)、世界之窗、搜狗浏览器、360浏览器等并不是一种独立于IE的浏览器,其内核还是IE的内核,只不过是换了一个外壳而已,所以用遨游的不能嘲笑用IE的,否则就露怯了,试着用WeBrowse空间自己开发一个浏览器。
●所谓的Trident引擎就是WebBrosder空间,现在很多非IE核心的浏览器用的是Webkit引擎,比如遨游3或搜狗的双核、Chrome、Safari。
搞浏览器开发挺简单的。
●HTML就是描述网页长什么样子、有什么内容的一个文本。
在查看网页的描述内容的方式:使用IE浏览器的话,在网页上点击右键,选择“查看源文件”●浏览器兼容性问题:描述文件是一个统一的,但是就像口语翻译一样,不同翻译翻译出来的东西也是有差异的,所以同一个网页在IE上和Firefox上看起来就可能长得不一样,最明显的就是以前qq空间上的页面在Firefox上线时就有问题,甚至有的网页在IE6、IE7、IE8商战的也不一样。
因此web开发过程中的一个中药也是最头疼的问题就是浏览器的兼容,测试Firefox(简称FF)、Chrome等浏览器安装各自的软件就可以,测试不同版本的IE可以用IETester。
●只要能跑IE和firefox就ok了。
小知识:浏览器兼容性测试:Acid。
测试标准:对给定几个网页来测试,谷歌的Firefox 100分,IE的98分。
浏览器开发引擎Webkit、Trident、Gecko。
QQ、暴风、千千静听等弹出的新闻中心是网页,是嵌在浏览器框架中的。
用visual studio 就可以开发。
传智播客C++课程讲义传智扫地僧1、C++对C的扩展1简单的C++程序求圆的周长和面积数据描述:半径,周长,面积均用实型数表示数据处理:输入半径r;计算周长= 2*π*r;计算面积= π* r2 ;输出半径,周长,面积;在带.h后缀的头文件里,c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。
因此,1)当使用<>时,相当于在c中调用库函数,使用的是全局命名空间,也就是早期的c++实现;2)当使用<iostream>的时候,该头文件没有定义全局命名空间,必须使用namespace std;这样才能正确使用cout。
二:由于namespace的概念,使用C++标准程序库的任何标识符时,可以有三种选择:1、直接指定标识符。
例如std::ostream而不是ostream。
完整语句如下: std::cout << std::hex << << std::endl;2、使用using关键字。
using std::cout; using std::endl; using std::cin; 以上程序可以写成 cout << std::hex << << endl;3、最方便的就是使用using namespace std; 例如: using namespace std;这样命名空间std 内定义的所有标识符都有效(曝光)。
就好像它们被声明为全局变量一样。
那么以上语句可以如下写: cout <<hex << << endl;因为标准库非常的庞大,所以程序员在选择的类的名称或函数名时就很有可能和标准库中的某个名字相同。
所以为了避免这种情况所造成的名字冲突,就把标准库中的一切都被放在名字空间std中。
但这又会带来了一个新问题。
无数原有的C++代码都依赖于使用了多年的伪标准库中的功能,他们都是在全局空间下的。