nsutextbook (1037554), страница 9

Файл №1037554 nsutextbook (Методические указания по выполнению лабораторной работы №1) 9 страницаnsutextbook (1037554) страница 92017-12-25СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 9)

Работа с подстрокамиДля замещения части строки можно использовать функции $Extract и $Piece совместно с командой Set. Функция $Extract извлекает заданные символы и заменяет их подстрокой, вне зависимости от длины подстроки.SAMPLES>set empty=""SAMPLES>set $extract(empty, 4) = "abcde" ; вставит 3 пробела слева, т.к. с 4-ойпозиции нужно вставить строку "abcde"SAMPLES>write empty. .

. abcdeSAMPLES>set $extract(empty, 4, 5) = "12345" ; вместо 4 и 5-го символа вставитьстроку "12345"SAMPLES>write empty. . .12345cdeМожно также использовать функцию $Piece совместно с командой Set для вставкиподстроки внутри строки. Подстрока может включать участки с другими разделителями.38SAMPLES>set empty=""SAMPLES>set $piece(empty, "^", 3) = "abcde" write empty^^abcdeSAMPLES>write $length(empty, "^")3SAMPLES>set $piece(empty, "^", 2) = "9/9/1999" write empty^9/9/1999^abcdeSAMPLES>write $piece($piece(empty, "^", 2), "/", 3)1999SAMPLES>3.6. Работа со спискамиВсе данные Object Script хранятся как строки.

Списки это специальный вид строки,отдельные перечни значений. Они занимают особое место и носят характер собственноготипа данных. Например, имеем список:L1={красный, зеленый, голубой}Этот список состоит из 3-х элементов. Последовательность элементов в списке имеетзначение, в отличие от множеств.

Например, список:L2={красный, голубой, зеленый} отличен от списка L1.Список L3={красный, голубой, , зеленый} имеет 4 элемента, третий элемент не определен.Список L4={красный, голубой, “ ”, зеленый} содержит 4 элемента, при этом 3-ийэлемент это пустая строка.Список может содержать подсписок, например:L5={зеленый, красный, { светло-зеленый, темно-красный, сизо-голубой}, голубой}.В Caché обработка списков играет решающую роль. При этом отдельные элементысписка обычно понимаются как строки символов, исключая ситуацию, когда элемент списка сам является подсписком. Типичные задачи для списков:• Создать список• Определить количество элементов списка.• Выделить один или несколько элементов списка.• Поиск указанного значения в списке.• Замена отдельных значений списка новыми значениями и т.д.Списки могут создаваться и управляться с помощью списковых функций. Например,создание списка выполняется с помощью функции $ListBuild:USER> Set L2=$ListBuild(“красный”,”голубой”,”зеленый”)В табл.6 приведены функции для работы со списками.Таблица 6Функции для работы со спискамиСписковаяСокращеОписаниефункцияние$ListBuild$LBСоздать список$ListLength$LLВозвращает количество элементов списка$List$LIИзвлекает один или несколько элементов списка$ListGet$LGПредотвращает ошибку <null value>, если заданный элемент списка не определен.

По смыслу эквивалентна $Get$ListData$LDЛогическая функция, проверяющая существование элемента списка$ListFind$LFПоиск заданного элемента списка393.6.1. Функция $ListBuildПозволяет создать список. Синтаксис:$LISTBUILD(element,...)$LB(element,...)Где element это элемент списка, строка символов в кавычках. Разделитель элементовсписка – запятая. Например, создание списка X:SET X=$LISTBUILD("Red","Blue","Green")3.6.2. Функция $ListLengthВозвращает количество элементов списка. Синтаксис:$LISTLENGTH(list)$LL(list)Где list это список. Например:WRITE $LISTLENGTH($LISTBUILD("Red","Blue","Green")); вернет 3WRITE $LISTLENGTH("") ; вернет 03.6.3.

