IT行業:軟件開發編程思想

wKioL1cy_KjBrhVXAABoL-OAbfo636.jpg


很多人學了C語言,C++,Java仍然不會編程;而有些人沒有學過計算機語言,但有編程的天份;這中間到底缺了什麼?


我們來研究一下3個問題:


1.首先我們要了解計算機能完成的工作;


2.瞭解每種計算機語言在做什麼;


3.如何通過計算機語言讓計算機替我們做什麼;




1.電子計算機最直接能做什麼工作:


電子計算機能直接完成的工作如果細化看,就是在玩二進制數;


a.把二進制數按位進行左右移動;


b.對二進制數中的位進行<與,或,非,異或>4種操作;


c.讀地址空間內的二進制數當指令動作;


d.讀地址空間內的二進制數當數據操作;


e.保存二進制數到內存空間


f.對二進制數進行算術操作,結果存到內存空間


g.......


總結一下,計算機的工作=數據輸入->計算和操作->結果輸出




2.計算機語言在做什麼?


計算機語言只是爲了方便書寫命令計算機動作的語法;


機器語言,把命令計算機做原始動作的指令,轉換成二進制碼形式,不容易看懂;


彙編語言,把機器語言,轉換成英文單詞,方便閱讀識別,但仍不容易看懂;


面向過程語言,把彙編語言,轉換成數學表達式的形態,


面嚮對象語言,把數學表達式,封裝成獨立的輸入數據輸出結果的模塊;


面向應用語言,把對象模塊,按照需求自動組合成應用組件;(正在發展中)




3.怎樣讓有限的計算機完成無限的工作?


計算機只能夠保存和計算無符號二進制整數,但我們還是把有符號10進制數,浮點數,文字,聲音,圖片,視頻保存到了計算機裏;這其中的關鍵,就是轉換;


計算機所能保存的數據是有限制的,想辦法統統轉化成二進制;


計算機的容量是有限的,想辦法把相同的數據進行無損壓縮滿足容量;


計算機的字長是有限的,把超長的數據分解,給計算機分段計算滿足字長;


計算機的計算速度是有限的,研究一個快速的數學邏輯高效計算;


計算機的xxx是有限的,總有辦法可滿足;


軟件開發的編程思想


計算機的工作是有限的=數據輸入->計算和操作->結果輸出


1.跟據程序的需求,將輸入的數據轉化成計算機能接受的數據類型;


2.跟據計算機有限的工作能力,將計算和操作通過邏輯思維按步驟轉化成計算機的動作;


3.將結果按照要求轉化成輸出格式。


第1步,轉化數據類型,計算機語言已經準備了很多基礎數據類型和API;


第2步,邏輯思維養成;


第3步,逆轉數據類型,計算機語言也已經準備了很多基礎數據類型和API;


第1步和第3步,只要百度查找,看例子就能很快掌握,大多可以分享和拿來主義,但第2步邏輯思維並不能一步登天,思想的養成需要勤奮和努力,和學習寫作文的方法是一樣的,要多看別人的代碼,嘗試着多寫代碼,計算機語言好學,但編程不是學出來的,是花時間寫出來的;好比會寫中國字,並不一定能寫出好作文。


程序:是爲實現特定目標或解決特定問題而用計算機語言編寫的代碼;


以計算機的角度講,程序=算法+數據結構


數據結構:指計算機保存數據的方法(順序,鏈式,散列,索引)


算法:在計算機有限的結構下,解決問題的具體方法和步驟


過程化語言程序基本流程


1.輸入數據


2.檢查數據合法性


3.數據計算和處理(算法)


4.輸出結果


開發的難點,就是算法(邏輯思想)


計算機算法可分爲兩大類別:


數值運算算法:求數值解,例如求方程的根、求函數的定積分等。(真正難)


非數值運算:包括的面十分廣泛,最常見的是用於事務管理領域,例如圖書檢索、人事管理、行車調度管理等。(說難不難,但也不易)


總結:


軟件開發的編程思想,是一種邏輯轉化思想,並不是學計算機語言能學會,但可以從寫代碼中間領悟;首先要熟記和理解計算機語言的語法規則,才能將程序計算的邏輯準確的轉化成計算機語言的語法;最後要勤加練習,慢慢養成(極少數最強大腦除外);


原文鏈接:

http://http://www.xcore.icoc.cc/nd.jsp?id=15&_np=0_322_2


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章