程式設計的思想和計算機的邏輯來歷

2021-09-25 04:12:00 字數 2535 閱讀 2743

1.概念

首先提出乙個概念:編碼和計算

編碼:是人類對於各個物體和各個狀態的描述,顧名思義,人類編的乙個識別各種物體和各個狀態識別碼

計算:是人類對物體和狀態變化過程的描述

2.具體例項

那麼,什麼是編碼和計算呢,生活中有沒有具體的例項呢?

首先,世上的一切,我們人類認識的表示都是編碼和計算的集合。

其中最為典型的,人類的語言就是一種編碼和計算的集合

人類運用編碼來表示世界,故而桌子和table才表示了桌子這個物品,而具體的編碼就是一連串的符號,是人類賦予了它們的含義。

通常人類存在精確的描述和廣泛的描述

比如,你的名字就是一種廣泛的描述(可能會有重名現象的發生)

而精準的描述,比如加上一連串的定語來進行描述(比如長得帥的那個張三等,可以一定程度的避免描述的廣泛性),但是最精準定位到某個東西上就得使用唯一的標識來標識某個物體。如:身份證、經度緯度等。(故狀態事物和編碼是一一對應的)

所以有了編碼和計算(更偏向一種邏輯運算),人類就能將世界描述和表示的很清楚

比如:中文

則:中文漢字是一種符號表示編碼,而語法(中文語序的組合規則)就是一種計算(邏輯運算,將符號通過一定的邏輯關係串在一起)

那麼編碼和計算的目的是為了什麼呢?我們表示這個世界上的一切和其變化,都是為了保留和傳播資訊。

當人類的祖先發現可以利用聲帶的震動就能傳播資訊時,他們就定義了一套讀音編碼和拼讀的規則,哪個讀音表示哪個物體,哪幾個音如何組織表達這個意思。

當人類發現石頭上可以刻字以後,就定義了一套符號編碼和語法,在某個記錄的介質上表達他們的意思。

人類的進化史就是乙個很好的表現了程式設計思維的例子;總結下來即為以下過程:

1.發現現實生活中能夠應用到他們想要解決的問題的東西(以上的聲帶振動能發聲傳播和石頭上刻字能傳播)

2.對相關事物進行編碼(包括符號編碼(石頭上圖形)發音編碼(聲波狀態的轉換))

3.實現邏輯(有的是人類自己規定的規則,有的是存在的規律抽象後的規則)

而這些程式設計思維也可以很好的應用到生活中,比如程式設計中常用的另外乙個思維————分層思想

3.分層思想

比如:上例中的人類想解決交流的問題。運用分層結構如下:

1.交流問題 假如能傳播和記錄,如何使得兩個人能夠交流順暢和看懂呢? 定義相同的規則和符號,如果規則(語法)符號(文字)不一樣,那麼就找乙個翻譯

2.怎麼定義符號和規則使得能傳播出去呢? 利用現有的技術手段傳播 現在能石頭上刻字,那就定義符號編碼,能發聲,那就定義聲音編碼

3.傳播技術的實現問題? 將石頭儲存下來,面對面的交談

基於以上的思維,我們可以總結出:

1.明確要實現的大問題。(和可能能夠使用的技術)

2.將大問題分層,每一層假設下層已經實現(串聯中間層)

3.有編碼和規則直接用,沒有的話創造

則計算機的實現也能運用分層結構來簡化實現

1.實現簡化人類計算問題 。 (發現電以及燈泡,電這種介質傳播很快,可以通過燈泡顯示計算結果,比單純的人在石頭上刻快很多)……

n.通過電運算,運算結果怎麼顯示? (電燈的個數顯示運算結果。有電則亮,沒電則不亮)

中間分層實現n層到1層的連線,每一層解決對應的技術問題。

n-1層如下:

假設已經有電和燈泡,解決了結果的顯示問題,那麼如何才能表示我們平時運算的數字和運算邏輯呢?

運算邏輯使用閘電路的組合解決即可(串並聯和感測器)運算數字我們平時用的十進位制,符號為0~9,如果精準定位每乙個符號,需要十種不同的狀態,而且運算結果也需要十種狀態來對應顯示,而燈泡只有亮和不亮兩種狀態,那麼如何解決呢? 採用二進位制,二進位制每位上只有0和1兩個符號,只需兩種狀態來代表即可。

n-2層如下:

運算正數解決了,負數如何表示以及如何使用運算邏輯?

將最前一位定義為符號位,則一半為正,一半為負,引入數學中的模的概念

。。。。

總結以上,我們在思考問題時,首先應該將大問題分層

1.大問題(和可能解決大問題的已經技術上攻克的工具手段)

。。。。(中間層,為最底層和上層一層層服務的介面,一系列邏輯(實現規則)和編碼(定義狀態和事物))

n.已有的技術手段(必須經過的環節,最後流向的地方)

中間層的邏輯應該由1和n層以及存在的條件推理得出

我們平時應該抽象出一些邏輯(封裝)

比如:如何得到大學畢業生?(計算要素)

高中考上大學的畢業生(學費,四年時間)

;舉個例子:數學上的級數求和

1.級數求和。(猜想:應用已有的具體的某個泰勒公式得到結果)

。。。n.找到合適的泰勒公式,求出結果。

再舉個栗子:找乙個好男朋友

1.找乙個好男朋友(猜想:從身邊好朋友的男朋友觀察)

。。。(中間過程,要找乙個好男朋友,那麼需要對身邊的人的男朋友的優點進行分類,有這些優點的就是好男朋友)

n.找到合適的男朋友

正如找男票的邏輯,級數求和本質上就是找合適的泰勒公式,我們只需要將泰勒根據特點分好類,就可以根據特點唯一定位到某個泰勒公式求出結果了。(而找泰勒公式的這個過程中有很多困難,但是只有泰勒公式和定積分這兩種求和的方法,最後都要到已有的實現手段上來)

計算機的邏輯運算

上一節 十六進製制與資料寬度 我們提到,計算是有寬度的。比如 乙個二進位制數 1111 1111 1111 1111 b 我們用4位,4位書寫形式ffff這樣比較簡單。計算機除了算術運算外,還有邏輯運算,只有二進位制才能進行邏輯運算。邏輯運算只有對與錯,成與敗兩個結果 也就是0和1 0 0 0 0 ...

計算機和程式語言

計算機是怎麼做的 計算機擅長做什麼樣的事情 計算機能做什麼樣的問題 什麼事情是計算機不容易做或不擅長做的 計算機怎麼解決問題的 請給我一杯水 你要和他說 1.轉身走到廚房 你要和他說 2.找到乙個杯子 你要和他說 3.找到乙個水壺 你要和他說 4.在杯子裡到人一些水 你要和他說 5.拿著杯子走回桌子...

計算機的程式語言

參考 0.簡述 在計算機體系中,指令就是指揮計算機工作的指示和命令。不管是哪種計算機語言編寫的程式,在執行時最終都會轉化為計算機能識別的01二進位制指令序列。本文簡單講講計算機程式語言。下面一張圖是c語言 組合語言以及翻譯過的機器語言 1.機器語言 是用二進位制 表示的計算機能直接識別和執行的一種機...