在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

模塊化程序設計-2

汽車電子技術 ? 來源:玉工講技術 ? 作者: 玉素甫·買買提 ? 2023-02-21 16:17 ? 次閱讀

人們常把程序稱為計算機的靈魂。1976年瑞士計算機科學家Niklaus Wirth在他的驚世之作中提出了一個著名的公式:

程序 = 算法 + 數據結構

從今天的觀點來看,它只能是對過程化程序的一個抽象定義,對面向對象的程序而言則不盡然。不過對我們學習C語言這樣的面向過程的程序設計語言而言,是完全適用的。同時,C語言也能實現封裝、繼承、多態等面向對象風格的編程。從個人經驗來看,當我理解用C語言編寫面向對象的風格的編程案例后,面向對象編程中讓人迷惑的那些初始化、this、方法(函數)多層次調用等概念恍然大悟,再也不感到恐懼和迷惑了。本文主要討論面向過程編程常用的模塊兒化程序設計思想。

圖片

圖1 實現虛擬機原理

1、我們在計算機“大樓”的第幾層

計算機這個大樓的基礎是量子力學及半導體物理,自從圖靈提出了理論模型,布爾創立了布爾代數,香農的碩士論文證明布爾代數可以用繼電器的開關電路實現之后,隨著晶體管的發明,計算機的電路才有可能微型化。計算硬件電路完成以后,還需要軟件的支持,對程序語言的需求就凸顯出來,最早的機器語言及匯編語言,后來慢慢出現的C, C++這樣的高級語言等非常適合系統級編程,也是近距離觀看和理解編程思想有效手段之一。

圖片

圖2 計算機“大樓”的層次

在圖2中各層具體含義為:1F量子力學、2F晶體管、3F邏輯電路、4F計算機體系結構、5F匯編語言、6F高級語言、7F應用程序。從這點可以看出,作為高級語言的C/C++在第六層(6F)。其中第三層(3F邏輯電路,即布爾代數可以用繼電器的開關電路實現)是我們連接軟件世界和電路(電子電氣)世界必經之路。工業和自控領域,繼電器是理解二次側回路和低壓電路的必備概念,在后續文章中進一步討論。

2、模塊兒化程序設計

模塊化程序設計就是進行大型程序設計的一種有效措施。其基本思想是將一個大的程序按功能進行分割成一些模塊,使每一個模塊都成為功能單一、結構清晰、接口簡單、容易理解的小程序。C語言是一種提供如下一些支持模塊化軟件開發的功能:

(1)函數式的程序結構:程序整體由一個或多個函數組成。每個函數都具有各自獨立的功能和明顯的界面。

(2)允許通過使用不同存儲類別的變量,控制模塊內部及外部的信息交換。

(3)具有編譯預處理功能,為程序的調試、移植提供了方便,也支持了模塊化程序設計。

無論涉及的問題是復雜還是簡單,規模是大還是小,用C語言設計程序,任務只有一種,就是編寫函數,至少也要編寫一個main()函數。對新手來說,無論面向過程還是面向對象的編程,最終的難點在于函數編寫(一般在面向對象編程中叫做方法)。因此,編寫程序關鍵點在于將復雜問題分解成多個函數或對象后,逐步編寫其中的運算操作語句和流程控制語句。

執行C程序就是執行相應的main()函數。即從它的main()函數的第一個前花括號開始,依次執行后面的語句,直到最后的后花括號為止。其它函數只有在執行main()函數的過程中被調用時才執行。如圖3所示:

圖片

圖3 將功能改為函數的過程

3、重新理解編程中的函數

高級語言中“函數”的概念和數學中“函數”的概念不完全相同。在英語中“函數”與“功能”是同一個單詞即function。高級語言中的“函數”實際上是“功能”的意思。當需要完成某一個功能時,就用一個函數(可以是標準庫函數或自己設計的函數)去實現它。在進行程序設計時,我們先集中考慮main()函數中的算法(相當于做事情前后順序和處理步驟)。當main()中需要使用某一功能時,我們就先寫上一個調用具有該功能的函數的表達式(或后綴為括號的具體函數名稱)。這時的函數相當于一個黑盒子,如圖4所示。

