Страница заданий кружков «Web-дизайн»
Задания ниже – в первую очередь, для самопроверки. Если при чтении материалов и выполнении заданий возникают сложности, желательно задавать вопросы. Связь – любым удобным вам способом.
Задания по блоку HTML и CSS
Материалы по теме находятся на странице PHP: формы
11/15 апреля: Базы данных. Создание простой базы данных
Материалы по теме находятся на странице Работа с базой данных SQLite в PHP
4/8 апреля: Функции работы с файлами Загрузка файлов на сервер
Материалы по теме находятся на странице Работа с файлами в PHP
28/1 марта: Функции работы с изображениями в php
Просмотреть видеозапись занятия, доступную в группах Microsoft Teams
- В настройках сервера php.ini раскомментировать (удалить символ ; в начале строки) строку extension=gd
- В файле button.php, как показано в видео, сохранить следующий код:
<?php
header("Content-type: image/png");
// header("Content-type: image/jpeg");
$string = $_GET['text'];
$im = imagecreatefrompng("images/button.png");
$colorr = imagecolorallocate($im, 240, 200, 200);
$px = (imagesx($im) - 7.5 * strlen($string)) / 2;
// imagestring($im, 3, $px, 150, $string, $colorr);
$font = 'images/font.ttf';
imagettftext($im, 38, 0, $px-100, 180, $colorr, $font, $string);
imagepng($im);
// imagejpeg($im, NULL, 100);
imagedestroy($im);
?>
- Скачать файлы любого кириллического шрифта с fonts.google.com и сохранить как images/font.ttf
- Создать файл html с кодом картинки <img src="button.php?text=Это кнопка!" alt=""> и открыть его в браузере
- Страница с материалами по обработке изображений в PHP
21/25 марта: Решение задач по обработке строк
- Просмотреть видеозапись занятия, доступную в группах Microsoft Teams, и материалы по обработке строк в php
- Создать страницу с формой ввода и скриптом обработки введенного текста. Скрипт должен подсчитывать в тексте: количество символов, количество символов без пробелов и количество слов.
- Для решения задачи рекомендуется применить функции iconv_strlen, str_replace, explode, count.
14/18 марта: Функции работы с текстом в php
Просмотреть видеозапись занятия, доступную в группах Microsoft Teams;
- Просмотреть материалы по работе с текстом в php и материал про свойство шрифтов
- Создать страницу, на которой будут представлены 1) различные семейства шрифтов, 2) свойством font-size установлен размер шрифта и 3) подключен хотя бы один внешний шрифт
7 марта: Понятие функции. Функции в php
Просмотреть видеозапись занятия, доступную в группах Microsoft Teams
- В файле index.php, как показано в видео, создать и выполнить функцию:
<?php
function fun($inpt, $in2, $in3=4)
{
echo "Пример функции. На входе $inpt, $in2, $in3\n";
$inpt += 2;
return array($inpt, $in2+3);
}
echo "Запускаем функцию\n", fun(7, 8)[1], "<br>";
?>
- Справочная информация: Функция (программирование).
Subroutine.
Функции, определяемые пользователем.
Возврат значений.
Пример на phporphp.000webhostapp.com/fun/
28 февраля: Создание эскиза для творческого задания
К этому занятию ученикам крайне желательно определиться с темой, технологиями и этапами реализации проекта, то есть, авторского сайта. Технологии web-дизайна, которые были изучены на данный момент: HTML, CSS и PHP. Также мы не раз упоминали JavaScript.
Возможные темы для сайта (творческого задания):
- Моя персональная web-страница
- Тематический сайт
- Арт-проект. Визуальное искусство средствами web-дизайна. Например, Enjoy the beautiful
- Демонстрация web-технологии. Например, страница с игрой или тест
- Мой взгляд на web-технологию. Например, Что такое программирование?
Задание от 21 февраля: решение задач на тему «Массивы»
Просмотреть видеозапись занятия, доступную в группах Microsoft Teams
- Запустить учебный сервер PHP или открыть файловый менеджер на хостинге с поддержкой PHP
- Изменить скрипт (файл с расширением php), как показано в видео:
<?php
if (is_numeric($a)) {
for ($i = 1; $i <= abs($a); $i++)
echo "Silence is golden<br>";
} else {
echo "Bad n<br>";
}
if (is_numeric($a)) {
$squares = array();
for ($i = 1; $i <= abs($a); $i++)
$squares[$i] = $i**2;
foreach ($squares as $item => $value)
echo $item, ", ", $value, "<br>";
}
$summa = 0;
$mult = 1;
foreach ($squares as $item => $value) {
$summa += $value;
$mult *= $value;
}
echo "$summa, $mult<br>";
?>
- Справочная информация: Массивы.
Задачи на основы работы с массивами в PHP.
Циклы и массивы в PHP.
Пример на phporphp.000webhostapp.com/array/
Задание от 14 февраля: Массивы. Ассоциативные массивы. Цикл for
Просмотреть видеозапись занятия, доступную в группах Microsoft Teams
- Запустить учебный сервер PHP или открыть файловый менеджер на хостинге с поддержкой PHP
- Изменить скрипт (файл с расширением php), как показано в видео:
<?php
$zz = array();
$arr = array(5 => 1, 12 => 2);
$arr[0] = 7;
$arr[] = "sdsv";
foreach($arr as $item => $value) {
echo $item, ", ", $value, "<br>";
}
echo "$arr[0], $arr[5], $arr[13]<br>";
$z = array("foo", "bar", "hello", "world");
$z = $z + $arr;
foreach($z as $item => $value) {
echo $item, ", ", $value, "<br>";
}
foreach($arr as $item => $item_count)
echo "Item=" . $item . ", Value=" . $item_count . ".<br>";
?>
Мы изучили устройство массивов в PHP и научились работать с ними. Попробуйте применить массивы и циклы в своих проектах! Например, в массиве могут содержаться данные о пользователе, который оставил запись в гостевой книге.
- Справочная информация: Массивы,
Операторы, работающие с массивами.
Ассоциативные массивы в PHP с примерами.
foreach.
Пример на phporphp.000webhostapp.com/for/
Задание от 7 февраля: Вложенные циклы. Решение задач.
Просмотреть видеозапись занятия, доступную в группах Microsoft Teams и попробовать выполнить следующие задачи:
- Запустить учебный сервер PHP или открыть файловый менеджер на хостинге с поддержкой PHP. Например, бесплатный аккаунт на 000webhost.com
- Модифицировать файлы, созданные в прошлый раз. Изменить скрипт (файл с расширением php), как показано в видео:
<?php
$x = 1;
$y = 1;
while ($x <= $a) {
$y = 1;
while ($y <= $b) {
echo $x, $y, "<br>";
$y++;
}
$x++;
}
echo "Цикл for<br>";
for ($i = 1; $i <= $a; $i++)
for ($j = 1; $j <= $b; $j++)
if ($i != $j)
echo $i, $j, "<br>";
?>
Так мы вывели на экран все двузначные числа, где цифры ограничены введенными в форму значениями. Условное выражение во вложенных цикклах for исключает все числа, в которых цифры совпадают.
- Попробуйте найти все трехзначные числа, у которых все цифры различны.
- Справочная информация: Цикл for. Пример на phporphp.000webhostapp.com/while/
Задание от 31 января: Цикл while. Решение задач на циклы.
Просмотреть видеозапись занятия, доступную в группах Microsoft Teams и попробовать выполнить следующие задачи:
- Запустить учебный сервер PHP или открыть файловый менеджер на хостинге с поддержкой PHP. Например, бесплатный аккаунт на 000webhost.com
- Создать новый каталог и скопировать туда файлы, созданные в прошлый раз.
- Изменить скрипт (файл с расширением php), как показано в видео:
<?php
$a = htmlspecialchars($_POST['i1']);
$b = htmlspecialchars($_POST['i2']);
while ($a <= $b) {
if ($a % 2 == 0)
echo $a, "<br>";
$a++;
}
?>
Так мы вывели на экран все четные числа между a и b.
- Аналогичным образом можно вывести все степени числа. Для этого потребуется изменить оператор инкрементации ++ на оператор *=
Попробуйте вывести степени двойки!
- Справочная информация: while,
do-while.
Пример на phporphp.000webhostapp.com/while/
Задание от 24 января: Написание программы для решения уравнений.
Просмотреть видеозапись занятия, доступную в группах Microsoft Teams и попробовать выполнить следующие задачи:
- Запустить учебный сервер PHP или открыть файловый менеджер на хостинге с поддержкой PHP. Например, бесплатный аккаунт на 000webhost.com
- Изменить код формы, созданный ранее: добавить в элемент input атрибут required:
<input type="text" value="3" name="i2" required>
- Изменить скрипт (файл с расширением php), как показано в видео:
<?php
if (empty($_POST['i1']) && empty($_POST['i2'])) {
$a = htmlspecialchars($_POST['i1']);
$b = htmlspecialchars($_POST['i2']);
echo "Введены числа ", $a, " и ", $b, "<br>";
}
echo "Решаем уравнение", $a - $b / $b, "<br>округленное значение: ", round($a - $b / $b), "<br>";
else
echo "Одно или несколько значений не установлены";
?>
- Попробуйте при решении уравнений применить другие математические функции.
- Справочная информация: Услловное выражение if,
empty — Проверяет, пуста ли переменная.
Пример на phporphp.000webhostapp.com/if/.
Задание от 17 января: Условный оператор IF. Операторы сравнения.
Просмотреть видеозапись занятия, доступную в группах Microsoft Teams и попробовать выполнить следующие задачи:
- Запустить учебный сервер PHP или открыть файловый менеджер на хостинге с поддержкой PHP. Например, бесплатный аккаунт на 000webhost.com
- Скопировать код формы и скрипта, созданные по теме Арифметические операции (занятие 13/17 декабря)
- Изменить файл с расширением php, как показано в видео:
<?php
$a = htmlspecialchars($_POST['i1']);
$b = htmlspecialchars($_POST['i2']);
if ($a > $b)
echo "a ($a) больше b ($b)<br>";
else
echo "b ($b) больше или равно a ($a)<br>";
if ($a != $b)
echo "a ($a) не равно b ($b)<br>";
else
echo "a ($a) равно b ($b)<br>";
if ($a == 1 || $b == 2 && $a + $b == 3)
echo "a ($a) равно 1 или b ($b) равно 2<br>";
else
echo "a ($a) не равно 1 и b ($b) не равно 2<br>";
?>
- Попробуйте применить другие операторы сравнения и логические операторы И, ИЛИ.
- Справочная информация: Услловное выражение if.
Пример на phporphp.000webhostapp.com/if/
Задание от 27/31 декабря: Строки. Строковые операторы. Арифметические операторы
Просмотреть видеозапись занятия, доступную в группах Microsoft Teams и попробовать выполнить следующие задачи:
- Запустить учебный сервер PHP или открыть файловый менеджер на хостинге с поддержкой PHP. Например, бесплатный аккаунт на 000webhost.com
- Создать файл с расширением php слежующего содержания:
<pre>
<?php
$a = trim(' Hello');
$b = ' world';
$a .= $b;
echo $a;
echo "\nHello $a" . '!!!' . "\n";
echo 'Новая строка';
?>
</pre>
- Попробуйте заменить оператор конкатенации . на оператор сложения +
Что произошло?
- Справочная информация: Строковые операторы,
Строки.
Пример на phporphp.000webhostapp.com/string/.
Задание от 20/24 декабря: Связь html-форм и php страниц
Просмотреть видеозапись занятия, доступную в группах Microsoft Teams и попробовать выполнить следующие задачи:
- Запустить учебный сервер PHP или открыть файловый менеджер на хостинге с поддержкой PHP. Например, бесплатный аккаунт на 000webhost.com
- Создать отдельную папку. Создать в ней файл index.html с кодом формы:
<form name="file_upload" method="POST" action="action.php" enctype="multipart/form-data">
Загрузите ваш аватар:
<input type="file" name="avatar">
<input type="submit" name="send" value="Отправить файл">
</form>
- Создать там же файл action.php с кодом обработки формы:
<?php
if (isset($_FILES['avatar'])) {
$file = $_FILES['avatar'];
print("Загружен файл с именем " . $file['name'] . " и размером " . $file['size'] . " байт:<br>");
}
$current_path = $_FILES['avatar']['tmp_name'];
$filename = $_FILES['avatar']['name'];
$new_path = dirname(__FILE__) . '/../images/' . $filename;
move_uploaded_file($current_path, $new_path);
echo "<img alt='' src='../images/$filename'>";
?>
Для работы скрипта необходимо создать папку с именем "images" в родительском каталоге, в директории public_html (также говорят "в корне"). Скрипт печатает имя и размер загруженного файла, затем перемещает его в папку images и показывает на экране.
- Загрузите картинку (аватарку) при помощи созданной формы. Убедитесь, что в папке images появился новый файл.
- При помощи формы загрузки можно загружать любые файлы. Попробуйте загрузить файл, не являющийся изображением. Что произойдет?
Задание от 13/17 декабря: Арифметические операции
Просмотреть видеозапись занятия, доступную в группах Microsoft Teams и попробовать выполнить следующие задачи:
- Запустить учебный сервер PHP или открыть файловый менеджер на хостинге с поддержкой PHP. Например, бесплатный аккаунт на 000webhost.com
- Создать файл index.html с кодом формы:
<form action="action.php" method="post">
<input type="text" value="2" name="i1">
<input type="text" value="3" name="i2">
<input type="submit" value="Отправить">
</form>
- Создать там же файл action.php с кодом обработки формы:
<?php
$a = htmlspecialchars($_POST['i1']);
$b = htmlspecialchars($_POST['i2']);
echo "Введены числа <b>", $a, " и ", $b, "</b><br>";
echo "Результат операции сложения: ", $a + $b, "<br>";
echo "Результат операции вычитания: ", $a - $b, "<br>";
echo "Результат операции умножения: ", $a * $b, "<br>";
echo "Результат операции деления: ", $a / $b, "<br>";
echo "Результат операции возведения в степень: ", $a ** $b, "<br>";
echo "Возведение в степень при помощи функции pow(): ", pow($a, $b), "<br>";
?>
Теперь наш скрипт умеет выполнять арифметические операции. Обратите внимание: мы управляем форматированием вывода при помощи тегов HTML. То есть, команда echo может (и должна) выводить не просто текст, а код HTML.
- Напишите обработку формы, в первое поле которой вводится имя, а во второе поле - год рождения. После нажатия кнопки "отправить" запускается скипт action.php, который выводит приветствие вида "Здравствуй, Вася! Тебе 12 лет". Имя и возраст подставляются скриптом.
- Справочная информация, пример на phporphp.000webhostapp.com/arithmetic/
Задание от 6/10 декабря: Команда echo. Вывод переменных в html-документ
Просмотреть видеозапись занятия, доступную в группах Microsoft Teams и попробовать выполнить следующие задачи:
- Запустить учебный сервер PHP или создать аккаунт на хостинге с поддержкой PHP. Например, бесплатный аккаунт на 000webhost.com
- Создать в корневой директории (папке) файл index.html с кодом формы:
<form action="action.php" method="post">
<input type="text" value="2" name="i1">
<input type="text" value="3" name="i2">
<input type="submit" value="Отправить">
</form>
- Создать там же файл action.php с кодом обработки формы:
<?php
$a = htmlspecialchars($_POST['i1']);
$b = htmlspecialchars($_POST['i2']);
echo $a + $b;
?>
Теперь наш скрипт умеет складывать введенные значения!
- Поменяйте в форме метод method="get" и замените названия служебной переменной $_POST на $_GET. Что изменилось?
- Попробуйте создать калькулятор, который выводит результаты операций сложения, вычитания, умножения и деления.
- Справочная информация, код более сложной формы.
Задание от 29 ноября: Основы PHP. Синтаксис. Переменные
Просмотреть видеозапись занятия, доступную в группах Microsoft Teams и попробовать выполнить следующие задачи:
- Скачать архив с интерпретатором PHP по ссылке. Подойдет версия VS16 x86 Non Thread Safe, ссылка на Zip-архив.
- Распаковать zip-архив в отдельную папку, создать ярлык файла php.exe (с зажатой клавишей Alt перетащить файл php.exe на рабочий стол или иную папку).
- Нажать правой кнопкой мыши на ярлык, открыть его свойства. В поле "объект" после php.exe через пробел дописать строку "-S localhost:8000" (без кавычек).
- Запустить учебный сервер PHP, дважды кликнув по созданному ярлыку. Должно открыться окно с текущей датой/временем и версией тестового сервера PHP.
- Создать текстовый файл с названием hello.php и сохранить его в папку, где находится распакованный файл php.exe. Содержимое hello.php – строка <?php echo 'Hello, world!'; ?>
- При запущенном сервере открыть в баузере страницу с URL localhost:8000/hello.php
- По желанию: повторить все действия с сервером и программой на PHP из видеозаписи занятия.