這個作業屬於哪個課程 | C語言程序設計II |
---|---|
這個作業要求在哪里 | C語言I作業004 |
我在這個課程的目標是 | 更加了解C語言程序設計 |
這個作業在那個具體方面幫助我實現目標 | 怎樣使用循環程序設計並計算各項和 |
參考文獻 | 程序設計結構類型;PTA系統常見問題解答;Markdown基本語法 |
1.PTA實驗作業
1.1 7-4 求平方與倒數序列的部分和
本題要求對兩個正整數m和n(m≤n)編寫程序,計算序列和m2+1/m+(m+1)2+1/(m+1)+⋯+n2+1/n。
1.1.1數據處理##
數據表達:本題用了i,n,m,sum變量。其中i為循環變量,n為正整數,sum為累加和。類型有int(整形)和double(雙精度浮點型)。
數據處理:數據中用到了循環體語句和算術表達式。流程結構是循環結構。
#include<stdio.h> //方法一
#include<math.h>
int main()
{
int i,n,m;
double sum;
scanf("%d %d",&m,&n);
i=1;
sum=0;
for(i=m;i<=n;i++)
{
sum=sum+pow(i,2)+1.0/i;
}
printf("sum = %.6f\n",sum);
return 0;
}
#include<stdio.h> //方法二
#include<math.h>
int main(void)
{
int i=1,m,n;
double sum=0,a=0,b=0;
scanf("%d %d",&m,&n);
for(i=m;i<=n;i++)
{
a+=pow(i,2);b+=1.0/i;
}
sum=a+b;
printf("sum = %.6f",sum);
return 0;
}
1.1.2實驗代碼截圖
1.1.3 造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
10 20 | sum=2585.768771 | 大於10 |
1 5 | sum=57.28333 | 大於10 |
-1 -10 | sum=0.000000 | 小於0 |
0 0 | sum=inf | 等於0 |
1.1.4 PTA提交列表及說明
1.部分正確:將第10行循環執行代碼中未將"i=m"而是碼的"i=1"導致該錯誤發生;
2.部分正確:將第7行中的"&m,&n"更換了位置導致部分正確,及同sample部分出現錯誤;
3.全部正確:通過多次實驗,編譯成功。
1.2 7-5 求交錯序列前N項和
本題要求編寫程序,計算交錯序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N項之和。
1.2.1數據處理
數據表達:本題用了i,n,sum,f變量。其中i為循環變量,n為正整數,sum為累加和。類型有int(整形)和double(雙精度浮點型)。
數據表達:數據中用到了算數表達式:sum+=fi/(2i-1),其中f*=-1。流程結構是循環結構。
1.2.2實驗代碼截圖
1.2.3造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
-5 | sum=0.000 | 小於0 |
10 | sum=0.377 | 等於10 |
18 | sum=0.386 | 大於10,小於20 |
22 | sum=0.387 | 大於20 |
1.2.4 PTA提交列表及說明
1.編譯錯誤:雖然用了sum,但並未使用該集合,導致錯誤;
2.編譯錯誤:由於找不出其它錯誤,后來使用另外一種方法,即更換成了現在這種編譯方法;
3.答案正確:根據一步步在"C語言編輯器"中更換方法,終於輸出正確,編譯成功。
2.代碼互評
1.同學代碼截圖:
我的代碼截圖:
不同:
1.該同學的代碼比我更加簡潔,僅用了三個變量N,i,sum;而我自己的代碼就運用了比較復雜的六個變量denominator,flag,i,n,item,sum;
2.在賦值方面,該同學用了sum=0;我用了三個賦值flag=1,denominator=1,sum=0;
3.同學在算數中用到了pow(平方),在這里簡便了自己的代碼,有時候真的不一定代碼多才是好,方便簡潔更重要,這方面應該向她學習。
2.同學代碼截圖:
我的代碼截圖:
不同:
1.該同學代碼運用了三個變量N,i,sum;而我用了四個變量i,n,sum,f;相比較來說該同學更加簡潔;
2.在賦值方面,該同學用了sum=0;我用了兩個賦值sum=0.0,f=1.0,n>0;
3.同學在算數中用了pow(平方),簡化了操作步驟,能夠對所學知識融會貫通;而我卻對所學知識有很多不能融匯運用之處,今后要多多學習。
3.學習總結
3.1 學習進度條
周 | 這周所花的時間 | 代碼行 | 學到的知識點簡介 | 目前比較困惑的問題 |
---|---|---|---|---|
第五周 | 3小時 | 17行 | 初期開始學習“Hello World!" | 不知道如何開始編譯 |
第六周 | 10小時 | 27行 | 提問的智慧及編譯器下載 | 編譯格式問題 |
第七周 | 10小時 | 95行 | 流程結構類型及變量類型分類方法 | 代碼分析不明白以及編譯格式問題 |
第八周 | 13小時 | 115行 | 循環程序設計及Dev-C++編譯運行等方法 | 用專業術語將代碼解釋出來及各種賦值運用 |
3.2 累計代碼行和博客字數
3.3 學習內容總結和感悟
3.3.1學習內容總結
· 在本次作業中,學會了for語句以及指定次數的循環程序設計。例如:第八周PTA作業;
· 學會分析錯誤所在,例:在Dev-C++中學會如何簡易編譯,調試操作以及找出錯誤。
3.3.2學習內容感悟
· 從一開始對代碼的不知所措到現在的懵懂,雖然仍是很吃力的學習着這個專業知識,但是從在做作業中獲得的緊迫感和激動是在現實中無法體驗出來的;
· 碼代碼的日常雖然枯燥無味,但是當做出題目,沒有error時心情會瞬間變好,所以在未來要努力寫代碼,減少錯誤的發生。
· 在作業中能逐漸找到的對格式等一系列錯誤的更正方法,但是對於代碼,我還不知道如何用專業術語來表達他們的意思,所以還需要多請教多學習。