# [2020H401] 2020.7.6上課筆記 ## 今天課程重點 - CH6迴圈 加強練習 ## CH6迴圈 加強練習 ### Ex. 6-3.1 - 從使用者輸入的邊,轉換成三角形的「層數」 - 最外圈迴圈就是層數 - 每一層由" "跟"*"組成,找到他們個數與層數的關係 ### Ex. 6-3.1 題目:使用者輸入底邊長度n,程式自動畫出一個底邊長度為n的等腰三角形 ``` 例如: 使用者輸入n=7,按下Enter,就會產生一個三角形如下: * * * * * ******* ``` 解析: 1. 將使用者輸入的底邊長度n,轉換成層數i=(n/2+1) 2. 知道層數後,先列印每一層的空白(i-1, i-1, i-2,...,0) 3. 空白之後的列印內容,分成三個情況討論 - 第一層: - 印一個* - 換行 - 最後一層: - 印n個* - 其他情況: - 印一個* - 再印(i*2-1)個空白 - 再印一個* - 換行 4. 印幾層,次數用變數i控制迴圈;每層列印的文字,次數用變數j控制迴圈 參考程式碼: ```C++ #include <iostream> using namespace std; int main() { int n = 0; int i = 0; int j = 0; cout << "請輸入底邊> "; cin >> n; for(i=0;i<n/2+1;i++){ //印空白u8 for(j=0;j<n/2-i;j++){ cout << " "; } //分三種情況討論 if(i==0){ cout <<"*"<<endl; } else if(i==n/2){ for(j=0;j<n;j++){ cout <<"*"; } cout<<endl; } else{ cout << "*"; for(j=0;j< 2*i-1 ;j++){ cout << " "; } cout << "*"<< endl; } } } ``` ### 課程進度確認 1. 以下規劃為**最充足學習時間**來考量,若學習狀況良好,會提前進度教學,增加專題實作 2. 7/31會做一次學習狀況檢核討論 | 日期 | 課程進度 | 備註 | | -------- | -------- | -------- | | 6/18(Thr.) | [C++教學] 基本觀念、輸入與輸出 | OK | | 6/22(Mon.) | [C++教學] 變數與資料型態(一) | OK | | 7/2(Thr.) | [C++教學] 學期總複習練習 | OK | | 7/6(Mon.) | [C++教學] 流程指令及迴圈(一) | | | 7/13(Mon.) | [C++教學] 流程指令及迴圈(二) | | | 7/20(Mon.) | [C++教學] 陣列與指標(一) | | | 7/27(Mon.) | [C++教學] 陣列與指標(二) | | | 8/3(Mon.) | [C++教學] 函式 | | | 8/10(Mon.) | [C++教學] 結構與類別(一) | | | 8/17(Mon.) | [C++教學] 結構與類別(二) | | | 8/24(Mon.) | [C++教學] 綜合練習(一) | | | 8/31(Mon.) | [C++教學] 綜合練習(二) | | ###### tags: `H400大學家教` `C/C++ `