當前位置:首頁 » 編程軟體 » 語言編程實例

語言編程實例

發布時間: 2022-12-18 14:23:20

c語言編程實例

首先main中對x進行賦值,是12345678這個無符號長整形數,然後傳到part()函數中,結構體那部分不用考慮,其它地方也沒有對num進行更改,不會對內容有影響,所以輸出結果為12345678;
然後p=&n把n的地址賦給指針p,n.w=num把12345678賦給w,此時結構體n的地址其實就是12345678所在的地址,p指向n,同時結構體*p中的數組part的初始地址也在p上,也就是說p指向的數組part於n.w的首地址是相同的;
看你的輸出結果,你的C中int和long應該都是32位吧,所以輸出part[0]就是輸出part地址上的前32位,即num,part[1]上都是空的,什麼也沒有,所以就是8個C;
PS:我想這個程序的意義是把long型整數進行拆分,分別輸出高低位兩部分,但是你的C中的int和long都是32位,所以沒成功吧
呵呵,也不知道說的對不,C很久沒用了

❷ C語言編程簡單實例

是條件,不可以少的,for
(
表達式1;
表達式2;
表達式3
)
一條語句/復合語句
無論
for
循環到底會循環多少次,表達式1
都只會被運算一次——只有當
for
循環第一次執行時才會運算表達式1。表達式2
用於控制是否繼續進行循環。如果表達式2
為真,則執行「一條語句/復合語句」,反之則退出循環。出於表達上的方便,我們把循環結構中的「一條語句/復合語句」稱為循環體。在表達式2
成立的情況下,並且在循環體執行完畢後,表達式3
才會被運算。表達式3
運算完畢後,再次運算表達式2,若表達式2
為真,則再執行一次循環體,然後再運算表達式3,接著再測試表達式2
的真假性……

❸ 中文編程語言的舉例

中文編程語言有: 易語言是一門計算機編程語言。以「易」著稱,以中文作為程序代碼表達的語言形式。易語言的創始人是吳濤。早期版本的名字為E語言。易語言最早的版本的發布可追溯至2000年9月11日。可以說,創造易語言的初衷是進行用中文來編寫程序的實踐。從2000年至今,易語言已經發展到一定的規模:功能上、用戶數量上、資源豐富度上都十分可觀。
1.易語言功能強大實用,現已具有數十個各種應用范圍支持庫、上百個數據類型和界面組件、近萬條支持命令,支持現今所有資料庫,功能絲毫不比其它同類產品差。
2.全自主知識產權,易語言系統全部自行設計開發。
3.自由編譯器。所編譯目的程序運行速度快,且沒有安全隱患。
4.自帶小型資料庫,減少開發項目投入成本,且容易學習。
5.跨操作系統平台編程。同時支持Windows和Linux的程序開發。(Linux下的程序有局限性)
6.中文本地化支持。支持中文格式日期和時間處理、漢字發音處理、全半形字元處理、人民幣金額處理、農歷日期轉換等。
7.和其它編程語言互溶互通,學習掌握易語言對掌握其它編程語言具有橋梁作用。
8.編程理念互通。支持完全面向對象的程序開發技術和面向事件的程序驅動技術。
9.功能調用互通。可以和其它編程語言之間相互調用功能模塊。
10.充分利用已有資源。支持OCX組件、TypeLib類型庫、操作系統API、JAVA類等。
11多語言支持。現已有簡繁中文、英文等多種語言版本,英文版本稱作EPLSW,最新版本為4.0,對應中文版本的5.11,僅僅是語言和輸入方式上存在不同。 習語言即中文版的C語言,由一套完備的編程語法和相配套的工具組成,旨在將計算機及軟體編程大眾化,普及化,中文化,提高程序的維護性而誕生。適合國人使用,尤其適合作為初學者的入門學習工具。
作為一種中文編程語言,習語言中所有的關鍵字和函數都為中文。習語言已經完全支持匯編和C語言,並向windows圖形處理發展。
歷史經驗證明,英文寫的代碼時間久了大部分都會遺忘的。而習語言則避免了這一點,中文瀏覽下就可以回憶起來,真正符合漢語言特色。而且支持全形標點符號,編程時輸入符號類時不用頻繁切換中英文輸入。
中文C(習)語言中文編程系統(簡稱:習語言):是一款主要用於教育和學習的中文編程軟體系統。基於現有C語言系統實現並有擴充。其特點如下:
1、完全兼容現有的C語言系統,在設置好頭文件路徑的條件下,可以編譯現存大部分C代碼。
2、完全支持全中文編程,自帶大量中文函數。
3、綜合了PASCAL和C的優點實現,支持 「開始」「結束」擴起語句塊。支持【】注釋方法,方便程序組織。
4、支持多位元組字直觀表示。如 '我', 'abcd'都可以作為字元看待。
5、支持中文標點符號,中文標點符號和英文標點符號可以混合使用。
6、支持文章式的程序組織,中文文章中嵌入程序,直接編譯。
7、支持中文運算符,支持全形,半形混合使用。
8、體積小巧,簡單使用情況下只需單一介面文件,降低使用難度。
用途:
1、開發底層軟體如操作系統等
2、寫控制台程序(俗稱DOS程序)
3、寫純圖形界面程序(通常的WINDOWS程序 )
4、寫控制台和圖形界面同時存在的混合程序。 A語言即中文版的pascal語言
A語言(Action Pascal)是一個高級解釋性編程語言。A語言設計者是任氏定理的提出者任家輝,同時由陌訊科技團隊開發A語言解釋器。
在全國信息學奧林匹克大賽(簡稱NOI)中,Pascal是被採用的三種編程語言之一。由於它具有良好的結構程序設計特性,但是大多數pascal開發環境是英語,東西方文化的差異造成對編程學習上的很大區別,很多具有能力和興趣的初學者,看見滿行的英文就選擇了放棄。而A語言也像易語言那樣以「易」著稱,以中文作為程序代碼表達的語言形式。是一個高級解釋性編程語言 顧名思義O匯編語言也是一門匯編語言,它具有傳統匯編語言的基本特點,也有與它們諸多不同之處。O匯編語言一個最大顯著的特點是支持語言配置,使得它可以支持所有你想支持的語言,當然,O匯編語言的初衷是為了支持中文,所以它可以非常好的支持中文匯編。如果你已經習慣了其它英文的匯編模式,比如你喜歡用EAX、EBP類似這樣的方式來命名寄存器,不要緊,只需要修改一下語言配置文件,這可以輕松做到。O匯編語言另一個顯著的特點是指令使用非常直觀和人性化,在不缺失匯編語言靈活性的情況下,使匯編語句的語意可以很直觀地表現出來,這主要得益於用了一些象徵性的符號,使得匯編語句不再是千篇一律的(指令 寄存器,內存操作數) 這樣的格式,而是更像 (寄存器 操作符 內存操作數)這樣的格式,不但容易理解,而且便於記憶,使匯編語言不再那麼枯燥,使人一團霧水。[1]
5、編寫游戲程序( opengl) 原名「發燒積木」屬於搭建式的編程工具,完全可視化編程,有各種各樣的構件,用拖放的方式拼成程式的流程。
特點:1.安裝簡單、迅速,純中文界面。構件豐富,設計過程直觀、自由;無需掌握電腦語言,所有編程構件化、命令化、可視化。2.互動式開發,只需要四種類型的「命令」,便可建立各種構件之間的聯系;象搭積木一樣簡單,並可快速的搭建出具有專業水平的軟體作品。3.微解釋執行,命令解釋量小,執行速度快。可以和編譯後的可執行文件相媲美。
基本功能:多媒體軟體製作,支持多種聲音、動畫、圖像、視頻文件格式。有關教學構件,平面直角坐標系、表達式、變數組、函數圖像、函數列表、樹形瀏覽等;另外還新了動態流程圖、瀏覽器構件、軟體服務號等。提供打包工具,使您即刻將自製軟體安裝到其它機器上運行;自動對開發項目加密;使您的項目,在未經授權下,別人無法「瀏覽、修改」項目的構件關系與搭建方法

