Dmelinevskyi
Новичок
Всем доброго времени суток. Я в php новичок. У меня есть вот такая задача:
Наодномберегурекисемья - отец, мать, сынидочь. Семья хочет добраться до другого берега реки. Они нашли рыбака с лодкой, который согласился одолжить им лодку. Семья должна переправиться к другому берегу реки и вернуть лодку назад рыбаку. В лодку могут поместиться один взрослый человек или двое детей.
Решите эту задачу с помощью php5, использовать ООП, каждый объект должен быть экземпляром класса. Программа должна прочитать конфигурацию из ini файла. В нём возможно изменить число взрослых и / или детей на любое другое. Программа должна записать файл журнала с результатами своей работы, где каждый может проверить, как люди пересекли реку и сколько итераций прошло.
Вот её решение:
Первыми переправляются дети.
Сын возвращается к маме-папе.
Папа едет на берег к дочери, потом дочь едет за братом и возвращается с ним к папе.
Сын едет к маме, отдает ей лодку, чтобы она переплыла к папе и дочери.
После того, как мама переправилась, дочь садится в лодку и едет к брату, подбирает его, и вместе они едут к родителям.
Дочь остается с родителями, а сын едет к рыбаку, отдает ему лодку.
Рыбак едет к родителям и высаживается.
Дочь садится и едет за братом, привозит его с собой обратно (наконец-то вся семья снова вместе), они отдают лодку рыбаку.
Лодка пересекла реку 13 раз.
Вот алгоритм:
1) Нужно создать два класса, 1 для взрослых, другой для детей, читаем из файла сколько взрослых, даем им объект первого класса, читаем сколько детей, им объект второго класса.
2)Объявляем флаги, где пишем где находится каждый из них, а потом создать функцию, ей передаем массив тех, кого перемещаем и сторону, куда перемещаем (допустим 0 - это изначальная сторона, а 1 - нужна сторона реки)
3)Далее в функции проходимся циклом и меняем флаги перемещенных на номер стороны реки и логируем это все дело в файл, меняя флаги на 1, например (когда все люди будут иметь флаг 1, то задача решена)
Сделал только первый пункт:
Подскажите пожалуйста, как делать дальшье. Не могу разобраться из-за нехватки опыта.
Наодномберегурекисемья - отец, мать, сынидочь. Семья хочет добраться до другого берега реки. Они нашли рыбака с лодкой, который согласился одолжить им лодку. Семья должна переправиться к другому берегу реки и вернуть лодку назад рыбаку. В лодку могут поместиться один взрослый человек или двое детей.
Решите эту задачу с помощью php5, использовать ООП, каждый объект должен быть экземпляром класса. Программа должна прочитать конфигурацию из ini файла. В нём возможно изменить число взрослых и / или детей на любое другое. Программа должна записать файл журнала с результатами своей работы, где каждый может проверить, как люди пересекли реку и сколько итераций прошло.
Вот её решение:
Первыми переправляются дети.
Сын возвращается к маме-папе.
Папа едет на берег к дочери, потом дочь едет за братом и возвращается с ним к папе.
Сын едет к маме, отдает ей лодку, чтобы она переплыла к папе и дочери.
После того, как мама переправилась, дочь садится в лодку и едет к брату, подбирает его, и вместе они едут к родителям.
Дочь остается с родителями, а сын едет к рыбаку, отдает ему лодку.
Рыбак едет к родителям и высаживается.
Дочь садится и едет за братом, привозит его с собой обратно (наконец-то вся семья снова вместе), они отдают лодку рыбаку.
Лодка пересекла реку 13 раз.
Вот алгоритм:
1) Нужно создать два класса, 1 для взрослых, другой для детей, читаем из файла сколько взрослых, даем им объект первого класса, читаем сколько детей, им объект второго класса.
2)Объявляем флаги, где пишем где находится каждый из них, а потом создать функцию, ей передаем массив тех, кого перемещаем и сторону, куда перемещаем (допустим 0 - это изначальная сторона, а 1 - нужна сторона реки)
3)Далее в функции проходимся циклом и меняем флаги перемещенных на номер стороны реки и логируем это все дело в файл, меняя флаги на 1, например (когда все люди будут иметь флаг 1, то задача решена)
Сделал только первый пункт:
PHP:
class GrownUp{
public $numOfGrownUp;
public function __construct($nogu) {
$this->numOfGrownUp = $nogu;
}
public function view() {
echo "<p>Количество взрослых: ".$this->numOfGrownUp."<br>";
}
}
PHP:
class Children{
public $numOfChildren;
public function __construct($noc) {
$this->numOfChildren = $noc;
}
public function view() {
echo "<p>Количество детей: ".$this->numOfChildren."<br>";
}
}
PHP:
$journal = fopen('journal.txt', 'w');
$journal = fopen('journal.txt', 'a');
$parse = parse_ini_file("php.ini");
$Children = $parse['Children'];
$GrownUp = $parse['GrownUp'];
function __autoload($name){
include "$name.class.php";
}
$c = new Children($Children);
$c->view();
$g = new GrownUp($GrownUp);
$g->view();
if($c<1){
echo "Недостаточно людей для выполнения алгоритма";
}else{
}