Подполе содержит информацию, позволяющую при обработке записи связывать одно поле с другими полями (например, с различной графикой). Предназначено для связи полей в одной записи. Два поля, между которыми устанавливается связь, должны содержать подполе $6 в соответствии с правилами, приведенными ниже. Подполе содержит также код мотивации связи. При использовании этого подполя первые два элемента приводятся всегда, третий элемент является факультативным. Подполе может использоваться в полях блока справок и примечаний 3-- и блоков формирования ссылок 4--, 5--.
Подполе может использоваться в полях блока информационных примечаний 3-- и блоков формирования ссылок 4--, 5--.
Для подполя $6 определены следующие элементы данных:
Элементы данных. Таблица 22 | |Наименование элемента |Кол-во |Позиции | | |данных |символов |символов | |1|Код мотивации связи - |1 |0 | | |обязат. | | | |2|Номер связи - обязат. |2 |1-2 | |3|Метка связываемого |3 |3-5 | | |поля | | |
(1) Код мотивации связи (позиция символа 0)
Код определяет мотивацию связи полей. a = альтернативная графика z = другое
(2) Номер связи (позиции символов 1-2)
Номер каждой связываемой группы полей, состоит из двух цифр и приводится в подполе $6 каждого из связываемых полей. Функцией номера является обеспечение связи между связываемыми полями. Он не предназначен для использования в качестве номера, устанавливающего последовательность или месторасположение поля в записи. Номер связи может присваиваться произвольно, он должен лишь быть идентичным в каждом из связываемых полей и не дублировать номер, используемый для других групп полей в записи.
(3) Метка связываемого поля (позиции символов 3-5)
Этот элемент данных представляет собой метку поля, с которым осуществляется связь. Элемент является факультативным. Если метка поля, с которым осуществляется связь, идентична метке исходного поля, элемент обычно опускается.
$7 ГРАФИКА
Определение
Подполе идентифицирует графику данных в поле, когда она отличается от графики, указанной в поле 100 (позиции символов 21-22).
Подполе может использоваться в полях блока заголовков 2--, блока справок и примечаний 3--, блоков формирования ссылок 4-- и 5--, блока 7--. В записи может приводиться более одного заголовка блока 2-- в повторяющихся полях. В этом случае поле блока 2-- для заголовка в альтернативной графике должно содержать подполе $7. Подробнее о методах обработки альтернативных график см. раздел Данные в альтернативной графике.
Наличие
Повторяется для заголовков, содержащих данные в различных графиках.
Двухсимвольный буквенный код определяет графику заголовка, если идентичный заголовок приводится в записи в иной графике.
Используются следующие значения кода:
. ba = латинская графика
. ca = кириллица
. da = японская - неопределенная графика
. db = японская - каньи
. dc = японская - кана
. ea = китайская
. fa = арабская
. ga = греческая
. ha = древнееврейская
. ia = тайская
. ja = деванагари
. ka = корейская
. la = тамильская
. zz = другая
Если различные графики относятся к разным языкам, применяются правила обработки параллельных данных.
$8 ЯЗЫК ЗАГОЛОВКА
Подполе идентифицирует язык заголовка, если он (язык) отличается от языка каталогизации (языка ссылок, примечаний и т.д.), указанного в поле 100 (позиции 9-11). Подполе может использоваться в полях блоков заголовков 2--, блоков формирования ссылок 4-- и 5-- и блока связанных заголовков 7--. Если в подполе код языка не указывается, то по умолчанию считается, что язык заголовка, содержащегося в подполе $a данного поля, соответствует коду, приведенному в позициях 21-22 поля 100 данной записи.
Подробнее о языке заголовка см. раздел Параллельные данные.
Повторяется для заголовка, содержащего данные на разных языках.
Для обозначения языка заголовка используется трехсимвольный код.
Приложение 2
Спецификация языка Java
П2.1 Основные особенности
П2.1.1. Введение
Язык хорош для сетей. Известно, что даже бытовую технику объединяют/подключают в(к) сети - "сетевой" язык очень полезен. На Java удобно писать сетевые программки. Язык придумали в фирме Sun не на пустом месте. (см также на их сайт (9) или русcкоязычный ресурс (10)). Итак Sun сделали интерпретируемую версию C++ под названием Oak - для видеомагнитофонов, микроволновых печей и проч.. Программы для такой техники не должны зависать (ТВ или печь не должна виснуть). Потому в синтаксис заложена надежность и безопасность программок. Язык JavaTM компании Sun Microsystems решает эти проблемы.
. Java является объектно-ориентированным и одновременно простым языком программирования.
. Цикл разработки программных средств с использованием Java значительно сокращается в силу того, что Java - интерпретируемый язык. Процесс компиляции-сборки-загрузки устарел - теперь программу надо только откомпилировать и сразу запускать.
. Приложения переносимы на многие платформы. Однажды написанное приложение не придется модифицировать под другие платформы: оно будет работать без каких-либо изменений на различных операционных системах и аппаратных архитектурах.
. Приложения надежны: Java контролирует обращения к памяти.
. Приложения высокопроизводительны: несмотря на то, что язык Java - интерпретируемый, код Java программы оптимизируется до фазы исполнения.
. Поддержка системы многопоточности позволяет создавать параллельно исполняемые взаимодействующие легковесные процессы.
. Приложения настраиваемы под изменяющееся окружение: возможна динамическая загрузка программных модулей из любого места в сети.
. Пользователи могут быть уверены в безопасности приложений, даже если в них загружен программный код из любого места в Internet. Исполняющая система Java имеет встроенную защиту от вирусов и попыток взлома.
П2.2 Синтаксис Java
// это однострочный комментарий
/* это многострочный комментарий */
(или можно посреди строки /* кусок программки */ при отладке так вот закомментировать)
/** это особый комментарий */ для создания документации при помощи утилиты javadoc. Она кое-что понимает и создает документацию в виде HTML- страницы. Например комментарий относится к введенной следом переменной в программке. Тогда в HTML-странице будет мой комментарий и следом - та самая переменная указана. Посмотрите в Документацию Java! Полезно документацией уметь пользоваться. Ее очень много и все запомнить нереально. (и, как уже было сказано, в печатаных книгах за Sun не поспевают.. Реплика из зала: есть книжка, морально старая, но хорошо написанная - 2 тома - P.Norton "программирование на Java".
П2.2.1. Типы данных:
Простые типы данных
целочисленные = для хранения целых чисел byte (8 bit) : -128 - +127 short = 2 byte : -32768 .. +32767 int = 4 byte : -... +2147483647 long = 8 byte : много-много ( 10**19 степени)
Много разных типов? Это сделано для экономии места в оперативной памяти. Если есть куча *небольших* чисел, то мне незачем отводить на них *большие* куски памяти. На использование int рассчитаны все функции. Если переполняется предусмотренная под тот или иной тип ячейка памяти - данные просто теряются. Но такие ошибки надо предусматривать и перехватывать механизмом перехвата исключительных ситуаций.
Вещественные числа (с плав. точкой):
float : 4 byte : min=+/-1,4*10**-45 max=+/-3,4*10**+38 double : 8 byte : max=+/-2*10**-308 max=+/-1.7*10**+308
Символьные char : 2 byte (чтобы туда влазила кодировка unicode - см www.unicode.org - 65 000 символов на всех языках и еще место осталось). В Win окне или в DOS-окне не сработает, но в бродилках все ОК
Логические-булевские
boolean : thrue/false (нельзя как в других языках понимать это как 0 или 1)
Что такое "простые типы" ? Это значит отвели память и никак ее не структурировали. А еще существуют сложные типы данных - объекты. Об них позднее. Теперь о них упоминаю, чтоб вас не пугало отсутствие строкового типа string. Объекты - это современно и здорово. Это нужно освоить. Это несложно и удобно... Но пока закончим разговор про простые типы. int a; // мы сделали переменную имя а для хранения целого числа.
// в конце оператора ставят ; и пробелов, табуляций.. может
// быть много (не то что в Бейсике)
Память не только выделилась, но и заполнилась. В других языках надо инициализировать переменную - назначить ей некоторое значение, "ноль" например, иначе там будет вредный мусор. А в java переменная сама собой заполняется нулями. Вещественная переменная заполнилась бы 0,0 ; Символьная заполнится нулевым символом кодировки unicode (т.е. 0000 ), boolean - false ; (хотя лучше все же инициализировать явно, по старинке)
Вводить переменные можно в любом месте до их использования. А не только в начале.
Имена как и в других языках - состоят из букв, цифр (но с цифры имя нельзя чтоб начиналось), символа подчеркивания. (это правило полезно использовать и в именах файлов) a = 5 ; // в объявленную ранее переменную занесли 5
Можно эти операции объединить вот так: int a = 5 ;
Примеры для переменных других простых типов: float c = 7.2 ; boolean d = true ; char e = 'M' ; // только в одинарные кавычки
Спецсимволы - как и в C - например:
n enter=newline t = tab r = enter f = newpagetoprint b backspace
Использование числовых значений кодировки unicode:
u0037 = это то же самое, что символ '7' (цифры десятичные)
Расшифровка символов есть на сайте Unicode и на розданном CD есть расшифровка для русского языка.
Чтобы спецсимвол не работал как спецсимвол, ставят косую черту: char c = ''' ; // тут в "c" поместили символ "одиночная кавычка"
Экзотика: Можно использовать и 8 и 16-ричную форму записи, например так: a = 0x7B // записано 16-ричное число 7B a = 0175 // записано 8-ричное число 175
---
Какие преобразования типов данных возможны?: int x; // 4 byte длиной byte y; // 1 byte длиной x=y; // более короткое число "y 1 byte длиной" положили в место
// для длинного "x 4 byte длиной"
Наоборот тоже возможно, но компилятор будет ругаться.
Еще можно явно преобразовывать типы: y=(byte)x; // сделать из 4-байтового числа "x" 1-байтовое
Аналогичные штуки работают для вещественных чисел. double z = 7.8; Превратим вещ. z в целое x=(int)z; // сработает, но пропадет хвостик 0.8
А если попытаться написать x=z; то компилирование не произойдет и байт-код не получиться. Наоборот, преобразование с удлинением места в памяти не обязательно указывать во что преобразовываем. То есть при таком безопасном преобразовании можно применить неявную форму записи преобразования. То есть в примере выше можно написать z=x;
П2.2.2. Математические операции
Все обычные операции
(кто не знает что такое % - это есть вычисление остатка от целочисленного деления, например
10 % 3 -> получится 1 ,
10,2 % 3 -> тоже 1) увеличить на число и результат положить в ту же ячейку-переменную, откуда брали. Сокращают запись: а=а+5; то же самое что а+=5;
Аналогично пишут для - % * /
Инкремент, например а=а+1;
++а = сначала увеличиваем переменную, потом можем воспользоваться хранящимся в ней значением. а++ = наоборот, сначала можем воспользоваться хранящимся в переменной значением, потом увеличиваем ее на единицу;
Пример: int a=5, b; b=++a; // это значит в b попала шестерка
// (сначала к 5 прибавилась 1, потом ее
// использовали для занесения в ячейку "6")
Аналогично есть "декремент"
--а или а--
(это все не сложно, нужно лишь привыкнуть и запомнить разные разности)
Сравнение
(результат будет булевского типа)
< > =< >= ==
!= не равно
Пример int a = 5; int b = 6; boolean c c = а == b // в "с" будет-запишется false
Логические операции
|| или
! не
&& и
исчерпывающие примеры true && true = true true && false = false false && true = false false && false = false
true || true = true true || false = true false || true = true false || false = false
!true = false
!false = true
Зачем это нужно? Для написания всяких сложных условий типа "если переменная А меньше того-то, но больше сего-то , тогда
П2.2.3. Исключительные ситуации (exeptions)
Прежде чем погибнуть по причине ошибки, программа создает "исключения". Это объекты - экземпляры какого-нибудь класса из подклассов java.lang.Throwable Класс Throwable содержит строку сообщения String. Много стандартных классов-наследников у Throwable.
Их (объекты-"исключения") можно перехватывать и обрабатывать, не давая совершиться чему-то страшному. Например вводим буквы вместо цифр в калькулятор. "Обработать искл.сит.", - значит понять что случилось, остановить программу и выдать сообщение, "не цифра!" например. Применяется конструкция
try{ тут кусок программы способный привести к ошибкам
}catch(Exception e){ тут кусок программы "что делать" когда ошибка произошла
}finally{ что делать дальше независимо от результатов обработки в catch надеюсь далее будет пример
}
Имя "Exception" означает на самом деле ту самую искл. сит., которая произошла в классе, который мы вызвали из раздела Try{"тут кусок программы способный привести к ошибкам"}. Компилятор помнит, откуда был сделан вызов метода, далее в том же блоке try-catch приведшего к исключению, поэтому собственное имя искл.сит. не требуется, вполне годится общестандартное имя "Exception". Экземпляр класса Exception будет создан.
Исключительные ситуации можно создавать и искусственно. Для проверки неких условий. (оператор throw new "имя_Exception"
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16