❹ C語言的經典編程例子


程序員》推薦C++ 圖書三人談

主持人:熊節(透明),《程序員》雜志編輯,C-View成員
嘉 賓:孟岩(夢魘),聯想公司掌上設備事業部應用開發處任職,C-View成員。與侯捷先生合譯《C++ Standard Library》一書
金尹(惡魔),上海天宇公司CTO,在《程序員》連載有「自由與繁榮的國度」系列文章

透明:「學C++用哪本書入門」,這是被問得最多的一個問題。但是哪一本書是最好的入門書?似乎很難找到答案。《C++ Primer》太厚,《Effective C++》對讀者要求比較高,《Essential C++》又常常被批評為「太淺」。
其實說穿了:no silver bullet。想從一本書學會C++,那是不可能的。有朋友問我如何學C++,我會建議他先去找本數據結構書,把裡面的習題全部用C++做一遍,然後再去看《Effective C++》。myan經常說「要在學習初期養成好習慣」,我對此頗不以為然。
個人認為,《Essential C++》適合作教材,《C++ Primer》適合作參考書,《Effective C++》適合作課外讀物。

惡魔:很後悔當初買了《C++ Primer》。因為從我個人角度來看,它的功能效用基本是和《The C++ Programming Language》重合。當然對於入門來說,它還是很不錯的。但是《C++ Primer》太厚,一來導致看書極其不方便,二來系統學習需要花比較長的時間。對於目前這個越來越快餐化的時代來說,的確有很多不適合的地方,不過可以作為初學者的參考書。現在我以一塊K3 CPU的代價把它借給了別人,希望我那位同事能夠從中得到一些益處。
如果已經具備了C基礎,我建議看國內的書,例如錢能的《 C++大學教程(第二版) 》。(如果沒有C的基礎還是看譚浩強的C語言)。這本書對C講得還算比較清晰,有很多習題值得一做,特別是最後的struct和union兩個部分。其中的一些演算法比較拖沓和繁瑣(比如樹和鏈表的遍歷演算法),讀者可以嘗試修改這些例子,作為最後對C語言的一些總結測試。

夢魘:這個問題讓我想起四五年前的情形。今天對於C++有一點認識的人,多半是從那幾年就開始學C++了。那時根本沒有品牌觀念。從書店裡找一本C++書,如果看著還算明白,就買下來。我記得那時候宛延闓、張國鋒、麥中凡教授的書都受到很高的贊譽。我個人最早的一本C++書是Greg Perry的一本書,今天想起來,其實是一本打著C++旗號的C語言教程。對我作用最大的一本書是國防科技出版社出版的一本書,書名記不得了,作者叫斯蒂芬·布萊哈。
透明:還記得以前曾批評過一本C++書,是北航出的,整本書就沒有出現過class關鍵字。那本書,說穿了其實只是介紹了C語言和iostream庫的用法,根本不能算C++。而當時我常常推薦的一本書是電子科技大學張松梅老師的C++教程。那本書,直到今天來看也沒有太大的問題,唯一的缺憾就是由於年代久遠,許多東西已經過時了。而對於一本技術書籍來說,「過時」是最不可接受的。
總體來說,那時使用C++的人真是在「盲人摸象」。不過這也有好處,就是對C++的很多細節能搞清楚,以後看到經典好書時比較容易理解;當然壞處就是概念不清,甚至都不知道C++和Visual C++、Borland C++到底有什麼不一樣。

夢魘:整個90年代,其實大部分人對於C++的認識都似是而非。一開始是等同於Borland C++,後來是等同於Visual C++和MFC。所以一般來說,打著BC和VC旗號的書賣得很好,人們覺得這就是C++。而我比較幸運,布萊哈的那本書雖然從現在的眼光來看談不上高超,但基本路子是對的。可能是因為原書是給UNIX程序員的培訓教材,所以沒有讓我一開始就形成「C++ == VC++」的認識。
其實一直到1996年,我們那裡搞計算機的都是唯Borland C++馬首是瞻的,到了VC 4.0出來,一下子格局全變了。1997年VC5推出之後,書店裡MFC書鋪天蓋地,學MFC的人,頭抬得都比別人高一些。不過現在看來,那時候大部分的MFC書都是三流貨色。我曾經有一段時間認為,那一批程序員中間有不少被誤導了。根本原因就是相對的封閉。

