Last active
December 27, 2022 01:49
-
-
Save pawjunior/f559ad96c5a2946bda314c7c034a23c4 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
Билет 1 | |
1) Алгоритм. Свойства алгоритма. Программа. Пример. | |
Алгоритм – Набор команд (инструкций), определяющий порядок действий для решения поставленной задачи, достижения некоторого результата. | |
Свойства алгоритма | |
Дискретность – алгоритм представляет собой последовательность элементарных шагов | |
Детерминированность – при одних и тех же входных данных получается один и тот же результат. Любое действие должно быть строго и недвусмысленно определено в каждом случае. | |
Завершаемость (конечность) – алгоритм имеет конечное число шагов | |
Результативность – разница между полученным результатом и ожидаемым | |
Массовость – алгоритм должен быть применим к разным наборам начальных данных | |
Программа – Последовательность инструкций, которую выполняет исполнитель для достижения нужного результата | |
Пример алгоритма – сложение чисел в RISC-архитектуре | |
👉 ЗАГРУЗИ В X ЧИСЛО ИЗ РЕГИСТРА 2:3 | |
👉 ЗАГРУЗИ В Y ЧИСЛО ИЗ РЕГИСТРА 5:2 | |
👉 УМНОЖЬ ЧИСЛО X НА ЧИСЛО Y | |
👉 ПОЛОЖИ В РЕГИСТР 2:3 ТО ЧИСЛО, КОТОРОЕ ЛЕЖИТ В X | |
---- | |
2) Напишите скрипт, который считает кол-во секунд в часе, в сутках, в месяце. | |
<?php | |
$secondsInHour = 60*60; | |
$secondsInDay = 24*60*60; | |
$secondsInMonth = 30*24*60*60; | |
?> | |
---- | |
3) Дана строка с целыми числами, преобразуйте строку так, чтобы вместо этих чисел стояли квадраты. | |
<?php | |
function func($matches) | |
{ | |
return $matches[0] * $matches[0]; | |
} | |
echo preg_replace_callback('#\d#', 'func', '123456789'); | |
?> | |
---------------------------------------------------------------------------------------------------------------------------------------- | |
Билет 2 | |
1) Объявление переменной. Оператор равно. Примеры. | |
Переменные в PHP представлены знаком доллара с последующим именем переменной. Имя переменной чувствительно к регистру. | |
Имена переменных соответствуют тем же правилам, что и остальные наименования в PHP. Правильное имя переменной должно начинаться с буквы или символа подчёркивания и состоять из букв, цифр и символов подчёркивания в любом количестве. Это можно отобразить регулярным выражением: ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$ | |
---- | |
2) Создайте переменные a=10 и b=3, выведите на экран их сумму, разность, произведение и частное. | |
<?php | |
$a = 10; | |
$b = 3: | |
echo $a+$b, </br>; | |
echo $a-$b, </br>; | |
echo $a*$b, </br>; | |
echo $a/$b, </br>; | |
?> | |
---- | |
3) Дан массив с числами, узнайте сколько элементов с начала массива надо сложить, чтобы в сумме получилось больше 10. | |
<?php | |
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; | |
$sum = []; | |
foreach($arr as $elem) { | |
if(array_sum($sum) == 10 || (array_sum($sum) > 10)) { | |
echo 'Что бы сумма получилась 10, понадобилось ' . count($sum) . ' первых элемента'; | |
return; | |
} | |
else { | |
array_push($sum, $elem); | |
} | |
} | |
---------------------------------------------------------------------------------------------------------------------------------------- | |
Билет 3 | |
1) Типы данных. Примеры. | |
PHP поддерживает десять простых типов. | |
Четыре скалярных типа: | |
bool | |
int | |
float (число с плавающей точкой) | |
string | |
Четыре смешанных типа: | |
array | |
object | |
callable | |
iterable | |
И, наконец, два специальных типа: | |
resource | |
NULL | |
Как правило, программист не устанавливает тип переменной; обычно это делает PHP во время выполнения программы в зависимости от контекста, в котором используется переменная. | |
Пример – bool. Булев параметр, возвращает true/false | |
---- | |
2) Если переменная a, больше либо равна 0, то выведите верно, иначе выведите неверно. | |
<?php | |
$a = 10; | |
if ($a>=10) { | |
echo ‘Верно’; | |
} else { | |
echo ‘Неверно’; | |
?> | |
---- | |
3) Выведите текущее время в формате timestamp. | |
<?php | |
echo time (); | |
?> | |
---------------------------------------------------------------------------------------------------------------------------------------- | |
Билет 4 | |
1) Целые числа. Примеры. | |
int - это число из множества ℤ = {..., -2, -1, 0, 1, 2, ...}. | |
Целые числа (int) могут быть указаны в десятичной (основание 10), шестнадцатеричной (основание 16), восьмеричной (основание 8) или двоичной (основание 2) системе счисления. Для задания отрицательных целых (int) используется оператор отрицания | |
Для записи в восьмеричной системе счисления, необходимо поставить перед числом 0 (ноль). Начиная с PHP 8.1.0, восьмеричной нотации также может предшествовать 0o или 0O. Для записи в шестнадцатеричной системе счисления, необходимо поставить перед числом 0x. Для записи в двоичной системе счисления, необходимо поставить перед числом 0b | |
---- | |
2) Создать массив с элементами 1, 2, 3, 4, 5 двумя различными способами. | |
Первый способ | |
<?php | |
$arr = [1, 2, 3, 4, 5]; | |
?> | |
Второй способ | |
<?php | |
$arr[] = 1; | |
$arr[] = 2; | |
$arr[] = 3; | |
$arr[] = 4; | |
$arr[] = 5; | |
?> | |
---- | |
3) Напишите скрипт, который показывал какой день недели был 100 дней назад. | |
<?php | |
$date = date_create(time()); | |
date_modify($date, '- 100 day'); | |
$day = date_format($date, 'w'); | |
$week = ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб']; | |
echo $week[$day]; | |
?> | |
---------------------------------------------------------------------------------------------------------------------------------------- | |
Билет 5 | |
1) Вещественные числа. Примеры. | |
float (double, real) – числа с дробной частью. Точность до 14 знаков после запятой. | |
Стандартная запись – 12.45 (дробная часть отделяется точкой) | |
Экспоненциальная запись – 1000=1е+3, где е – экспонента, число после е – показатель степени, в которую нужно возвести 10, чтобы получить искомое число. | |
---- | |
2) Выведите столбец чисел от 1 до 100. | |
<?php | |
$a = 1; | |
while ($a <= 100){ | |
echo $a.'<br>'; | |
$a++; | |
} | |
?> | |
---- | |
3) Напишите скрипт, который спрашивает имя пользователя с помощью формул результат запишите в переменную. Сделайте так, чтобы после отправки формы значение ее полей не пропадали. | |
<!DOCTYPE html> | |
<html> | |
<body> | |
<form action="" method="POST"> | |
<input type="text" name="name" placeholder="Имя"> | |
<input type="hidden" name="checkbox" value="0"> | |
<input type="submit"> | |
</form> | |
<?php | |
if (isset($_POST['name']) && $_POST['checkbox'] == 1){ | |
$name = strip_tags($_POST['name']); | |
echo 'Привет, '.$name; | |
} | |
if (isset($_POST['name']) && $_POST['checkbox'] == 0){ | |
$name = strip_tags($_POST['name']); | |
echo 'Пока, '.$name; | |
} | |
?> | |
</body> | |
</html> | |
---------------------------------------------------------------------------------------------------------------------------------------- | |
Билет 6 | |
1) Логический тип. Примеры. | |
Тип bool (логический тип). Переменные логического типа могут принимать два значения: true и false или иначе говоря истина и ложь. Чаще всего логические значения используются в условных конструкциях. | |
---- | |
2) Напишите скрипт по выводу на экран случайного числа от 1 до 100. | |
<?php | |
echo rand (1 , 100); | |
?> | |
---- | |
3) Создайте массив, заполненный числами от 1 до 10. Найдите сумму элементов данного массива. | |
<?php | |
echo array_sum(range (1 , 10)); | |
?> | |
---------------------------------------------------------------------------------------------------------------------------------------- | |
Билет 7 | |
1) Строки. Пример. | |
Тип string (строки). Для работы с текстом можно применять строки. Строки бывают двух типов: в двойных кавычках и одинарных. От типа кавычек зависит обработка строк интерпретатором. Так, переменные в двойных кавычках заменяются значениями, а переменные в одинарных кавычках остаются неизменными. | |
---- | |
2) Создайте массив, заполненный буквами от A до Z. | |
<?php | |
$arr = range(A,Z); | |
echo ‘<pre>’; print_r($arr); echo ‘</pre>’; | |
?> | |
---- | |
3) Напишите скрипт по выводу четных чисел в промежутке от 0 до 10. | |
<?php | |
for ($a = 0; $a <= 100; $a +=2){ | |
echo $a.'<br>'; | |
} | |
?> | |
---------------------------------------------------------------------------------------------------------------------------------------- | |
Билет 8 | |
1) Циклы. Примеры. | |
Цикл — это конструкция языка, которая позволяет выполнить блок кода больше одного раза. Бывают while, for, foreach, do…while | |
Пример: | |
<?php | |
for ($a = 0; $a <= 100; $a +=2){ | |
echo $a.'<br>'; | |
} | |
?> | |
---- | |
2) Дан массив с числами положительными и отрицательными. Напишите скрипт по нахождению произведения положительных элементов этого массива. | |
<?php | |
$arr = [2, 4, -4, 12, -3, 1]; | |
$values = []; | |
foreach($arr as $v) | |
{ | |
if($v > 0) | |
$values[] = $v; | |
} | |
echo '<pre>'; print_r($values); echo '</pre>'; | |
?> | |
---- | |
3) Напишите скрипт по решению следующей задачи. Дано число сложите его числа, если сумма получилась более 9, опять сложите его числа, итак пока сумма не станет однозначным числом 9 и менее. | |
<?php | |
function lowNumber($num){ | |
if($num <= 9) | |
return $num; | |
return lowNumber(array_sum(str_split($num, 1))); | |
} | |
$num = 7564134467745678488; | |
echo lowNumber($num); | |
?> | |
---------------------------------------------------------------------------------------------------------------------------------------- | |
Билет 9 | |
1) Условия. Примеры | |
Условие — это выражение логического типа (Boolean), которое может принимать одно из двух значений: True (истина) или False (ложь) | |
Например, нужно ли пить пиво по вечерам? Да/нет, true/false | |
Операторы в PHP: if, if-else, if-elseif(n)-else, switch-case, тернарный | |
---- | |
2) Найдите квадратный корень из 587, округлите результат в большую и меньшую сторону. | |
<?php | |
$a = sqrt(587); | |
echo $a. "<br>"; | |
echo ceil($a). "<br>"; | |
echo floor($a). "<br>"; | |
?> | |
---- | |
3) Сделайте функцию, которая параметрами принимает два числа. Если их сумма больше 10, пусть функция вернет TRUE, а если нет – FALSE. | |
<?php | |
function sum($a, $b) | |
{ | |
if ($a+$b>10) | |
{ | |
echo "True"; | |
} | |
else echo "False"; | |
} | |
sum(1,20); | |
?> | |
-------------------------------- | |
Билет 10 | |
1) Уничтожение переменной. Проверка о существовании переменной. | |
С помощью функции unset() мы можем уничтожить переменную. Но, как правило, необходимость в подобном удалении переменной возникает редко, так как PHP автоматически удаляет переменные, когда завершается выполнение контекста (например, функции), в котором определены эти переменные. | |
Функция isset() позволяет определить, инициализирована ли переменная или нет. Если переменная определена, то isset() возвращает значение true. Если переменная не определена, то isset() возвращает false. Также если переменная имеет значение null функция isset() также возвращает false. | |
Функция empty() проверяет переменную на "пустоту". "Пустая" переменная - это переменная, значение которой равно null, 0, false или пустой строке - в этом случае функция empty() возвращает true | |
---- | |
2) Дан массив с целыми числами. Создайте из него новый массив, где останутся только четные. | |
<?php | |
function isEven($num) | |
{ | |
return $num % 2 == 0; | |
} | |
$arr = [1, 2, 3, 4, 5, 6]; | |
$newArr = []; | |
foreach ($arr as $item) { | |
if (isEven($item)) { | |
$newArr[] = $item; | |
} | |
} | |
echo '<pre>'; print_r($newArr); echo '</pre>'; | |
?> | |
---- | |
3) Создайте три переменные, час, минута, секунда. С их помощью выведите текущее время в формате – час, минута, секунда. | |
<?php | |
$hour = 0; | |
$min = 19; | |
$sec = 33; | |
echo $hour . ':' . $min . ':' . $sec; | |
?> | |
---------------------------------------------------------------------------------------------------------------------------------------- | |
Билет 11 | |
1) Определение типа переменной. Примеры. | |
Для получения типа переменной применяется функция gettype(), которая возвращает название типа переменной, например, integer (целое число), double (число с плавающей точкой), string (строка), boolean (логическое значение), null, array (массив), object (объект) или unknown type. Например: | |
<?php | |
$a = 10; | |
$b = "10"; | |
echo gettype($a); // integer | |
echo "<br>"; | |
echo gettype($b); // string | |
?> | |
---- | |
2) Напишите скрипт, чтобы получить IP-адрес клиента. | |
<?php | |
//whether ip is from share internet | |
if (!empty($_SERVER['HTTP_CLIENT_IP'])) | |
{ | |
$ip_address = $_SERVER['HTTP_CLIENT_IP']; | |
} | |
//whether ip is from proxy | |
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) | |
{ | |
$ip_address = $_SERVER['HTTP_X_FORWARDED_FOR']; | |
} | |
//whether ip is from remote address | |
else | |
{ | |
$ip_address = $_SERVER['REMOTE_ADDR']; | |
} | |
echo $ip_address; | |
?> | |
---- | |
3) Напишите скрипт, чтобы распечатать таблицу умножения. | |
<?php | |
$rows = 10; | |
$cols = 10; | |
echo "<table class='second td'>"; | |
for ($tr =1; $tr <= $rows; $tr ++) | |
{ | |
echo "<tr>"; | |
if(($tr == '1')){ $b ='<b>'; $end_b ='</b>'; } | |
for($td =1;$td <=$cols; $td++) | |
{ | |
if(($tr != '1') && ($td == '1')){ $b ='<b>'; $end_b ='</b>'; } | |
echo "<td>" . $b .$tr * $td. $end_b ."</td>\n"; | |
if(($tr != '1') && ($td == '1')){ $b =''; $end_b =''; } | |
} | |
$b =''; $end_b =''; | |
echo "</tr>\n"; | |
} | |
echo "</table>"; | |
?> | |
---------------------------------------------------------------------------------------------------------------------------------------- | |
Билет 12 | |
1) Явное и неявное приведение типов. Примеры. | |
PHP не требует явного определения типа при объявлении переменной. В этом случае тип переменной определяется значением, которое она хранит. То есть, если переменной $var присваивается значение типа строка (string), то $var изменит тип на строку (string). Если после этого переменной $var будет присвоено значение типа целое число (int), то она изменит тип на целое число (int). | |
Явное приведение типов возможно через круглые скобки с указанием типа: | |
<?php | |
$foo = 10; // $foo - это целое число | |
$bar = (bool) $foo; // $bar - это логическое значение | |
?> | |
и через settype: | |
<?php | |
$foo = "5bar"; // строка | |
$bar = true; // булевое значение | |
settype($foo, "integer"); // $foo теперь 5 (целое) | |
settype($bar, "string"); // $bar теперь "1" (строка) | |
?> | |
---- | |
2) Напишите программу php, чтобы получить последний элемент, для которого данная функция возвращает значение истинности. | |
<?php | |
function find_Last($items, $func) | |
{ | |
$filteredItems = array_filter($items, $func); | |
return array_pop($filteredItems); | |
} | |
echo find_Last([1, 2, 3, 4], function ($n) { | |
return ($n % 2) === 1; | |
}); | |
echo "\n"; | |
echo find_Last([1, 2, 3, 4], function ($n) { | |
return ($n % 2) === 0; | |
}); | |
?> | |
---- | |
3) Напишите php скрипт, для расчета и отображения среднемесячной температуры (по вашим данным). | |
<?php | |
$month_temp ="78, 60, 62, 68, 71, 68, 73, 85, 66, 64, 76, 63, 81, 76, 73, | |
68, 72, 73, 75, 65, 74, 63, 67, 65, 64, 68, 73, 75, 79, 73"; | |
$temp_array = explode(',', $month_temp); | |
$tot_temp = 0; | |
$temp_array_length = count($temp_array); | |
foreach($temp_array as $temp) | |
{ | |
$tot_temp += $temp; | |
} | |
$avg_high_temp = $tot_temp/$temp_array_length; | |
echo "Average Temperature is : ".$avg_high_temp." | |
"; | |
sort($temp_array); | |
echo " List of five lowest temperatures :"; | |
for ($i=0; $i< 5; $i++) | |
{ | |
echo $temp_array[$i].", "; | |
} | |
echo "List of five highest temperatures :"; | |
for ($i=($temp_array_length-5); $i< ($temp_array_length); $i++) | |
{ | |
echo $temp_array[$i].", "; | |
} | |
?> | |
---------------------------------------------------------------------------------------------------------------------------------------- | |
Билет 13 | |
1) Динамические переменные. Примеры. | |
В РНР имеется возможность использовать переменные, имена которых содержат переменные. Например, | |
‹html› | |
‹head› | |
‹title›Динамические переменные‹/title› | |
‹/head› | |
‹body› | |
‹?php | |
$name = "id"; // $name содержит строку "id" | |
$id = 5; // $id содержит число 5 | |
echo $$name; // выводит 5 | |
?› | |
‹/body› | |
‹/html› | |
---- | |
2) Напишите скрипт, чтобы получить текущее имя файла. | |
<?php | |
$current_file_name = basename($_SERVER['PHP_SELF']); | |
echo $current_file_name."\n"; | |
?> | |
---- | |
3) Напишите скрипт чтобы получить время последней модификации текущей страницы. | |
<?php | |
echo "Last modified: " . date ("F d Y H:i:s.", getlastmod())."\n"; | |
?> | |
---------------------------------------------------------------------------------------------------------------------------------------- | |
Билет 14 | |
1) Собственные типы данных. Примеры. | |
---- | |
2) Напишите скрипт, чтобы получить версию php и информацию о конфигурации. | |
<?php | |
phpinfo(); | |
?> | |
---- | |
3) Напишите программу php, чтобы проверить начинается ли заданная строка с заданной подстроки. | |
<?php | |
function startsWith($haystack, $needle) | |
{ | |
return strpos($haystack, $needle) === 0; | |
} | |
print_r(startsWith('Hi, this is me', 'Hi')); | |
?> | |
---------------------------------------------------------------------------------------------------------------------------------------- | |
Билет 15 | |
1) Создание класса. Примеры. | |
Класс состоит из следующих частей: | |
Свойства. | |
Конструктор. | |
Методы. | |
Но прежде, чем добавлять все эти части давайте создадим описание класса (пусть файл называется "myclass.php"): | |
<?php | |
class MyClass { | |
} | |
?> | |
---- | |
2) Создайте простую HTML форму, примите имя пользователя и отобразите с помощью оператора ECO. | |
<!DOCTYPE html> | |
<html> | |
<head> | |
<title></title> | |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> | |
</head> | |
<body> | |
<form method='POST'> | |
<h2>Please input your name:</h2> | |
<input type="text" name="name"> | |
<input type="submit" value="Submit Name"> | |
</form> | |
<?php | |
//Retrieve name from query string and store to a local variable | |
$name = $_POST['name']; | |
echo "<h3> Hello $name </h3>"; | |
?> | |
</body> | |
</html> | |
---- | |
3) Напишите программу для генерации массива с диапазоном, взятым из строки. | |
---------------------------------------------------------------------------------------------------------------------------------------- | |
Билет 16 | |
1) Создание объекта. Примеры. | |
---- | |
2) Напишите скрипт, чтобы перенаправить пользователя на другую страницу. | |
---- | |
3) Напишите функцию, чтобы проверить является ли числом простым или нет. | |
---------------------------------------------------------------------------------------------------------------------------------------- | |
Билет 17 | |
1) Область видимости переменных класса. Примеры. | |
---- | |
2) Напишите функцию, которая переворачивает строку. | |
<?php | |
function reverse_string($str1) | |
{ | |
$n = strlen($str1); | |
if($n == 1) | |
{ | |
return $str1; | |
} | |
else | |
{ | |
$n--; | |
return reverse_string(substr($str1,1, $n)) . substr($str1, 0, 1); | |
} | |
} | |
print_r(reverse_string('1234')."\n"); | |
?> | |
3) Напишите функцию для преобразования арабских чисел в римские. | |
<?php | |
function number_to_roman($value) | |
{ | |
if($value<0) return ""; | |
if(!$value) return "0"; | |
$thousands=(int)($value/1000); | |
$value-=$thousands*1000; | |
$result=str_repeat("M",$thousands); | |
$table=array( | |
900=>"CM",500=>"D",400=>"CD",100=>"C", | |
90=>"XC",50=>"L",40=>"XL",10=>"X", | |
9=>"IX",5=>"V",4=>"IV",1=>"I"); | |
while($value) { | |
foreach($table as $part=>$fragment) if($part<=$value) break; | |
$amount=(int)($value/$part); | |
$value-=$part*$amount; | |
$result.=str_repeat($fragment,$amount); | |
} | |
return $result; | |
} | |
echo number_to_roman(102); | |
?> | |
---------------------------------------------------------------------------------------------------------------------------------------- | |
Билет 18 | |
1) Спецификаторы доступа. Примеры. | |
К общедоступным (public) свойствам и методам можно получить доступ без каких либо ограничений. | |
Защищенные (protected) элементы класса доступны внутри класса, в котором они объявлены, и в производных от него классах. | |
Частные (private) элементы доступны только в классе, в котором они объявлены. | |
---- | |
2) Напишите функцию для получения случайных чисел с плавающей точкой. | |
<?php | |
function rand_float($st_num=0,$end_num=1,$mul=1000000) | |
{ | |
if ($st_num>$end_num) return false; | |
return mt_rand($st_num*$mul,$end_num*$mul)/$mul; | |
} | |
echo rand_float()."\n"; | |
echo rand_float(0.6)."\n"; | |
echo rand_float(0.5,0.6)."\n"; | |
echo rand_float(0,20)."\n"; | |
echo rand_float(0,3,2)."\n"; | |
echo rand_float(0,2,20)."\n"; | |
?> | |
---- | |
3) Напишите класс, который вычисляет факториал целого числа. | |
<?php | |
class factorial_of_a_number | |
{ | |
protected $_n; | |
public function __construct($n) | |
{ | |
if (!is_int($n)) | |
{ | |
throw new InvalidArgumentException('Не число или отсутствующий аргумент'); | |
} | |
$this->_n = $n; | |
} | |
public function result() | |
{ | |
$factorial = 1; | |
for ($i = 1; $i <= $this->_n; $i++) | |
{ | |
$factorial *= $i; | |
} | |
return $factorial; | |
} | |
} | |
$newfactorial = New factorial_of_a_number(5); | |
echo $newfactorial->result(); | |
?> | |
---------------------------------------------------------------------------------------------------------------------------------------- | |
Билет 19 | |
1) Статические переменные класса. Примеры. | |
Статические переменные, в php это особый вид переменных, которые объявляются при помощи ключевого слова static. | |
static $foo = 3; | |
От обычных переменных они отличаются тем что (далее в статье эти пункты будут рассмотрены более подробно): | |
могут быть присвоены только константы и константные выражения | |
время жизни статической переменной не ограничено временем жизни области видимости в которой она была объявлена | |
могут быть определены в скрипте лишь однажды | |
не уничтожаются до конца выполнения скрипта | |
---- | |
2) Напишите функцию для сортировки массива. | |
<?php | |
function array_sort($a) { | |
for($x=0;$x< count($a);++$x) { | |
$min = $x; | |
for($y=$x+1;$y< count($a);++$y) { | |
if($a[$y] < $a[$min] ) { | |
$temp = $a[$min]; | |
$a[$min] = $a[$y]; | |
$a[$y] = $temp; | |
} | |
} | |
} | |
return $a; | |
} | |
$a = array(33,22,11,55,'wm-school'); | |
print_r(array_sort($a)); | |
?> | |
---- | |
3) Напишите сценарий для отображения исходного кода Веб-страницы. | |
<?php | |
$all_lines = file('/'); | |
foreach ($all_lines as $line_num => $line) | |
{ | |
echo "Line No.-{$line_num}: " . htmlspecialchars($line) . "\n"; | |
} | |
?> | |
---------------------------------------------------------------------------------------------------------------------------------------- | |
Билет 20 | |
1) Ссылки на переменные. Примеры. | |
Ссылки, так же их иногда называют указатели, в PHP — это переменная которая содержит в себе не значение, а адрес ячейки памяти другой переменной. Что бы стало понятнее, представим такой код: | |
$a = 1; | |
$b = 'abc'; | |
$c = $b | |
Так вот ссылка на переменную — это и есть адрес ячейки памяти. Для взятие ссылки в PHP используется символ: ‘&’. | |
---- | |
2) Напишите скрипт, чтобы проверить является ли данные даты действительными или нет. | |
<?php | |
var_dump(checkdate(2, 30, 2008)); | |
var_dump(checkdate(2, 29, 2008)); | |
?> | |
---- | |
3) Напишите скрипт для удаления части строки. | |
<?php | |
$my_str ='The quick brown fox jumps over the lazy dog'; | |
echo str_replace("fox", " ", $my_str)."\n"; | |
?> | |
---------------------------------------------------------------------------------------------------------------------------------------- | |
Билет 21 | |
1) Клонирование объектов. Примеры. | |
Копия объекта создаётся с использованием ключевого слова clone (который вызывает метод __clone() объекта, если это возможно). | |
$copy_of_object = clone $object; | |
При клонировании объекта, PHP выполняет поверхностную копию всех свойств объекта. Любые свойства, являющиеся ссылками на другие переменные, останутся ссылками. | |
<?php | |
class SubObject | |
{ | |
static $instances = 0; | |
public $instance; | |
public function __construct() { | |
$this->instance = ++self::$instances; | |
} | |
public function __clone() { | |
$this->instance = ++self::$instances; | |
} | |
} | |
class MyCloneable | |
{ | |
public $object1; | |
public $object2; | |
function __clone() | |
{ | |
// Принудительно клонируем this->object1, иначе | |
// он будет указывать на один и тот же объект. | |
$this->object1 = clone $this->object1; | |
} | |
} | |
$obj = new MyCloneable(); | |
$obj->object1 = new SubObject(); | |
$obj->object2 = new SubObject(); | |
$obj2 = clone $obj; | |
print("Оригинальный объект:\n"); | |
print_r($obj); | |
print("Клонированный объект:\n"); | |
print_r($obj2); | |
?> | |
---- | |
2) Напишите скрипт для генерации простого случайного пароля. | |
<?php | |
function password_generate($chars) | |
{ | |
$data ='1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcefghijklmnopqrstuvwxyz'; | |
return substr(str_shuffle($data), 0, $chars); | |
} | |
echo password_generate(7)."\n"; | |
?> | |
---- | |
3) Напишите функцию для вычисления расстояния между двумя точками. | |
---------------------------------------------------------------------------------------------------------------------------------------- | |
Билет 22 | |
1) Константы. Объявление константы. Примеры. | |
Rонстанта - это идентификатор (имя) для простого значения. Как следует из названия, это значение не может измениться в ходе выполнения скрипта (кроме магических констант, которые на самом деле не являются константами). Константы чувствительны к регистру. По принятому соглашению, имена констант всегда пишутся в верхнем регистре. | |
---- | |
2) Напишите скрипт, который меняет цвет первого символа слова. | |
<?php | |
$text ='PHP Tutorial'; | |
$text = preg_replace('/(\b[a-z])/i','<span style="color:red;">\1</span>',$text); | |
echo $text; | |
?> | |
---- | |
3) Напишите скрипт, для удаления нечисловых символов кроме запятой и точки. | |
<?php | |
$str1 ="$12,334.00A"; | |
echo preg_replace("/[^0-9,.]/", "", $str1)."\n"; | |
?> | |
---------------------------------------------------------------------------------------------------------------------------------------- | |
Билет 23 | |
1) Проверка существования константы. Динамическое имя константы. Примеры. | |
Чтобы проверить, определена ли константы, мы можем использовать функцию bool defined(string $name). Если константа $name определена, то функция будет возвращать значение true | |
<?php | |
const PI = 3.14; | |
if (!defined("PI")) | |
define("PI", 3.14); | |
else | |
echo "Константа PI уже определена"; | |
?> | |
---- | |
2) Напишите скрипт для получения информации об использовании памяти компьютера в Мегабайтах. | |
<?php | |
$memory_size = memory_get_usage(); | |
$memory_unit = array('Bytes','KB','MB','GB','TB','PB'); | |
// Display memory size into kb, mb etc. | |
echo 'Used Memory : '.round($memory_size/pow(1024,($x=floor(log($memory_size,1024)))),2).' '.$memory_unit[$x]."\n"; | |
?> | |
---- | |
3) Напишите скрипт, чтобы получить самый большой ключ в массиве. | |
<?php | |
$ceu = array( "Italy"=>"Rome", "Luxembourg"=>"Luxembourg", "Belgium"=> "Brussels", | |
"Denmark"=>"Copenhagen", "Finland"=>"Helsinki", "France" => "Paris", "Slovakia"=>"Bratislava", | |
"Slovenia"=>"Ljubljana", "Germany" => "Berlin", "Greece" => "Athens", "Ireland"=>"Dublin", | |
"Netherlands"=>"Amsterdam", "Portugal"=>"Lisbon", "Spain"=>"Madrid", "Sweden"=>"Stockholm", | |
"United Kingdom"=>"London", "Cyprus"=>"Nicosia", "Lithuania"=>"Vilnius", "Czech Republic"=>"Prague", "Estonia"=>"Tallin", "Hungary"=>"Budapest", "Latvia"=>"Riga", "Malta"=> "Valetta","Austria" => "Vienna", "Poland"=>"Warsaw") ; | |
$max_key = max( array_keys( $ceu) ); | |
echo $max_key."\n"; | |
?> | |
---------------------------------------------------------------------------------------------------------------------------------------- | |
Билет 24 | |
1) Абсолютный относительный пути к файлу. Примеры. | |
---- | |
2) Напишите функцию, которая возвращает наименьшее число отличное от 0. | |
---- | |
3) Напишите скрипт для подсчета кол-ва строк в файле. | |
---------------------------------------------------------------------------------------------------------------------------------------- | |
Билет 25 | |
1) Объединение строк. Конструкция ECO. Оператор запятая. Примеры. | |
---- | |
2) Напишите скрипт для задержки выполнения программы на указанное кол-во секунд. | |
---- | |
3) Напишите программу для удаления дубликатов из отсортированного списка. | |
---------------------------------------------------------------------------------------------------------------------------------------- | |
Билет 26 | |
1) Константы класса. Примеры. | |
---- | |
2) Напишите программу для преобразования слова в цифры. | |
---- | |
3) Напишите программу для проверки правильности адреса эл. почты. | |
---------------------------------------------------------------------------------------------------------------------------------------- | |
Билет 27 | |
1) Арифметические операторы. Примеры. | |
---- | |
2) Напишите программу для вычисления радиуса и центральной координаты окружности, которая построена из трех заданных точек на поверхности. | |
---- | |
3) Напишите скрипт для вставки строки в заданную позицию в заданной строке. | |
---------------------------------------------------------------------------------------------------------------------------------------- | |
Билет 28 | |
1) Операторы сравнения. Примеры. | |
---- | |
2) Напишите программу для проверки равны ли два числа друг другу. | |
---- | |
3) Напишите функцию для создания удобочитаемой случайной строки для капчи. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment