Re: [問題] 請問大家都怎麼教別人遞迴和迴圈的基本 …

看板C_and_CPP作者 (喲)時間13年前 (2011/06/24 00:35), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串5/5 (看更多)
※ 引述《leeyinf (貓貓)》之銘言: : 我有認識的朋友大學是非資訊(財金)相關科系畢業, : 最近對寫程式有興趣, : 可是她一直卡在遞迴和迴圈,這個部分... : 我教了可是她還是不太理解, : 不知道大家在教別人這部分的時候 : 不知道是如何下手的? : 至於書籍,我是推薦她去看螞蟻書C++ : 或者是有哪一本書在這邊寫得最淺顯易懂(中英文皆可) : 我不知道這個問題po在這邊可不可以... : 不適合的話,請大家推薦我適合的版 : 謝謝大家:) 迴圈,用最淺白的方法解釋,是先列出沒有迴圈的情況:例如, cout << 2 << " x " << 1 << " = " << (2*1) << endl; cout << 2 << " x " << 2 << " = " << (2*2) << endl; cout << 2 << " x " << 3 << " = " << (2*3) << endl; ... cout << 2 << " x " << 9 << " = " << (2*9) << endl; cout << 3 << " x " << 1 << " = " << (3*1) << endl; ... 然後就可以說,像 2 * X = ... 這個段落,第二個數字是從1列到9, 第三個數字也有一半是1列到9. 在C++可以收成下列段落: for (i=1; i<=9; i++) cout << 2 << " x " << i << " = " << (2*i) << endl; cout << 3 << " x " << 1 << " = " << (3*1) << endl; ... 而且因為她是新手,你要特別強調 for 區塊的頭,尾,漸進變量等三個語法, 是概念上對應到1~9這一列數字. 其他3,4,5等等開頭的乘法式子也可以分別收起來,而且可以重複使用同一個 i: for (i=1; i<=9; i++) cout << 2 << " x " << i << " = " << (2*i) << endl; for (i=1; i<=9; i++) cout << 3 << " x " << i << " = " << (3*i) << endl; for (i=1; i<=9; i++) cout << 4 << " x " << i << " = " << (4*i) << endl; ... for (i=1; i<=9; i++) cout << 9 << " x " << i << " = " << (9*i) << endl; 然後,可以看到這些迴圈幾乎相同,只有第一個數字和第三個數字的一半,是2列到9. 這樣也改寫成迴圈: for (j=2; j<=9; j++) { for (i=1; i<=9; i++) cout << j << " x " << i << " = " << (j*i) << endl; } 用一個實例先平鋪直敘,然後示範化簡再化簡的過程,就可以提供基礎讓她理解 或記得住迴圈區塊的語法語意. 然後,可能拿 cout << "今天星期一,猴子穿新衣" ... 當作第二個例子, 就可以同時教迴圈及陣列的使用了. -- /yau -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.112.228.18

06/24 20:48, , 1F
推一下
06/24 20:48, 1F
文章代碼(AID): #1E0sjJYH (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1E0sjJYH (C_and_CPP)