透明:我覺得一本書的價值有兩方面:第一,教給你實用的技術;第二,促使你去思考。對於一本介紹VC(或者說MFC)使用方法的書,我根本不希望它能促使我有什麼思考,所以我就一定要求它在技術上精益求精完美無瑕。我剛開始用VC的時候,買的第一本書就是潘愛民老師翻譯的《VC技術內幕》(第四版),沒有受到那些「三流貨色」的誤導,應該說是很幸運的。

夢魘:1999年機械工業出版社開始出版「計算機科學叢書」,其中的《Thinking in C++》第一版受到了廣泛的歡迎。其實我一直不認為這本書很出色,雖然拿過一次大獎。然而我們都得承認,這本書在C++書籍領域里第一次建立了品牌觀念,很多初學者開始知道,不是隨便買哪一本都一樣的。再往後就是2000年的《 深入淺出MFC(第二版) 》第二版,以及侯先生在《程序員》上發表的那一篇《C++/OOP大系》,加上整個大環境的變化,品牌觀念深入人心,C++書籍市場終於開始逐漸與世界同步。
回想往事,我的感覺是,那個需要戰戰兢兢選擇入門書的時代已經過去,今天的C++初學者,大可以放心地買口碑好、自己讀起來思路順暢的書,入門不再是太大的問題。還有一些程序員已經學了幾年C++,但看到今天出版的一些新書,感覺比較陌生,這也不是什麼問題。侯先生經常說「凡走過必留下足跡」,所謂「走彎路」,未必不是一件好事。
至於具體的推薦表,就不好一概而論了。總之在我的印象里,《Essential C++》、《C++ Primer》、錢能教授的C++教程,都不錯。甚至有人一上來就看Bjarne Stroustrup的《The C++ Programming Language》,只要他喜歡,也沒什麼不可以。

透明:我同意你的觀點。不管怎麼說,編程是門實踐性非常強的學問。要想對C++對象模型有深入的了解,最好的辦法就是寫一串程序去看結果;要想學會OOP,也只能從項目中學。對於初學者,最好的學習方法就是不停地寫程序,寫真正有用的程序,寫到有問題的時候就去查書,於是自然就會知道哪本書好哪本書不好。不過我們的教育制度能不能讓大學里的學生們有這樣的學習機會,我表示懷疑。
以我的經驗,學C++有兩個門檻:入門和使用。完全看不懂C++,這是一個門檻,但是只要有一本合適的入門書,很快就能跨過。要想真正用上C++,卻不是件很容易的事情。尤其對於學生來說,接觸到的東西多是「玩具」,很難有實戰的機會。所以經常看見有人問「C++到底能做什麼」,這是C++學習中一個比較麻煩的問題。我們都是做了相當長時間的C++程序之後才看到一些真正經典的書,也正是因為走了相當長的彎路之後才知道這些書的經典之所在。所謂彎路,我想也是一種必須的積累。就算一開始就看《Essential C++》和《C++ Primer》,沒有兩三年的時間恐怕還是難有所得。

惡魔:有兩句十分有道理的話,一是我大學的C語言老師說的「寫程序不如說是抄程序」,另一句是一網友說的「好的設計來自借鑒,天才的設計來自剽竊」。對於我這個理性批判主義者來說,這兩句話的確不太適合。但是無論從哪個角度來講,對於初學者來說,剽竊大師的作品是通向成功的最快捷徑。
我個人認為,對於C++的初學者來說,首先要確定自己專業領域內主要使用的特性的方向。因為C++的特性如此眾多,初學者想貪多基本是不可能成功的。C++的編程範式基本可以分為ADT+PP、GP和OO三個方向。對於ADT+PP範式來說,初學者的主要問題不是學習C++,而是學習C的使用。對於這樣的初學者,國內的幾本書還是寫得比較清楚,符合中國人的習慣,比如譚浩強的《C語言教程》、錢能的《C++語言大學教程》。這兩本書我首推第一本,因為這一本我潛心研究了一年,這本書當中很多程序是可以剽竊的,而且可以對這些程序進行加工和提升。比如結構這一章中,它所給出的用struct來實現鏈表、二叉樹的演算法是相當蹩腳的。學習ADT+PP的初學者將這本書揣摩透以後可以嘗試修改這兩個程序。另外這本書的第二版稍微涉及了一些關於「類」的內容。學習ADT+PP的初學者,可以不被OO中的一些專有特性擾亂自己的思路,對於類層次扁平、無繼承、無多態的程序編寫是有很大好處的。

透明:你好象比較推崇國內教授寫的書。現在社會上有種不好的風氣:一捧就捧上天,一貶就貶下地。就好象對待譚教授的書,前幾年是奉為經典,這幾年又有很多人使勁批評。學C++更是有點「崇洋媚外」,總是覺得初學就應該看《Essential C++》。我看這種觀點也是片面的。

惡魔:當然《Essential C++》也值得看看。但是我個人覺得這本書沒有譚浩強的《C語言教程》來得好。主要原因是:第一,C++的所有特性都點到了,但是不深,看了以後會三心二意沒有方向;第二,可以抄襲借鑒的例子太少。《C語言教程》中有很多有趣的問題,比如猴子吃桃、漢諾塔等等,這些例子對於剛剛涉及C/C++語言編程的人來說是學習編程很好的例子。《Essential C++》只能是前兩本書看透以後,作為學習C++特性的一個過渡性的書籍。讓讀者真正領略到什麼是C++的編程、和C編程的不同點在哪裡。

透明:我發現一個很有趣的現象:初學者往往喜歡問「哪本書比較好」,這讓我很是不解。這有點像一個剛學打籃球的人問「王治郅和科比誰比較厲害」。當然科比更厲害一些。但如果你是想學打籃球,這兩個人都非常非常有資格教你,你跟誰學都能學得很強——關鍵不是在於你選哪個老師,而是在於你自己用多少功夫去學。

