русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Массивы и ассоциативные массивы


Дата добавления: 2014-11-28; просмотров: 604; Нарушение авторских прав


В gawk к элементу массива обращаются, как и в обычных языках программирова­ния — с помощью индекса, заключенного в скобки и помещенного после имени масси­ва. Массив, подобно переменным, определяется после первого использования индекса. Однако в среде gawk, в отличие от некоторых языков программирования, объявлять массив и задавать его границы не требуется. В gawk массивы являются динамическими и их размерность увеличивается по мере добавления новых элементов.

В следующем примере объявляется массив titles, каждому элементу которого при­сваивается значение первого поля в строке. Этот массив может содержать произвольное количество элементов (в данном случае оно равно количеству строк). В качестве индекса массива используется переменная num, значение которой увеличивается на единицу после каждого обращения к элементу массива. По окончании вычисления на печать выводится последний элемент массива.

$ gawk ' (title»[num] - $1; num++} END {print title»[num -1]}' booksRaven

Предположим, нам требуется присвоить значение каждому полю отдельной записи массива. Это можно реализовать с помощью обычных операторов присваивания, задавая нужное значение для каждого поля. Существует и более короткий путь решения зада­чи — использование функции split, которая разделяет строку символов на сегменты и помещает полученные сегменты в массив. Аргументами функции split являются входная строка символов, результирующий массив и символ-разделитель. Символ-раз­делитель представляет собой строку. Например, при использовании в качестве разде­лителя двоеточия будет задействована строка «>. Если символ-разделитель не указан, в качестве разделителя по умолчанию применяется символ пробела или табуляции.

Функцию split можно использовать и для обработки строковых значений. Напри­мер, функция split ("9-10-92" ,date,"-") присваивает значение 9 элементу массива date[l], значение 10 — элементу date[2], а значение 92 — элементу date[3]. В следующем примере значение каждого поля строки присваивается элементу массива myrec. Выбор присваиваемой строки осуществляется с помощью шаблона /Dickens/. Вывод полей производится в обратном порядке.



$ gawk '/Dickens/ (split($0, myrec); print myrec[4], myrec[3], myrec[2], myrec[1]}' books

Academic 3.50 Dickens Christmas

В gawk можно также определять ассоциативные массивы. В массивах такого типа в качестве индекса используются строковые значения. Предположим, вам требуется найти информацию об издательстве, опубликовавшем произведение некоего автора. В следующем примере названия издательств присваиваются элементам массива, в котором в качестве индекса используются имена авторов. Второе поле представляет собой имя автора, а четвертое — название издательства. В данном примере на печать выводится название издательства Dickens. Обратите внимание на двойные кавычки вокруг строки «Dickens». При использовании строковой константы в качестве индекса массива строку требуется заключать в двойные кавычки.



<== предыдущая лекция | следующая лекция ==>
Арифметические операторы и операторы присваивания | Использование шаблона в качестве условия


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.024 сек.