作為一個計算機專業的學生編程是必備技能,但是作為一個剛入門的編程新手,該如何形成一個編程思維呢?
你有沒有發現,老師課堂上講的你都懂,書上的代碼你能看懂,但是當你自己寫的時候,卻不知如何下手,這就是沒有形成一個編程思維。
很多人嘴皮子厲害,但是動手能力不行,你讓他講一段代碼講一個思想,他都能講出來,但是一讓他動手,他就懵了,不會寫,手放在鍵盤上盯著屏幕半天敲不出一句代碼。
為什么?因為寫的少啊!你想想你天天聽老師講課,老師在課堂上PPT代碼都寫好了,直接復制粘貼運行,然后結果出來了,一看好像很簡單啊,這么簡單根本不需要動手嘛。
這你就錯了,編程這個東西,你不動手你永遠學不會,就好比學游泳,學羽毛球,你試試你不下水,不拿起拍子,你看你能學會嗎?
聽的時候什么都懂,做起來啥都不會,是我們國家計算機專業學生的典型問題。動手能力太差了,我曾經在大學的時候,就有很多同學是這樣的,比如上課的時候聽的很認真,做理論題也很厲害,每次期末考試都是前幾名,年年拿獎學金,但是你讓他寫代碼,對比起!
他不會的,連編程的編輯器,編譯器都不會用。
這樣的同學我相信不少,你不動手,就形成不了編程的思維,別人寫的代碼是別人的思維,不是你的,你抄別人的代碼,能把別人的思維變成你的思維嗎?肯定不行啊。
所以作為一個計算機專業的學生,學習編程是肯定要動手的,不僅要動手還要不斷的思考。
比如要你設計一個搶紅包的程序。
需求是一個大V直播抽獎,獎品是現金紅包,分別有{20, 100 , 500, 800, 1000}五個獎金。請使用代碼模擬抽獎。
打印出每個獎項,獎項的出現順序要隨機且不重復。打印效果如下:(隨機順序,不一定是下面的順序)
20元的獎金被抽出 500元的獎金被抽出 1000元的獎金被抽出你會怎么設計呢?
首先當然是分析需求,既然是抽獎那肯定有獎項,獎項是5個固定的金額,那就需要5個變量來存儲這5個金額,那么要聲明5個變量嗎?
完全沒有必要啊,可以使用數組啊,一個整型數組的變量可以存儲很多個整型數字呢!
比如先定義一個整型數組:
int[] award = new int[5];然后是設計一個隨機程序,這個隨機數可以用一個函數來生成,而這個函數在C語言中叫rand(),所以生成隨機數的代碼如下:
int n=rand()%5其中rand()是生成一個隨機整型數,但是這個數值可能會很大,具體的最大數值根據編譯器的環境確定。
所以還需要對這個生成的數進行裁剪,而這個裁剪方式就是對5進行取余操作。假如rand()函數生成的隨機數是26對5取余后就是等于1,那這個索引就是1,再使用這個索引去獲取存儲的獎項,就是int[1],根據獎項的順序那就是100元,因為在C語言中,數組的索引是從0 開始的。
還需要對已經抽取的獎項進行記錄,因為就5個獎項,已經抽取的肯定不能再次被抽取了,需要定義一個數組用來記錄已經抽取的獎項。
int m= new int[5];然后再分析,需求是需要打印輸出抽到的獎項,同樣需要一個變量來存儲,這些打印的數據,這個打印數據是一個字符串,那么可以使用字符串變量存儲。
比如定義:
char prize[] = "20元的獎金被抽出";整個分析過程如下:
定義一個數組用于存儲這些獎金金額。 定義一個數組用于記錄已經抽到的金額。 每次抽獎都隨機一個索引,取出索引對應的獎金金額,判斷該金額之前是否抽中過,抽中過重新抽一次。 把抽到的獎項打印輸出。這就是一個編程思維,把一個具體的問題,變成一段段的代碼,每一句代碼都有它的含義。
所以要想形成自己的編程思維,首先是分析問題,把解決問題的步驟寫下來,然后把每一個步驟變成代碼,最后才是寫到編輯器上調試執行查看結果,而這個過程需要先動腦再動手。
按照上述方法去做幾道書上的題目,把正確的結果都執行出來,我相信你很快就能形成一個自己的編程思維了,但是記住一定要自己手敲代碼,復制的不算哦。
歡迎關注我,學習更多計算機知識!
責任編輯:Rex_08