圖片

圖4 函數代表著具有輸入輸出接口系統或黑盒子

我們只須知道它具有什么功能或作用,如何與程序通信(輸入什么,返回什么),別的東西我們先不去處理它。圖4好比“信號與系統”課程中的“系統”的抽象,但函數代表的系統輸入和輸出不是信號而是數據(當然信號也能用數據標識)。

如同設計一部機器一樣,當需要在某處使用一個部件時,我們就先把它畫上,并標明它的功能以及安裝方法,至于如何制造先不用考慮,因為也許它可以直接購買來。設計完main()的算法并檢驗無誤后,我們開始考慮它所調用的函數。在這些被調用的函數中,若在庫函數中可以找到(像制造機器時,庫房中已有的零部件),那就直接使用,否則再動手設計這些函數。這樣設計的程序從邏輯關系上就形成圖5所示的層次結構。

圖片

圖5 C語言程序的層次結構

這個層次結構的形成是自頂向下的。這種方法稱為自頂向下、逐步細化的程序設計方法。這種方法允許人在進行程序設計時, 每個階段都能集中精力解決只屬于當前模塊的算法,暫不考慮與之無關的細節, 從而能保證每個階段所考慮的問題都是易于解決的,設計出來的程序成功率高,而且程序層次分明、結構清晰。

4、結束語

函數不僅代表功能,也可以代表人或其他任何對象的抽象。一個部門的組織架構也用一個C語言多層次函數來描述。一個職責和任務沒有劃分清楚組織架構就像一個設計不合格的程序結構。許多大型軟件系統包含了相當豐富的功能,意味著需要編寫相當數量的函數來實現可供從事某種領域工作的人員使用。比如說,數據中心基礎設施大致上可分為電源、電氣、暖通、弱電、消防(氣消)、裝修、自控、柴油發電機組等。為了建設方方便,我們也可以將部分功能放到機房工程模塊里。因此,怎么的劃分各功能模塊及其接口是某種程度上決定著軟件系統性能、可擴展性和靈活性。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 計算機
    +關注

    關注

    19

    文章

    7536

    瀏覽量

    88643
  • 布爾代數
    +關注

    關注

    0

    文章

    11

    瀏覽量

    7882
  • 半導體物理
    +關注

    關注

    0

    文章

    5

    瀏覽量

    6433
