2010-10-11 3 views
0

В ближайшие выходные я даю небольшой курс PHP, и я хотел бы представить несколько вопросов и упражнений для своих учеников, чтобы они могли практиковать с целью, веселый. Я уже представил им основы, теперь пришло время для некоторых действий.Простые, сложные и интересные вопросы и упражнения для начинающих PHP

ответ

1

Например, u может дать им простой оператор for loop и попросить их реализовать его с помощью инструкции while или наоборот. и делать это для других заявлений, таких как switch case и if.

2

Поиск способов реализации простых алгоритмов всегда обеспечивает отличную практику. Если вы считаете, что они готовы к структурам данных более высокого уровня (связанным спискам, графикам и т. Д.), Вы можете дать им задачу поиска по глубине. Если они еще не на этом уровне, попробуйте работать с массивами и для циклов/while. Вы можете очень легко выполнять много функций по всем массивам. Например, усредняйте значения массива, суммируйте значения или создайте новый массив из элементов N-1 (где первый массив имеет N элементов), каждый из которых является разностью элемента N и элемента N + 1 в оригинальный массив.

Если вы хотите попробовать любой из примеров в реальном мире, попробуйте алгоритмы расчета классов (учитывая список оценок, найдите GPA) или тележки для покупок (вы купили 1 пункта X, 3 элемента Y, 2 от суммы Z ... общая стоимость?)

Вы также можете сделать это немного сложнее, имея взвешенные оценки (a B в классе 3 часа и A в классе 1 час = GPA 3,25)

Я бы также рекомендовал немного поработать с базами данных или вводами-выводами файлов. Возможность сохранить результаты вашей работы и напомнить им позже будет БОЛЬШЕ расширить свое понимание сложных больших систем, таких как веб-сайты.

Если вы считаете, что это не слишком сложно (я не знаю уровня учащихся), одно задание, которое у меня было в классе пару лет назад (что мы сделали в PERL), можно было изменить. Оно включает в себя следующий текст документа:

1   | Billy | Bob | Kentucky | Yale 
    2 | Sally |  Sue| Virginia | Harvard 
... 

Нам сказали предположить картину id | first_name | last_name | state | university, однако может быть переменное количество белого пространства. Были также некоторые malformated записи, такие как:

... 
    7 | Joe | 3 |   Ohio | MIT 
... 

Ясно 3 не фамилия. Нам сказали использовать регулярные выражения для проверки того, что идентификатор был целым числом менее 10000, первое и последнее имя состояло только из букв, состояние должно начинаться с заглавной буквы и сопровождалось некоторым количеством строчных букв, и университет должен был состоять только из писем. Если бы были какие-то ошибки, мы должны были сказать, что такое ошибка и какая строка файла была включена. (Например: «Ошибка в строке 7: 3 - неверная фамилия. Должны быть только буквы»)

После этого мы ввели цикл (наша программа была интерактивной и запускалась из оболочки), где они могли вводить 1 для id , 2 для имени, 3 для фамилии и т. Д. Они ввели 0, чтобы выйти. Независимо от того, что они вставляли, они могли бы ввести строку для поиска, и она найдет студента, который будет соответствовать этим критериям и отобразит их информацию. Вместо интерактивного цикла, если вы преподаете PHP для использования на веб-сервере, возможно, разрешите им отправить форму и проверить информацию $_POST.

+0

Большое спасибо, Стивен. Вы дали мне представление о том, чтобы хранить данные формы в текстовом файле и впоследствии создавать CRUD для этих данных. Это даст очень большое представление о строках, а также операции с файлами. –

+0

Мне очень не нравится идея обучения «родовому» программированию вроде «(связанные списки, графики и т. Д.)». Если я собираюсь преподавать материал php, я бы пошел с примером более реальной жизни. Примерами являются новостные скрипты с базой данных mysql. Или что-то вроде «службы заказа пиццы» с html-формами и т. Д. Не нужно пытать своих людей такими задачами, как «как решить проблему кратчайшего пути взвешенного цикла, свободного ориентированного графа ...». Я не использую PHP для решения задач графа. – Progman

+0

Общий материал программирования - это основа анализа алгоритмов и сложности. Не говоря уже о том, что это ядро ​​большинства программных решений для нашего вычислительного мира. Например: предположим, вы хотели создать систему тегов для книг. Вы можете дать одной книге теги «подросток», «вампир», «романтика» (знаете, о какой книге я говорю?). Вы, вероятно, говорите «о, просто используйте отношения многих и многих». Хорошо, что отношения теперь хорошо документированы в Google, но когда-то алгоритмическая проблема решалась с помощью графического анализа. – stevendesu

1

Массивы являются камнем преткновения для большинства начинающих, которых я знаю. Я лично запускаю их посредством одномерного и многомерного массива, цикла и шага. Поскольку структуры MVC становятся настолько распространенными, функции foreach и функции массива становятся жизненно важными для успеха программирования.