Функция $ListИзвлекает один или несколько элементов списка. Синтаксис:$LIST(list,position,end)$LI(list,position,end)Где list это список, Position – задает начальную позицию элементов в списке, End –конечную позицию.Извлекаемые элементы зависят от количества параметров:• $LIST(list) возвращает первый элемент списка.• $LIST(list,position) возвращает элемент в указанной позиции.• $LIST(list,position,end) возвращает подсписок, содержащий элементы списка, начиная с позиции position и заканчивая end.Например:WRITE $LIST($LISTBUILD("RED","BLUE","GREEN")) ; напечатает REDWRITE $LIST($LISTBUILD("RED","BLUE","GREEN"),1) ; напечатает REDSET X=$LISTBUILD("Red","Blue","Green")WRITE $LIST(X,2) ; напечатает BlueSET X=$LISTBUILD("Green ","White ","Brown ","Black ")SET LIST2=$LIST(X,3,-1)WRITE LIST2 ; напечатает BrownBlackФункция $List совместно с оператором Set позволяет заменять элементы списка, добавлять новые элементы к пустым спискам.

Элемент списка сам может быть списком.Можно вкладывать функции $List для извлечения подсписков. Например:>Set L1=$LISTBUILD("RED","BLUE","GREEN")>Set $List(L1,2)= "hhhh"; вставить hhhh на место второго элемента>Write $List(L1,2)hhhh> Set $List(L1,4)= "abcd"; добавить 4-ый элемент в список3.6.4. Функция $ListGetВозвращает элемент списка или требуемое значение по умолчанию, если элемент неопределен. Синтаксис:$LISTGET(list,position,default)$LG(list,position,default)Где list - список40Position – позиция извлекаемого элементаDefault – значение по умолчанию, если элемент не определен.Например:SET LIST=$LISTBUILD("A","B","C")WRITE $LISTGET(LIST) ; напечатает AWRITE $LISTGET(LIST,1) ; напечатает ASET LIST=$LISTBUILD("A","B","C")WRITE $LISTGET(LIST,4) ; напечатает пробел, т.к.

4-го элемента нетWRITE $LISTGET(LIST,4,"ERR"); напечатает "ERR"3.6.5. Функция $ListDataЛогическая функция, проверяющая существование элемента списка. Синтаксис:$LISTDATA(list,position)$LD(list,position)Где list – списокPosition – позиция элемента.Возвращает 1 (true) – если элемент найден и имеет значение, 0 (false) – если не найден или не имеет значения. Например:KILL Y SET X=$LISTBUILD("Red",,Y,"","Green")WRITE $LISTDATA(X,2) ; второй элемент не определен0WRITE $LISTDATA(X,3) ; третий элемент – переменная которой нет0WRITE $LISTDATA(""); пустая строка0WRITE $LISTDATA(X,0) ; элементв нулевой позиции0WRITE $LISTDATA(X,6) ; 6-ая позиция в 5-ти элементном списке03.6.6.

Функция $ListFindПоиск заданного элемента списка. Синтаксис:$LISTFIND(list,value,startafter)$LF(list,value,startafter)Где list – список, value - искомое значение.Startafter – задает позицию списка, после которой следует выполнять поиск. Необязательный элемент. Если не задан, то поиск с первой позиции.Возвращает номер найденного элемента, если элемент найден, и ноль (0), если элемент не найден. Например:SET X=$LISTBUILD("A","B","C","D")WRITE $LISTFIND(X,"B")2SET X=$LISTBUILD("A","B","C","D")WRITE $LISTFIND(X,"B",2)03.7. Работа с датамиВ ObjectScript дата представляется в двух форматах – внутреннем и внешнем.

Внутренний формат даты это целое число, начиная с 0 для даты 12/31/1840 до 2980013 для да-41ты 12/31/9999. Внешний формат это формат более привычный для нас, например:15/12/2003.Также используется системная переменная $Horolog. Системные переменные работают как функции без аргументов. $Horolog содержит текущее время в виде пары чисел,первое число задает внутренний формат даты, второе число задает количество секунд,прошедших с полуночи.

