В ближайшие выходные я даю небольшой курс PHP, и я хотел бы представить несколько вопросов и упражнений для своих учеников, чтобы они могли практиковать с целью, веселый. Я уже представил им основы, теперь пришло время для некоторых действий.Простые, сложные и интересные вопросы и упражнения для начинающих PHP
ответ
Например, u может дать им простой оператор for loop
и попросить их реализовать его с помощью инструкции while
или наоборот. и делать это для других заявлений, таких как switch case
и if
.
Поиск способов реализации простых алгоритмов всегда обеспечивает отличную практику. Если вы считаете, что они готовы к структурам данных более высокого уровня (связанным спискам, графикам и т. Д.), Вы можете дать им задачу поиска по глубине. Если они еще не на этом уровне, попробуйте работать с массивами и для циклов/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
.
Массивы являются камнем преткновения для большинства начинающих, которых я знаю. Я лично запускаю их посредством одномерного и многомерного массива, цикла и шага. Поскольку структуры MVC становятся настолько распространенными, функции foreach и функции массива становятся жизненно важными для успеха программирования.
Большое спасибо, Стивен. Вы дали мне представление о том, чтобы хранить данные формы в текстовом файле и впоследствии создавать CRUD для этих данных. Это даст очень большое представление о строках, а также операции с файлами. –
Мне очень не нравится идея обучения «родовому» программированию вроде «(связанные списки, графики и т. Д.)». Если я собираюсь преподавать материал php, я бы пошел с примером более реальной жизни. Примерами являются новостные скрипты с базой данных mysql. Или что-то вроде «службы заказа пиццы» с html-формами и т. Д. Не нужно пытать своих людей такими задачами, как «как решить проблему кратчайшего пути взвешенного цикла, свободного ориентированного графа ...». Я не использую PHP для решения задач графа. – Progman
Общий материал программирования - это основа анализа алгоритмов и сложности. Не говоря уже о том, что это ядро большинства программных решений для нашего вычислительного мира. Например: предположим, вы хотели создать систему тегов для книг. Вы можете дать одной книге теги «подросток», «вампир», «романтика» (знаете, о какой книге я говорю?). Вы, вероятно, говорите «о, просто используйте отношения многих и многих». Хорошо, что отношения теперь хорошо документированы в Google, но когда-то алгоритмическая проблема решалась с помощью графического анализа. – stevendesu