本週將分別以 C 及 Python 編寫 8 個基本的程式應用. 接著利用 各組的 Fossil SCM 倉儲進行管理.
程式一: 輸入圓半徑, 計算圓面積與圓周長
以 C 編寫:
// 程式 midterm_ex1.c // 引入 stdio 標準輸出入標頭檔案 #include<stdio.h> // 定義主函式 int main() { // 宣告變數 int rad; float PI = 3.14, area, ci; // 格式化列印出提示字串後, 取使用者的半徑輸入 printf("\nEnter radius of circle: "); scanf("%d", &rad); // 根據使用者的半徑輸入, 計算圓面積 area = PI * rad * rad; printf("\nArea of circle : %f ", area); // 計算圓周長度 ci = 2 * PI * rad; printf("\nCircumference : %f ", ci); // 配合主函式的整數回傳資料型別, 傳回整數 return (0); }
以 Python3 編寫:
# 程式 midterm_ex1.py import math radius = float(input("請輸入圓半徑:")) print("圓面積為:", math.pi*radius*radius) print("圓周長為:", 2*math.pi*radius)
接著在 SciTE 編輯器中執行無誤之後, 準備將上述兩個程式提交推送到倉儲.
假如近端沒有倉儲檔案
以 clone 複製倉儲檔案
fossil clone https://account@server_ip_or_domain_name cloned.fossil
fossil 要求輸入 account 對應的密碼
將遠端自己擁有管理權限的 Fossil Server clone 到近端存為 cloned.fossil 檔案之後, 接著就是將此倉儲資料庫檔案在工作目錄中開啟, 因此在對應目錄下以 mkdir wd 建立 working directory 後, 以 cd wd 進入工作目錄, 然後下 fossil open 將此倉儲檔案的內容打開:
以 open 開啟倉儲檔案
fossil open ./../cloned.fossil
之所以在 cloned.fossil 加入 ./../ 是因為這個先前複製下來的倉儲檔案位於目前所在目錄 wd 的上一個目錄中, 因此必須要指定是開啟位於上一個目錄中的 cloned.fossil, 並將此倉儲內容在 wd 目錄中打開.
完成倉儲檔案在工作目錄的開啟之後, 假如是在 Windows 操作系統環境中, 該工作目錄中會有一個 FOSSIL 檔案, 而若在 Ubuntu 操作系統環境中, 則會產生一個 .fslckout 檔案, 且 FOSSIL 或 .fslckout 檔案為 SQLite 格式的資料庫檔案, 用來儲存 Fossil SCM 系統的各式改版註記資料.
在工作目錄中進行改版
在工作目錄中所進行的改版, 以文字檔案為主, 但也可以放入其他二位元檔案, 只是 Fossil SCM 中的二位元檔案無法像文字檔一樣, 在每次改版後, 明確列出各次改版內容的差異.
以 commit 指令進行提交
接著再進行改版後, 執行 fossil commit -m "改版註記訊息", 註記每次改版內容的字串, 主要用來簡要說明各次改版的內容, 之後使用者可以根據此提交註記訊息來辨識各版次的改版階段, 也能使用 checkout 指令, 將倉儲檔案回復到先前的特定版次狀態.
最後, 因為前面採用特定用戶身份進行 fossil clone, 因此 fossil 會以內建的 autosync 設定為 on 的情況, 自動執行倉儲改版內容的推送.
基本算術題目
-
Calculate Area and Circumference of Circle (計算圓面積與圓周長)
-
Calculate Area of Scalene Triangle (計算不等邊三角形面積)
-
Calculate Area of Equilatral Triangle (計算正三角形面積)
-
Calculate Area of Right angle Triangle (計算直角三角形面積)
-
Calculate Area of Rectangle (計算長方形面積)
期中自評表
學生自評部份 (80%) + 各組 Fossil SCM 上的佐證紀錄 (20%)
每週都準時上下課 (20 分)
上面 5 個題目, 寫出對應的 C 與 Python 程式 (每一題 6 分)
請各組員根據上述自評表, 在各組的 Fossil SCM 倉儲中完成期中報告與自評分數
線上 C 與 Python3 程式執行
C 程式:
https://github.com/mdecourse/codelauncher
Python3 程式: