這個作業屬於哪個課程 | C語言程序設計ll |
---|---|
這個作業要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2020-1/homework/11489 |
我在這個課程的目標是 | 了解函數的定義和調用 |
這個作業在那個具體方面幫助我實現目標 | 熟練掌握函數的使用,了解如何制作思維導圖 |
參考文獻 | C語言程序設計,C Primer Plus(第六版),百度,markdown語法 |
1.PTA實驗作業
從PTA題目集中選出2個你最滿意的題目完成以下內容,選擇題目難度越大,分值越高,每題20分(每項5分),內容要求如下:
1.1(7-2)求組合數
題目內容描述:本題要求編寫程序,根據公式\(C=\frac{n!}{m!(n−m)!}\)算出從n個不同元素中取出m個元素(m≤n)的組合數。
建議定義和調用函數fact(n)計算n!,其中n的類型是int,函數類型是double。
1.1.1數據處理
·數據表達:用了i,m,n,result變量。其中i,m,n為整型變量,分別用於作為中間變量和輸入的參數;result為雙精度浮點型變量,作為最終的組合數
·數據處理:運用了for語句,使用了自定義函數,順序結構。表達式為result=fact(n)/(fact(m)*fact(n-m))
·函數參數:主調函數為int main(),被調函數為double fact(int n),為double型。實參名稱:n,m,result,類型:n,m為int型,result為double型,形參名稱i, product,類型:i為int型, product為double型。
1.1.2實驗代碼截圖
1.1.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
2 7 | 21 | 樣例 從7個不同元素中取出2個元素,m<n |
3 4 | 4 | 從4個不同元素中取出3個元素,m<n |
2 8 | 28 | 從8個不同元素中取出2個元素,m<n |
6 6 | 1 | 從6個不同元素中取出6個元素,m=n |
4 3 | 0 | m>n |
1.1.4 PTA提交列表及說明
提交列表說明:
1.編譯錯誤:對自定義函數不太理解,沒有聲明自定義函數。解決辦法是在頭文件下定義一個函數。
2.編譯錯誤:定義函數double fact(int n)后的分號忘記打。解決辦法在后加上分號。
3.答案錯誤:表達式result寫錯,直接寫成了result=fact(n)。解決辦法將表達式改為result=fact(n)/(fact(m)*fact(n-m))。
4.多種錯誤:最后一個}忘記打,解決辦法在最后加上}
1.2 (7-3) 求冪之和
題目內容描述:本題要求編寫程序,計算\(sum=2^1+2^2+2^3+\cdots+2^n\)可以調用pow函數求冪。
1.2.1 數據處理
·數據表達:用了i,n,power,result變量。其中i,n為整型變量,power,result為雙精度浮點型變量。n是由用戶輸入的值,i從初始值隨循環不斷加一,sum和result都與其他變量所共同決定。
·數據處理:運用了for循環,表達式為power=pow(2,i); result=result+power。
·函數參數:主調函數為int main(),為整型,被調用函數為#include<math.h>。實參名稱:i,n,類型為整型;形參名稱:power,result,類型為double型。
1.2.2 實驗代碼截圖
1.2.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
5 | result=62 | 樣例 |
6 | result=126 | n<10 |
0 | result=0 | n=0為最小值 |
10 | result=2046 | n=10為最大值 |
11 | result=4094 | n>10 |
1.2.4 PTA提交列表及說明
提交列表說明:
1.答案錯誤:result未進行定義。解決方法:在主函數前將result進行定義。
2.格式錯誤:result等於號前后沒有打空格。查找了好久沒有找出來,不知道為什么格式錯誤,最后詢問了同學才知道,要在等號兩邊打空格。解決辦法在result等號前后加上空格。
2.代碼互評
同學代碼截圖:
自己代碼截圖:
1.習慣定義的變量不同,同學定義的是sum,而我定義的是product。
2.同學的代碼只運用到了一次for循環,而我的代碼用了兩次for循環。只使用一次減少了代碼行數,更簡潔明了,能使自己和他人更容易懂。
同學代碼截圖:
自己代碼截圖:
!
1.同學的代碼排版十分簡潔精煉,看起來很舒服,容易明白,而我的比較復雜。
2.同學定義變量比較清晰明確,用字母表示比較簡單,檢查時思路能夠很清晰,值得我學習。
3.同學的代碼使用了自定義函數,調用了函數define M(a),define Sum,,表示明確,我的沒有調用這些函數。
3.學習總結
3.1 學習進度條
周/日期 | 這周所花的時間 | 代碼行 | 學到的知識點簡介 | 目前比較迷惑的問題 |
---|---|---|---|---|
第八周/10.19~10.25 | 15小時 | 150行 | 在屏幕上顯示Hello World!學會了怎樣用PTA進行寫代碼作業,學會了markdowm語法 | 無 |
第九周/10.26~11.1 | 12 小時 | 350行 | 求華氏溫度對應的攝氏溫度 常量,變量和數據類型 知道以后要怎樣向別人提問 | 變量問題,輸入輸出格式 |
第十周/11.2~11.8 | 20小時 | 460行 | for循環,if else語句 | 對於&的用法不了解,輸出時保留幾位小數 |
第十一周/11.9~11.15 | 17小時 | 440行 | 生成乘方表和階乘表,對函數定義和調用,思維導圖 | 目前不太熟練,調用函數不太理解 |
3.2 累積代碼行和博客字數
3.3 學習內容總結和感悟
3.3.1 學習內容總結
3.3.2 學習體會
本周學習了生成乘方表和階乘表,自定義函數,學會了制作思維導圖。學到后面越來越難,現在學到的函數感覺比以前難得多,需要花費比以前更多的時間和精力。遇到的問題也越來越多,但在不斷的學習過程中可以發現自己很多的不足,就會努力地去解決並從中收獲到許多東西,不斷地鍛煉自己。這周c語言作業花的時間較多,但效率不高,目前基礎不牢固,我需要提高學習效率,將基礎打牢,在編程中需要更加仔細,有不懂得地方要積極詢問他人,還要更努力,做到更好。