Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Обсуждение уроков. [7]
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Потому что в случае если z<=1 (хотя это не логично - правильнее писать z==1) Вы ничего не возвращаете, а делаете вывод.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
mike6
Отправлено: 12 Января, 2010 - 12:36:05
Новичок
Покинул форум
Сообщений всего: 17
Дата рег-ции: Янв. 2010
Помог: 0 раз(а)
EuGen даже если убрать сравнение, все равно функция на работоспособна. Как я понял функции идентичны, разве что сопосб записи другий. Или не совсем так ?
Champion
Отправлено: 12 Января, 2010 - 12:51:50
Активный участник
Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008 Откуда: Москва
Помог: 57 раз(а)
mike6, никто не просил убирать сравнение. Тебе написали, что единицу надо вернуть, а не вывести в браузер при этом ничего не возврещая
mike6
Отправлено: 12 Января, 2010 - 16:14:15
Новичок
Покинул форум
Сообщений всего: 17
Дата рег-ции: Янв. 2010
Помог: 0 раз(а)
Champion теперь ясно. Спасибо за уроки.
Petro
Отправлено: 07 Апреля, 2010 - 17:20:49
Гость
Покинул форум
Сообщений всего: 126
Дата рег-ции: Март 2010
Помог: 2 раз(а)
В уроке №3 не могу понять эти строки и как они вообще связаны с остальным кодом.
<?PHP
function fibonacci($num) // $num - номер интересующего нас элемента
{
if ($num < 1) { // номера элемента меньше 1 не существует, заканчиваем функцию
return false;
}
if ($num <= 2) { // если это один из первых элементов, нетрудно увидеть как они определяются
return ($num - 1);
}
// общий случай. Идем от 3го до требуемого номера $pre_pre = 0; // элемент, скажем так, предпредыдущий.
$current = 1; // текущий
for ($i = 3; $i <= $num; $i++) { $pre = $current; // бывший текущий становится предыдущим
$current = $pre + $pre_pre; // определяем текущий элемент
$pre_pre = $pre; // бывший предыдущий становится предпредыдущим
}
return $current;
}
/*** Основная часть программы ***/
$n = 5;
echo fibonacci($n); // 0,1,1,2,3 - получается 3
?>
----- Нет ничего более постоянного, чем временное.
Petro
Отправлено: 07 Апреля, 2010 - 23:03:51
Гость
Покинул форум
Сообщений всего: 126
Дата рег-ции: Март 2010
Помог: 2 раз(а)
Методом "тык + поисковик" - разобрался. Фуф.
Теперь не могу понять эту строчку return fib($n - 1, $pre + $pre_pre, $pre);
Что именно в ней делается?
Вот вся программа из урока №3
<?PHP
function fib($n, $pre = 1, $pre_pre = 0)
{
if ($n == 1) return 1;
if ($n < 1) return false;
if ($n == 2)
return $pre;
return fib($n - 1, $pre + $pre_pre, $pre);
}
echo fib(5);
?>
----- Нет ничего более постоянного, чем временное.
pixtart
Отправлено: 11 Апреля, 2010 - 19:59:09
Новичок
Покинул форум
Сообщений всего: 2
Дата рег-ции: Апр. 2010
Помог: 0 раз(а)
Здравствуйте, еле пробрался через Вашу капчу
Есть вопрос по "Урок № 2 - Немного управления."
Там для проверки есть задание
Оператор % - означает целочисленное деление(по модулю), значит $iData будет равна 5/5=1. Правильно? Тогда будет результатом выполнения кода выведено "case 1". Вы же в ответах пишете, что это будет 0, соотв. выведеться в результате "case 2". Почему?
а вобщем спасибо, уроки таким живым языком написаны... Читать не нудно, а пробовать интересно
Мелкий
Отправлено: 11 Апреля, 2010 - 20:01:23
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 617 раз(а)
pixtart пишет:
Оператор % - означает целочисленное деление(по модулю), значит $iData будет равна 5/5=1. Правильно?
Нет, это остаток от целочисленного деления. 5/5 делится без остатка -> 0.
----- PostgreSQL DBA
pixtart
Отправлено: 12 Апреля, 2010 - 01:55:43
Новичок
Покинул форум
Сообщений всего: 2
Дата рег-ции: Апр. 2010
Помог: 0 раз(а)
спасибо
я понял где не так понял
Petro
Отправлено: 14 Апреля, 2010 - 22:02:19
Гость
Покинул форум
Сообщений всего: 126
Дата рег-ции: Март 2010
Помог: 2 раз(а)
<?PHP
$dir_hndl = opendir('/usr/home/mydir');
while (false !== ($name = readdir($dir_hndl)))
if ( $name == '..') {
echo 'Parent directory<br>';
continue;
}
elseif ( $name == '.') {
echo 'Current directory<br>';
continue;
}
if ( is_dir($name) ) echo $name.' is a dir<br>';
elseif ( is_file($name) ) echo $name. ' is a filr';
else echo $name. ' что же это может быть?<br> '
}
closedir($dir_hndl)
?>
Повторяю и набираю так же, на что мне выводит Parse error: syntax error, unexpected '}', expecting ',' or ';' in C:\www\index.php on line 21
Правлю
<?PHP
$dir_hndl = opendir('/usr/home/mydir');
while (false !== ($name = readdir($dir_hndl)))
if ( $name == '..') {
echo 'Parent directory<br>';
continue;
}
elseif ( $name == '.') {
echo 'Current directory<br>';
continue;
} elseif ( is_dir($name) ) { echo $name.' is a dir<br>'; }
elseif ( is_file($name) ) { echo $name. ' is a filr';}
else { echo $name. ' что же это может быть?<br> '} #}
closedir($dir_hndl)
?>
выводит Current directory
Parent directory
cgi is a dir
cgi-bin is a dir
index.php is a filr
perl is a dir
test.txt is a filr
test1.txt is a filr
----- Нет ничего более постоянного, чем временное.
Petro
Отправлено: 15 Апреля, 2010 - 13:21:48
Гость
Покинул форум
Сообщений всего: 126
Дата рег-ции: Март 2010
Помог: 2 раз(а)
Еще в этом уроке есть вопросы к главе.
так вот, 3-й вопрос
3. Напишите скрипт, считывающий из файла f1.bmp строки, сортирующий их и отсортированный результат запишите в файл f1.mp3.
На сколько я знаю *. bmp это есть картинка. и как картинку (одну картинку) можно сортировать и по чем? текст сортировать можно, цифры, много картинок по названию, а 1-ну, не понимаю.
Обьясните пожалуйста.
----- Нет ничего более постоянного, чем временное.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.