透明:回到原來話題。學會了C++的語法,能看懂C++代碼之後,必須有些書來指導進階(或者叫指點迷津)。我覺得《設計模式》很好,能夠讓讀者看到一些精妙的用法。不過正如我經常說的,模式帶來的麻煩和好處一樣多,甚至麻煩還要更多。而且,C++本身的問題使得在C++中使用GoF模式愈加麻煩。

夢魘:《Design Patterns》這本書絕對是不可以沒有的,而且中英文版都不可少。最初我看中文版,說實話看不懂,但是也不覺得人家翻譯得不好,所以就想,大概是原文就很難懂,加上自己水平有限。於是總是想著再找幾本patterns的書來看。後來找到幾本書,口碑還不錯,不過水平高下,一比就出來了,還是那本《Design Patterns》最經典,最耐看。英文版出來之後,兩個版本對照看,明白多了。現在覺得,其實就設計模式來講,把這本看明白了就很不錯了,不用再花費很多心思找其他的書。我現在的包里始終夾著這本書,隨身攜帶,有備無患。
至於說設計模式的副作用,和可能帶來的弊端,我的體會也挺多。不過是這樣,我們想一想,究竟什麼情況下設計模式可以用得很好呢?一種是有經驗豐富的人引導,比如要是Robert Martin帶隊,你在某個地方用錯了設計模式,他就會指出來,說這里不對,將來會產生什麼樣的弊端。對於他來說,豐富的實踐經驗足以支持他進行「預測型」設計。但是大部分人沒這個能力,因此我們只好走第二條路和第三條路,就是「試探型」設計和「重構型」設計。遇到一個問題,你覺得用某種模式挺合適的,就大膽地用了,成功是積累經驗,發現不好,出了問題了,只好改回來,那也是積累教訓。這叫做「試探型」。至於重構,應該算是最有組織、成功率最高的工程化方法。先把問題「quick and dirty」地解決了,所有的暗礁都暴露出來,然後再根據實際情況採用合適的模式優化設計。現在XP和UP都高度重視refactory,UP在Elaboration和Construction階段都鼓勵抽出專門的iterations進行重構。所以說如果組織快速的軟體開發,當然比較傾向於這條路——打成功率嘛。

透明:講到重構,我順便說說《Refactoring》這本書的影響。從工程本身的角度來說,你所謂的「重構型設計」是沒有什麼問題的。但中國的開發者(也包括我在內)往往比較沖動,比較容易相信銀彈的存在。曾經有那麼一段時間,我在Java中嘗試過了重構的方法之後,又拿到C++中去嘗試。結果發現,在Java中速度非常快的重構過程,到C++中就被減慢了。究其原因,就是因為C++和Java的約束條件不同。拿著Java中成功的案例直接套C++,不失敗才怪。
所以,我必須說:《Refactoring》這本書很有價值。但對於C++程序員來說,它的價值是讓你思考,思考這種方法的可行性。如果一個C++程序員沒有打算遷移到Java,那麼我必須告訴他:《Refactoring》這本書不是讓你照著它用的,甚至不是讓你去相信它的。對於C++程序員,《Refactoring》全書可以放心相信的只有第13章,其他的部分,都必須非常謹慎地對待。

夢魘:我還要就「試探型」的方法多說兩句,我覺得對於個人發展來講,「試探」也是必不可少的,撞牆不可怕,高水平的人不都是撞出來的嗎?你失敗了一次,就知道這個模式有什麼潛在的問題,下次再用,就會多看幾步,像下棋似的。撞的多了,路數就出來了。
我不知道你們是否有這個感覺:用錯了模式,吃了虧,再回過頭去翻翻《Design Patterns》,看到人家早就指出來這個問題,不過就是那麼幾句話,原來看上去乾巴巴的,現在覺得句句都講到心坎上,GoF的形象馬上就高大起來,還帶著光環,感覺是既興奮又懊悔。

透明:現在回頭來看,我更欣賞myan推薦給我的《Designing Object-Oriented C++ Applications Using Booch Method》。這本書能夠幫助C++程序員理清思路培養習慣,可惜國內沒有引進。相比後來商業味濃厚的UML系列書籍,我覺得這本書對於面向對象的闡釋精闢獨到,至今未有能出其右者。

夢魘:剛才我們兩人都說到Robert Martin,他可是我的榜樣。那本1995年的《Designing Object Oriented C++ Application》,我覺得是每一個C++軟體工程師都應該反復研讀的書。可惜不僅國內沒有引進,在國外的名氣也不大。如果你覺得面向對象的那些道理你好像都明白,可就是一遇到實際問題就使不上勁,那這本書就是你的最佳導師。
提到理清思路,還有一本書不得不提,就是Andrew Koenig的《Ruminations On C++》。每個人都應該問自己,我學了這么多年的C++,究竟什麼是C++最基本的設計理念?遇到問題我第一個直覺是什麼?第一個試探型的解決方案應該具有那些特點?如果你不能給出明確的答案,就應該認真地去讀這本書,讀完了你就有了「主心骨」。

透明:插一句話,談談「推薦書」的問題。入門書基本上是放之四海而皆準的,所以推薦的意義也不大。而入門後的發展方向,每個人不同,這個時候就需要「高人」的指點。舉個例子:我學C++的時候,myan還不認識我,所以也沒有給我推薦書,我還是學過來了,所以即使你當時向我推薦了《Essential C++》或者《C++ Primer》,我也不會太感謝你;但在我認真研究OO的時候,你推薦Robert Martin那本書給我,對我幫助就特別大,而且我從別的地方也很難找到類似的推薦,所以我就很感謝你。
一個程序員,必須有framework的意識,要學會用framework,還要主動去分析framework(在這方面,《Design Patterns》能有一定的幫助)。但是,真正高質量、成氣候的framework的書恐怕也就只有針對MFC的。從這個角度來說,MFC縱有千般不是,C++程序員都非常有必要先去用它、熟悉它、研究它,甚至藉助《深入淺出MFC》這樣的書來剖析它。不然,很難有framework的意識和感覺。
當然,另一個framework也很好,那就是STL。不管用不用MFC、STL,對這兩個東西的掌握和理解都是極有幫助的。最近我又在看《深入淺出MFC》,雖然已經不用MFC編程了,但幫助是一定有的。

