本週將分別以 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 的情況, 自動執行倉儲改版內容的推送.

基本算術題目

  1. Calculate Area and Circumference of Circle (計算圓面積與圓周長)

  2. Calculate Area of Scalene Triangle (計算不等邊三角形面積)

  3. Calculate Area of Equilatral Triangle (計算正三角形面積)

  4. Calculate Area of Right angle Triangle (計算直角三角形面積)

  5. Calculate Area of Rectangle (計算長方形面積)

期中自評表

學生自評部份 (80%) + 各組 Fossil SCM 上的佐證紀錄 (20%)

每週都準時上下課 (20 分)

上面 5 個題目, 寫出對應的 C 與 Python 程式 (每一題 6 分)

請各組員根據上述自評表, 在各組的 Fossil SCM 倉儲中完成期中報告與自評分數

線上 C 與 Python3 程式執行

C 程式:

https://github.com/mdecourse/codelauncher

Python3 程式:

網際 Python3 執行環境