題目集一至三總結Blog~
前言
PTA知識點總結
題目集1共有9道題,因為是第一次作業,可以說,題量較大但難度不大,正適合學生適應剛開學的學習節奏,可以說,這些題目時讓我們在學習的基礎上,將學到的知識真正搞懂的過程,讓我們把書本上固定的知識,轉入大腦中思考,然後轉化為電腦上輸入的字元
知識點:1.7-1中對輸入輸出範圍的把控,按照不同的資料型別定義不同的資料以及資料的運算,是否數值越界以及if語句的使用。
2.7-2中含零與否的輸入。
3.7-6中資料處理對結果造成差異。
4.7-3主要考驗輸入、輸出、按照不同的資料型別定義不同的資料以及資料的運算和if語句、for語句的使用
5.7-4房產稅務計算主要考驗輸入、輸出、按照不同的資料型別定義不同的資料以及資料的運算和if語句的運算
-->解析:總的來說,本次作業主要考驗我們最基本的Java語法、以及一些邊界的控制,對測試點的猜測
題目集2共有3道題,相對於第一次作業,可以說,題量較小而且難度跨度也不算很大,適合學生學習節奏,可以說,這些題目讓我們更加了解這段學習中的重點內容,將學到的知識真正搞懂,同時也讓我們把書本上固定的知識鞏固。
知識點:
1.7-1 字母-數字轉換 (11 分)
輸入一字串(字母)將所有英文字母轉換為字母表中的序列號,例如,“AbbcD”到“12234”。
-->解析:首先,判斷字串子串、單字元格式和作用域的知識。然後,可以使用ascii值遍歷該字串,並強制該字元型別為整數。
2.7-2 串列埠字元解析 (40 分)
RS232是一種通用的串列埠通訊協議。在非同步通訊模式下,串列埠可以一次傳送5~8位的資料,當沒有資料傳送到接收機時保持高水平,連續接收資料“1”(稱為空閒位)。當傳送方有資料傳輸時,它向有效資料新增1個開始“0”(5~8位),在有效資料之後新增1個可選的奇偶校驗位“1”。請編寫一個程式來模擬串列埠接收處理程式。注:如果有效資料為8位,則奇偶校驗位使用奇數校驗。
-->解析:困難在於演算法設計中的串子串分割的知識。
3.7-3 String的格式判斷與內容提取 (10 分)
學校學生編號格式定義如下:
2位年級編號+2位大學編號+2位年級班編號+2位班編號,如19041103,
寫作程式處理長字串連線的整個學校學生數量,學校數量是20,包括四個年級17、18、19和20,請從字串提取最後四個輸出的學生類202017和202061,輸出數字由空格分隔,不改變行。
注意:需要排除非法輸入。
-->解析:第二次作業總的來說、更側重於對我們if語句、for迴圈這種相對於第一次作業更高一階的內容進行的考察。也多了很多細節上的處理,題目也相對更加嚴謹了。
題目集3同題目集2一樣,共有3道題,相對於第二次作業,可以說,題量沒有變化但是難度跨度相對來說非常大,很多測試點是大部分人無法解決的,而且得到滿分的同學寥寥無幾,相對來說,平均分大大降低,可以說,這些題目讓我們更加了解這段學習中自己的不足,但是由於測試點過多,很多能執行的程式無法通過。使得本次題目耗費了我們太多的時間。
知識點:
1.7-1 點線形系列1-計算兩點之間的距離 (10 分)
題目:輸入各點的座標,並計算出兩點之間的距離
-->難度較高,因為這個需求不僅可以有一個類,而且必須分開責任,所以它還檢查瞭如何建立類之間的聯絡。它還檢查了字串格式的判斷,並提取分離的子字串,並將它們轉換為雙型別。
2.7-2 點線形系列2-線的計算 (42 分)
題目:使用者輸入一組選項和資料,以執行與該行相關的計算。選項包括:
1: 輸入兩點座標以計算坡度。如果該直線垂直於x軸,則您將輸出“斜率不存在”。
2: 輸入三點座標,並輸出第一個點與其他兩點之間的垂直距離。
3: 輸入三點座標,以確定這三個點是否在一條直線上,並輸出真或假。
4: 輸入四點座標,確定前兩點形成的直線是與後兩點形成的直線平行,輸出為真還是假。5:輸入四個點座標,計算輸出前兩個點所構成的直線與後兩點構成的直線的交點座標,x、y座標之間以英文分隔",",並輸出交叉點是否在兩條線段之內(不含四個端點)的判斷結果(true/false),判斷結果與座標之間以一個英文空格分隔。若兩條線平行,沒有交叉點,則輸出"is parallel lines,have no intersection point"。
-->解析:難度為難,繼承了上一題的格式判斷,同時格式判斷更加繁瑣,演算法設計,類的設計更加複雜。
7-3 點線形系列3-三角形的計算 (48 分)
題目: 使用者輸入一組選項和資料,進行與三角形有關的計算。選項包括:
1:輸入三個點座標,判斷是否是等腰三角形、等邊三角形,判斷結果輸出true/false,兩個結果之間以一個英文空格符分隔。
2:輸入三個點座標,輸出周長、面積、重心座標,三個引數之間以一個英文空格分隔,座標之間以英文","分隔。
3:輸入三個點座標,輸出是鈍角、直角還是銳角三角形,依次輸出三個判斷結果(true/false),以一個英文空格分隔,
4:輸入五個點座標,輸出前兩個點所在的直線與三個點所構成的三角形相交的交點數量,如果交點有兩個,則按面積大小依次輸出三角形被直線分割成兩部分的面積。若直線與三角形一條線重合,輸出"The point is on the edge of the triangle"
5:輸入四個點座標,輸出第一個是否在後三個點所構成的三角形的內部(輸出in the triangle/outof triangle)。
必須使用射線法,原理:由第一個點往任一方向做一射線,射線與三角形的邊的交點(不含點本身)數量如果為1,則在三角形內部。如果交點有兩個或0個,則在三角形之外。若點在三角形的某條邊上,輸出"on the triangle"
-->解析:難度很大,第三個練習的目的比第二個問題更復雜,調查的內容與第二個問題相同。說第三個作業,將使用一些相對深入的程式碼,許多深入的語句,一些內容甚至開始學習,導致開始寫,早期資料,後期除錯,時間不夠,測試點很多,寫程式碼甚至不到直接輸入報告錯誤得到點,相對較大的工作負載。
二.設計與分析:
- 第一次作業
(1) 身體質量指數(BMI)測算:
設計
使用ASCII值和力型別轉換。
流程
① 資料輸入
② 確定該資料是否為實際值
③ 確定該資料屬於哪個類別-if(bmi<18.5)
輸出結果
(2) 長度質量計量單位換算
流程
① 輸入資料
② 更換
③ 輸出
(3) 奇數求和
設計
利用遍歷迴圈實現。
流程
① 內部陣列,輸入該陣列
② 用於復發
③ 輸出
(4) 房產稅費計算
設計
清晰分明資料所屬情況
流程
① 資料輸入
② 判斷
③ 輸出
(5) 遊戲角色選擇
流程
① 輸入資料-
② 判斷
(6)學號識別
流程
① 輸入-
② 判斷-
③ 輸出
(6) 巴比倫法求平方根近似值
流程
① 輸入資料-
② 判斷-
③ 輸出
2.第二次作業
(1) 字母-數字轉換
設計
使用ASCII值和力型別轉換。
流程
① 進口
② 迴圈+判斷
③ 輸出
(2) 串列埠字元解析
流程
① 進口
② 判斷為一個+的迴圈
③ 定義的函式
④ 發熱療法
⑤ 輸出
(3) String的格式判斷與內容提取
流程
① 輸入-
② 判斷+for迴圈
③ 定義函式
④ For迴圈+判斷
第三次作業
(1) 點線形系列1-計算兩點之間的距離
流程
① 輸入
② 判斷
③ 定義k
④ For迴圈+判斷
⑤ 判斷
⑥ 定義point
⑦ 輸出
(2) 點線形系列2-線的計算
流程
① 輸入兩點座標
② 定義一個點,判斷它是否是兩點,定義一個點函式
③ 計算斜率,若線條垂直於X軸,輸出"Slope does not exist"。
④ 輸入三個點座標
⑤ 定義一個點,確定它是否是三點,定義一個點函式
⑥ 輸出第一個點與另外兩點連線的垂直距離。
⑦ 判斷三個點是否在一條線上,輸出true或者false。
⑧ 輸入四個點座標-
⑨ 定義點,確定它是否是四個點,定義一個點函式
⑩ 判斷前兩個點所構成的直線與後兩點構成的直線是否平行,輸出true或者false.
⑪ 計算輸出前兩個點所構成的直線與後兩點構成的直線的交點座標,x、y座標之間以英文分隔","
⑫ 輸出交叉點是否在兩條線段之內(不含四個端點)的判斷結果(true/false),
⑬ 判斷結果與座標之間以一個英文空格分隔。若兩條線平行,沒有交叉點,則輸出"is parallel lines,have no intersection point"。
⑭ 定義點函式
⑭ 判斷兩數字之間是否為逗號
(3) 點線形系列3-三角形的計算
流程
① 輸入三個點座標-
判斷是否是三個點-判斷三點是否在同一條直線上
② 判斷是否是等腰三角形、等邊三角形,判斷結果輸出true/false,兩個結果之間以一個英文空格符分隔。
③ 輸出周長、面積、重心座標,三個引數之間以一個英文空格分隔,座標之間以英文","分隔。
④ 輸出是鈍角、直角還是銳角三角形,依次輸出三個判斷結果(true/false),以一個英文空格分隔,
⑤ 輸入五個點座標,
判斷是否是五個點-判斷五個點中任意三點是否在同一條直線上
⑥ 輸出前兩個點所在的直線與三個點所構成的三角形相交的交點數量,如果交點有兩個,則按面積大小依次輸出三角形被直線分割成兩部分的面積。若直線與三角形一條線重合,輸出"The point is on the edge of the triangle"
⑦ 輸入四個點座標,
判斷它是否是四點,判斷這四點中的任何三個是否在同一線上在最後三個點輸出三角形內部(輸出在三角形/三角形外側)。
⑧ 必須使用射線法,
原理是:從兩個方向的第一個點開始,如果射線的邊緣與三角形(不包括點本身)的交點數為1,則它在三角形內。如果有兩個或0個交點,則它在三角形的外面。如果該點在三角形的邊緣上,則輸出是“在三角形上”:
踩坑心得
- 我有很多不同型別的困難的問題。第一次做作業時,例如,雖然主題相對簡單,但測試點是很細節的,有時會通過一些資料限制和檢測,會發現有一些很難想到的合理的限制,我需要再次改修改,為了測試點的時間需要有很大的構思
- 一些比較冷門的測試點經常需要一次又一次得測試,或者詢問已經通過了測試點的學生。有時,由於時間緊迫,我仍然沒有通過測試點,我需要通過各種渠道及時學習在第二次作業中,要使用ascll語言,需要經常檢查資訊,寫完之後,經常可能還有很多分數沒有得到,然後又是一番鏖戰,分數才越來越高。
-
第三次做作業,整體難度高,需要引入正則表示式,對基礎差的學生比較困難,所以我應該先精準定位,先專注於徵服測試點,然後在調節測試點之間的關係,雖然這次還有很多測試點沒有完成,但我希望有機會一定要再試一次。
改進建議:
1.基礎不好要先複習,結合資料,知識的鞏固和加強。在編寫程式碼時,先注註釋,以方便後續更改和提供幫助。做一個簡單的測試點判斷,得到你試圖得到的,通過練習來學習知識點,使他們的記憶更深刻。
2.因為課堂掌握不夠透徹,還需要增加學習的量,以便自己的後續程式編寫
3.正確和錯誤的輸入格式都不夠準確,無法憑藉現有知識進一步學習使用Java語言來判斷該格式。
4.測試點裡邊的結果錯誤,我們需要進一步理解造成這種情況的原因。
總結,
- 我可以看到,現在就遇到很多困難,這也意味著我們永遠不會知道未來將面臨多麼挫折,我們將不得不利用盡可能多的時間來提高自己。
- 在這三個作業中,我發現有很多測試點是我在課堂上沒有注意到的,所以在做這些問題的過程中,我可以更清楚地意識到我學習的關鍵內容是哪一部分。
- 在這三次操作的過程中,我也拓寬了自己的視野,學會了用外部資訊來解決其中一個目標問題,併合理地利用了我的資源。
- 因為第三個作業是匆忙寫的,我更加意識到時間的價值,意識到作業給了整整一週的時間來讓我們一直修改錯誤,我們應該從作業釋出開始及時開始。
- 遇到問題,積極尋求幫助,以開放的心態學習。如果你不能自己解決這些問題,你的同學和老師都會幫助你。
- 由於需要做家庭作業,我們必須學習ascll語言和正則表示式,但這對我們來說是一件非常好的事情。