Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Изучаем Perl - Шварц Р.

Шварц Р., Кристиансен Т. Изучаем Perl — Москва, 2002. — 324 c.
Скачать (прямая ссылка): izuchaemperl2002.djvu
Предыдущая << 1 .. 98 99 100 101 102 103 < 104 > 105 106 107 108 109 110 .. 124 >> Следующая

1. Напишите программу для создания формы, содержащей два поля ввода,
которые при передаче данных формы объединяются.
2. Напишите CGI-сценарий, который определяет тип броузера, делающего
запрос, и сообщает что-нибудь в ответ. (Совет: воспользуйтесь переменной
среды HTTPUSERAGENT.)
А
Ответы к упражнениям
В этом приложении даны ответы к упражнениям, помещенным в конце каждой
главы.
Глава 2 "Скалярные данные"
1. Вот один из способов решения этой задачи:
$pi = 3.141592654;
$result = 2 * $pi * 12.5;
print "radius 12.5 is circumference $result\n";
Сначала мы присваиваем константу (число л) скалярной переменной $pi.
Затем мы вычисляем длину окружности, используя значение $pi в выражении,
и, наконец, выводим результат, применяя строку, содержащую ссылку на
него.
2. Вот один из способов решения этой задачи:
print "What is the radius: chomp(Sradius = <STDIN>);
$pi = 3.141592654;
$result = 2 * $pi * Sradius;
print "radius Sradius is circumference $result\n";
Это похоже на предыдущий пример, но здесь мы попросили пользователя,
выполняющего программу (применив для выдачи приглашения оператор print),
ввести значение. Считывание строки с терминала осуществляется посредством
операции <stdin>.
Приложение А. Ответы к упражнетиин
261
Если бы мы забыли применить функцию chomp, то получили бы посреди
выведенной строки символ новой строки. Важно как можно быстрее выбросить
этот символ из строки.
3. Вот один из способов решения этой задачи:
print "First number: chomp($a = <STDIN>);
print "Second number: chomp($b = <STDIN>);
$c = $a * $b; print "Answer is $c.\n";
Первая строка делает три вещи: приглашает вас ввести число, считывает
строку со стандартного ввода, а затем избавляется от неизбежного символа
новой строки. Поскольку мы используем значение $а строго как число,
функцию chomp здесь можно опустить, потому что в числовом контексте 4 5\п
- это 4 5. Однако столь небрежное программирование может впоследствии
обернуться неприятностями (например, если нужно будет включить $а в
сообщение).
Вторая строка делает то же самое со вторым числом и помещает его в
скалярную переменную $Ь.
Третья строка перемножает эти два числа и выводит результат. Отметьте
здесь наличие символа новой строки в конце строки (тогда как в первых
двух строках он отсутствует). Первые два сообщения - это приглашения, в
ответ на которые пользователь должен ввести число в той же строке.
Последнее сообщение - это оператор; если бы мы выбросили символ новой
строки, то сразу же за сообщением появилось бы приглашение shell. Не
очень-то хорошо.
4. Вот один из способов решения этой задачи:
print "String: $а = <STDIN>;
print "Number of times: chomp($b = <STDIN>) ;
$c = $a x $b; print "The result is:\n$c";
Как в предыдущем упражнении, первые две строки запрашивают значения двух
переменных и принимают их. Однако здесь мы не выбрасываем символ новой
строки, потому что он нам нужен! Третья строка получает введенные
значения и выполняет над ними операцию многократного повторения строк, а
затем выводит ответ. Обратите внимание на то, что за вычисляемой
переменной $с в операторе print нет символа новой строки, поскольку мы
считаем, что $с в любом случае заканчивается этим символом.
262
Изучаем Perl
Глава 3 "Массивы и списочные данные"
1. Вот один из способов решения этой задачи:
print "Enter the list of strings:\n"; eiist = <STDIN>;
@reverselist = reverse @list; print @reverselist;
Первая строка приглашает ввести строки. Вторая строка считывает эти
строки в переменную-массив. Третья строка формирует список с обратным
порядком расположения элементов и заносит его в другую переменную.
Последняя строка выводит результат.
Последние три строки можно объединить:
print "Enter the list of stnngs;\n"; print reverse <STDIN>;
Этот код работает аналогично предыдущему, так как операция print ожидает
ввода списка, а операция reverse возвращает список. Далее операции
reverse нужен список значений для реверсирования, а операция <stdin>,
применяемая в списочном контексте, возвращает список строк - и они
получают необходимое!
2. Вот один из способов решения этой задачи:
print "Enter the line number: chomp($a = <STDIN>);
print "Enter the lines, end with "D:\n"; 0b = <STDIN>; print "Answer:
$b[$a-l]";
Первая строка приглашает ввести число, считывает его со стандартного
ввода и удаляет назойливый символ новой строки. Вторая строка запрашивает
список строк, а затем с помощью операции <stdin> в списочном контексте
считывает все эти строки (до появления признака конца файла) в
переменную-массив. Последний оператор выводит ответ, используя для выбора
соответствующей строки ссылку на массив. Обратите внимание: нам не нужно
добавлять символ новой строки в конце, потому что строка, выбранная из
массива @ь, уже заканчивается таким символом.
Если вы попробуете запустить эту программу с терминала,
конфигурированного самым обычным образом, вам нужно будет нажать клавиши
[Ctrl+D], чтобы обозначить конец файла.
Предыдущая << 1 .. 98 99 100 101 102 103 < 104 > 105 106 107 108 109 110 .. 124 >> Следующая