夢魘:MFC和STL方面,我還是比較推崇侯先生的兩本書《深入淺出MFC》和《STL源碼解析》。
《深入淺出MFC》這本書,名氣自然是大得不得了,不過也有不少人批評。其實書也沒有十全十美的,批評當然是少不了的,不過有的時候我看到有人評論這本書,把它跟Inside VC相比,真的是牛頭不對馬嘴。
你剛才其實說得很對,程序員應該有一點framework意識。而這本《深入淺出MFC》與其說是在講MFC編程,不如說通篇是在拿MFC為例分析Application Framework的架構和脈絡。所以無論你對於MFC本身是什麼態度,這本書對每一個C++程序員都有很大的益處。

透明:是的。《VC技術內幕》會告訴你「DYNAMIC_CREATE這個宏怎麼用」,《深入淺出MFC》則告訴你「DYNAMIC_CREATE這個宏是怎麼實現的」。所以,如果你只需要在VC下寫一些小應用程序,《深入淺出MFC》的價值並不太大;但是,如果你需要設計一個稍微大一點的東西(不一定是framework),MFC的設計思想就會有所幫助。

夢魘:另外,我覺得對於MFC也應該有一個公允的評價。過去是吹捧得天上有地下無,書店裡鋪天蓋地都是MFC的書,搞得大家只知有MFC,不知有C++,甚至直到現在還有人問:「我是學MFC呢,還是學C++?VC++是不是比C++更高級的語言?」MFC成了一尊神像,阻礙了人們的視線。所以得把它從神壇上拉下來。這就是過去一兩年有很多人,包括我在內批評MFC的一個目的。可是現在大家視野開闊了,.NET也出來了,MFC不再是神像了,少數人就開始以貶損MFC為樂了。我覺得這種態度是不對的。
什麼叫好的框架?我覺得在十幾年的時間能夠象MFC這樣保持穩定並且不斷進步的框架就是好的框架。可能我們在一些具體的設計問題上有不同看法,覺得「這個地方這么設計不是更漂亮嗎?」很多時候是的,但是這不重要,重要的是MFC成熟穩定、有十幾年的成功經驗,這是最了不起的東西。
另外一點,MFC中間包括著學習Win32 API編程的最佳資料。這是除了其framework方面之外的另一個亮點。我現在使用Win32 API開發,但是經常參考MFC的源代碼,收獲很大。

透明:STL方面,我對於剖析它的源代碼興趣並不大,畢竟裡面源代碼多是演算法問題。所以,《STL源碼剖析》我也只是隨便翻翻就束之高閣了。我覺得這本書用來做計算機系的數據結構和演算法教材不錯,不知道有沒有老師樂意這樣做。
對於STL,我的態度一向都是「應用至上」。不過,我一直認為SGI STL本身就是一本精彩的書,一本數據結構和演算法的經典參考書,同時也是泛型技術的參考書。想知道一個演算法是如何實現的,看看STL源代碼就行;想知道如何使用type traits,STL源代碼裡面也有例子。看別人寫的書,總覺得隔著一層紗,有點撓不到癢處的感覺。SGI STL的代碼寫得非常漂亮,一個C++程序員如果不看看這本書,實在是可惜。

夢魘:至於STL,除了《STL源碼解析》之外,我舉賢不避親,強烈推薦侯先生與我合譯的那本《The C++ Standard Library》。這本書質量之高是無需懷疑的。我現在手邊常備此書,隨時查閱,對我幫助很大。

透明:C++和Java相比,最大的優勢就是它沒有一個專門的公司來管它,最大的弱點也是它沒有一個專門的公司來管它。Java程序員在學會簡單的語法之後,立刻進入SUN提供的framework,一邊用這個現成的framework做實際開發,一邊在開發過程中繼續學習Java一些幽深的特性。而這個時候,C++程序員恐怕還在問「VC和BCB哪個好」呢。這無疑是浪費時間。

夢魘:剛才你說Java和C++的優劣,這個話題已經成了我們這個年代永不消失的聲波了。我也不想再談這個。不過有一點我得說清楚:現在我們很多用C++的人吃了不少苦頭,探過脖子去看看Java,覺得它真是太可愛了,這種印象是不準確的。另外,Java也不簡單,而且會越來越龐大復雜。在很多場合,Java還不具有競爭力。至於將來如何,我看有些Java愛好者也過分樂觀了,似乎計算機科學界幾十年解決不了的問題都可以借著Java的東風解決掉,恐怕沒那麼容易。

透明:那當然。我再次強調:No Silver Bullet。讀書很重要,但古人說「行萬里路,讀萬卷書」,還是把「行路」放在「讀書」前面。尤其對於技術書籍,如果它不能幫我解決問題、不能給我帶來非常實際的利益,那麼我是不會去讀它的。惡魔說得對,我們這個社會很快餐,我們這個行業尤其很快餐,我們也只能努力適應它。

❺ 經典C語言程序例子

題目01:在一個已知的字元串中查找最長單詞,假定字元串中只含字母和空格,空格用來分隔不同的單詞。

(5)語言編程實例擴展閱讀:

C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。

盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。

❻ 單片機c語言編程100個實例

