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

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

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

Они применяются для построения макробиблиотек ичерез директиву Include – отсюда и их название – могут быть использованы в макропрограммах.4.Объектный код (.OBJ) – это промежуточный код, компилируется в объектный код.Это происходит автоматически при сохранении отредактированной программы. Вовремя выполнения используется только объектный код. Фирмы разработчики тиражируют свои приложения большей частью в объектном коде.Диалог сохранения также позволяет задать расширение RTN, которое не являетсяреальным расширением для программ.

Это просто способ показать все программы сразубез дублирования.27Текст программы набирается в Caché Studio. Проверка выполнения производится вCaché Terminal.В случае ошибки выдается имя метки+ смещение, где произошла ошибка. Например:SAMPLES>do ^badroutine<UNDEFINED>start+3^badroutineSAMPLES 2do>quitSAMPLES>Строка программы может иметь метку в начале, называемую тегом, код команды икомментарий, но все эти элементы являются необязательными. Все эти элементы отделяются друг от друга табуляцией или пробелами. Например:end quit ; конец3.3.2. Основные структуры программы CachéПрограмма в Caché состоит из индивидуальных блоков, создаваемых и редактируемых как исходный код. Программа состоит из подпрограмм, процедур и функций.Имя программы – определяется именем MAC-файла, в котором она хранится, этолюбая комбинация буквенно-цифровых символов ASCII, имя не должно начинаться сцифры.

При сохранении программы в файле ее имя не должно содержать символы: _(подчерк), - (минус), ; (точка с запятой). Имя, включающее эти символы, не является верным.Вызов программы:Do ^RoutineNameПервой строкой программы может быть оператор с меткой (тегом), метка может сопровождаться списком входных параметров, заключенных в круглые скобки.Программа – это контейнер для подпрограмм, методов, процедур и функций.

Программы, имена которых начинаются с %(процента), считаются библиотечными программами.Строение программной строки[метка] [код команды] [комментарий]В программах в основном используются процедурные блоки, которые заключены вфигурные скобки и поэтому могут располагаться на нескольких строках, а также командные конструкции условного выполнения программы, в которых исполняемый программный код также заключен в фигурные скобки.3.3.3.

Общая структура подпрограммыПодпрограмма это именованный блок кода внутри программы, состоит из входнойметки, отдельных программных строк, содержащих коды, и заключительной командыQuit. Она может содержать параметры и никогда не возвращает значение. Синтаксис подпрограммы:Label ([param [= default]])// комментарий// кодQuit// заметьте, что Quit не имеет параметровГде, Label – имя подпрограммы, param – это параметры подпрограммы, default – значения по умолчанию.Вызов из этой же программы возможен с параметрами, при этом можно задать значения по умолчанию.Do Label[(param)]Cинтаксис вызова подпрограммы из другой программы:Do Label^Routine[(param)]28Где Routine – программа, которая находится в файле Routine.Mac, Label – подпрограммапрограммы Routine, param – список параметров.Пример 1.

Программа, находящаяся в файле routine.Mac имеет вид:set x=1,y=2do minim(x,y) // вызов из этой же программыwrite !,"x=",x," y=",yquitminim(a=0,b=0) // подпрограммаif (a>b){ set mn=b }else{ set mn=a}write !,"min=",mnquitВызов подпрограммы minim из этой же программы:do minim(x,y)Вызов подпрограммы minim из внешней программы:do minim^routine(9,2)Возможен вызов без параметров, в этом случае используются значения параметровпо умолчанию:do minim^routine()Если циркумфлекс(^) при вызове отсутствует, например Do minim(x,y), это означает,что метку следует искать в текущей программе.Можно также использовать синтаксис вызова: метка + смещение, и таким образомвойти в N-ую строку программы. Пример: Do minim+3^routine – вход в программу черезвторую строку кода. Такую возможность можно использовать при тестировании.3.3.4. Встроенные функцииВ Caché имеется набор предопределенных (встроенных) функций, которые можноиспользовать для различных целей.

Встроенные функции могут использоваться в любыхвыражениях. Вызов функции заменяется ее значением, вычисляемым в зависимости отаргументов. Функции в Caché являются рекурсивными, т.е. могут содержать в виде аргументов самих себя. Имена встроенных функций начинаются со знака $. Вызов имеет следующий синтаксис:$Function(Arg1, Arg2, …).Имена функций пишутся строчными или прописными буквами.

В табл.3 приведенсписок наиболее часто используемых встроенных функций.Таблица 3Классификация встроенных функцийКласс функцийТипичные представителиОбщие функции$Ascii, $CASE, $Char, $Random, $Select, $Stack,$Text, $ViewОперации с переменны$Data, $Get, $Order, $Name, $Query, $QSubscript,ми и базой данных$QLengthОбработка строк$Extract, $Find, $Length, $Piece, $Reverse, $TranslateФорматирование чисел$FNumber, $Justify, $Inumber, $NUMBERОбработка списков$List, $ListBuild, $ListData, $ListFind, $ListGet,29Обработка транзакцийМатематические функцииДата, времяОбщие функции$ListLength$Increment$ZABS, $ZEXP, $ZLN, $ZSIN$ZDate, $ZDateTime, $ZDateH, ZTime, ZtimeH$ZWAscii, $ZWChar, $ZF,$ZHex, $ZLAscii, $ZLChar,$ZSEArch, $ZSEEKСтроковые функции$ZCONVert, $ZCyc, $ZSTRIPОбработка битовых строк$ZBitAND, $ZbitCount, $ZbooleanБолее подробная информация о встроенных функциях содержится в документациипо Caché.3.3.5.

