我被要求给一个孩子辅导帕斯卡。尽管在我设法获得教程之前从未见过 Pascal,但我现在知道的足以教他。
我写信给你们看看是否有人能指出一些涉及简单算法的基本练习,比如:对这个数组进行排序,找到平均值等......
它可以是任何语言,我只需要找一些练习,这样他就可以锻炼了。
这是自由职业者学习一门新编程语言的 15 个练习的列表,它扩展了许多语言中使用的基本技术,并且可以让他感受他正在学习的新语言
我将以(主要)与语言无关的方式解决这个问题。在教他打印语句和流程控制(if
语句、for
循环等)之后,我的建议是从简单的 ASCII 艺术模式开始,这些模式可以由for
循环等生成。
例如,你将如何打印半棵树,像这样?
*
**
***
****
*****
******
好的,现在你将如何打印一棵完整的树,像这样?
*
***
*****
*******
*********
***********
现在试着画一艘火箭飞船。;)
这些对大多数孩子来说都很棒,因为它们是视觉的,结果很诱人,而且练习将传授循环和消除冗余的重要性。
有关排序算法,请参见链接。这是一篇 Wikipedia 文章 - 关于排序算法的一些一般信息,但在下方您可以单独找到每种类型的链接,以及伪代码(和某些语言)中的算法。
就“找到平均值”而言,当你有“n”个元素时:
SUM=0.
DO i=1,n
SUM=SUM+element(i)
ENDDO
AVRG=SUM/n
此外,出于学习目的和思考Project Euler非常好。
另外,请看一下这个问题: 在哪里可以找到有趣/有教育意义的编程挑战?我不想复制粘贴所有内容,但它有一堆链接,其中包含您正在寻找的东西(编程练习)。还有这个:算法问题网站,你的编程练习是什么?. 你可能会在那里找到你认为他会感兴趣的东西。
经典一:
让程序选择一个随机数,游戏的目的是通过消除找到数字。如果用户猜到一个较低的数字,程序就说它太低,如果它更高,它就说它太高。
带有“AI”(即预定义动作)和文本图形的井字游戏是一个不错的项目。
给它增添一些乐趣。一个好的开始:
剪刀石头布游戏
用户输入 P、R 或 S
程序响应您赢、输或平局
更高级的功能:跟踪记录、获胜百分比、连续赢/输
如果您知道任何类似 C/C 的语言,则基本相同:
其余的几乎相同。语法有点不同,但差别不大。
您需要知道他们使用的是哪种 Pascal,以及他们教给他们的内容,以确保您不会浪费您/他/她的时间。
对双向链表做基本操作也是经典。
我从中学到的早期练习包括绘制Mandelbrot 集(现在计算机速度要快得多,因此您不必立即担心优化问题)和实现像Game of Life这样的元胞自动机。
当然,如果这是学校课程的练习,那么只有在测试可能测试类似的知识/技能领域时,这样的练习才会有帮助。