51單片機C語言編程實例 基礎知識:51單片機編程基礎 單片機的外部結構: 1. DIP40雙列直插; 2. P0,P1,P2,P3四個8位準雙向I/O引腳;(作為I/O輸入時,要先輸出高電平) 3. 電源VCC(PIN40)和地線GND(PIN20); 4. 高電平復位RESET(PIN9);(10uF電容接VCC與RESET,即可實現上電復位) 5. 內置振盪電路,外部只要接晶體至X1(PIN18)和X0(PIN19);(頻率為主頻的12倍) 6. 程序配置EA(PIN31)接高電平VCC;(運行單片機內部ROM中的程序) 7. P3支持第二功能:RXD、TXD、INT0、INT1、T0、T1 單片機內部I/O部件:(所為學習單片機,實際上就是編程式控制制以下I/O部件,完成指定任務) 1. 四個8位通用I/O埠,對應引腳P0、P1、P2和P3; 2. 兩個16位定時計數器;(TMOD,TCON,TL0,TH0,TL1,TH1) 3. 一個串列通信介面;(SCON,SBUF) 4. 一個中斷控制器;(IE,IP) 針對AT89C52單片機,頭文件AT89x52.h給出了SFR特殊功能寄存器所有埠的定義。 C語言編程基礎: 1. 十六進製表示位元組0x5a:二進制為01011010B;0x6E為01101110。 2. 如果將一個16位二進數賦給一個8位的位元組變數,則自動截斷為低8位,而丟掉高8位。 3. ++var表示對變數var先增一;var—表示對變數後減一。 4. x |= 0x0f;表示為 x = x | 0x0f; 5. TMOD = ( TMOD & 0xf0 ) | 0x05;表示給變數TMOD的低四位賦值0x5,而不改變TMOD的高四位。 6. While( 1 ); 表示無限執行該語句,即死循環。語句後的分號表示空循環體,也就是{;} 在某引腳輸出高電平的編程方法:(比如P1.3(PIN4)引腳) 代碼 1. #include <AT89x52.h> //該頭文檔中有單片機內部資源的符號化定義,其中包含P1.3 2. void main( void ) //void 表示沒有輸入參數,也沒有函數返值,這入單片機運行的復位入口 3. { 4. P1_3 = 1; //給P1_3賦值1,引腳P1.3就能輸出高電平VCC 5. While( 1 ); //死循環,相當 LOOP: goto LOOP; 6. } 注意:P0的每個引腳要輸出高電平時,必須外接上拉電阻(如4K7)至VCC電源。 在某引腳輸出低電平的編程方法:(比如P2.7引腳) 代碼 1. #include <AT89x52.h> //該頭文檔中有單片機內部資源的符號化定義,其中包含P2.7 2. void main( void ) //void 表示沒有輸入參數,也沒有函數返值,這入單片機運行的復位入口 3. { 4. P2_7 = 0; //給P2_7賦值0,引腳P2.7就能輸出低電平GND 5. While( 1 ); //死循環,相當 LOOP: goto LOOP; 6. } 在某引腳輸出方波編程方法:(比如P3.1引腳) 代碼 1. #include <AT89x52.h> //該頭文檔中有單片機內部資源的符號化定義,其中包含P3.1 2. void main( void ) //void 表示沒有輸入參數,也沒有函數返值,這入單片機運行的復位入口 3. { 4. While( 1 ) //非零表示真,如果為真則執行下面循環體的語句 5. { 6. P3_1 = 1; //給P3_1賦值1,引腳P3.1就能輸出高電平VCC 7. P3_1 = 0; //給P3_1賦值0,引腳P3.1就能輸出低電平GND 8. } //由於一直為真,所以不斷輸出高、低、高、低……,從而形成方波 9. } 將某引腳的輸入電平取反後,從另一個引腳輸出:( 比如 P0.4 = NOT( P1.1) ) 代碼 1. #include <AT89x52.h> //該頭文檔中有單片機內部資源的符號化定義,其中包含P0.4和P1.1 2. void main( void ) //void 表示沒有輸入參數,也沒有函數返值,這入單片機運行的復位入口 3. { 4. P1_1 = 1; //初始化。P1.1作為輸入,必須輸出高電平 5. While( 1 ) //非零表示真,如果為真則執行下面循環體的語句 6. { 7. if( P1_1 == 1 ) //讀取P1.1,就是認為P1.1為輸入,如果P1.1輸入高電平VCC 8. { P0_4 = 0; } //給P0_4賦值0,引腳P0.4就能輸出低電平GND 2 51單片機C語言編程實例 9. else //否則P1.1輸入為低電平GND 10. //{ P0_4 = 0; } //給P0_4賦值0,引腳P0.4就能輸出低電平GND 11. { P0_4 = 1; } //給P0_4賦值1,引腳P0.4就能輸出高電平VCC 12. } //由於一直為真,所以不斷根據P1.1的輸入情況,改變P0.4的輸出電平 13. } 將某埠8個引腳輸入電平,低四位取反後,從另一個埠8個引腳輸出:( 比如 P2 = NOT( P3 ) ) 代碼 1. #include <AT89x52.h> //該頭文檔中有單片機內部資源的符號化定義,其中包含P2和P3 2. void main( void ) //void 表示沒有輸入參數,也沒有函數返值,這入單片機運行的復位入口 3. { 4. P3 = 0xff; //初始化。P3作為輸入,必須輸出高電平,同時給P3口的8個引腳輸出高電平 5. While( 1 ) //非零表示真,如果為真則執行下面循環體的語句 6. { //取反的方法是異或1,而不取反的方法則是異或0 7. P2 = P3^0x0f //讀取P3,就是認為P3為輸入,低四位異或者1,即取反,然後輸出 8. } //由於一直為真,所以不斷將P3取反輸出到P2 9. } 注意:一個位元組的8位D7、D6至D0,分別輸出到P3.7、P3.6至P3.0,比如P3=0x0f,則P3.7、P3.6、P3.5、P3.4四個引腳都輸出低電平,而P3.3、P3.2、P3.1、P3.0四個引腳都輸出高電平。同樣,輸入一個埠P2,即是將P2.7、P2.6至P2.0,讀入到一個位元組的8位D7、D6至D0。 第一節:單數碼管按鍵顯示 單片機最小系統的硬體原理接線圖: 1. 接電源:VCC(PIN40)、GND(PIN20)。加接退耦電容0.1uF 2. 接晶體:X1(PIN18)、X2(PIN19)。注意標出晶體頻率(選用12MHz),還有輔助電容30pF 3. 接復位:RES(PIN9)。接上電復位電路,以及手動復位電路,分析復位工作原理 4. 接配置:EA(PIN31)。說明原因。 發光二極的控制:單片機I/O輸出 將一發光二極體LED的正極(陽極)接P1.1,LED的負極(陰極)接地GND。只要P1.1輸出高電平VCC,LED就正向導通(導通時LED上的壓降大於1V),有電流流過LED,至發LED發亮。實際上由於P1.1高電平輸出電阻為10K,起到輸出限流的作用,所以流過LED的電流小於(5V-1V)/10K = 0.4mA。只要P1.1輸出低電平GND,實際小於0.3V,LED就不能導通,結果LED不亮。 開關雙鍵的輸入:輸入先輸出高 一個按鍵KEY_ON接在P1.6與GND之間,另一個按鍵KEY_OFF接P1.7與GND之間,按KEY_ON後LED亮,按KEY_OFF後LED滅。同時按下LED半亮,LED保持後松開鍵的狀態,即ON亮OFF滅。 代碼 1. #include <at89x52.h> 2. #define LED P1^1 //用符號LED代替P1_1 3. #define KEY_ON P1^6 //用符號KEY_ON代替P1_6 4. #define KEY_OFF P1^7 //用符號KEY_OFF代替P1_7 5. void main( void ) //單片機復位後的執行入口,void表示空,無輸入參數,無返回值 6. { 7. KEY_ON = 1; //作為輸入,首先輸出高,接下KEY_ON,P1.6則接地為0,否則輸入為1 8. KEY_OFF = 1; //作為輸入,首先輸出高,接下KEY_OFF,P1.7則接地為0,否則輸入為1 9. While( 1 ) //永遠為真,所以永遠循環執行如下括弧內所有語句 10. { 11. if( KEY_ON==0 ) LED=1; //是KEY_ON接下,所示P1.1輸出高,LED亮 12. if( KEY_OFF==0 ) LED=0; //是KEY_OFF接下,所示P1.1輸出低,LED滅 13. } //松開鍵後,都不給LED賦值,所以LED保持最後按鍵狀態。 14. //同時按下時,LED不斷亮滅,各佔一半時間,交替頻率很快,由於人眼慣性,看上去為半亮態 15. } 數碼管的接法和驅動原理 一支七段數碼管實際由8個發光二極體構成,其中7個組形構成數字8的七段筆畫,所以稱為七段數碼管,而餘下的1個發光二極體作為小數點。作為習慣,分別給8個發光二極體標上記號:a,b,c,d,e,f,g,h。對應8的頂上一畫,按順時針方向排,中間一畫為g,小數點為h。 我們通常又將各二極與一個位元組的8位對應,a(D0),b(D1),c(D2),d(D3),e(D4),f(D5),g(D6),h(D7),相應8個發光二極體正好與單片機一個埠Pn的8個引腳連接,這樣單片機就可以通過引腳輸出高低電平控制8個發光二極的亮與滅,從而顯示各種數字和符號;對應位元組,引腳接法為:a(Pn.0),b(Pn.1),c(Pn.2),d(Pn.3),e(Pn.4),f(Pn.5),g(Pn.6),h(Pn.7)。 如果將8個發光二極體的負極(陰極)內接在一起,作為數碼管的一個引腳,這種數碼管則被稱為共陰數碼管,共同的引腳則稱為共陰極,8個正極則為段極。否則,如果是將正極(陽極)內接在一起引出的,則稱為共陽數碼管,共同的引腳則稱為共陽極,8個負極則為段極。 以單支共陰數碼管為例,可將段極接到某埠Pn,共陰極接GND,則可編寫出對應十六進制碼的七段碼表位元組數據

