Skip to content

Instantly share code, notes, and snippets.

@platinize
Created February 2, 2018 12:31
Show Gist options
  • Save platinize/f27e1d7d167a21efe1ca0751681aa13e to your computer and use it in GitHub Desktop.
Save platinize/f27e1d7d167a21efe1ca0751681aa13e to your computer and use it in GitHub Desktop.
<?php
ini_set('display_errors', '1');
error_reporting(E_ALL);
//0) Дан массив с элементами 1, 2, 3, 4, 5. С помощью цикла foreach найдите сумму квадратов элементов этого массива. Результат запишите переменную $result
$arr = [1, 2, 3, 4, 5];
$result = 0;
foreach ($arr as $value) {
$result += pow($value, 2);
};
echo $result;
?>
<br>
<?php
//1) Дан массив $arr = ['green' => 'зеленый', 'red' => 'красный', 'blue' => 'синий', 'black' => 'черный', 'white' => 'белый']. С помощью цикла foreach выведите на экран столбец ключей и элементов в формате 'green - зеленый'.
$arr = ['green' => 'зеленый', 'red' => 'красный', 'blue' => 'синий', 'black' => 'черный', 'white' => 'белый'];
foreach ($arr as $key => $value) {
echo $key.' - '.$value.'<br>';
};
?>
<br>
<?php
//2) Составьте массив дней недели. С помощью цикла foreach выведите все дни недели, а выходные дни выведите жирным.
$daysOfTheWeek = ['Пн','Вт','Ср','Чт','Пт','Сб','Вс'];
foreach ($daysOfTheWeek as $key => $value):
if ($key < 5):
?>
<p><?php echo $value; ?></p>
<?php
else:
?>
<p style="font-weight: 600"><?php echo $value;?></p>
<?php endif;
endforeach;
?>
<?php
//3) Составьте массив дней недели. С помощью цикла foreach выведите все дни недели, а текущий день выведите курсивом. Текущий день должен храниться в переменной $day
$daysOfTheWeek = ['Пн','Вт','Ср','Чт','Пт','Сб','Вс'];
$day = 'Пт';
foreach ($daysOfTheWeek as $key => $value):
if ($value == $day):
?>
<p style="font-style: italic;"><?php echo $value; ?></p>
<?php
else:
?>
<p><?php echo $value;?></p>
<?php endif;
endforeach;
?><br>
<?php
//4) С помощью цикла for заполните массив числами от 1 до 100. То есть у вас должен получится массив [1, 2, 3... 100].
$arr = [];
for ($i = 1; $i<=100; $i++) {
$arr[] = $i;
}
var_dump($arr);
?><br>
<?php
//5)Дан массив с элементами 1, 2, 3, 4, 5, 6, 7, 8, 9. С помощью цикла foreach создайте строку '-1-2-3-4-5-6-7-8-9-'
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
foreach ($arr as $key => $value) {
if ($key == 0) {
echo "-".$value."-";
} else {
echo $value."-";
};
};
?><br>
<h3>Решите нижеприведенные задачи через цикл while</h3>
<?php
//6) Выведите столбец чисел от 1 до 100.
$i = 1;
while ($i <= 100) {
echo $i."<br>";
$i++;
}
?><br>
<?php
//7) Выведите столбец чисел от 11 до 33.
$i = 11;
while ($i <= 33) {
echo $i."<br>";
$i++;
}
?><br>
<h3>Решите нижеприведенные задачи через цикл for</h3>
<?php
//8) Выведите столбец четных чисел в промежутке от 0 до 100.
for ($i = 0; $i<=100; $i++) {
if (fmod($i, 2) == 0 && $i != 0) {
echo $i.'<br>';
};
};
?><br>
<?php
//9) С помощью цикла найдите сумму чисел от 1 до 100.
for ($i=1, $result = 0; $i <= 100; $i++) {
$result += $i;
}
echo $result;
?><br>
<?php
//10*) Дано число $num=1000. Делите его на 2 столько раз, пока результат деления не станет меньше 50. Какое число получится? Посчитайте количество итераций, необходимых для этого (итерация - это проход цикла). Решите задачу сначала через цикл while, а потом через цикл for
$num = 1000;
$i = 0;
while ($num >= 50) {
$num /= 2;
$i++;
};
echo 'Получится число - '.$num.'. Количество итераций - '.$i.'<br>';
for ($num = 1000, $i = 0; $num >= 50; $num /= 2, $i++);
echo 'Получится число - '.$num.'. Количество итераций - '.$i;
?><br>
<?php
//11) Найдите корень из числа 1000. Округлите его в большую и меньшую стороны. В массив $arr запишите первым элементом корень из числа, вторым элементом - округление в меньшую сторону, третьим элементом - в большую.
$arr = [];
$arr[] = sqrt(1000);
$arr[] = floor($arr[0]);
$arr[] = ceil($arr[0]);
var_dump($arr)
?><br>
<?php
//12) Даны переменные $a и $b. Проверьте, что $a делится без остатка на $b. Если это так - выведите 'Делится' и результат деления, иначе выведите 'Делится с остатком' и остаток от деления. (значения в переменные $a и $b вставляйте любые)
$a = 33;
$b = 4;
if (fmod($a, $b) == 0)
echo "Делится, результат -".$a/$b;
else
echo "Делится с остатком - ".fmod($a, $b);
?><br>
<?php
//13) Дан массив с элементами 4, 2, 5, 19, 13, 0, 10. Найдите корень из суммы квадратов его элементов. Для решения воспользуйтесь циклом foreach
$arr = [4, 2, 5, 19, 13, 0, 10];
$result = 0;
foreach ($arr as $value) {
$result += pow($value, 2);
};
echo sqrt($result).' ≈ '.round(sqrt($result), 3);
?><br>
<?php
//14) Даны числа 4, -2, 5, 19, -130, 0, 10. Найдите минимальное и максимальное число
$arr = [4, -2, 5, 19, -130, 0, 10];
$max = -INF;
$min = INF;
foreach ($arr as $value) {
if ($max < $value)
$max = $value;
if ($min > $value)
$min = $value;
}
echo 'min = '.$min.', max = '.$max.'<br>';
// второй вариант
$arr = [4, -2, 5, 19, -130, 0, 10];
echo 'min = '.min($arr).', max = '.max($arr);
?><br>
<?php
//15) Выведите на экран случайное число от 1 до 100
echo mt_rand(1, 100);
?><br>
<?php
//16)*Дан массив [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]. Узнайте, сколько первых элементов массива нужно сложить, чтобы сумма получилась больше 10.
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
$i = 0;
$sum = 0;
foreach ($arr as $value) {
if ($sum > 10)
break;
else
$sum += $value;
$i++;
}
echo "Нужно сложить ".$i.' первых чисел. Сумма будет равна '.$sum;
?><br>
<?php
//17) *Даны ящики. Длина каждого ящика 1.5 метра. Узнайте, сколько ящиков может поместиться вдоль стены длиной 20 метров. Ответом должно быть целое число
$boxLength = 1.5;
$wallLength = 20;
for ($i = 1, $length = 0; $length += $boxLength; $i++) {
if (($length+$boxLength) > $wallLength)
break;
}
echo 'Может поместиться '.$i.' ящиков'.'<br>';
// II вар
echo 'Может поместиться '.floor($wallLength/$boxLength).' ящиков';
?><br>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment