1. 學習內容介紹
本學習內容主要面向初級入門編程,包括有少許和無編程經曆的人員。中級編程人員或許可以找到一些建議和策略來提高編程技能。
關注一下我們的幾大目標:
1)囊括C++所有話題:
與傳統的書本相比,本內容涉及諸如編程風格、通常陷阱、調試、好/壞編程實踐和測試。你會知道應該和不應該如何用C++去編程。
2)提供大量參考樣本:
樣本示範了如何去應用各種概念,大多數人通過例子更透徹理解所學到的知識概念。
3)提供練習編程:
最好的學習方法是使用學到的知識來編寫自己的程式。
4)最重要的是:玩得開心
編程可以產生許多愉快,如果你總是不愉快,說明你不處於恰當的編程狀態。
2. 程式設計語言介紹
當今電腦變得越來越快,但也存在明顯的限制。電腦只會機械執行有限的指令。軟體——
告訴電腦如何操作的指令集;硬體——機械執行指令的電腦。
1、機器語言:
一個電腦的CPU不會講C++,CPU可以理解的是一個非常有限的指令集,稱作為機器代碼,即機器語言或指令集。
首先,一條指令由一組二進位位組成,每個位的值只能為0和1。通常的x86的CPU的指令長度為32位,如:1011 0000 0110 0001。
其次,每個二進位位集由CPU翻譯成一條指令。
不同的CPU類型的指令集也不盡相同。
2、組合語言:
由於使用機器語言編程是異常的困難,組合語言就被發明了。每條指令由一個簡短的名稱來代替,而不是二進位碼,所以更易讀易寫。
CPU不能直接理解組合語言,必須通過一個彙編器進行翻譯。組合語言是如此的快速,至今還應用在速度苛刻的地方。
組合語言也是針對指定的CPU而編寫代碼,而且依然需要很多操作和不人性化。
彙編指令如: MOV AL, 061H。
3、進階語言:
為瞭解決這些問題,進階語言就產生,如C、C++、Java等。進階語言在CPU可運行之前,也需通過編譯和解釋。
編譯器:一次性編譯,運行時不需要再次編譯。
解譯器:比編譯器更容易編寫,效率偏低。程式每次運行都需要。
C、C++等屬編譯性語言,而Perl和JavaScript是解釋性語言;而Java相容兩種。
進階語言有一些主要特性:
1)易讀易寫;
2)需要更少的指令操作,如:a=b*2+5 ,在組合語言中需要5-6步的操作;
3)不需要關注太多細節,如載入變數到CPU寄存器;
4)更重要的是:適用於多種結構的CPU。
3. C/C++介紹
C語言是1972年Dennis Ritchie在貝爾實驗室發明,原本是系統程式設計語言,主要目標是易編譯、高效訪問記憶體、產生效率高的代碼、不需要運行時支援。
可以說是低級-進階語言,是平台獨立性的語言。
C語言是如此的高效和靈活,Ritchie and Ken Thompson在1973年使用C重寫UNIX系統,C語言的出色相容性使UNIX可以在不同平台上進行重編譯。
C語言的命運就與UNIX綁在了一塊,而C語言流行的部分原因也是UNIX作為一個作業系統。
在1983,ANSI形成C標準,即C89標準;在1990,ISO採納C標準,即C90標準;在1999,最新指定C99。
C++語言是貝爾實驗室Bjarne Stroustrup在1979發展,作為C的擴充。ISO在1998和2003,被ISO批准;最新的標準是2010的C++0.X。
C和C++潛在的設計規則是-信任程式員。這就是知道不應當如何編程的由衷之一。
C++在C的基礎上增加了許多特性,C++是一門物件導向的程式設計語言。
4. 開發介紹
程式開發流程圖:
步驟1:定義需要解決的問題-即What階段;
步驟2:確定解決問題的方法-即How階段:
好的方案套件括如下特點:直觀;好的書寫文檔;易擴充;模組化。達到可擴充和高效模組化是巨大的挑戰。
二八原則-20%時間寫代碼,而80%時間是修改和調試代碼。
模組化保持代碼的可讀性和可重用性。
步驟3:編寫代碼:
需要程式設計語言知識,編程工具;好的編程工具:行號、文法高亮和不同顏色、確定的字型。
步驟4:編譯:
檢查編寫的代碼是否符合語言規範;使程式正確輸入輸出。
步驟5:連結:
將目標檔案和相關庫串連,產生可執行檔:
命令如:g++ -o prog file1.cpp file2.cpp file3.cpp
步驟6:測試和調試
檢測程式運行結果是否正確。
一般步驟3-步驟6是不斷迭代進行。
5. 編寫第一個程式:
根據不同的OS平台,安裝不同的編譯工具。
第一個程式-經典HelloWorld
[免責特此聲明:
1)本內容可能是來自互連網的,或經過本人整理的,僅僅代表了互連網和個人的意見和看法!
2)本內容僅僅提供參考,任何參考該內容造成任何的後果,均與原創作者和本部落格作者無關!]