Анимация
JavaScript
|
Главная Библионтека Вав выбор: П п-о...... Ваи выбор: р Про-р- Ваш выбор: г Прогр- ваш выбор: а В этой небольшой программе я постарался продемонстрировать весь изученный в этом часе материал списки литералов, массивы, функции split и join, контекст и циклы foreach. Подобную игру можно было бы запрограммировать массой различных способов, наша же программа предназначена для иллюстрации основных возможностей массивов. Резюме Массивы и списки предназначены для хранения набора объектов г1. В них может находиться практически неограниченное количество скаляров. С ними можно обращаться как с единым целым и оперировать их отдельными элементами. Perl позволяет легко копировать массивы, сортировать их, объединять несколько массивов и преобразовывать скаляры в массивы и наоборот. Работа большинства операторов и функций Perl зависит от контекста. Они по-разному велуг себя в скалярном контексте и контексте списка. Вопросы и ответы Существует ли быстрый способ поиска определенной строки в элементах массива? Обычно используют итерацию в массиве с проверкой каждого его элемента. Если такую проверку необходимо делать много раз, для поиска элементов лучше воспользоваться возможностями ассоциативн1х массивов или хэшей, рассматриваемтх на 7-м занятии. Как удалить повторяющиеся элементы массива? Как подсчитать количество уникальн1х элементов? Ка мрить, содержатся ли в двух различн1х массивах одинаковые элементы? Ответ тот же: используйте хэш. Хэши позволяют быстро и эффективно выполнять различные манипуляции над массивами. Все эти вопросы будут рассмотрены на 7-м занятии. Семинар Контрольные вопросы 1. Какой наиболее эффективный способ поменять значения переменных $а и а) 5a=Sb; б) ($а,$Ь)=($Ь,$а); в) $с=$а; $а=$Ь; Sb=Scj 80 Чть I. :Ei Perl 2. Какое значение получит переменная $а после выполнения оператора Sa=scalar(§array); ? а) количество элементов массива б) индекс последнего элемента массива в) такой синтаксис недопустим. Ответы 1. Правильным является вариант б). Первый пример вообще не будет работать, поскольку начальное содержимое переменной $а будет потеряно. Вариант в) подходит, но в нем используется вспомогательная переменная. Простой код варианта б) корректно меняет значения переменных и не требует введения дополнительных переменных. 2. Правильный ответ - вариант а). Массив в скалярном контексте возвращает количество своих элементов. Для определения индекса последнего элемента используется конструкция 5*array. Использование функции scalar в этом примере не обязательно, поскольку в левой части оператора присваивания находится скаляр. Он и определяет скалярный контекст для массива Упражнения Модифицируйте программу Hangman так, чтобы фигурка печаталась в вертикальном положении. 5-й час Работа с файлами До сих пор наши программы работали автономно. Единственно доступными для них средствами связи с внешним миром были вывод предназначенных пользователю, и ввод данных с клавиатуры. Однако отныне все изменится! Perl - язык с исключительными возможностями работы с файловым вводом-выводом. Скаляры Perl могут вместить запись любой возможной длины, а массивы - содержимое целых файлов, если, конечно, позволяет оперативная память компьютера. С данными, содержащимися в скалярах и массивах Perl, можно производить многочисленные манипуляции и записывать их в новые файлы. Perl создавался с учетом максимального облегчения выполнения операций файлового ввода-вывода. Некоторые его встроенные операторы оптимизированы для выполнения типичных операций ввода-вывода. На этом занятии вы узнаете, как получить доступ к данным в файлах. Основные темы этого занятия. • Как открывать и закрывать файлы. • Как записывать данные в файлы. • Как читать данные из файлов. • Как создавать "безопасные" программы. Открытие файлов ДЛЯ чтения и записи файлов в Perl необходимо открыть так называемый дескриптор файла. Дескрипторы файлов - еще одна разновидность переменных Perl. Они служат для идентификации файлов в программе и операционной системе. В дескрипторе содержится информация о способе открытия файла, режимах доступа (чтение и/или запись), а также атрибуты, определенные пользователем. Из материала прошлтх занятий вы уже знакомы с одним из дескрипторов - STDIN. Этот дескриптор автоматически передается программе при запуске и обычно связан с клавиатурой (позднее вы узнаете еще некоторые особенности дескриптора STDIN). Чть I. :Ei Perl 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 [ 21 ] 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |