程序設計方法
① 求編程方法
1、學好C語言,你可以很好地應付任何一種編程工具。
2、一定要多上機練習,通過程式了解相關知識。幾經反復方得正果。
3、不要把學習C語言當成一種任務,更不要把它看成很難完成的任務。要充滿自信,只要是一個智力正常的人都能學好C語言。始終保持游戲的心態,多發現其中的樂趣。當感到編程趣味無窮,那你在電腦方面將前程無量。
4、如果一個程式一時無法弄清楚最後暫時放在一邊,過一段時間你可能會從其他的程式中悟出道理。
5、C語言是一個整體,各個方面是有機聯系的,要從總體上把握它,不要把它割裂成互不關聯的部件。
6、不要完全相信教材(包括本講義),所有結論最好都上機驗證。
簡單的說,編程就是為了藉助於計算機來達到某一目的或解決某個問題,而使用某種程序設計語言編寫程序代碼,並最終得到結果的過程。
計算機雖然功能十分強大。可以供你上網、打游戲、管理公司人事關系等等,但是沒有程序,它就等於是一堆廢鐵,不會理會我們對它下達的「命令」。於是,我們要馴服它,只有通過一種方式——程序,這也是我們和計算機溝通的唯一方式。
那程序到底是什麼呢?
程序也就是指令的集合,它告訴計算機如何執行特殊的任務。
打個比方說,它好比指導你烹調菜品的菜譜或指揮行駛一路到達目的地的交警(或者交通路標)。沒有這些特殊的指令,就不能執行預期的任務。計算機也一樣,當你想讓計算機為你做一件事情的時候,計算機本身並不能主動為我們工作,因此我們必須對它下達指令,而它根本不會也不可能聽懂人類自然語言對事情的描述,因此我們必須使用程序來告訴計算機做什麼事情以及如何去做?甚至對最簡單的任務也需要指令,例如如何取得擊鍵,怎樣在屏幕上放一個字母,怎樣在磁碟中保存文件等等。
這么麻煩,連這些東西編程都要考慮!怪不得人家說編程好難!你錯了,其實許多這樣的指令都是現成的,包含在處理晶元中內置於操作系統中,因此我們不必擔心它們工作,他們都是由處理器和操作系統來完成的,並不需要我們來干預這些過程。
上面講到的計算機本身不會主動的做任何事情。因此我們要通過程序的方式來讓計算機為我們「效勞」。而這個過程就是我們「編」出來的。編程可以使用某一種程序設計語言來實現,按照這種語言的語法來描述讓計算機要做的事情。
我們這里所講的語法和外語中的語法完全兩碼事,這里講的語法只是讀你的程序書寫做出一寫規定而已。
寫出程序後,再由特殊的軟體將你的程序解釋或翻譯成計算機能夠識別的「計算機語言」,然後計算機就可以「聽得懂」你的話了,並會按照你的吩咐去做事了。因此,編程實際上也就是「人給計算機出規則」這么一個過程。
隨計算機語言的種類非常的多,總的來說可以分成機器語言,匯編語言,高級語言三大類。
電腦每做的一次動作,一個步驟,都是按照已經用計算機語言編好的程序來執行,程序是計算機要執行的指令的集合,而程序全部都是用我們所掌握的語言來編寫的。所以人們要控制計算機一定要通過計算機語言向計算機發出命令。
計算機所能識別的語言只有機器語言,即由構成的代碼。但通常人們編程時,不採用機器語言,因為它非常難於記憶和識別。
目前通用的編程語言有兩種形式:匯編語言和高級語言。
匯編語言的實質和機器語言是相同的,都是直接對硬體操作,只不過指令採用了英文縮寫的標識符,更容易識別和記憶。它同樣需要編程者將每一步具體的操作用命令的形式寫出來。
匯編程序的每一句指令只能對應實際操作過程中的一個很細微的動作,例如移動、自增,因此匯編源程序一般比較冗長、復雜、容易出錯,而且使用匯編語言編程需要有更多的計算機專業知識,但匯編語言的優點也是顯而易見的,用匯編語言所能完成的操作不是一般高級語言所能實現的,而且源程序經匯編生成的可執行文件不僅比較小,而且執行速度很快。
高級語言是目前絕大多數編程者的選擇。和匯編語言相比,它不但將許多相關的機器指令合成為單條指令並且去掉了與具體操作有關但與完成工作無關的細節,例如使用堆棧、寄存器等,這樣就大大簡化了程序中的指令。由於省略了很多細節,所以編程者也不需要具備太多的專業知識。
② 目前常用的兩種程序設計方法是
A、結構來化程序自設計和面向對象程序設計。
結構化程序設計(structured programming)是進行以模塊功能和處理過程設計為主的詳細設計的基本原則。結構化程序設計是過程式程序設計的一個子集,它對寫入的程序使用邏輯結構,使得理解和修改更有效更容易。
而面向對象程序設計(Object Oriented Programming)作為一種新方法,其本質是以建立模型體現出來的抽象思維過程和面向對象的方法。
(2)程序設計方法擴展閱讀:
結構化程序設計的原則:
結構化程序設計採用自頂向下、逐步求精的設計方法,各個模塊通過「順序、選擇、循環」的控制結構進行連接,並且只有一個入口、一個出口。
結構化程序設計的原則可表示為:程序=(演算法)+(數據結構)。
演算法是一個獨立的整體,數據結構(包含數據類型與數據)也是一個獨立的整體。兩者分開設計,以演算法(函數或過程)為主。
隨著計算機技術的發展,軟體工程師越來越注重於系統整體關系的表述,於是出現了數據模型技術(把數據結構與演算法看做一個獨立功能模塊),這便是面向對象程序設計的雛形。
③ 程序設計主要有哪些方法
程序設計主要方法有面向結構的方法和面向對象的方法。
結構化程序設計
隨著計算機的價格不斷下降,硬體環境不斷改善,運行速度不斷提升。程序越寫越大,功能越來越強,講究技巧的程序設計方法已經不能適應需求了。記得是哪本書上講過,一個軟體的開發成本是由:程序設計 30% 和程序維護 70% 構成。這是書上給出的一個理論值,但實際上,從我十幾年的工作經驗中,我得到的體會是:程序設計占 10%,而維護要佔 90%。也許我說的還是太保守了,維護的成本還應該再提高。下面這個程序,提供了兩種設計方案,大家看看哪個更好一些那?
題目:對一個數組中的100個元素,從小到大排序並顯示輸出。(BASIC)
方法1:冒泡法排序,同時輸出。
FOR I=1 TO 100
FOR J=I+1 TO 100
IF A[I] > A[J] THEN T=A[J]: A[J]=A[I]: A[I]=T
NEXT J
? A[I]
NEXT I
方法2:冒泡法排序,然後再輸出。
FOR I=1 TO 100
FOR J=I+1 TO 100
IF A[I] > A[J] THEN T=A[J]: A[J]=A[I]: A[I]=T
NEXT
NEXT
FOR I=1 TO 100
? A[I]
NEXT
顯然,「方法1」比「方法2」的效率要高,運行的更快。但是,從現在的程序設計角度來看,「方法2」更高級。原因很簡單:(1)功能模塊分割清晰——易讀;(2)也是最重要的——易維護。程序在設計階段的時候,就要考慮以後的維護問題。比如現在是實現了在屏幕上的輸出,也許將來某一天,你要修改程序,輸出到列印機上、輸出到繪圖儀上;也許將來某一天,你學習了一個新的高級的排序方法,由「冒泡法」改進為「快速排序」、「堆排序」。那麼在「方法2」的基礎上進行修改,是不是就更簡單了,更容易了?!這種把功能模塊分離的程序設計方法,就叫「結構化程序設計」。
面向對象的程序設計
隨著程序的設計的復雜性增加,結構化程序設計方法又不夠用了。不夠用的根本原因是「代碼重用」的時候不方便。面向對象的方法誕生了,它通過繼承來實現比較完善的代碼重用功能。很多學生在應聘工作,面試的時候,常被問及一個問題「你來談談什麼是面向對象的程序設計」,學生無言,回來問我,這個問題應該怎麼回答。我告訴他,你只要說一句話就夠了「面向對象程序設計是對數據的封裝;範式(模板)的程序設計是對演算法的封裝。」後來再有學生遇到了這個問題,只簡單的一句對答,對方就對這個學生就刮目相看了(學生後來自豪地告訴我的)。為什麼那?因為只有經過徹底的體會和實踐才能提煉出這個精華。
面向對象的設計方法和思想,其實早在70年代初就已經被提出來了。其目的就是:強製程序必須通過函數的方式來操縱數據。這樣實現了數據的封裝,就避免了以前設計方法中的,任何代碼都可以隨便操作數據而因起的BUG,而查找修改這個BUG是非常困難的。那麼你可以說,即使我不使用面向對象,當我想訪問某個數據的時候,我就通過調用函數訪問不就可以了嗎?是的,的確可以,但並不是強制的。人都有惰性,當我想對 i 加1的時候,干嗎非要調用函數呀?算了,直接i++多省事呀。呵呵,正式由於這個懶惰,當程序出BUG的時候,可就不好捉啦。而面向對象是強制性的,從編譯階段就解決了你懶惰的問題。
巧合的是,面向對象的思想,其實和我們的日常生活中處理問題是吻合的。舉例來說,我打算丟掉一個茶杯,怎麼扔那?太簡單了,拿起茶杯,走到垃圾桶,扔!注意分析這個過程,我們是先選一個「對象」------茶杯,然後向這個對象施加一個動作——扔。每個對象所能施加在它上面的動作是有一定限制的:茶杯,可以被扔,可以被砸,可以用來喝水,可以敲它發出聲音......;一張紙,可以被寫字,可以撕,可以燒......。也就是說,一旦確定了一個對象,則方法也就跟著確定了。我們的日常生活就是如此。但是,大家回想一下我們程序設計和對計算機的操作,卻不是這樣的。拿DOS的操作來說,我要刪除一個文件,方法是在DOS提示符下:c:> del 文件名<回車>。注意看這個過程,動作在前(del),對象在後(文件名),和面向對象的方法正好順序相反。那麼只是一個順序的問題,會帶來什麼影響那?呵呵,大家一定看到過這個現象:File not found. 「啊~~~,我錯了,我錯了,文件名敲錯了一個字母」,於是重新輸入:c:> del 文件名2<回車>。不幸又發生了,計算機報告:File read only. 哈哈,痛苦吧:)。所以DOS的操作其實是違反我們日常生活中的習慣的(當然,以前誰也沒有提出過異議),而現在由於使用了面向對象的設計,那麼這些問題,就在編譯的時候解決了,而不是在運行的時候。obj.fun(),對於這條語句,無論是對象,還是函數,如果你輸入有問題,那麼都會在編譯的時候報告出來,方便你修改,而不是在執行的時候出錯,害的你到處去捉蟲子。
同時,面向對象又能解決代碼重用的問題——繼承。我以前寫了一個「狗」的類,屬性有(變數):有毛、4條腿、有翹著的尾巴(耷拉著尾巴的那是狼)、鼻子很靈敏、喜歡吃肉骨頭......方法有(函數):能跑、能聞、汪汪叫......如果它去抓耗子,人家叫它「多管閑事」。好了,狗這個類寫好了。但在我實際的生活中,我家養的這條狗和我以前寫的這個「狗類」非常相似,只有一點點的不同,就是我的這條狗,它是:捲毛而且長長的,鼻子小,嘴小......。於是,我派生一個新的類型,叫「哈巴狗類」在「狗類」的基礎上,加上新的特性。好了,程序寫完了,並且是重用了以前的正確的代碼——這就是面向對象程序設計的好處。我的成功只是站在了巨人的肩膀上。當然,如果你使用VC的話,重用最多的代碼就是MFC的類庫。
④ 簡述常用的編程方法(至少寫出三種)
常用的編程方法有:順序結構編程、選擇結構編程、循環結構編程等。
⑤ 什麼是結構化程序設計方法
c語言中"結構化程序設計方法」的基本思想和規則C語言是一種結構化語言。它層次清晰,便於按模塊化方式組織程序,易於調試和維護。C語言的表現能力和處理能力極強。它不僅具有豐富的運算符和數據類型,便於實現各類復雜的數據結構。它還可以直接訪問內存的物理地址,進行位(bit)一級的操作。由於C語言實現了對硬體的編程操作,因此C語言集高級語言和低級語言的功能於一體。既可用於系統軟體的開發,也適合於應用軟體的開發。此外,C語言還具有效率高,可移植性強等特點。因此廣泛地移植到了各類各型計算機上,從而形成了多種版本的C語言。
C源程序的結構特點
1.一個C語言源程序可以由一個或多個源文件組成。
2.每個源文件可由一個或多個函數組成。
3.一個源程序不論由多少個文件組成,都有一個且只能有一個main函數,即主函數。
4.源程序中可以有預處理命令(include 命令僅為其中的一種),預處理命令通常應放在源文件或源程序的最前面。
5.每一個說明,每一個語句都必須以分號結尾。但預處理命令,函數頭和花括弧「}」之後不能加分號。
6.標識符,關鍵字之間必須至少加一個空格以示間隔。若已有明顯的間隔符,也可不再加空格來間隔。
書寫程序時應遵循的規則
從書寫清晰,便於閱讀,理解,維護的角度出發,在書寫程序時 應遵循以下規則:
1.一個說明或一個語句佔一行。
2.用{} 括起來的部分,通常表示了程序的某一層次結構。{}一般與該結構語句的第一個字母對齊,並單獨佔一行。
3.低一層次的語句或說明可比高一層次的語句或說明縮進若干格後書寫。以便看起來更加清晰,增加程序的可讀性。在編程時應力求遵循這些規則,以養成良好的編程風格。
⑥ 程序設計方法要求在程序設計過程中。。。
先根據問題需求 寫好需求描述文檔畫出程序流程圖,然後開始實施編碼工作,編碼的同時加註釋,然後運行程序,調試錯誤,直至排除所有語法錯誤和邏輯錯誤。
⑦ 程序設計方法有那些()
程序設計方法學(Programming Methodology)有兩種含義: 一種是以程序設計方法為研究對象的學科,它不僅研究各種具體的方法,而且著重研究各種具體方法的共性,涉及規范的全局性方法,以及這些方法的顯示背景和理論基礎;另外一種含義是針對某一領域或某一領域的一類特定
程序設計方法學(Programming Methodology)有兩種含義:
一種是以程序設計方法為研究對象的學科,它不僅研究各種具體的方法,而且著重研究各種具體方法的共性,涉及規范的全局性方法,以及這些方法的顯示背景和理論基礎;另外一種含義是針對某一領域或某一領域的一類特定問題,所用的一整套特定程序設計方法所構成的體系。
作為一門學科(第一種含義),程序設計方法學可對程序設計人員選用具體的程序設計方法起指導作用,而具體的程序設計方法對程序設計工作的質量以及所設計出大程序的質量影響巨大。因此,對程序設計方法學的研究是非常重要的。
作為一套完整特定的程序設計方法所構成的體系(第二種含義),如邏輯式程序設計方法學、函數式程序設計方法學、對象式程序設計方法學等。它們有各自的利弊得失,與具體領域、具體問題以及具體環境相關。
兩種含義之間的關系是:第二種含義是第一種含義的基礎,第一種含義是在第二種含義的基礎上的總結、提高,並上升到原理、原則和理論的高度。這兩種含義的程序設計方法學都非常重要。
⑧ 程序設計分為幾個步驟
Turbo C程序設計分為三個基本步驟。
程序設計方法包括三個基本步驟::
第一步: 分析問題。
第二步: 畫出程序的基本輪廓。
第三步: 實現該程序。
⑨ 編程的方法和步驟
好高深的問題。
為編程而編程嗎?
方法就是找個電腦教室求別人把編譯器借給你玩,內步驟是打開,打字,運容行,關閉
如果是指編程工作。
通用的方法也是有的。比如軟體工程方法
步驟通過也就是看你的方法而言,一般是要了解,分析,設計(建模),施工,測試,驗收之類的。
⑩ 程序設計的方法
面向過程的結構化程序設計分三種基本結構:順序結構、選擇結構、循環結構
原則:
1,自頂向下:指從問題的全局下手,把一個復雜的任務分解成許多易於控制和處理的子任務,子任務還可能做進一步分解,如此重復,直到每個子任務都容易解決為止。
2,逐步求精
3,模塊化:指解決一個復雜問題是自頂向下逐層把軟體系統劃分成一個個較小的、相對獨立但又相互關聯的模塊的過程。
注意事項
1,使用順序、選擇、循環等有限的基本結構表示程序邏輯。
2,選用的控制結構只准許有一個入口和一個出口
3,程序語句組成容易識別的塊,每塊只有一個入口和一個出口。
4,復雜結構應該用基本控制結構進行組合或嵌套來實現。
5,程序設計語言中沒有的控制結構,可用一段等價的程序段模擬,但要求改程序段在整個系統中應前後一致。
6,嚴格控制GOTO語句。 面向對象的基本概念
1,對象
2,類
3,封裝
4,繼承
5,消息
6,多態性
優點
1,符合人們認識事物的規律
2,改善了程序的可讀性
3,使人機交互更加貼近自然語言 程序設計語言的基本成分有:①數據成分,用於描述程序所涉及的數據;②運算成分,用以描述程序中所包含的運算;③控製成分,用以描述程序中所包含的控制;④傳輸成分,用以表達程序中數據的傳輸。
程序設計語言 計算機 IT按照語言級別可以分為低級語言和高級語言。低級語言有機器語言和匯編語言。低級語言與特定的機器有關、功效高,但使用復雜、繁瑣、費時、易出差錯。機器語言是表示成數碼形式的機器基本指令集,或者是操作碼經過符號化的基本指令集。匯編語言是機器語言中地址部分符號化的結果,或進一步包括宏構造。高級語言的表示方法要比低級語言更接近於待解問題的表示方法,其特點是在一定程度上與具體機器無關,易學、易用、易維護。
程序設計語言按照用戶的要求有過程式語言和非過程式語言之分。過程式語言的主要特徵是,用戶可以指明一列可順序執行的運算,以表示相應的計算過程,如FORTRAN、COBOL、PASCAL等。
按照應用范圍,有通用語言與專用語言之分。如FORTRAN、COLBAL、PASCAL、C語言等都是通用語言。目標單一的語言稱為專用語言,如APT等。
按照使用方式,有互動式語言和非互動式語言之分。具有反映人機交互作用的語言成分的語言成為互動式語言,如BASIC等。不反映人機交互作用的語言稱為非互動式語言,如FORTRAN、COBOL、ALGOL69、PASCAL、C語言等都是非互動式語言。
按照成分性質,有順序語言、並發語言和分布語言之分。只含順序成分的語言稱為順序語言,如FORTRAN、C語言等。含有並發成分的語言稱為並發語言,如PASCAL、Mola和Ada等。
程序設計語言是軟體的重要方面,其發展趨勢是模塊化、簡明化、形式化、並行化和可視化。
程序設計語言還分為面向對象和面向過程,面向對象的例如:C++/C#/Delphi……面向過程的例如:Free Pascal/C語言…… C語言 即中文版的C語言
O語言 O語言是一款中文計算機語言(或稱套裝:O匯編語言、O中間語言、O高級語言)
AAuto
ActionScript
APL、
A+
B語言
J語言
Ada
匯編語言
AWK
Basic
Fortran
VBScript
Brainfuck
C語言
C++
C#
Clipper
COBOL
dBase
易語言
PASCAL
Delphi
Forth
FoxPro
F#
Fava
IDL
Java
JavaScript
J#
LISP
Lua
LOGO
Mola
Nuva
Perl
PHP
PL/I
Prolog
Python
R語言
Ruby
Scheme
Smalltalk
IceMaker
SQL
Tcl/Tk
Visual Basic
Visual FoxPro
XML