❼ 易語言實例編程!

‖易語言‖編程實例-計算器下面我們就來嘗試在易語言環境下面編寫這樣一個簡易功能的計算器!一、計算器功能分析我們現在編寫的這個簡易計算器只需要實現以下幾個小功能:1、點擊計算器上的數字按鈕,將對應數字顯示在液晶顯示屏上;2、任何時候按下±,液晶顯示屏中的數字將取反;3、計算功能按鈕「+
-
*
/
」,第一次按下計算按鈕,儲存第一個數字和計算符號並清空顯示屏,准備接受第二個數字;第二次按下計算按鈕,計算第一個數和第二個數字的計算結果,並把儲存結果和對應計算符號;4、「=」功能;5、「C」清除功能按鈕;6、其他簡單功能的補充,比如:開根號、算平方、求倒數;7、其他需要補充的功能(作業)。二、界面設計計算器的比如數字按鈕和計算按鈕功能基本一致,在VB裡面可以直接復制控制項組,通過控制項組來共享控制項代碼,而在易裡面不能直接通過復制來創建控制項組,只能通過自身的復制命令來實現類似的功能。所以,我們只需要在界面上設計一個按鈕就可以了參考網址:

❽ 漢語程序設計語言的編程實例

1、在編譯器上輸入如下(不包括實心五角星)代碼

2、運行結果如下:

3、上面程序代碼結構如下:
擴展對象 <用戶自定義窗口名稱> 繼承自 窗口對象模板
對象。
啟動: <用戶自定義窗口名稱> 漢語言的窗口編程還是好理解的,初學者往往對數摞不太容易理解,主要是 數據運算比較抽象了,傳統編程語言的參數都用變數來標識,而漢編語言的指令參數可以直接通過數摞來提供,這樣就造成了抽象性加強。當然,初學者,可以不使用數摞來傳遞參數,比如,平方的編寫。
1、使用變數 來傳遞參數 如下:編 平方{ 底數 -- }底數 底數 * 。(( 雙括弧里邊的內容為解釋
註: 平方 { 底數 -- } 相當於 傳統編程中的 平方(底數) 其中 { 這里為輸入參數 這里為中間變數定義 -- 這里為輸出結果 }直接使用數摞傳遞參數,這些可以不定義))2、使用數摞直接傳遞參數如下:編 平方♂ * 。(( 雙括弧里邊的內容為解釋平方的計算過程為:
數1 * 數1在漢編中,用後綴表示法表示 為:數1 數1 *簡化為:數1 ♂ *
♂ 的功能是 復制數摞頂層的一個數,這里即復制 數1我們在編寫平方這個詞的時候,就要考慮到,平方的功能,平方,這個詞必須能計算所以數字的平方值,所以,底數不能放在 詞(指令 或 函數)里邊,必須通過參數提供,因此,就有如下形式:編 平方♂ * 。這樣,在初學才看來,就顯得抽象了,我們看到這個詞的時候,第一感覺就是要想到,這個詞,有一個參數,而 ♂ 復制的 數字正是參數,這樣才能理解 平方 這個詞的含義。有人會說,假如,有些新詞參數有多個,非復復雜,用戶無法判斷參數的是什麼,有多少,又怎麼辦呢,其實,漢編中,也有標準的參數 解釋法則,上面的平方 新詡編寫, 規范的形式如下:編 平方 ( 數字1 --- )♂ * 。注 參數注釋採用 ( 輸入參數 --- 返回結果 ) 的形式,當然,這只是注釋而已,這里產沒有定義任何變數、字元串之類的。)) 漢編與傳統編程語言的不同:引入了數摞概念 ;漢語言中,數摞可以用來存放數字,進行各種運算。示例代碼如下(下面是在編譯器上輸入的漢語言代碼,不含實心五角星和「看數摞」、「顯」後面的內容):