Пользовательские функцииНаряду со встроенными функциями, пользователю предоставляется возможность писать свои функции. По способу построения и использования в выражениях функция оченьпохожа на подпрограмму, отличие заключается в том, что функция может возвращать значение. Если код функции заключить в фигурные скобки, то функция будет трактоватьсякак процедура. Синтаксис:ИмяФункции (СписокПараметров)<код>Quit <выражение>Функция может использоваться в выражениях т.к.

возвращает значение.Вызов функции из этой же программы:Set <Переменная>=$$<ИмяФункции>(Список Параметров)Do <ИмяФункции>(СписокПараметров)Вызов функции с помощью Do ничем не отличается от вызова подпрограммы.Внешний вызов из другой программы выглядит следующим образом.Функцию можно вызвать оператором Do, если не требуется возвращаемое функциейзначение, в этом случае вызов ничем не отчается от вызова подпрограммы:Do <Имя Функции>^<Имя Программы>(СписокПерем)Если требуется возвращаемое значение:Set <Перем>=$$<Функция>^<Программа>(СписокПерем)Пример 1. Функция, которая возвращает случайное число в некотором диапазоне вфайле FRnd.Mac:set a=200,b=100set r=$$Rnd(a,b) // вызов из той же программыwrite !,"r=",rQuitRnd(m,n) // функцияQuit $Random(m-n)+1+mВызов функции из другой программы:set r=$$Rnd^FRnd(200,100)Пример 2.

Программа func1.Mac содержит функцию minim:set x=6,y=2set mn=$$minim(x,y) // вызов из этой же программыwrite !,"x=",x," y=",y,”min=”,mn30quitminim(a,b) // функцияwrite "minim"if (a>b){ quit b }else{ quit a}quitВызов функции из внешней программы:Set m=$$minim^func1(9,2)3.3.6. ПроцедурыПроцедура именует набор операторов языка ObjectScript, для того, чтобы этот наборможно было вызвать из любого места программы, возможно несколько раз, возможно сразными параметрами.

Этот набор операторов заключается в фигурные скобки {}. Формаописания:<имя>(СписокФормальныхПараметров)[<СписокОбщедоступныхПараметров>]<Доступ>{ <тело процедуры>[Quit <значение>]}СписокФормальныхПараметров – локальные параметры процедуры, доступны только внутри процедуры, в вызываемых ею процедурах не видны.СписокОбщедоступныхПараметров – необязателен. Общедоступные параметрыдоступны во всех процедурах, которые данная процедура вызывает и в тех, которые вызывают данную процедуру.

Для определения public-переменных их список помещается вквадратных скобках за именем процедуры и списком ее локальных параметров.Доступ – задает доступность процедуры: private или public. Private (по умолчанию) –означает, что процедура доступна только внутри данной программы, public – процедурадоступна для внешних программ.Задание параметра:(<имя параметра>)[=<Значение по умолчанию>]Вызов процедуры из этой же программы:Do Proc(<список параметров>)Вызов процедуры из внешних программ:Do Proc^Routine(<список параметров>)// не возвращает значениеГде Proc – имя процедуры, Routine – имя программы.Пример 1: Файл proc2.Mac содержит следующий код:set c=1,d=3do MyProc(1,2)// внутренний вызов процедурыquitMyProc(X,Y)[A,B] Public{ write "X+Y=", X+Y, !set A=1,B=4write "A+B=", A+B, !}Вызов процедуры из той же программы:31Do MyProc(1,2)Вызов процедуры из другой программы:Do MyProc^proc2(1,2)Пример 2.

Программа proc2.Mac, содержит вызов процедуры MyProc. ПроцедураMyProc в свою очередь вызывает процедуру abc, которой передаются локальные параметры x, y и глобальные параметры a, b:set c=1,d=3do MyProc(1,2)// процедура MyProcMyProc(X,Y)[A,B] Public{ write "X+Y=", X+Y, !set A=1,B=4do abc(X,Y) // вызов процедуры abc из MyProcwrite "A=", A, " B= ", B, !}// Процедура abc, вызываемая из MyProcabc(n,m)[A,B]{ set n=9,m=5write "a=",A,"b=",B}3.3.7. Область действия локальных переменныхВсе однажды созданные переменные программ, подпрограмм и функций видны повсюду, даже после завершения программы, и доступ к ним ограничивается программистом, если он к этому стремится.В примере 1 п.3.3.3. переменные x и y, созданные в программе routine.Mac, сохраняются также в подпрограмме minim, более того, они сохраняются после выполнения программы.

Это может быть нежелательно. Часто необходимо ограничить доступ к некоторым переменным до уровня конкретных подпрограмм или процедур.В Caché имеется ряд возможностей для «очистки» локальных переменных:1. С помощью команды Kill в конце программы, но перед заключительной командой Quit для удаления переменных после выхода из программы.2. Использование команды New для задания списка локальных переменных дляпрограммы или подпрограммы, которые из нее вызываются.3.

Передача параметров по значению.4. Определение public и private переменных в процедурах, рассматривая их какинкапсулированные блоки в подпрограмме.3.3.8. Команда NewКоманда New задает список переменных, локальных для данной программы и всехвызываемых из нее подпрограмм. При выходе из программы такие переменные неявноудаляются. Синтаксис:New [( Список переменных)]New – без аргументов изолирует все переменные, ее следует применять осторожно.Пример:New a,b // изолирует две переменные a и bПример:P1// первая строка программы32New aSet a=1 Do P2WriteQuitP2// первая строка подпрограммыNew x, ySet x=a, y=3QuitВ этом примере переменная a существует в P1 и P2, т.к.

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

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

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

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