Форумы портала PHP.SU » PHP » Уроки php » Обсуждение уроков.

Страниц (11): « 1 2 3 4 [5] 6 7 8 9 ... » В конец
 

61. RomAndry - 30 Июля, 2009 - 16:47:06 - перейти к сообщению
временно, убрал
да, там надо навести порядок в коде Однако
62. Champion - 03 Августа, 2009 - 19:23:07 - перейти к сообщению
RomAndry, там кстати, уроки, котрые из нескольких сообщений задом на перед выводятся - последнее сообщение в начале)
Мои, кстати, тоже публиковать пока рано. Там есть что поправить

Исправил вот это http://forum.php.su/topic.php?fo...topic=24&p=1 только там html
63. Ejik - 14 Августа, 2009 - 11:39:14 - перейти к сообщению
Ребята спасибо вам за ваши труды, я вот решил взяться за php сначала по вашим урокам.
Во сновном занимаюсь администрированием OS, по этому не всегда есть время на php.
EuGen, возник вопрос, во втором уроке есть такой примерчик
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $iSum=0;
  4. for($i=0;$i++<=20;)
  5. {
  6.    $iSum+=$i;
  7. }
  8. ?>
  9.  

Никак не могу понять во этот участок кода $iSum+=$i; подскажите, что тут происходит?
64. Champion - 14 Августа, 2009 - 12:16:20 - перейти к сообщению
$a += $b - то же, что и $a = $a + $b.
Посмотрел - вроде и на самом деле забыли написать про операторы.
65. Ejik - 14 Августа, 2009 - 14:42:57 - перейти к сообщению
Champion пишет:
$a += $b - то же, что и $a = $a + $b.
Посмотрел - вроде и на самом деле забыли написать про операторы.

А-ааа, вспомнил, видел в книге такой пример. Ну тогда еще вопрос, этот же пример, не ясно почему на третям шаге цикла переменная $iSum=6, а по моим подсчетам она должна быть равным 7, может я не правильно считаю. Я считаю так $i=0 на первом шаге она увеличивается на 1 $iSum тоже =1, второй шаг $i=1+1, $iSum+=$i и все это равно 3.
Третий шаг $i=3+1, а $iSum уже =3 и когда доходит до $iSum+=$i (получается 3+4)
или я не правильно считаю?
66. Champion - 14 Августа, 2009 - 14:50:49 - перейти к сообщению
странно ты посчитал. sum = 0/*сначала*/ + 1 + 2 + 3 // равно шесть).
Ты бери и выводи переменные в браузер - наблюдай за процессом, чтоб понимать, как всё происходит
67. 7ion - 16 Августа, 2009 - 11:46:47 - перейти к сообщению
Здравствуйте.
У меня к Вам вопрос по ответам.
Думал минут 30.
Все равно нифига не надумал.
Это все из первого урока.
PHP:
скопировать код в буфер обмена
  1. $a='Вася'; $b = 'Петя';
  2. $a=$a ^ $b;
  3. $b=$a ^ $b;
  4. $a=$a ^ $b;

Насколько я понял - тут PHP рабоатет с нулями и единицами.
Т.е. допустим Вася это 0101, а Петя 1010.
для начала в а кидаются то ли нули, то ли единицы (пусть единицы).
В ней щас все единицы из Пети и сам Вася, то есть сейчас
Вася = 010111, Петя = 00
Потом в б кидаются нули от единицы от васи и петя становится васей....

Если короче, то вот что:
В ответах на первый урок призывается подумать над этим, хотя, я как честный читатель вперед не забегал, а объясняется это только после заданий в самом уроке.
И плюс объясняется так непонятно, что ступор у меня до сих полнейший о_О
Я как бы понимаю логику программирования, но сначала логика всегда идет на числах, а потом на Васях и Петях о_О
И по-моему неподробно написано про Объекты (почему не показали как вызвать функцию бип-бип)
И нету вообще примера в Ресурсах. И по сему про них я ничего не понял.
Помогите =)
68. Champion - 16 Августа, 2009 - 12:40:54 - перейти к сообщению
7ion пишет:
по-моему неподробно написано про Объекты
J, объектах написан отдельный урок - ООП. Точнее, пока не написан.
Операция ^ устанавливает только те биты, которые установлены либо только в $a, либо только в $b, но не в обоих: 0^0=1^1=0, 1^0=0^1=1.
Пусть Вася будет выглядеть 10010101, Петя - 11011110. Смотрим:
CODE (text):
скопировать код в буфер обмена
  1.  $a=$a ^ $b;
  2. /*
  3. 10010101 - а
  4. 11011110 - б
  5. 01001011 - теперь а такое*/
  6. $b=$a ^ $b;
  7. /*
  8. 01001011 - а
  9. 11011110 - б
  10. 10010101 - теперь б такое*/
  11.  $a=$a ^ $b;
  12. /*
  13. 01001011 - а
  14. 10010101 - б
  15. 11011110 - теперь а такое*/
  16.  
