Задачи:
- Подсчитать количество и сумму всех положительных чисел массива, а также элементов кратных 3.
- Подсчитать количество и сумму всех отрицательных чисел массива, а также элементов кратных 3.
- Предусмотреть ввод чисел с клавиатуры (через форму).
- Предусмотреть конец последовательности - число 0. Т.е. числа в массиве, идущие после 0, должны игнорироваться.
Поиск положительных элементов с FOREACH
Поиск положительных элементов:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$values = [];
foreach($arr as $v)
{
if($v > 0)
$values[] = $v;
}
var_dump($values);
Вычисление суммы положительных элементов:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$sum = 0;
foreach($arr as $v)
{
if($v > 0)
$sum += $v;
}
var_dump($sum);
Поиск положительных элементов, кратных 3:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$values = [];
foreach($arr as $v)
{
if($v > 0 and $v % 3 == 0)
$values[] = $v;
}
var_dump($values);
Вычисление суммы положительных элементов, кратных 3:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$sum = 0;
foreach($arr as $v)
{
if($v > 0 and $v % 3 == 0)
$sum += $v;
}
var_dump($sum);
Поиск отрицательных элементов с FOREACH
Поиск отрицательных элементов:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$values = [];
foreach($arr as $v)
{
if($v < 0)
$values[] = $v;
}
var_dump($values);
Вычисление суммы отрицательных элементов:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$sum = 0;
foreach($arr as $v)
{
if($v < 0)
$sum += $v;
}
var_dump($sum);
Поиск отрицательных элементов, кратных 3:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$values = [];
foreach($arr as $v)
{
if($v < 0 and $v % 3 == 0)
$values[] = $v;
}
var_dump($values);
Вычисление суммы отрицательных элементов, кратных 3:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$sum = 0;
foreach($arr as $v)
{
if($v < 0 and $v % 3 == 0)
$sum += $v;
}
var_dump($sum);
Поиск положительных элементов с FOR
Поиск положительных элементов:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$values = [];
for($i = 0; $i < count($arr); $i++)
{
if($arr[$i] > 0)
$values[] = $arr[$i];
}
var_dump($values);
Вычисление суммы положительных элементов:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$sum = 0;
for($i = 0; $i < count($arr); $i++)
{
if($arr[$i] > 0)
$sum += $arr[$i];
}
var_dump($sum);
Поиск положительных элементов, кратных 3:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$values = [];
for($i = 0; $i < count($arr); $i++)
{
if($arr[$i] > 0 and $arr[$i] % 3 == 0)
$values[] = $arr[$i];
}
var_dump($values);
Вычисление суммы положительных элементов, кратных 3:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$sum = 0;
for($i = 0; $i < count($arr); $i++)
{
if($arr[$i] > 0 and $arr[$i] % 3 == 0)
$sum += $arr[$i];
}
var_dump($sum);
Поиск отрицательных элементов с FOR
Поиск отрицательных элементов:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$values = [];
for($i = 0; $i < count($arr); $i++)
{
if($arr[$i] < 0)
$values[] = $arr[$i];
}
var_dump($values);
Вычисление суммы отрицательных элементов:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$sum = 0;
for($i = 0; $i < count($arr); $i++)
{
if($arr[$i] < 0)
$sum += $arr[$i];
}
var_dump($sum);
Поиск отрицательных элементов, кратных 3:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$values = [];
for($i = 0; $i < count($arr); $i++)
{
if($arr[$i] < 0 and $arr[$i] % 3 == 0)
$values[] = $arr[$i];
}
var_dump($values);
Вычисление суммы отрицательных элементов, кратных 3:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$sum = 0;
for($i = 0; $i < count($arr); $i++)
{
if($arr[$i] < 0 and $arr[$i] % 3 == 0)
$sum += $arr[$i];
}
var_dump($sum);
Поиск элементов с WHILE
Поиск чисел с while аналогичен поиску с for, только эта строчка:
for($i = 0; $i < count($arr); $i++)
Заменяется на эти:
$i = -1;
while(++$i < count($arr))
Пример для поиска положительных чисел:
<?php
$arr = [2, 4, -4, 12, -3, 1];
$values = [];
$i = -1;
while(++$i < count($arr))
{
if($arr[$i] > 0)
$values[] = $arr[$i];
}
var_dump($values);
Ввод чисел через форму
Простая форма, отправляемая методом GET, с PHP обработчиком:
<?php
if(isset($_GET['nums']))
{
$arr = explode(' ', $_GET['nums']);
}
?>
<form>
<input type="text" name="nums">
<input type="submit" name="Поиск">
</form>
Введя в эту форму 1 2 35 -34, в переменной $arr мы получим массив [1, 2, 35, -34]. Правда вместо чисел в нём будут строки, но это неважно, поскольку перед сравнением значений PHP всё равно будет приводить их к числам.
Теперь вы можете добавить сюда код любого из описанных выше циклов, например вычисление суммы положительных чисел с циклом for:
<?php
if(isset($_GET['nums']))
{
$arr = explode(' ', $_GET['nums']);
$sum = 0;
for($i = 0; $i < count($arr); $i++)
{
if($arr[$i] > 0)
$sum += $arr[$i];
}
var_dump($sum);
}
?>
<form>
<input type="text" name="nums">
<input type="submit" name="Поиск">
</form>
Конец последовательности
Для реализации конца последовательности нужно в начало цикла foreach добавить следующий код:
if($v == 0)
break;
Для цикла for код будет выглядеть так:
if($arr[$i] == 0)
break;
Пример для поиска положительных элементов foreach:
<?php
$arr = [2, 0, 4, -4, 12, -3, 1];
$values = [];
foreach($arr as $v)
{
if($v == 0)
break;
if($v > 0)
$values[] = $v;
}
var_dump($values); // [2]
Пример для поиска положительных элементов for:
<?php
$arr = [2, 0, 4, -4, 12, -3, 1];
$values = [];
for($i = 0; $i < count($arr); $i++)
{
if($arr[$i] == 0)
break;
if($arr[$i] > 0)
$values[] = $arr[$i];
}
var_dump($values); // [2]