問題 | 回答 |
---|---|
這個作業屬於那個課程 | C語言程序設計II |
這個作業要求在哪里 | 作業要求 |
我在這個課程的目標是 | 自己設計一個小游戲 |
這個作業在那個具體方面幫助我實現目標 | 選擇合適的算法、合理的循環結構,熟練的編寫程序 |
參考文獻 | 百度百科 |
1.PTA實驗作業(20分/題)
1.1梅森數
1.1.1數據處理
數據表達:定義了整型函數i循環次數,n代表2的冪數,a2的b次方,b做冪數遞增,c是計數器。
數據處理:
定義了整型函數i循環次數,n代表2的冪數
定義a是2的b次方,b做冪數遞增,c是計數器
輸入2的冪數
while(b<n)
b++ /*作為2的冪從1開始循環一次加1*/
a=pow(2,b) /*將數化成2的次方形式,減少循環次數*/
for(i=2;i<=(a-1)/2;i++)
if((a-1)%i==0) /*如果不是素數*/
跳出當前循環
end if
end for
if(i>(a-1)/2) /*如果是梅森數*/
輸出梅森數並換行
c++
end if
end while
if(c==0)
輸出None
end
1.1.2實驗代碼截圖
1.1.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
6 | 3 7 31 |
題中數據 |
1 | None | 較小數據 |
15 | 3 7 31 127 8191 |
較大數據 |
1.1.4 PTA提交列表及說明
提交列表說明:
編譯錯誤:在Dev-c++上編譯了幾次,思路想出來了,但用代碼時邏輯顯得有點亂,錯了幾次,經過調試后,做對了。
1.2輸出三角形字符陣列
本題要求編寫程序,輸出n行由大寫字母A開始構成的三角形字符陣列。
輸入格式:
輸入在一行中給出一個正整數n(1≤n<7)。
輸出格式:
輸出n行由大寫字母A開始構成的三角形字符陣列。格式見輸出樣例,其中每個字母后面都有一個空格。
輸入樣例:
4
輸出樣例:
A B C D
E F G
H I
J
1.2.1 數據處理
數據表達:定義了整型變量,n正整數,i代表行,j代表列;定義了字符型變量c,c用來賦值字符。
數據處理:
定義了整形變量:n正整數,i行,j列
定義字符型變量c
輸入正整數n
c ← 'A' /*字符a賦給字符串c*/
for(i←1;i<←n;i++) /*外循環進行行循環*/
for(j←i;j<←n;j++)/*內循環進行列循環*/
輸出字符c
c++
end for
換行
end for
end
1.2.2 實驗代碼截圖
1.2.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
5 | A B C D E F G H I J K L M N O |
無 |
3 | A B C D E F |
無 |
6 | A B C D E F G H I J K L M N O P Q R S T U |
無 |
1.2.4 PTA提交列表及說明
提交列表說明:
編譯錯誤:在經過第一題的洗禮后,如何輸出字符陣列,已經有點數了,在百度上找到c='A'是可以從A字符輸出后,題目就很簡單了。
1.3同構數
一個數恰好出現在它的平方數的右端,這個數就稱為同構數。找出1~1000之間的全部同構數。
輸出格式:
在一行中輸出所有滿足條件的同構數,每個數輸出占6列。沒有其它任何附加格式和字符。
輸出樣例:
1 5 6 25 76 376 625
1.3.1 數據處理
數據表達:定義了整型變量i用於循環記數,j代表這個數的平方,n在循環中儲存i。
數據處理:
定義整型變量i用於循環記數,j代表這個數的平方,n在循環中儲存i
for(i←1;i<←1000;i++)/*循環從1到1000*/
n←i /*將i賦值給n8/
j←n*n
if(n←←j%10||n←←j%100||n←←j%1000) /*三種1~1000計算方法及結果,判斷是否相等*/
輸出占列的同構數
end for
end
1.3.2 實驗代碼截圖
1.3.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
無 | 1 5 6 25 76 376 625 | 無 |
1.3.4 PTA提交列表及說明
提交列表說明:
答案錯誤:這題開始我是懵的,后來知道一個數的平方右邊有這個數就是同構數,我開始在Dev-c++上用了好多for語句和if語句,來在1~1000中尋找,結果,太亂了,邏輯錯誤,后經室友提醒可能直接用邏輯或把條件並起來,就少了那些算法,但我感覺有點取巧了。
2.代碼互評(5分)
同學代碼截圖
自己代碼截圖
1.我們變量數不同,他的比我多一點,還有他運用的是for語句中加if語句,而我運用的是嵌套循環。
2.我定義了字符型變量,而他直接用的'A'。
3.他的算法是循環遞減,.而我的是循環遞增。
同學代碼截圖
自己代碼截圖
我和他的最大不同是算法不同,語句使用也略有不同。他是利用求根來判斷是否為梅森數。
3.學習總結(15分)
3.1 學習進度條(5分)
周/日期 | 這周所花的時間 | 代碼行 | 學到的知識點簡介 | 目前比較迷惑的問題 |
---|---|---|---|---|
9.16~9.22 | 6h | 20 | 初步了解編程如何進行 | 編程開始的單詞有什么作用,編譯是如何進行的 |
9.23~10.6 | 30h | 30 | 學會運用markdown語法和了解博客園作業格式 | 如何在博客隨筆字體加顏色 |
10.7~10.11 | 48h | 235 | 學會了if語句和編程的數學函數怎么寫 | while語句如何使用和電腦上表格和why手機上順序不一樣 |
10.14~10.20 | 36h | 100 | 掌握使用for循環語句 | 對多種循環結構不夠了了解以及分支結構和循環結構同時使用的編程先后。 |
10.20~10.27 | 32h | 135 | 如何對函數的定義和調用,思維導圖 | 函數的調用和定義有沒有局限性。 |
10.28~11.3 | 36h | 512 | 熟悉多分支結構、字符型數據類型和邏輯運算符 | 四則運算和字符型變量 |
11.4~11.10 | 12h | 232 | 熟悉多分支結構switch語句的使用 | 在博客園中如何添加小掛飾 |
11.11~11.17 | 18h | 263 | 熟悉使用while和do-while結構 | 字符的實際使用 |
11.18~11.24 | 20h | 186 | 熟悉break、continue的使用,熟悉使用循環的嵌套解決問題 | 嵌套循環的邏輯 |
11.25~11.1 | 22h | 270 | 選擇合適的算法、合理的循環結構,熟練的編寫程序 | 數組的運用 |
3.2 累積代碼行和博客字數(5分)
3.3 學習內容總結和感悟(5分)
3.3.1 學習內容總結
3.3.2 學習體會
本周PTA還是有難度的,第一題才是挑戰題吧,我死磕第一題無奈敗北,耽誤許多時間,這周我壓力劇增,這周PTA綜合較強,但有好多同學認為太簡單,很快做完了,秀了我一臉,而我還是需要借助百度百科,這讓我壓力山大,不能再打游戲了,刷題才是王道,我得好好刷題,不然都被大佬們甩開十萬八千里了。每個知識點認真學,才能在綜合題上不困惑,准確找到合適算法和語句,就像在數學中從高二進入了高三一樣,全是綜合題,需要把所學知識融會貫通,才能有所作為,剩下的一個月里,我需要好好練練了。