Вот.
(Добавление)
Ресурсы. Тут понимать-то особо не надо. Переменные этого типа не складываются, не умножаются, и вообще никакие привычные операции с ними не производятся. Переменную такого типа возвращают функции, которые работают с чем-то вне PHP: с файлами, с БД...
Т.е. в переменной хранится не сама БД или файл, а только указатель на него. Дочитай до примеров о работе с файлами или с БД, там увидишь, как пользоваться ресурсом. Полка просто помни, что он есть и не вникай, если не понятно. На живых примерах поймешь.
69. 7ion - 16 Августа, 2009 - 13:59:22 - перейти к сообщению
Сказать честно понял только комментариям в примере =)
Хочу внести конструтивную мысль - таким же кодом распишите все в уроке номер один.
Как я сейчас напишу.

^ - исключающее или.
*умное объяснение*, т.е.
*объяснение на числах, то кстати очень надо*
и
*объяснение на словах в двоичной системе*
и объяснить это так.
расписать все по примерам:
1+1=0
0+1=1
0+0=0
вот, эти три примера, какие значения будут при 0+0, 0+1 и 1+1 под каждую логическую операцию имхо значительно облегчат процесс понимания.
А потом предложить решить в двоичной системе счисления пример на данную логическую вещь, что-нибудь в столбик, типа
0101 ^ 1010 = ?
один можно для примера сделать
0101
1010
1111

и сделать один раз акцент, что это правила логики, а не правила сложения в двоичной системе!
то есть с этой операцией Тру + Фолс = Тру, а Тру+Тру = Фолс. а не сумма чисел созданная по абстрактному правилу.

и можно просто для ознакомления написать, чтобы никто не путался как числа складываются в двоичной системе. хотя возможно из-за этого наоборот все перемешается =)

ах да, и чуть не забыл - и обязательно написать про фичи, которые можно сделать с помощью этой логики!
(такие как поменять васю с петей и т.д. иначе народ просто не поймет а зафига это им надо кроме иногда чиселки посравнивать)

и лучше оторвать это и первого урока, не затрагивать это там вообще и вынести в отдельный урок.
ибо чтобы усвоилось лучше. и в первом уроке это очень-очень сильно грузит. особенно без объяснений.

это надо бы сделать хотя бы для побитовых операторов.

(отредактировал 5 раз, дополнял =) )
70. Ejik - 17 Августа, 2009 - 06:31:13 - перейти к сообщению
Champion пишет:
странно ты посчитал. sum = 0/*сначала*/ + 1 + 2 + 3 // равно шесть).
Ты бери и выводи переменные в браузер - наблюдай за процессом, чтоб понимать, как всё происходит

Ясно, я в цикле запарился. Спасибо.
71. Champion - 17 Августа, 2009 - 08:47:29 - перейти к сообщению
7ion, ну все-таки основы алгебры логики проходят в школе или на первом курсе колледжей. И даже на первом курсе института в кратце тоже... Не думаю, что тут нужно это расписывать.
Но таблицу истинности можно вставить.
72. EuGen - 17 Августа, 2009 - 10:05:15 - перейти к сообщению
Гм. Видимо, плохие из нас учителя. Большое спасибо внимательным читателям. Постараемся исправить недочеты
73. Champion - 17 Августа, 2009 - 10:11:53 - перейти к сообщению
Решил перечитать урок и не понял
Цитата:
Довольно часто простые десятичные дроби вроде 0.1 или 0.7 не могут быть преобразованы в свои внутренние двоичные аналоги без небольшой потери точности. Это может привести к неожиданным результатам.
Это связано с невозможностью точно выразить некоторые дроби в десятичной системе счисления конечным числом цифр. Например, 1/3 в десятичной форме принимает вид 0.3333333. . ..
Каким образом история про 0,1 связана с историей про 1/3 ?
74. EuGen - 17 Августа, 2009 - 10:15:27 - перейти к сообщению
Это в каком уроке ? Не нашел

А, все, увидел. Верно, к валенку вопрос тогда.
75. style-nes - 25 Августа, 2009 - 16:34:40 - перейти к сообщению
Опечатка в уроке Урок № 3 - Знакомство с функциями.

Функция fibonacci, слово function написано не правильно.


CODE (text):
скопировать код в буфер обмена
  1. <?PHP
  2. fucntion fibonacci($num) // $num - номер интересующего нас элемента
  3. {
  4.     if ($num < 1) { // номера элемента меньше 1 не существует, заканчиваем функцию
  5.         return false;
  6.     }
  7.     if ($num <= 2) { // если это один из первых элементов, нетрудно увидеть как они определяются
  8.         return ($num - 1);
  9.     }
  10.  
  11.     // общий случай. Идем от 3го до требуемого номера
  12.     $pre_pre = 0; // элемент, скажем так, предпредыдущий.
  13.     $current = 1; // текущий
  14.     for ($i = 3; $i <= $num; $i++) {
  15.         $pre = $current; // бывший текущий становится предыдущим
  16.         $current = $pre + $pre_pre; // определяем текущий элемент
  17.         $pre_pre = $pre; // бывший предыдущий становится предпредыдущим
  18.     }
  19.     return $current;
  20. }
  21.  
  22. /*** Основная часть программы ***/
  23. $n = 5;
  24. echo fibonacci($n); // 0,1,1,2,3 - получается 3
  25. ?>

 

Powered by ExBB FM 1.0 RC1