Created
February 2, 2018 12:31
-
-
Save platinize/f27e1d7d167a21efe1ca0751681aa13e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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