我将在下周末举办一个小型PHP课程,我想为我的学生提出一些问题和练习,这样他们就可以练习一个客观,有趣的课程。我已经为他们介绍了基础知识,现在是采取行动的时候了。
答案 0 :(得分:2)
找到实现简单算法的方法始终提供了很好的实践。如果您认为他们已经为更高级别的数据结构(链表,图表等)做好了准备,那么您可以为他们提供深度优先搜索问题。如果它们尚未处于该级别,请尝试使用数组和for / while循环。您可以非常轻松地在整个阵列上迭代许多函数。例如,平均一个数组的值,对这些值求和,或者创建一个新的N-1个元素数组(其中第一个数组有N个元素),每个元素都是元素N和元素N + 1的差异。原始阵列。
如果您想尝试任何示例进入现实世界,请尝试等级计算算法(给出成绩列表,找到GPA)或购物车(您购买了项目X中的1项,项目Y中的3项,2项项目Z ...总价?)
你也可以通过加权等级(3小时课程中的B和1小时课程中的A = GPA 3.25)来使其复杂化。
我还建议您使用数据库或文件输入/输出进行一些工作。保存工作成果并在以后调用它们的能力将极大地扩展他们对复杂的大型系统(如网站)的理解。
如果你认为它不太复杂(我不知道学生的水平),我几年前在课堂上所做的一项任务(我们在PERL中做过)可以修改。它涉及以下文本文件:
1 | Billy | Bob | Kentucky | Yale
2 | Sally | Sue| Virginia | Harvard
...
我们被告知假设模式id | first_name | last_name | state | university
,但是可能存在可变数量的空白区域。还有一些格式错误的条目,例如:
...
7 | Joe | 3 | Ohio | MIT
...
显然3
不是姓。我们被告知要使用正则表达式来验证ID是一个小于10000的整数,名字和姓氏只包含字母,州必须以大写字母开头,后跟一些小写字母,而大学只能由信件组成。如果有任何错误,我们必须说出错误是什么以及它所在的文件行。 (例如:“第7行的错误:3是无效的姓氏。应该只是字母”)
在此之后我们进入了一个循环(我们的程序是交互式的并从shell运行),在这里他们可以输入1代表id,2代表名字,3代表姓氏等。他们输入0退出。无论他们输入什么,他们都可以输入一个字符串进行搜索,然后找到符合该标准并显示其信息的学生。如果您正在教授PHP在Web服务器上使用,而不是交互式循环,可以允许他们提交表单并检查$_POST
信息。
答案 1 :(得分:1)
例如,你可以给他们一个简单的for loop
语句,并要求他们用while
语句实现它,反之亦然。并为switch case
和if
等其他语句执行此操作。
答案 2 :(得分:1)
对于我认识的大多数初学者来说,阵列是一个绊脚石。我个人通过单维和多维数组循环和步进来运行它们。随着MVC框架变得如此普遍,foreach循环和数组函数对编程成功至关重要。