收藏 人收藏

    評論

    相關推薦

    模塊化程序

    現在大家寫程序都是模塊化嗎,就是不同的模塊放在不同的文件夾里。比如所有的h文件放一起,所有的h文件聲明一起,主程序只有一小段就行,很好的,就是剛開始學習
    發表于 11-12 15:15

    VerilogHDL模塊化程序設計

    VerilogHDL模塊化程序設計中文期刊文章作  者:向兵作者機構:[1]綿陽職業技術學院,四川綿陽621000出 版 物:《科技資訊》 (科技資訊)年 卷 期:2017年 第27期摘  要
    發表于 05-04 12:06

    嵌入式模塊化程序設計的相關資料分享

    模塊化程序設計是指在進行程序設計時將一個大程序按照功能劃分為若干小程序模塊,每個小程序模塊完成一
    發表于 11-09 08:20

    C語言模塊化程序設計理解

    程序設計語言,在模塊的劃分上主要依據功能(依功能進行劃分在面向對象設計中成為一個錯誤,牛頓定律遇到了相對論),C語言模塊化程序設計需理解如下概念:  (1)
    發表于 12-15 06:34

    C語言模塊化程序設計需理解哪些呢

    (依功能進行劃分在面向對象設計中成為一個錯誤,牛頓定律遇到了>相對論), C語言模塊化程序設計需理解如下概念:(1) 模塊即是一個.c文件和一個.h文件的結合,頭文件(.h)中是對于該模塊
    發表于 12-15 06:04

    嵌入式系統的微模塊化程序設計有何作用

    什么是嵌入式系統的微模塊化程序設計?嵌入式系統的微模塊化程序設計有何作用?
    發表于 12-24 06:35

    模塊化程序設計簡單解釋

    模塊化程序設計模塊化程序設計是指在進行程序設計時將一個大程序按照功能劃分為若干小
    發表于 02-23 06:05

    模塊化程序設計

    模塊化程序設計思想,單片機c語言的模塊化設計,方便移植,將程序封裝備用。
    發表于 03-22 15:29 ?9次下載

    模塊化程序設計

    模塊化程序設計,利用c語言的移植性好特點,更好的利用c語言。
    發表于 03-23 09:25 ?0次下載

    C語言指針用作函數參數模塊化程序設計以及增量測試方法的程序

    本文檔的主要內容詳細介紹的是C語言指針用作函數參數模塊化程序設計以及增量測試方法的程序
    發表于 12-25 08:00 ?1次下載
    C語言指針用作函數參數<b class='flag-5'>模塊化</b><b class='flag-5'>程序設計</b>以及增量測試方法的<b class='flag-5'>程序</b>

    電賽模塊化程序案例下載

    電賽模塊化程序案例下載
    發表于 05-26 09:41 ?12次下載

    嵌入式軟件開發之模塊化程序設計(三)

    模塊化程序設計是指在進行程序設計時將一個大程序按照功能劃分為若干小程序模塊,每個小程序模塊完成一
    發表于 11-03 21:06 ?10次下載
    嵌入式軟件開發之<b class='flag-5'>模塊化</b><b class='flag-5'>程序設計</b>(三)

    c++程序設計_基于proteus的51單片機開發實例30-模塊化程序設計

    1. 基于proteus的51單片機開發實例30-模塊化程序設計1.1. 實驗目的模塊化程序設計不知不覺我們的51單片機開發實例已經進行到第三十篇了,是時候進行一個總結和反思了,總結什
    發表于 11-21 15:36 ?13次下載
    c++<b class='flag-5'>程序設計</b>_基于proteus的51單片機開發實例30-<b class='flag-5'>模塊化</b><b class='flag-5'>程序設計</b>

    嵌入式軟件架構設計之模塊化

    模塊化程序設計是指在進行程序設計時將一個大程序按照功能劃分為若干小程序模塊,每個小程序模塊完成一
    的頭像 發表于 02-15 14:42 ?1060次閱讀
    嵌入式軟件架構設計之<b class='flag-5'>模塊化</b>

    模塊化程序設計案例DCIM-3

    在設計較復雜的程序時,一般采用自頂向下的方法,將問題劃分為幾個部分,各個部分再進行細化,直到分解為較好解決問題為止。利用函數,不僅可以實現程序模塊化,使得程序設計更加簡單和直觀,而且
    的頭像 發表于 02-21 16:23 ?1495次閱讀
    <b class='flag-5'>模塊化</b><b class='flag-5'>程序設計</b>案例DCIM-3
    主站蜘蛛池模板: 久久国产成人精品国产成人亚洲 | 黄乱色伦 | 五月婷综合网 | 成人宗合网 | 久久黄色录像 | 久草色香蕉 | 成人国产精品高清在线观看 | 视频在线观看一区 | 国产精品视频色拍拍 | 4tube高清性欧美 | 久久综合九九亚洲一区 | 亚洲免费视频播放 | 一级黄色毛片免费看 | 国内一级特黄女人精品片 | 国产精品一区二区三区四区五区 | 免费a大片| 性色在线视频 | 亚洲国产第一区二区香蕉 | 久久新视频 | 成人欧美另类人妖 | 波多野结衣在线视频免费观看 | 222www在线观看免费 | 午夜影院免费视频 | 韩国理论片在线看2828dy | 35pao免费视频| 日本三级黄色录像 | freesexvideo性欧美tv | 午夜影网| 99国产精品久久久久久久成人热 | 干夜夜| 日韩精品网址 | 精品久久久久久 | 久久青草91免费观看 | 99久久免费精品高清特色大片 | 欧美性另类69xxx | 黄色日本视频 | 国模吧一区二区三区精品视频 | 亚洲精品综合网在线8050影院 | 精品亚洲综合在线第一区 | 在线免费观看91 | 毛色毛片 |