C++程序设计教程学习(1)-第一部分 编程基础
第一章 概述
C++到底難不難學(xué)?沒有學(xué)不會(huì)的事情
1.1 程序設(shè)計(jì)語言
語言
編程語言 人和計(jì)算機(jī)交流的工具,群體擴(kuò)大,人人間交流過程描述與信息表達(dá)的工具
機(jī)器語言,匯編語言,高級(jí)語言
1.2 C++簡(jiǎn)史
1.3 C++
褒貶C
計(jì)算機(jī)應(yīng)用范圍的擴(kuò)大和編程規(guī)模的擴(kuò)大,可維護(hù)性、可擴(kuò)展性、安全性要求。提出程序設(shè)計(jì)語言應(yīng)該具有數(shù)據(jù)類型的擴(kuò)充能力,基于數(shù)據(jù)類型和面向數(shù)據(jù)類型的編程語言不斷出現(xiàn)。以程序員自己定義或設(shè)計(jì)數(shù)據(jù)類型的方式將復(fù)雜結(jié)構(gòu)的數(shù)據(jù)進(jìn)行系統(tǒng)的組織,統(tǒng)一的管理,以使程序組織合理,算法設(shè)計(jì)簡(jiǎn)單易懂。C繼承者
C++既可以進(jìn)行過程化編程,又可以進(jìn)行以抽象數(shù)據(jù)類型為特點(diǎn)的基于對(duì)象的程序設(shè)計(jì),還可以進(jìn)行以繼承和多態(tài)為特點(diǎn)的面向?qū)ο蟮某绦蛟O(shè)計(jì),并正在完善以模板為特點(diǎn)的泛型程序設(shè)計(jì)。 C++是一種混合型程序設(shè)計(jì)語言,可以采用程序設(shè)計(jì)方法,進(jìn)行各種目的之編程。不放棄高效運(yùn)行的實(shí)用性特征,而又致力于提高大規(guī)模程序的編程質(zhì)量,提高程序設(shè)計(jì)語言的問題描述能力。標(biāo)準(zhǔn)C++
標(biāo)準(zhǔn)C++與程序員更緊密的關(guān)系是系統(tǒng)的可移植性,采用標(biāo)準(zhǔn)C++編程可在不同的標(biāo)準(zhǔn)C++編譯器上得到在不同計(jì)算機(jī)系統(tǒng)中運(yùn)行出同樣結(jié)果的機(jī)器程序。程序員可利用標(biāo)準(zhǔn)庫(kù)。標(biāo)準(zhǔn)C++工具:windows:C++ Bulider6.0以上,VisualC++.NET以上,Linux:G++3.0 、Borland C++ Kylix3.0及以上1.4 C++編程流程
編程過程
編程語言分為解釋型和編譯型,解釋型沒有編譯和連接的中間環(huán)節(jié),方便執(zhí)行但無法離開解釋器現(xiàn)場(chǎng),需要不斷交互所以性能低。C++編程過程,編輯、編譯、鏈接、調(diào)試最小樣板程序
編程風(fēng)格
1.5 程序與算法
程序
不同主體或不同狀態(tài)性能有差異,追求的是各個(gè)抽象層次的編程,追求編程方法的實(shí)效性。這意味這“學(xué)會(huì)計(jì)算機(jī)語言,看得懂語法,了解了語言的描述方法”,還是不夠的,它和熟練運(yùn)用計(jì)算機(jī)語言,能用語言高效、正確地描述問題、解決問題是有天壤之別的。程序的動(dòng)作序列包含了對(duì)數(shù)據(jù)的存儲(chǔ)訪問和算術(shù)運(yùn)算。對(duì)數(shù)據(jù)的合理描述、組織、存放和讀取,關(guān)系到程序運(yùn)行的和高效。
目的性:算法是有求節(jié)目的之動(dòng)作序列,必須有運(yùn)算結(jié)果
抽象性:算法離不開數(shù)據(jù)結(jié)構(gòu),比具體的程序設(shè)計(jì)更超脫,抽象層次更高一些,不在乎實(shí)現(xiàn)語言
研究性:描述算法的目的是溝通人們的是想,而不是實(shí)現(xiàn),通過語言實(shí)現(xiàn)的程序來驗(yàn)證算法其資源占用與性能各項(xiàng)指標(biāo)
編程與結(jié)構(gòu)(Programming & Structures)
編程強(qiáng)調(diào)全方位,具體問題請(qǐng)具體分析,編程當(dāng)然是為了解決計(jì)算問題,計(jì)算問題強(qiáng)調(diào)算法,程序設(shè)計(jì)也就是在一定的抽象層次上的算法計(jì)算。這里的抽象層次理解為數(shù)據(jù)的描述方式。大量數(shù)據(jù)處理,編程問題含有大量縱橫交錯(cuò)的數(shù)據(jù)時(shí),意識(shí)到數(shù)據(jù)組織和數(shù)據(jù)結(jié)構(gòu)的重要性,數(shù)據(jù)存在的形式必須脫離程序。程序=算法+數(shù)據(jù)結(jié)構(gòu)。編程中數(shù)據(jù)結(jié)構(gòu)的描述應(yīng)相對(duì)算法而獨(dú)立。針對(duì)算法事實(shí)上與數(shù)據(jù)相分離,如果數(shù)據(jù)由數(shù)據(jù)結(jié)構(gòu)來描述,算法就可以以數(shù)據(jù)結(jié)構(gòu)為依托,通過數(shù)據(jù)結(jié)構(gòu)來訪問數(shù)據(jù),從而簡(jiǎn)化算法和提高邏輯清晰性。
從動(dòng)態(tài)性上說:程序仍然是計(jì)算機(jī)中的過程運(yùn)行體,即操作系統(tǒng)中的的進(jìn)程。
從靜態(tài)性上說:程序不再是單純的過程體(操作序列)了,不再是單純的算法了,而是算法和數(shù)據(jù)結(jié)構(gòu)的有機(jī)組織。程序含有更多的數(shù)據(jù)組織描述,而數(shù)據(jù)組織描述又包含有一系列的操作。
程序所反映的操作序列依賴于抽象層次更高的數(shù)據(jù)結(jié)構(gòu),而不是直接對(duì)應(yīng)于單純空間上的原始數(shù)據(jù)。觀念上程序發(fā)生了變化,帶來了設(shè)計(jì)方法的進(jìn)化,改變了程序的靜態(tài)描述形式,動(dòng)態(tài)與靜態(tài)不再對(duì)應(yīng)了,計(jì)算機(jī)運(yùn)行的進(jìn)程與人工編程的邏輯開始分離,從單純直譯進(jìn)入到對(duì)程序結(jié)構(gòu)的復(fù)雜分析與理解。
1.6過程化程序設(shè)計(jì)
基于過程的程序設(shè)計(jì)(Procedural-Based Programming)
從程序設(shè)計(jì)的角度來說,程序的概念是組織成一定形式的操作序列。過程結(jié)構(gòu)中問題模型反應(yīng)為過程結(jié)構(gòu)模型,實(shí)際上就是功能模型。描述算法時(shí)一般總是分層次描述的,過程化設(shè)計(jì)以一系列過程的劃分和組織來觀察、分析和解決問題。結(jié)構(gòu)化程序設(shè)計(jì)(Structured Programing)
學(xué)習(xí)程序設(shè)計(jì)方法的根本是要解決如何組織程序的問題,也即解決算法與數(shù)據(jù)的關(guān)系問題。1.7對(duì)象化程序設(shè)計(jì)
基于對(duì)象的的程序設(shè)計(jì)(Object-Based Programing)
抽象數(shù)據(jù)模型就是想要描述這一共同規(guī)范,它描述數(shù)據(jù)的組織和相關(guān)的操作,反映了問題的抽象模型。數(shù)據(jù)類型的本質(zhì)是數(shù)據(jù)組織和其操作的捆綁性。程序=算法+抽象數(shù)據(jù)類型。對(duì)象是程序中抽象數(shù)據(jù)類型的具體表現(xiàn)。算法是基于抽象數(shù)據(jù)類型的,是作用在抽象數(shù)據(jù)類型實(shí)體化的過程中的行為序列。程序的行為表現(xiàn)為分層的過程結(jié)構(gòu)與對(duì)象定義的集合。面向?qū)ο蟮某绦蛟O(shè)計(jì)
類的層次關(guān)系也帶來了對(duì)象的層次關(guān)系,它反映了同種操作的異類行為。要能準(zhǔn)確地反應(yīng)分層之后的對(duì)象集合中每個(gè)對(duì)象行為的個(gè)性,這種屬性稱為對(duì)象操作的多態(tài)性。程序的運(yùn)行是通過抽象數(shù)據(jù)類型來表現(xiàn)和溝通,而抽象數(shù)據(jù)類型最后還是以對(duì)象來實(shí)例化的。1.8目的歸納
轉(zhuǎn)載于:https://www.cnblogs.com/zhuqn/p/4040333.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的C++程序设计教程学习(1)-第一部分 编程基础的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微众银行怎么开通微粒贷?开通微粒贷需要这
- 下一篇: 华夏银行上班时间2018 华夏银行周末营