【1】
題目一計算分段函數[1]
1.實驗代碼
#include<stdio.h>
int main()
{
float x,y;
scanf ("%f",&x);
if (x!=0)
y=1/x;
else
y=0;
printf("f(%.1f) = %.1f\n",x,y);
return 0;
}
2.設計思路
(1)第一步 先通讀題目了解要打的代碼的意思,y為分段函數,共有兩部分,x,y均為浮點數
第二步 打出基本框架
第三步 用if-else區分y在x不同的范圍內的數值
第四步 初始化定義變量浮點數x,y
第五步 運用if ,else分別定義x等於0及不等於0時y的數值
第六步 最后輸出相關變量
(2)流程圖(我覺得流程圖一般都沒有文字說明,看書上的例子除了不能用式子表示的都沒有文字,作業中的例子也是如此。)
3.本題遇到的困難及解決方法
遇到的困難:開始只定義了一個浮點數值,也沒有給給出輸出值的相關算法就直接輸出了,編譯時在細節上也出了問題,浮點%f打成了%d
解決方法:通過請教會的同學,理解每個步驟的意義,自己對比,反復琢磨
4.運行結果
題目二A除以B
1.實驗代碼
#include<stdio.h>
int main()
{
int A,B;
double C;
scanf("%d %d", &A, &B);
C = (double)A / B;
if (B > 0)
printf("%d/%d=%.2f",A,B,C);
if (B < 0)
printf("%d/(%d)=%.2f",A,B,C);
if (B == 0)
printf("%d/%d=Error",A,B);
return 0;
}
2.設計思路
(1)第一步 理解題目 ,知道A/B需要輸出三種情況 ,B>0,B<0及B=0
第二步 輸出結果需保留兩位小數,輸入的A,B值均為整數,因此定義兩個整數和一個浮點數A,B和C
第三步 打出基本框架
第四步 根據要求定義用if分別寫出三種不同情況,輸出數值C的算法
第五步 依次輸出結果
(2)流程圖
3.本題遇到的困難及解決方法
遇到的困難:先定義c的算法,后初始化了,初始化時忘記打&,浮點運用錯誤。定義c的算法時沒打double
解決的方案:流程及編譯問題通過自己的觀察解決,定義c的算法時打double請教了同學,開始並不知道需要打
4.運行結果
題目六階梯電價
1.實驗代碼
#include<stdio.h>
int main()
{
int a;
float b;
scanf("%d%.2f",&a,&b);
if(a<=50&&a>0){
b=0.53*a;
printf("cost = %.2f",b);}
else if(a>50){
b=26.5+(a-50)*0.58;
printf("cost = %.2f",b);}
else
printf("Invalid Value!");
return 0;
}
2.設計思路
(1)第一步 理解題目,階梯電價分三種情況,需賦兩個數值,用電量及應付費用
第二步 打出基本的框架
第三步 定義用電量為整數,應付費用為浮點數
第四步 根據要求,運用if -else依次定義在給定范圍內所需繳納的電費的算法
第五步 輸出每步的結果,注意浮點數的輸出
(2)流程圖
3.本題遇到的困難及解決方法
本道題是我7道題中唯一一個一遍對的,在pta中顯示正確,c++中編譯也無錯誤,但是運行不出結果
4.題目七出租車計價
1.實驗代碼
#include <stdio.h>
int main()
{
int a;
float b,c;
scanf("%f %d",&b,&a);
if(b<=3&&a<5)
c=10;
else if(b<=3&&a>=5)
c=10+a/5*2;
else if(b>3&&b<=10&&a<5)
c=(b-3)*2+10;
else if(b>3&&b<=10&&a>=5)
c=(b-3)*2+10+a/5*2;
else if(b>10&&a<5)
c=24+(b-10)*3;
else if(b>10&&a>=5)
c=24+(b-10)*3+a/5*2;
printf("%.0f",c);
return 0;
}
2.設計思路
(1)第一步 閱讀題目了解到計程車計費在沒有停車或停車時間不超過五分鍾有三種情況,加之路上有停車共有六種情況
第二步 需要定義三種變量,所行路程,停車時間,應費用定義整數a,浮點數b,c
第三步定義整數a行駛路程,浮點數b停車時間,c應付費用
第四步 運用if,else if定義出不同范圍下所花的車費,給出計算車費的公式
第五步 整體輸出c值
(2)流程圖
3.遇到的困難及解決方法
遇到的困難:編譯細節上出了點問題,對於數值的定義有些模糊,本來應該定義成浮點數,卻定義成整數了,對題意的理解不透,在b c同時有條件限制時中間用了“,”,應該用“&”,我開始打的是依次輸出,不如整體輸出方便,也容易犯錯,輸出的浮點也寫錯。
解決的方法:自己在檢查出一些錯誤后,讓同學幫助檢查,將所有的錯誤改正
4.運行結果
【2】pta提交列表
【3】git地址及截圖
https://git.coding.net/sunna1/text.git
【4】總結、互評和學習進度
1.總結
(1)學習內容:本周主要學了算數運算順序,%取余,float,double浮點數的運用,最主要學習了if-else的運用,在課上進行了大量的練習,本周的pta作業也以if-else為主
(2)遇到的困難:If-else的練習也不少了,大部分都大同小異,但在遇到新穎一點的題型時有的還是有些轉不過來,在細節上的處理也不好,在編譯時總會出現大大小小的錯誤,不夠嚴謹。
(3)解決方案:天道酬勤吧,自己還是要勤加練習,要用心細心。最重要的是將每個步驟的意思弄懂,不會多查查,多看看。
2.點評作業
馬雨欣:http://www.cnblogs.com/mayuxin/p/7735130.html
孫美玲:http://www.cnblogs.com/sunmeiling/p/7745182.html
何宗彥:http://www.cnblogs.com/hezongyan/p/7726382.html
3.表格及折線圖
ps:評論的同學多數都提到了解決的方法寫的不詳細,但我並未進行整改。是因為對有些概念性的東西不太能叫得准,理解的不夠透徹,導致有些錯誤不知所因。每次打完代碼只知道錯了就該過來,並沒有究其根本,這是非常不對的。在接下來的學習中我會避免此類事情,追根溯源,將知識掌握扎實。本周的作業想整改,可能還需要點時間。