th0rvald
Новичок
Дата регистрации:
29.01.2013 11:59:48
Сообщений: 2
Доброго времени суток! возникла проблема при решении 3го задания в упражнении к уроку "Операторы циклов"
Вычислите среднее арифметическое значение у следующего ряда чисел любым из типов циклов: 3,6,9,13,16,19,23,26,29
вот собственно моё видение:
echo "Среднее арифметическое<br />";
$x = 0;
$i = 0;
while ($x <= 29) {
$i++;
if ($x == 9) {
$x = $x + 4; continue;
}
if ($x == 19) {
$x = $x + 4; continue;]
}
$x = $x + 3;
}
echo "$i<br />";
echo "$x<br />";
но код, естественно, не работает) заранее благодарен)
abror_91_09
Освоившийся
Дата регистрации:
12.01.2013 15:44:50
Сообщений: 20
<?php
echo "Среднее арифметическое<br />";
$x = 0;
$i = 0;
while ($x <= 29) {
$i++;
if ($x == 9) {
$x = $x + 4; continue;
}
if ($x == 19) {
$x = $x + 4; continue; ]//<-вот ваша ошибка!! (квадратную скобку уберите !!!)
}
$x = $x + 3;
}
echo "$i<br />";
echo "$x<br />";
?>
abror_91_09
Освоившийся
Дата регистрации:
12.01.2013 15:44:50
Сообщений: 20
<?php
$x = 0;
$i = 0;
while ($x <= 30) {
$x++;
if (($x!=3) and ($x!=6) and ($x!=9) and ($x!=13) and ($x!=16) and ($x!=19) and ($x!=23) and ($x!=26) and ($x!=29))
{
continue;
}
else
{
$i++; $summ +=$x;
}
}
echo "Среднее арифметическое<br />";
echo $summ/$i."<br />";
?>
Я решал эту задачу так, правильно или нет не знаю, но работает!
Михаил вы что скажете, как правильно решается это задача ?
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Лучше увеличивать каждый раз на 3 прямо в цикле. Затем сделать условие подобному тому, что Вы сделали, для 2-х чисел, где нужно увеличить не на 3, а на 4 (то есть ещё на 1).
th0rvald
Новичок
Дата регистрации:
29.01.2013 11:59:48
Сообщений: 2
ну я же так и пытался в цикле увеличивать... Михаил, подскажите, пожалуйста, где ошибка в моём коде?
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Покажите код Вашей попытки увеличивать в цикле.
nail
Новичок
Дата регистрации:
27.12.2013 23:35:30
Сообщений: 1
у меня вот что получилось, правда скрипт маленько жидковат, но за то работает как часы)
<?php
echo "<b>ряд чисел:</b><br />";
$x = 0;
for ($i = 0; $i <9; $i = $i +3) {
$x++;
echo "$i,";
}
echo "$i,";
$i = $i + 4;
$x++;
for ($i = $i; $i < 19; $i = $i + 3) {
$x++;
echo "$i,";
}
echo "$i,";
$i = $i + 4;
for ($i = $i; $i <=29; $i = $i +3) {
$x++;
echo "$i,";
}
echo "<br />";
echo "<b> количество цифр</b><br />";
echo "$x<br />";
$summ = $i * $x/2;
$arif = $summ/$x;
echo "<b>сумма этих чисел</b><br />";
echo "$summ<br />";
echo "<b>среднее арифметическое</b><br />";
echo "$arif";
?>
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 />';
Легко и просто. Но как бы автоматически вычислить 9 (кол-во итераций цикла)? В i хранится только последнее значение, 29
goldwizard13
Новичок
Дата регистрации:
07.03.2016 16:41:28
Сообщений: 2
Мой пример for
$res = 3;
for ($i = 0; $i < 30; $i = $i + 3) {
if ($i >= 3) {
$res = $res + $i;
echo "$res = $res + $i<br />";
}
if (($i == 9 || $i == 19))$i++;
}
echo "4)$res<br />";
немного подправил
$res = 3;
for ($i = 0; $i < 30; $i = $i + 3) {
if ($i >= 3) {
if (($i > 9 && $i < 13 )|| ($i > 19 && $i < 23))
$i++;
$res = $res + $i;}
else
$res = $res + $i;
echo "$res = $res + $i<br />";
}
echo "<br />$res<br />";