Консультация № 185496
24.02.2012, 16:01
80.00 руб.
0 8 1
Уважаемые эксперты! Пожалуйста, ответьте на вопрос:
Пользователю предлагается ввести на странице имя некоторого каталога и данные запроса. В зависимости от запроса
1.удалить из заданного каталога все файлы, имеющие расширение на заданную букву;
2.выдать на экран содержимое файла с заданным именем заданного каталога, если он не пуст;
3.переименовать файлы заданного каталога с именами, начинающимися на заданную букву.

и

Вводится последовательность чисел до тех, пока не будет введено два равных числа подряд. Посчитать количество чисел в последовательности.‬

Пожалуйста помогите написать две программы

Обсуждение

Неизвестный
24.02.2012, 17:07
общий
Нужна НЕКОНСОЛЬНАЯ программа
давно
Старший Модератор
312929
1973
24.02.2012, 23:05
общий
это ответ
Здравствуйте, Денис Юрьевич!

Программа для первой задачи (обработка запроса):
[code lang=php]<?php
if (empty($_POST)) echo "
<html>
<head>
<title>Запрос</title>
</head>
<body>
<form target='error' method=post>
Каталог: <input name='dir' maxlength=255 style='width: 500px'>
Запрос: <input name='req' maxlength=20 style='width: 150px'>
<input type=submit value='Обработать запрос'>
</form>
<iframe name='error' width=800 height=600 marginwidth=0 marginheight=0 frameborder=0></iframe>
</body>
</html>";
else
{
if (empty($_POST['dir'])) die("Не указано имя каталога");
$dir = trim($_POST['dir']);
if (!is_dir($dir)) die("Каталог '$dir' не найден");
elseif (!chdir($dir)) die("Каталог '$dir' не доступен");
if (empty($_POST['req'])) die("Отсутствует запрос");
$req = explode(' ', trim($_POST['req']), 3);
if (sizeof($req) < 2) die("Отсутствуют параметры запроса");
switch (strtolower($req[0]))
{
case 'delete': $files = glob("$dir/*.$req[1]*"); $n = sizeof($files);
foreach ($files as $file) if (!unlink($file)) $n--;
die("Удалено файлов: $n");
case 'type': if (!is_file($file=$req[1])) die("Файл '$file' не найден");
if ($text=file_get_contents($file)) die(nl2br($text));
else die("Файл '$file' не может быть прочитан");
case 'rename': $files = glob("$dir/$req[1]*.*"); $n = sizeof($files);
foreach ($files as $file) if (!rename($file, substr_replace(basename($file),$req[2],0,strlen($req[2])))) $n--;
die("Переименовано файлов: $n");
default: die("Неправильный запрос");
}
}
?>[/code]
Запрос вводится в одном из трёх вариантов:
1) DELETE [i]буква[/i] - удалить файлы, имеющие расширение на заданную букву;
2) TYPE [i]имя файла[/i] - вывести файлы с заданным именем;
3) RENAME [i]буква1[/i] [i]буква2[/i] - переименовать файлы с именами, начинающимися на заданную букву, заменив её на другую заданную букву.
Имя запроса (DELETE, TYPE, RENAME) можно вводить в любом регистре, для остальных данных регистр имеет значение. В первом и третьем запросе буква может быть и строкой, состоящей из нескольких символов.

Программа для второй задачи (ввод чисел):
[code lang=php]<?php
global $m, $n, $p;
echo "<html>
<head>
<title>Последовательность чисел</title>
</head>
<body>";
extract($_POST);
if (!empty($n)) $m++;
if ($n==$p AND $m>0) echo "Ввод завершён. Было введено чисел: $m";
else
{
echo "
<form method=post>
Введите очередное число: <input name='n' maxlength=10 style='width: 100px'>
<input type=hidden name='m' value='$m'>
<input type=hidden name='p' value='$n'>
<input type=submit value='Ввести'>
</form>
Введено чисел: $m";
}
echo "
</body>
</html>";
?>[/code]
давно
Старший Модератор
312929
1973
24.02.2012, 23:08
общий
В первой задаче: как переименовывать файлы на определённую букву? Заменять её на другую? Или переименовывать каждый найденный файл отдельно?
Неизвестный
25.02.2012, 02:29
общий
Адресаты:
Не знаю, Вам виднее.
Неизвестный
25.02.2012, 13:21
общий
Адресаты:
Поменяли мне вторую задачу, теперь новая: Написать программу, которая бы
на основе конечного автомата определяла четное или нечетное бинарное число
введено. Сможете написать?
давно
Старший Модератор
312929
1973
27.02.2012, 06:49
общий
27.02.2012, 06:50
Поменяли мне вторую задачу, теперь новая: Написать программу, которая бы на основе конечного автомата определяла четное или нечетное бинарное число введено. Сможете написать?

Не уверен (т.к. с конечными автоматами дела не имел). Думаю, Вам стоит задать отдельный вопрос, возможно, другие эксперты смогут помочь.
Неизвестный
27.02.2012, 08:47
общий
Адресаты:
Это задача на F-схему, если что. Ну очень надо, может всё же поможете...
давно
Старший Модератор
312929
1973
28.02.2012, 06:33
общий
Добавил программу для первой задачи. Новую вторую задачу я всё же рекомендую оформить отдельным вопросом, чтобы другие эксперты тоже могли участвовать в решении.
Форма ответа