Error 404
Продвинутый
Дата регистрации:
28.07.2013 16:04:47
Сообщений: 48
Добрый день. прохожу курс PHP MySQL с нуля до гуру. дошел до циклов и там в практической части есть задание найти среднее арифметическое число 3,6,9,13,16,19,23,26,29.
у меня получился код такой:
$sum = 0;
for($i=1; $i <= 9; $i++){
if($i == 4 or $i == 7)
$sum += 4;
else
$sum += 3;
$total += $sum;
if($i == 9){
$total = $total / $i;
}
}
echo $total;// 16
в принципе все тут правильно,но можно ли проще все это было сделать? за ранее спасибо.
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Тут и так всё просто. А для суммы можно array_sum() использовать, например.
Error 404
Продвинутый
Дата регистрации:
28.07.2013 16:04:47
Сообщений: 48
Просто то оно просто, но у меня с математикой не очень, больше гуманитария. я на этот код потратил минут 40, чтобы определить, как сказано в подсказке, вычислить закономерность. а функции с работой с массивами я обязательно буду использовать, как только дойду до данного раздела в курсе.Курс нравится, спасибо, что Вы объясняете довольно на "понятном языке". Вопрос не по теме, но я не могу его Вам не задать. Скажите, Михаил, не планируете ли Вы добавить раздел с заданиями, чтобы у новичков в этом деле было всегда возможность практиковать свои знания? например создания скрипта который бы перерабатывал массив и если он находит в этом массиве повторяющие значения, то удалял бы их оставляя лишь один ключ с этим значением и все повторяющие значения записывал например в другой массив. сегодня дошел до массивов и именно эту задачу поставил перед собой используя в этом массивы, циклы, условия, в общем то, что было в предыдущих занятиях
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Я подумаю над этим, спасибо за идею.
Razmik
Освоившийся
Дата регистрации:
30.09.2013 19:12:52
Сообщений: 23
А вот так тоже правильно будет?
<?php
$f = 3;
for ($i = 6; $i <= 29; $i += 3) {
$f += $i;
if ($i == 9) $i++;
if ($i == 19) $i++;
if ($i == 29) $i++;
}
$x = $f / 9;
echo $x;
?>
tikkiwiki
Модератор
Дата регистрации:
15.11.2013 15:36:59
Сообщений: 194
Слишком, уж много if. Думаю проще будет так:
$numbers = array(3,6,9,13,16,19,23,26,29);
$sum = 0;
$cnt = count($numbers);
for($i = 0; $i < $cnt; $i++)
$sum += $numbers[$i];
echo $sum / $cnt;
Razmik
Освоившийся
Дата регистрации:
30.09.2013 19:12:52
Сообщений: 23
с массивами конечно проще, но вот бы их тогда еще изучали бы в видео курсе раньше циклов
korol1368
Новичок
Дата регистрации:
13.07.2015 23:29:30
Сообщений: 1
Здравствуйте! Было бы неплохо в начале каждого следующего урока уделять несколько минут для решения домашнего задания из предыдущего урока. Многие, я уверен мучаются с этим, а задать вопрос стесняются.
NewEXE
Новичок
Дата регистрации:
14.07.2015 19:10:21
Сообщений: 5
$sum = 0;
for ($i = 0; $i <= 29; $i += 3)
{
if ($i == 12 || $i == 22) $i++;
$sum += $i;
}
echo 'Среднее арифметическое: ' . $sum / 9 . '<br />';