同義詞 復制 ♂ ★ 看數摞 數摞已空! ★ 5 ★. 看數摞 [1] 5 ★. 復制 ★.. 看數摞 [2] 5 5 ★.. 摞初始 ★ 編 平方 復制 * 。 ★ 2 平方 顯 4 ★ 3 平方 顯 9 ★
((從上面代碼可以看出,漢語言代碼和C語言在表達形式和編譯方式上是有本質的不同的,下面通過對上面發出的小代碼注釋,來體驗數摞操作:示例代碼如下(下面是在編譯器上輸入的漢語言代碼,不含實心五角星和「看數摞」、「顯」後面的內容,斜杠後面為,為代碼解釋):漢編語言中,用反斜杠來表示單行解釋,用雙括弧表示多行解釋。漢編採用詞典式架構,因此,漢編指令,即漢編詞,漢編詞分為編譯器已有的系統詞和用戶新編的新詞。在漢編編譯器上,輸入一條指令 按回車鍵後執行,★ 號表示執行成功。
))同義詞 復制 ♂ ★ 解釋:通過 同義詞 這個系統詞將新詞 復制 定為與♂功能相同(同義)。看數摞 數摞已空! ★ 系統詞:看數摞,是用來查看數摞上的數的,現在,查看結果:數摞已空,說明數摞上沒有數5 ★. 在數摞上放入一個數:5看數摞 [1] 5 ★. 用看數摞 系統詞查看數摞上的數,發現數摞上有一個數:5 (中括弧內的數為數摞上數的總個數,中括弧後面為數摞上所有數字的顯示復制 ★.. 執行剛才定義的新詞:復制,試試看能不能將數摞上的數復制看數摞 [2] 5 5 ★.. 查看結果表明,數摞上的數變為兩個,說明,復制 這個詞正確摞初始 ★ 用 摞初始 這個系統詞 來清除數摞上的數,使數摞為空編 平方復制 * 。 ★ 編寫新詞:平方 在漢編中,一個指令(詞)的編寫以 編 開頭,以 。 結尾2 平方 顯 4 ★ 測試新詞:平方 ,如上計算:2的平方(系統詞:顯,意思將數摞上的一個數顯示出來)3 平方 顯 9 ★ 再次測試:平方,如上計算:3 的平方 當然,我們也可以用 看數摞來查看計算結果摞初始2 平方 看數摞 [1] 4 ★. 測試新詞:平方 ,如上計算:2的平方3 平方 看數摞 [2] 4 9 ★.. 再次測試:平方,如上計算:3 的平方(( 注意:顯 這個詞 僅僅是顯示數摞上的一個數,而看數摞,是查看數摞上的所有數;顯 這個系統詞顯示數摞上的數的時候,同時會清除在數摞上顯示的該數,而 看數摞 這個詞僅僅是查看數摞上的所有數字,而不會清除數摞上的數字。 ))

❾ 易語言編程實例

‖易語言‖編程實例-計算器下面我們就來嘗試在易語言環境下面編寫這樣一個簡易功能的計算器!一、計算器功能分析我們現在編寫的這個簡易計算器只需要實現以下幾個小功能:1、點擊計算器上的數字按鈕,將對應數字顯示在液晶顯示屏上;2、任何時候按下±,液晶顯示屏中的數字將取反;3、計算功能按鈕「+ - * / 」,第一次按下計算按鈕,儲存第一個數字和計算符號並清空顯示屏,准備接受第二個數字;第二次按下計算按鈕,計算第一個數和第二個數字的計算結果,並把儲存結果和對應計算符號;4、「=」功能;5、「C」清除功能按鈕;6、其他簡單功能的補充,比如:開根號、算平方、求倒數;7、其他需要補充的功能(作業)。二、界面設計計算器的比如數字按鈕和計算按鈕功能基本一致,在VB裡面可以直接復制控制項組,通過控制項組來共享控制項代碼,而在易裡面不能直接通過復制來創建控制項組,只能通過自身的復制命令來實現類似的功能。所以,我們只需要在界面上設計一個按鈕就可以了參考網址: http://hi..com/zoujg/blog/item/27ddd7ef8b8c0432acafd59e.html

熱點內容
phpapachetomcat 發布:2025-07-14 01:08:41 瀏覽:122
伺服器運維看什麼書 發布:2025-07-14 01:07:32 瀏覽:988
密碼器動態密碼怎麼弄 發布:2025-07-14 00:44:27 瀏覽:386
小米怎麼把視頻加密 發布:2025-07-14 00:42:59 瀏覽:406
在線申訴找回密碼根本什麼都沒有 發布:2025-07-14 00:41:22 瀏覽:306
拉新用什麼安卓手機可以 發布:2025-07-14 00:41:19 瀏覽:418
androidhome鍵退出 發布:2025-07-14 00:30:03 瀏覽:506
我都世界模組反編譯教程 發布:2025-07-14 00:29:45 瀏覽:646
法因數控鑽床編程手冊 發布:2025-07-14 00:18:26 瀏覽:490
gcc編譯怎麼知道錯誤的行數 發布:2025-07-14 00:06:21 瀏覽:383