顯示具有 線上解題系統 標籤的文章。 顯示所有文章
顯示具有 線上解題系統 標籤的文章。 顯示所有文章

2019年11月22日 星期五

OnlineJudge線上評測系統-常見問題


之前介紹過OnlineJudge線上評測系統,

也列了一個程式範例,

一套新的系統對使用者來說肯定很陌生,

因此也產生了一些問題,

今天就針對這些問題來介紹:

OnlineJudge線上評測系統-常見問題


輸入/輸出範例相關




每個試題都有輸入範例與輸出範例,

而 OJ 是以比對方式來判別程式是否正確,

故輸入/輸出範例中未出現的字(包含空格、逗號、換行)都會造成錯誤。

上圖中的程式在輸出的時候多出了 “ a + b = “。


輸入/輸出範例相關



上圖中的程式多了輸入提示 '直徑?' ,

輸出也多了 ’面積為’ 、 '周長為' ,

故判定錯誤。


載入模組未加上 import


上圖中的程式使用了 math 模組,但沒有加上 import

資料型態


左圖中的程式假設輸入 a=1 , b=2 ,

雖然有作資料型態的轉換,

但因為輸出的浮點數 3.0 與題目的輸出範例不符,

故判定結果為錯誤。

演示範例:




input得到的資料,其型態為字串



input所得到的資料為字串,

必須先轉變資料型態後,

才能拿來作數值的運算。

以上圖中程式為範例,

分別輸入 1 與 2 ,

最終得到的結果為’ 12 ’ 的字串而非兩數字相加。



而此圖中程式並未作資料型態的轉換,

就直接作相減的運算,

故判定結果為錯誤。

split為字串分割的方法


上圖範例 b = a.split(‘,’),

可看到split回傳值為一個List(如黃底所示),

將原來的字串 a 分割為 ‘hello’ 與 ‘world’ 兩個字串。

程式演示:




上圖程式則是先將字串轉換為浮點數,

導致 c 與 b 已經不是字串,

再使用 split 是錯誤的。


初學者學習程式同時還要適應OnlineJudge線上評測系統,

難免會出現許多基本問題,

只要多練習即可。




2019年9月10日 星期二

OnlineJudge線上評測系統-兩數相加範例


之前介紹過OnlineJudge線上評測系統,

坐而言不如起而行,

寫程式就是要實作才印象深刻,

今天就帶大家體驗下:

OnlineJudge線上評測系統-兩數相加範例

既然要線上解題,

看懂題目就是第一步,

此範例要求使用者以input輸入兩個數字,

並輸出兩數相加的值。


很簡單的題目,

但也是很基礎的觀念題,


就從最常見的錯誤開始解析:

Python跟C不同,

使用變數不需要事先宣告,

但變數的資料型態取決於第一次使用所賦予的值,

input()所取得的變數必然為字串,

以題目中提到的輸入範例1,

輸入值為1跟2,

此錯誤答案輸出的結果為 12,

與舉例的解答有出入,

故系統判別為錯誤答案(Wrong Answer)。


而Runtime Error,

則是因為題目沒看清楚阿,

範例明明直接取得變數,

不需要另外加上中文。


由於input取得的變數為字串(string),

故必須透過資料型態的轉換,

將取得的變數轉為整數(int)之後,

才能拿來做四則運算。


從這個簡單的題目能學到哪些東西?

1. print用法
2. input用法
3. 資料型態的轉換
4. 變數的加法運算


程式就是要多練習,

才會進步得快,

這就是今天的兩數相加範例