|
Вопросы и Упражнения
Вопросы для самоконтроля
1. Какие формы обращения к подпрограмме
вы знаете?
2. Что такое область видимости
переменной?
3. Как ограничить область видимости
переменной?
4. Чем отличаются переменные,
объявленные при помощи функции ту о от переменных, объявленных при помощи функции
local () ?
5. Каким образом данные передаются
в подпрограмму и из подпрограммы?
6. Что такое передача параметров
по ссылке и по значению?
7. Какой тип данных называется
typegiob?
8. Как осуществить передачу по
ссылке параметра-массива?
9. В каких случаях функция local
о не может быть заменена функцией
my ()?
10. Что такое прототип?
11. Какие значения будут иметь
переменные $х, @list1, @list2 после выполнения программы
#!/usr/bin/perl
$х = 0;
@list1 = (1, 2, 3);
@list2 = funcO ; sub func {
local ($x);
$x = 1;
@list1 = (4, 5, 6); ___
} "X
\
Упражнения
1. Напишите подпрограмму, которая
выводит пронумерованный список своих аргументов.
2. Напишите подпрограмму, которая
выводит пронумерованный список своих аргументов в обратном порядке.
3. Напишите подпрограмму, которая
подсчитывает число символов из стандартного ввода и выводит результат.
4. Напишите подпрограмму, которая
выводит свои параметры-массивы в обратном порядке по элементам.
5. Напишите подпрограмму, которая
для двух своих параметров-массивов осуществляет взаимный обмен элементов с одинаковыми
индексами.
6. Одной из известных задач, для
решения которых применяется рекурсия, является задача о Ханойских башнях.
7. На плоскости установлены три
стержня: а, b, с (рис. 11.1).
На стержень а нанизаны n дисков,
расположенных по возрастанию диаметра. Необходимо переместить диски со стержня
а на стержень с, используя стержень b и соблюдая следующие ограничения: можно
перемещать только один диск одновременно, диск большего диаметра никогда не
может находиться на диске меньшего диаметра.
Напишите подпрограмму, которая
описывает последовательность переноса дисков в ходе решения задачи, выводя сообщения
вида:
Перенос диска со стержня а на стержень
с.
Рис 11.1. Задача
о Ханойских башнях
|