Например:USER> write $Horolog59469,475543.7.1. Функция $ZDateФункция $ZDate преобразует дату из внутреннего формата во внешний формат.Функция имеет 9 аргументов. Для нас существенными являются следующие аргументы:1 аргумент – внутренний формат даты, это число, обязателен, все остальные аргументы не обязательны.2 аргумент – формат возвращаемой даты. Некоторые значения формата: 1 – американский, 2 и 4 – европейский, 10 – порядковый номер дня недели, при этом 0 – это воскресенье, 1- понедельник и т.д.3 аргумент – список месяцев. Например: « январь февраль март апрель май июньиюль август сентябрь октябрь ноябрь декабрь».9 аргумент – подавляет вывод сообщения об ошибке.

Если значение аргумента равно–1, то в случае неправильной даты функция возвращает –1 (минус 1).Пример:SAMPLES> write !,$Zdate($Horolog, 2, " январь февраль март апрель май июнь июль август сентябрь октябрь ноябрь декабрь")27 октябрь 2003SAMPLES>write $zdate($horolog)11/24/2003SAMPLES>write $zdate($horolog, 2)24 Nov 2003SAMPLES>write $zdate($horolog, 10)1 ; понедельникUSER>write $zdate(11111111111111111111, 1,,,,,,, -1)-13.7.2. Функция $ZDateHФункция $ZDateH преобразует внешний формат даты во внутренний формат.

Функция также имеет девять входных аргументов, из которых только первый является обязательным, он задает дату во внешнем формате. Все остальные аргументы имеют тот жесмысл, что и для функции $ZDate.По умолчанию, $ZDateH генерирует ошибку для неправильной даты, но ее девятыйаргумент позволяет подавить вывод сообщения об ошибке.В выражениях для задания внешнего представления даты может использоваться T(для текущей даты) и добавление или вычитание дней, как видно из примеров ниже.SAMPLES >write $ZDateH("24/11/2003", 4)59497SAMPLES >w $ZDateH("21/05/2002", 4)58945SAMPLES>write $ ZDateH ("21/9/1999", 5,,,,,,, -1)-1SAMPLES>write $ ZDateH ("21 SEP", 5,,,,,,, -1)4259433SAMPLES>write $ ZDateH ("SEP 21 1998", 5,,,,,,, -1)57607SAMPLES>write $ ZDateH ("T+12", 5,,,,,,, -1)59509SAMPLES>write $ ZDateH ("MAT 3", 5,,,,,,, -1)-13.8.

МассивыРабота с массивами с Caché чрезвычайно проста. Caché включает поддержку массивов различной размерности. Массивы не требуют предварительного объявления. Массиввозникает только тогда, когда его элементам присваивается значение, при этом тип элемента определяется типом присваиваемого значения. В качестве индекса могут выступатьпеременные любых типов.Например, массив MyVar может иметь следующие элементы:Set MyVar=7Set MyVar(22)=-1Set MyVar(-3)=89Set MyVar(“MyString”)=”gg”Set MyVar(-123409, “MyString”)=”k”Set MyVar(“MyString”, 2398)=23Set MyVar(1.2, 3, 4, “Five”, “Six”, 7)Обратите внимание, в качестве индекса массива могут использоваться целые числакак положительные, так и отрицательные, дробные числа, а также строки.Из факта существования узла MyVar(22) вовсе не следует существование узла, скажем, MyVar(10).

Т.е. многомерные массивы являются разреженными. Это означает, что впримере выше используется только семь элементов для хранения, по количеству узлов,т.к. нет необходимости объявлять массивы или определять их размеры, это дает дополнительную выгоду в памяти: место под пустые элементы не резервируется, элемент начинаетиспользовать память по мере возникновения.43Глава 4. Объектная модель CachéОбъектная модель Caché разработана в соответствие со стандартом ODMG (ObjectData Management Group). Класс – это некий шаблон, в соответствии с которым строятсяконкретные экземпляры класса. Объект в Caché имеет определенный тип, т.е. являетсяэкземпляром какого-либо класса.

Характеристики

Тип файла
PDF-файл
Размер
2,42 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее