2009-05-30 74 views
2

我被要求把帕斯卡教導給一個孩子。儘管我沒有看到帕斯卡爾,但我現在知道了足夠的教訓。帕斯卡爾給孩子教的簡單問題

我寫你們看看是否有人能指出我指出,包括簡單的算法,像一些基本的練習:排序此陣,求其平均值,等等

它可以在任何語言,我只需要找一些練習,這樣他就可以鍛鍊。

+2

這孩子幾歲了?根據他的年齡,某些類型的練習可能更合適。 – hbw 2009-05-30 21:42:40

+1

他是17.在他高中畢業的路上 – Sergio 2009-05-30 21:48:57

+0

我提出了ldigas的答案。排序算法是我最喜歡的主題,因爲它們揭示了算法思維和語言的技術細節。我認爲排序對於晚高中來說是合適的水平。 – 2009-05-30 23:24:58

回答

5

我打算在(主要是)來解決這一語言 - 不可知論的時尚。在教他打印報表和流量控制(if報表,for循環等)之後,我的建議是從簡單的ASCII藝術模式開始,這些模式可由for循環等產生。

例如,如何打印一棵樹的一半,像這樣?

* 
** 
*** 
**** 
***** 
****** 

好了,現在你會如何打印樹,這樣的嗎?

 * 
    *** 
    ***** 
    ******* 
********* 
*********** 

現在嘗試繪製一艘火箭飛船。 ;)

這些對於大多數孩子來說都很棒,因爲它們是視覺化的,結果很誘人,並且練習會傳遞循環的重要性並消除冗餘。

3

對於sorting algorithms請參閱鏈接。這是一篇維基百科文章 - 有關排序算法的一般性信息,但在下面有單獨的每種類型的鏈接,以及僞碼(和一些語言)中的算法。

至於「求其平均值」去,當你有「N」的元素:

SUM=0. 
DO i=1,n 
SUM=SUM+element(i) 
ENDDO 
AVRG=SUM/n 

而且,學習的目的和思考Project Euler是非常好的。


另外,不要來看看這個問題: Where can you find fun/educational programming challenges?我不想複製粘貼的一切,但它有一堆與東西鏈接,正是你要找的內容(節目exercices) 。而這個:Algorithm Questions WebsiteWhat are your programming exercises?。你可能會發現你認爲他會在那裏感興趣的東西。

2

經典之一:
讓程序選擇一個隨機數,遊戲的目的是通過消除來找到數字。如果用戶猜測數字越低,程序就會說它太低,如果它的值越高說明太高。

1

「AI」(這是預定義的移動)和文本圖形的井字遊戲是一個不錯的項目。

1

爲它增添些趣味。一個好的入手:

紙岩石剪刀遊戲

用戶輸入P,R或S

程序迴應說,你贏了,輸了,或領帶

更多先進的功能:跟蹤紀錄,奪取%,輸/贏連勝

0

如果你知道C/C類語言是基本相同:

  • {}開始結束;
  • ==是=
  • =是:=
  • 不返回任何內容是一個程序的函數。
  • 返回值的函數仍然是一個函數。
  • int是整數。

其餘的幾乎相同。語法有點不同,但沒有太大的不同。

你需要知道他們正在使用哪個Pascal,以及他們教他們什麼,以確保你不會浪費你的/他/她的時間。

0

在雙向鏈表上進行基本操作也是一個經典。

0

我從中學到的早期練習包括繪製Mandelbrot set(電腦現在快得多,因此您不必馬上擔心優化問題)並實施像Game of Life這樣的元胞自動機。

當然,如果這是針對學校課程的練習,那麼像這樣的練習只會對測試可能測試類似的知識/技能領域有幫助。