Первый сайт на Perl

восстановление акпп на рено


Вопросы и Упражнения

Вопросы для самоконтроля

1. Что такое регулярное выражение?

2. Какие символы имеют в регулярном выражении Perl специальное значение?

3. Что такое метапоследовательность, как она образуется?

4. Что такое обратная ссылка?

5. Какая переменная используется в операции подстановки по умолчанию?

6. Какой смысл имеет символ "$" в следующих регулярных выражениях:

/abc*$/

/[аbс*$]/

/$abc/

7. Какой смысл имеет символ " ^ " в следующих регулярных выражениях:

/ ^ аbс/

/[аbс]/

/аbс ^ /

8. Объясните, какие множества строк соответствуют следующим образцам. Приведите пример.

/a.out/

/a\.out/

/\d{2,3}-\d{2}-\d{2}/

/(.)(.).\2\1/ /(.) (.).\02\01/

9. Напишите образец, задающий палиндром из шести букв.

10. Напишите команду замены, которая:

- заменяет все символы новой строки пробелами;

- выделяет из полного маршрутного имени файла имя файла;

- выделяет из полного маршрутного имени файла имя каталога.

11. Каково значение следующих выражений, если значение переменной

$var равно "123qwerty"? $var =~ /./ $var =- /[A-Z]*/ $var =~ /\w{4-9}/ $var =~ /(\d)2(\D/ $var =~ /qwerty$/ $var =~ /123?/

11. Какое значение будет иметь переменная $var после следующих операций подстановки, если ее начальное значение равно "qwertyi23qwerty"?

$var =~ s/qwerty/XYZ/; $var =~ s/[a-zJ+/X/g; $var =~ s/B/W/i; $var =~ s/(.)\d.*\l/d/; $var =~ s/(\d+)/$l*2/e;

12. Начальное значение переменной $var равно "qwertyi23qwerty". Каким оно будет после выполнения операций транслитерации?

$var =~ tr/a-z/A-Z/; $var =~ tr/a-z/0-9/; $var =~ tr/a-z/O-9/d; $var =~ tr/231/564/; $var =~ tr/123/ /s; . $var =~ tr/123//cd;

13. Переменная $var имеет значение "qwertyqwerty". Каково значение, возвращаемое функцией?

substr ($var, 0, 3);

substr ($var, 4);

substr ($var, -2, 2);

substr ($var, 2, 0) ;

index ($var, "rt"); index ($var, "rtyu"); index ($var, "er", 1); index ($var, "er", 7); rindex ($var, "er");  

Упражнения

1. Напишите программу, которая читает стандартный ввод, умножает каждое встретившееся число на 2 и выводит результирующую строку.

2. Напишите программу, которая читает стандартный ввод, удваивает каждую букву и выводит результирующую строку.

3. Напишите программу, подсчитывающую, сколько раз каждый алфавитно-цифровой символ встретился во вхбдном файле.

4. Напишите программу, которая считывает строку из стандартного файла ввода, меняет в ней порядок следования символов на обратный и выводит результат.

5. Напишите программу, которая выполняет преобразование русского текста из одной системы кодировки в другую:

(Dos 866, Windows 1251, UNIX KOI8} <=> (Dos 866, Windows 1251, UNIX, KOI8}

Для выполнения задания можно воспользоваться табл. 10.3, содержащей шестнадцатеричные коды символов русского алфавита.

Таблица 10.3. Таблицы кодов русского алфавита

Символ

866

1251

KOI8

Символ

866

1251

KOI8

А

80

СО

Е1

а

АО

ЕО

С1

Б

81

С1

Е2

б

А1

Е1

С2

В

82

С2

F7

в

А2

Е2

D7

Г

83

СЗ

Е7

г

A3

ЕЗ

С7

Д

84

С4

Е4

Д

А4

Е4

С4

Е

85

С5

Е5

е

А5

Е5

С5

Ё

FO

А8

ВЗ

е

F1

В8

A3

Ж

86

С6

F6

ж

А6

Е6

D6

3

87

С7

FA

3

А7

Е7

DA

И

88

С8

Е9

и

А8

Е8

С9

И

89

С9

EA

Й

А9

Е9

СА

К


СА

EB

к

АА

ЕА

СВ

Л


СВ

EC

л

АВ

ЕВ

СС

М


СС

ED

M

АС

ЕС

CD

Н

8D

CD

ЕЕ

Н

AD

ED

СЕ

О


СЕ

EF

0

АЕ

ЕЕ

CF

П

8F

CF

FO

П

AF

EF

DO

Р

90

DO

F2

Р

ЕО

FO

D2

С

91

D1

F3

с

Е1

F1

D3

Т

92

D2

F4

т

Е2

F2

D4

У

93

D3

F5

У

ЕЗ

F3

D5

ф

94

D4

E6

ф

Е4

F4

С6

X

95

D5

E8

X

Е5

F5

С8

Ц

96

D6

E3

ц

Е6

F6

СЗ

ч

97

D7

FE

Ц

Е7

F7

DE

ш

98

D8

FB

ш

Е8

F8

DB

Щ

99

D9

FD

Щ

Е9

F9

DD

ъ


DA

FF

ъ

ЕА

FA

DF

ы


DB

F9

ы

ЕВ

FB

D9

ь


DC

F8

ь

ЕС

FC

D8

э

9D

DD

FC

э

ED

FD

DC

ю


DE

EO

ю

ЕЕ

FE

СО

я

9F

DF

F1

я

EF

FF

D1


Назад Начало