繳交時間: 資二甲的班:2012/10/27 23:30
資二乙的班:2012/10/23 23:30
遲交三天以上不收件!
===============================================================
輸入:奇數 n (4 的倍數可加分、所有偶數則大大加分)
輸出:列、行、對角各數字加總的值皆一樣的魔術矩陣;至少寫出四種
// 魔術矩陣的生成有若干方式 (移動方向、起點位置皆可更動),
上課示範其中兩種(一種正確、一種可執行但結果有錯) [執行檔下載下載後更名為~.exe]。
--------------------------------------
下面提供可能的輸出畫面:
1) 輸入 7 後,印出 7*7 的 Magic square 在 Memo1 (以左上角方向填數字):
2) 同時印出 7*7 的 Magic square 在 Memo2 (以右下角方向填數字,注意其列、行、對角的和):
3) 輸入偶數,印出要求奇數的訊息:
4) 另一種介面設計,提供四種方向的選擇 (by RadioBotton)
// ===== 印出對齊的矩陣數字 =====
void PrintSquare(int n, int flag)
{ int i, j, k;
AnsiString row, space ;
int len = 6;
if (flag == 1) Form1->Memo1->Lines->Add(" --------- "+IntToStr(n)+"*"+IntToStr(n)+" --------- ");
else if (flag == 3) Form1->Memo2->Lines->Add(" --------- "+IntToStr(n)+"*"+IntToStr(n)+" --------- ");
for (i = 0; i < n; i++)
{ row = "";
for (j = 0; j < n; j++)
{ space = len - IntToStr(square[i][j]).Length();
for (k = 0; k < space; k++) row += " ";
row += IntToStr(square[i][j]);
}
if (flag == 1) Form1->Memo1->Lines->Add(row);
else if (flag == 3) Form1->Memo2->Lines->Add(row);
}
}
"上課powercam:http://sites.google.com/site/sjdsalg/materials/powercam/101a"
=================================================================================
作業繳交須知:https://sites.google.com/site/sjdsalg/announcement-1/grade
(內有繳交作業的命名、遲交扣分原則、與其它注意事項, 請詳讀!!)
遲交三天以上不收件!