русс | укр

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

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

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

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


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

Номер или строка


Дата добавления: 2013-12-23; просмотров: 760; Нарушение авторских прав


Поле переменных

Поля текущей записи могут ссылаться на поле переменных $1, $2, ... $NF. Эти переменные могут использоваться в арифметических или строковых операциях, им могут присваиваться различные значения. Например, вы можете разделить второе поле файла countries на 1000, чтобы площадь измерялясь не в тысячах, а в миллионах квадратных метров:

{ $2 /= 1000; print }

или назначить новую строку полю:

BEGIN { FS = OFS = "\t" } $4 == "North America" { $4 = "NA" } $4 == "South America" { $4 = "SA" } { print }

Действие BEGIN устанавливает поле разделителя вводного файла (FS) и поле разделителя выводного файла (OFS) в значение табуляции. Обратите внимание, что print в четвертой строке программы печатает значение $0 после того как оно было модифицировано предыдущими присвоениями.

К полям можно получить доступ при помощи выражений. Например,

$(NF-1)

означает: со второго до последнего поля текущей записи. Здесь необходимы круглые скобки, т.к. значение $NF-1 означает: на единицу меньше, чем значение последнего поля.

Поле переменных, ссылающееся на несуществующее поле, например, $(NF+1), имеет в качестве своего начального значения пустую строку. Тем не менее новое поле может быть создано при присвоении ему значения. Например, следующая программа, вызвавшая файл countries, создает пять полей, дающих плотность населения:

BEGIN { FS = OFS = "\t" } { $5 = 1000*$3/$2; print }

Количество полей может изменяться от записи к записи, но обычно число их ограничивается 100 полями.

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

pop += $3

pop и $3 должны трактоваться как цифровые.

В контексте строки, подобной:



print $1 ":" $2

строки $1 и $2 сливаются.

В операторах присвоения "v = e" или "op = e" тип "v" станет таким же, как и у "e". В двухсмысленном контексте:

$1 == $2

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

Если два операнда являются цифровыми, то сравнение будет цифровым, если операнды являются строковыми, то сравнение - строковое. Все поля переменных имеют строковый тип; дополнительно каждое поле, которое содержит только цифры, имеет цифровой тип. Например, сравнение "$1 == $" успешно выполнится для любой части ввода:

1 1.0 +1 0.1e+1 10E-1 001

но неуспешно для:

(ноль) 0

(ноль) 0.0

0a 0

1e50 1.0e50

Существуют две идиомы приведения выражения к одному или другому типу:

number"" -

присоединяет нулевую строку к number для приведения к строковому типу;

string+0 -

добавляет ноль к string для приведения к цифровому типу.

Чтобы выполнить строковое сравнение между двумя полями, используйте:

$1 "" == $2 ""

Так значение: "12.34x" равно 12.34, а значение "x12.34" равно нулю.

Значение строки арифметического выражения вычисляется путем формирования строки с преобразованием формата выводного файла.

Неустановленные переменные имеют цифровое значение 0 (ноль) и строковое значение "".

Несуществующие поля имеют только строковое значение ""; они не являются цифровыми.



<== предыдущая лекция | следующая лекция ==>
Строки и строковые функции | Массивы


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


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

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

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


 


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

 
 

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

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