diff --git a/PHP 1 lesson/user2/task_4+.php b/PHP 1 lesson/user2/task_4+.php index 8ca68b8..5962f9a 100644 --- a/PHP 1 lesson/user2/task_4+.php +++ b/PHP 1 lesson/user2/task_4+.php @@ -1,82 +1,80 @@ '; +define('DS', DIRECTORY_SEPARATOR); $cDir = __DIR__; -$sePar = DIRECTORY_SEPARATOR; -$nDir = $cDir.$sePar.'_cache'; +$cacheDir = $cDir . DS . '_cache'; -if (!file_exists($nDir)){ - if (!mkdir($nDir)){ +if (!file_exists($cacheDir)) { + if (!mkdir($cacheDir)) { die ('Не удалось создать директорию'); } } // Копируем файлы в директорию '_cache' - $dh = opendir($cDir); -while (false !==($entry = readdir($dh))){ - - $aFile = $cDir.$sePar.$entry; +while ($entry = readdir($dh)) { + $aFile = $cDir . DS . $entry; - if (is_dir($aFile)){ + if (is_dir($aFile)) { continue; } - if ($aFile == __FILE__){ + if ($aFile === __FILE__) { continue; } - if (pathinfo($aFile, PATHINFO_EXTENSION) == 'php'){ - copy($aFile,$nDir.$sePar.$entry); + if (pathinfo($aFile, PATHINFO_EXTENSION) === 'php') { + copy($aFile, $cacheDir . DS . $entry); } } closedir($dh); -echo "Copying done!\n"; +echo "Copying done!" . PHP_EOLs; // Ищем файлы с include в каталоге '_cache' +$hasInclude = false; +$ch = opendir($cacheDir); +while ($entry = readdir($ch)) { + $rFile = file($cacheDir . DS . $entry); + $inclFound = preg_grep("/include '.*'/", $rFile); // Определяем наличие 'include' в файле + if (empty($inclFound)) { + continue; + } -$ch = opendir($nDir); -while (false !==($entry = readdir($ch))) { $substDone = false; - $rFile = file($nDir.$sePar.$entry); - $inclFound = preg_grep("/include '.*'/",$rFile); // Определяем наличие 'include' в файле -// print_r($inclFound)."\n"; - - while (!empty($inclFound)){ - + while (!empty($inclFound)) { $key = array_key_first($inclFound); - $filename = explode("'",$inclFound[$key]); // Определяем имя подключаемого файла - $filename = $nDir.$sePar.$filename[1]; -// echo $filename[1]."\n"; - if (file_exists($filename)) { - echo "File to include ".$filename."\n"; + $filename = explode("'", $inclFound[$key]); // Определяем имя подключаемого файла + $filename = $cacheDir . DS . $filename[1]; - $wFile = file($filename);unset($wFile[0]); // Убираем тег ' 0): - $digit = $num%10; - $sum +=$digit; - $num /=10; - endwhile; - - echo 'Сумма цифр числа '.$a.' равна '.$sum; - +if (!is_int($a)) { + echo 'Неверный ввод. Введите целое число.'; + return; } -else{ - echo 'Неверный ввод. Введите целое число.'; - exit(0); +$sum = 0; +while ($a > 0) { //думаю тут должно быть >= 1 + $sum += $a % 10; + $a /= 10; } +echo 'Сумма цифр числа ' . $a . ' равна ' . $sum; + +//NOTE: метод в целом возможный, но реализация некорректна - условие порождает бесконечный цикл, точнее цикл ограничен размерностью дробных чисел, попробуйте вывести результат каждой итерации diff --git a/PHP 1 lesson/user2/techplayground2.php b/PHP 1 lesson/user2/techplayground2.php index e48a6e8..5a44c4d 100644 --- a/PHP 1 lesson/user2/techplayground2.php +++ b/PHP 1 lesson/user2/techplayground2.php @@ -6,20 +6,19 @@ $a = 16; -if ((!is_string($a)) and (is_numeric($a)) and (is_int($a))) { // Проверка корректности данных +if (!is_int($a)) { + echo 'Неверный ввод. Введите целое число.'; + return; +} - $sum = 0; +$sum = 0; - for ($i=1;$i < $a;$i++){ // Вычисление суммы чисел в цикле - if (!($i%3)){ // Проверка кратности 3 - $sum +=$i; - } +for ($i = 1; $i < $a; $i++) { + if (!($i % 3)) { + $sum += $i; } - - echo 'Сумма кратных трем положительных чисел меньше '.$a.' равна '.$sum; } -else{ - echo 'Неверный ввод. Введите целое число.'; - exit(0); -} +echo 'Сумма кратных трем положительных чисел меньше ' . $a . ' равна ' . $sum; + +//NOTE: да, вариант, но не оптимальный - итераций можно сделать в 3 раза меньше и без проверок если уменьшать число на 3 \ No newline at end of file diff --git a/PHP 1 lesson/user2/techplayground3.php b/PHP 1 lesson/user2/techplayground3.php index 3f3ff22..6b53d27 100644 --- a/PHP 1 lesson/user2/techplayground3.php +++ b/PHP 1 lesson/user2/techplayground3.php @@ -6,37 +6,36 @@ $a = 1600; -if (($a < 1) or ($a > 9999)){ +if (($a < 1) or ($a > 9999)) { echo 'Значение вне диапазона'; - exit (0); + return; } -if ($a <=7) { +if ($a <= 7) { //NOTE: +++ echo 'Год ' . $a . ' не високосный.'; - exit(0); + return; } -$flag_1 = $a%4; -$flag_2=$a%100; -$flag_3=$a%400; +if ($a % 4) { + echo 'Год ' . $a . ' не високосный.'; + return; +} // Вычисление високосного года по юлианскому календарю - -if (($a > 7) and (1582 > $a) and ($flag_1 == 0)) { +if ($a <= 1582) { echo 'Год ' . $a . ' високосный.'; + return; } //Вычисление високосного года по григорианскому календарю - -elseif ($flag_1 == 0 and $flag_2 != 0){ +if ($a % 100) { echo 'Год ' . $a . ' високосный.'; + return; } -elseif ($flag_3 == 0){ - echo 'Год ' . $a . ' високосный.'; +if ($a % 400) { + echo 'Год ' . $a . ' не високосный.'; + return; } -else echo 'Год ' . $a . ' не високосный.'; - - - +//NOTE: алгоритм +++, по условиям - я предпочитаю вот такой линейный код, а в целом тут просится функция, которая будет возвращать true/false и ее вызов при выводе сообщения \ No newline at end of file