JS程序設計基礎
一、什麽是軟件?什麽是程序?什麽是計算機語言?
軟件:是完成某些特定功能,一到多個程序文件的組合。
程序:完成指定功能的指令。
計算機語言:人與人之間溝通使用的是自然語言。人與計算機進行溝通就使用的是計算機語言。換句話說,計算機語言就是用來和計算機進行交流的。
沃斯:程序 = 數據結構 + 算法
程序和軟件之間的關系,就類似於生活中博客和書的關系。
二、計算機語言的發展史
計算機語言是從二十世紀40年代開始,大致分為3個階段:
第一代計算機語言:機器語言:機器語言全部都是有0和1組成。可以被計算機直接執行。但是,這樣的語言不便於理解和記憶。
第二代計算機語言:匯編語言:匯編語言並不比機器語言高級多少。因為匯編語言其實就是機器語言的一種助記符。雖說匯編語言只是一種助記符,但是確實相比機器語言,它的易讀性更高
第三代計算機語言:高級語言:高級語言的話更加接近我們平時所使用的自然語言。
高級語言以1980年代為一個分界點:80年代之前的語言都是結構化語言,80年代之後都是面向對象語言。
三、解釋器和編譯器
使用高級語言寫出來的代碼,計算機是不能直接執行的,中間需要一個翻譯的過程。
翻譯器有兩種:
編譯器:一次性將我們寫出來的程序轉換為二進制。類似於生活中將整本外語書翻譯成中文。
常見的編譯性語言:C# Java
解釋器:逐行進行解釋。類似於同聲傳譯。
常見的解釋性語言:PHP JavaScript Ruby
相比解釋性語言,編譯性語言的速度更快。但是解釋性語言比編譯性語言更加靈活。
四、程序設計的步驟
編寫程序類似於我們的蓋樓房,需要先有一定的步驟
(1)分析問題
我們在進行程序開發之前,首先需要進行的就是分析問題。我們必須明確問題是什麽?用戶需求是什麽?
(2)確定數據結構和算法
數據結構:怎樣將數據存入到計算機裏面。
算法:解決問題的方法和步驟
(3) 編制程序
開始敲代碼實現具體的功能
(4)調試問題
我們寫出來的代碼,99%都是會出現錯誤的。接下來我們就需要對這些錯誤進行調試,直至達到預期結果。
一定程度來講,我們的代碼不是寫出來的,而是調試出來的。
五、常見的錯誤類型
(1)語法錯誤
這種錯誤類型是無法通過編譯的。這種錯誤是最容易發現和修改的。
(2)邏輯錯誤
這種錯誤是都符合語法規範,代碼能夠通過編譯,但是邏輯思維有問題,導致不能得到預期的結果。這種錯誤往往比較難發現
(3)開發錯誤
往往是指開發的時候偏離了用戶需求
(4)運行錯誤
語法,邏輯,開發方向都是正確的,這種錯誤往往出現於整個程序的算法有問題。這種算法導致內存泄露,存儲空間不足等。所以這個時候需要換一個算法
六、算法:所謂算法,就是指解決問題的方法和步驟。
算法可以分為兩大類:數值型運算算法和非數字型運算算法
數值型運算算法:求解數值,得到一個數值的答案
非數值型運算算法:往往應用事務的管理領域,比如搜索引擎,增刪改查
算法的特性:
一般來講,算法有5個特點:
(1)有窮性
一個算法應該包含有限的操作步驟而不能是無限的。
(2)確定性
算法中的每一個步驟都應該是有意義的,而不應該是含糊的,模棱兩可。
(3) 有零個或者多個輸入
根據算法的不同,有些算法在實現的過程匯總,需要輸入一些原始的數據
(4)有一個或者多個輸出
設計算法的最終目的就是為了解決問題,所以每個算法至少應該有一個或者多個輸出。
(5)有效性
每一個步驟都是能夠有效執行的。
七、算法的表示
算法的表示方法非常的多,例如:自然語言表示法,偽代碼表示法,流程圖表示法,N-S表示法。
(1) 自然語言表示法
就是利用我們平時所使用的語言,例如中文,英文來表示算法。
例如:交換墨水瓶
第一步:需要一個空瓶
第二步:將黑墨水瓶裏面的黑墨水倒入空瓶
第三步:將藍墨水瓶裏面的藍墨水倒入空的黑墨水瓶
第四步:空瓶中的黑墨水倒入空的藍墨水瓶
第五步:交換完成
(2) 偽代碼表示法
介於自然語言和計算機語言之間的一種方式。使用一些文字和符號來對算法進行表示。
例如:交換墨水瓶
第1步:A:黑墨水瓶 B:藍墨水瓶 C:空瓶
第2步:A → C (黑墨水倒入空瓶)
第3步:B → A (藍墨水倒入黑墨水瓶)
第4步:C → B (空瓶中的黑墨水倒入藍墨水瓶)
第5步:交換結束
(3) 流程圖表示法
流程圖又稱之為框圖,它用規定的一系列的圖形和流程線來表示算法。
JS程序設計基礎