程式菜貓(?)的 - C#程序編寫嘗試
本文章最後由 北方 於 2013-4-15 21:35 編輯我試寫了一個小程式,所以這邊寫下編寫過程(但是嚴格來講,反而像是解釋自己的程式)
注意:本文術語居多,可能會有無法理解的情形發生,可以在回覆發問,我盡量解答,
如果無法接受程式語言的人,前言結束後請直接跳到最下方後記
---前言----
我會寫這個程式,全是因為高中數學課本後面附了一張已經編好的流程圖,
剛好在自學程式,就拿來作練習,(流程圖對編程很重要,可以說是整個編寫程式的核心)
這就是用來求兩個數的最大公因數的流程圖(從高中數學課本擷取)
http://i.imgur.com/hqpOWJk.jpg(點圖放大)
(不過,我不擅長解釋數學,所以看不懂的話,記得他是用來求最大公因數就好,抱歉了)
----------
好了,前言結束,接下來正式進入程式編寫,
---------------------------------------------------
一開始,我必須先解釋一件事,這個程式不像是普通常看到計算機之類的程式,
所以這裡由實際執行開始記錄,而不是編寫程式開始,
http://i.imgur.com/o3WtTiS.jpg(點圖放大)
這就是寫好之後實際運作的樣子,比較像是以前DOS時代的視窗,而不是現代的圖形化視窗
---視窗內文字語譯---
這個程式用於找出兩個數之間的最大公因數
輸入兩個數之間較大的數字,不要輸入分位符(範例:12,000,000請寫成12000000)
-----------------------
所以,剛剛提到,這是求兩個數之間的最大公因數的程式,我們就要先輸入數字
http://i.imgur.com/2IaqKPt.jpg(點圖放大)
先輸入100(範例),按ENTER
http://i.imgur.com/6hFKzNM.jpg(點圖放大)
再輸入30(範例),按ENTER運算
http://i.imgur.com/xDIBR9w.jpg(點圖放大)
得到結果,答案是10,所以10是100和30的最大公因數
這就是程式執行的樣子,下來開始編寫程式,
-------------------------
(點圖放大)
(這是程式全部寫好的樣子,這些句子就是讓電腦讀的程式)
---------------------
一開始,要讓視窗出現解釋應該輸入哪些東西的文字
http://i.imgur.com/KavAFHk.png(點圖放大)
這些句子可能很難懂,所以我們拆開來講,拿裡面的句子做一個例子:
Console.WriteLine("This program is designed to help find out the factorization of Two numbers.");
Console.WriteLine : 這是讓視窗內顯示一段文字,後面的( )內寫要顯示的內容
(注:console.writeline() 其實不只能顯示打好的文字,但是為了避免混淆,先這樣就夠了)
----------------------
然後接著要讓使用者打入兩個要計算的數字,也就是上面流程圖中,要進行除法的數字
http://i.imgur.com/BRbi1OV.png(點圖放大)
同樣的,拿一行程式出來解釋:
double divisor = double.Parse(Console.ReadLine());
double: 宣告變數,就是製作一個容器來容納輸入的數字 (注:這裡宣告的型態是雙精度小數)
Console.ReadLine: 這是讀取使用者打入的數字,換句話說,這裡讓人"在螢幕上打數字"後按enter(可以參照上面的實際運行狀況)
double.Parse 這是變數轉換型態,意思是"把使用者輸入的文字,轉成數字"
-----------------------
這裡就要進行第一次的餘數運算
http://i.imgur.com/tN3zDde.png(點圖放大)
首先要替餘數的進行變數宣告(製造一個放置餘數的容器)
double Remainder = 0;
然後進行運算:
Remainder = dividend % divisor; (這句等於dividend / divisor 後把餘數放入Remainder容器裡)
--------------------------
現在要讓上方的流程圖中的"yes或no"的部分運作,所以加入下列程式
http://i.imgur.com/2eEKhjY.png(點圖放大)
while (Remainder != 0)
{
dividend = divisor;
divisor = Remainder;
Remainder = dividend % divisor;
}
while () :這就是達到"如果結果是no,就重作一次"的關鍵,
while()執行時,電腦會先比較一次在()內的條件,然後才執行,{}內的程式執行完後,會再比較一次條件,
不相符就回到第一個{下的第一行程式重run一次,相符就跳出迴圈。
範例:
while (A == 10)
{
A =A + 1
}
這個程式會一直幫變數A不停的+1,直到A=10的時後停止幫A+1,並繼續}下方的程式
---------------------------
最後,我們把過程中求出的最後答案顯示在螢幕上
(點圖放大)
這樣就可以執行了。
-------------------後記-----------------
最近學這個程式,不只是因為興趣,還有就是因為我確定未來要走理工路線,我最後的希望(也是夢想)是能寫出一套遊戲,
只是,我想我距離開發遊戲,還有一段長遠的路途要走。
(其實我先前國中已經碰過VB了,後來才知道VB很弱),所以開始自學C#,彈不是C++,因為C#更新,而且支援GUI介面)
(我的編輯器是Visual Studio 2012 "Express edition",免費的,但還是要注冊。)
現在就先這樣子,謝謝你們的耐心閱讀。 C#…這讓我想起上星期的作業,與偽電腦(?)的對話www
VB真的完全沒難度,但對於之後學其它相似的程式還滿有幫助的!
程式這種東西,當你弄懂它時會覺得它很可愛,但當你弄不懂時就很想乎它巴掌!(雖然打不到…)
頁:
[1]