MAVZU:Maple dasturlash tillarining pretsedura va funksiya yaratish vositasi.
REJA:
Pretsuduralar
Protsedura operandlari
Baholash qoidalari
Xulosa
Jarayonlar
Qo'ng'iroqlar ketma-ketligi proc (parameterSequence) :: returnType;
local localSequence; global globalSequence; variant optionSequence; tavsif tavsifi Tenglik; usesSequence-dan foydalanadi; statementSequence end proc;
Parametrlar
parameterSequence - rasmiy parametr deklaratsiyalari
returnType - qaytarilgan qiymat turi bo'yicha (ixtiyoriy) tasdiq
localSequence - mahalliy o'zgaruvchilarning nomlari (ixtiyoriy)
globalSequence - (ixtiyoriy) protsedurada ishlatiladigan global o'zgaruvchilar nomlari
optionSequence - (ixtiyoriy) protsedura variantlari nomlari
descriptionSequence - (ixtiyoriy) protsedurani tavsiflovchi qatorlar ketma-ketligi
usesSequence - (ixtiyoriy) protsedura foydalanadigan modullar yoki paketlar nomlari
statementSequence - protsedura mazmunini o'z ichiga olgan bayonotlar
Tavsif
Protsedura ta'rifi - bu ismga berilishi mumkin bo'lgan to'g'ri ifodadir. Keyinchalik ushbu nom protsedurani funktsiya chaqiruvida chaqirish uchun unga murojaat qilish uchun ishlatilishi mumkin.
Bo'sh bo'lishi mumkin bo'lgan Qavslar parametriSequence protsedura parametrlarining nomlarini va ixtiyoriy ravishda turlarini va / yoki sukut bo'yicha qiymatlarini belgilaydi. Eng sodda shaklda parameterSequence - bu faqat vergul bilan ajratilgan belgilar ro'yxati, ular orqali protsedura ichida argumentlarga murojaat qilish mumkin.
Parametrda yanada murakkab parametrlarni e'lon qilish mumkin, shu jumladan har bir argument bo'lishi kerak bo'lgan turni e'lon qilish qobiliyati, har bir parametr uchun standart qiymatlar, argumentlarni baholash qoidalari, parametrlar o'rtasidagi bog'liqlik va o'tkazilishi mumkin bo'lgan argumentlar sonining chegarasi. . Ushbu imkoniyatlar haqida ko'proq ma'lumot olish uchun protsedura parametrlarini ko'ring.
ParameterSequence-ning yopiladigan qavsiga ixtiyoriy ravishda ::, returnType va a; qo'shilishi mumkin. Bu turdagi deklaratsiya emas, aksincha tasdiq. Agar kernelopts (assertlevel) 2 ga o'rnatilgan bo'lsa, protsedura qaytib kelganda qaytarilgan qiymat turi tekshiriladi. Agar tur tasdiqlashni buzsa, istisno ko'tariladi.
Global globalSequence bandidagi global o'zgaruvchining deklaratsiyasi turdagi spetsifikatsiyaga ega bo'lishi mumkin emas.
OptionSequence variantida protseduraning xatti-harakatlariga ta'sir qiladigan bir nechta variantlarni ko'rsatish mumkin; band. Bular o'z sahifalarida batafsil tavsiflangan.
Tavsif tavsifi Tenglik; bandda protsedura haqida bir yoki bir nechta tavsif satrlari ko'rsatilgan. Jarayon bosilganda ushbu tavsif ma'lumotlari ham chop etiladi. Hatto tanasi bosib chiqarishda tanlangan kutubxona protseduralari ham ularning tavsifini (agar mavjud bo'lsa) bosib chiqaradi. DescriptionSequence shuningdek, protsedura haqidagi ma'lumotlar Describe buyrug'i bilan bosib chiqarilganda ham qo'llaniladi.
Majburiy emas useSequence; jumla useSerror bilan foydalanish operatori bilan ifodalashga teng. Boshqa so'zlar bilan aytganda,
proc ... LinearAlgebra dan foydalanadi; ... oxiri prokga teng:
proc ... LinearAlgebra-dan ... oxirgi foydalanishda foydalaning; tugatish
DeyishSequence protsedura algoritmini amalga oshiruvchi, nuqta-vergul (;) bilan ajratilgan bir yoki bir nechta Maple tili bayonotlaridan iborat.
F nomiga berilgan protsedura f (argumentSequence) yordamida chaqiriladi. Argumentlar o'tkazilishini tushuntirish uchun Argumentlarni qayta ishlash bo'limiga qarang.
Jarayon chaqiruvining qiymati bu oxirgi bajarilgan bayonotning qiymati yoki qaytarish bayonotida ko'rsatilgan qiymatdir.
Yashirin mahalliy o'zgaruvchilar
Mahalliy localSequence-da aniq ko'rsatilmagan holda protsedura davomida ishlatiladigan har qanday o'zgaruvchiga; yoki global globalSequence; mahalliy yoki global ekanligini aniqlash uchun quyidagi qoidalardan foydalaniladi:
O'zgaruvchan mahalliy va global odamlar orasida (aniq yoki yashirin) atrofdagi protseduralarda, ichki qismdan boshlab qidiriladi. Agar bu nom parametr, mahalliy o'zgaruvchi yoki atrofdagi bunday protseduraning global o'zgaruvchisi sifatida duch kelsa, u aynan shu narsani anglatadi.
Aks holda, tayinlangan yoki for loopida boshqaruvchi o'zgaruvchi sifatida ko'rinadigan har qanday o'zgaruvchi avtomatik ravishda mahalliy bo'ladi.
Qolgan har qanday o'zgaruvchilar global hisoblanadi.
Izoh: _Env bilan boshlangan har qanday ism atrof-muhit o'zgaruvchisi hisoblanadi va yuqoridagi qoidalarga bo'ysunmaydi.
Protsedura operandlari
Maple protsedurasi boshqalarga o'xshab amal qiladigan iboradir (masalan, butun sonlar, yig'indilar, tengsizliklar, ro'yxatlar va boshqalar). Shunday qilib, uning op funktsiyasi yordamida olinadigan kichik qismlari mavjud. Jarayonda sakkizta shunday operand mavjud:
op 1 - parametrSequence,
op 2 - bu localSequence,
op 3 - bu variantSequence,
op 4 - eslab qolish jadvali,
op 5 - bu ta'rif, tenglik,
op 6 globalSequence,
op 7 - leksik jadval (quyida keltirilgan yozuvga qarang) va
op 8 - returnType (agar mavjud bo'lsa).
Agar protseduraning tegishli kichik qismi mavjud bo'lmasa, ushbu operandlarning har biri NULL bo'ladi.
Izoh: leksik jadval - bu e'lon qilinmagan o'zgaruvchilar va mahalliy aholi, globallashuvlar yoki atrofdagi protseduralar parametrlari o'rtasidagi yozishmalarni yozish uchun ishlatiladigan ichki tuzilish. Bu protseduraning yozilgan qismiga to'g'ri kelmaydi.
Baholash qoidalari
Protseduralarda maxsus baholash qoidalari mavjud (jadvallar kabi), agar f nomiga protsedura berilgan bo'lsa, unda: f faqat f nomini baholaydi,eval (f) haqiqiy protsedurani beradi va op (eval (f)) yuqorida aytib o'tilgan sakkizta operandning ketma-ketligini beradi (ularning barchasi yoki barchasi NULL bo'lishi mumkin).
Protsedura doirasida, EquationSequence ijrosi davomida mahalliy o'zgaruvchilar bir darajali bahoga ega. Bu shuni anglatadiki, ifodada o'zgaruvchini ishlatish, avval ushbu qiymatni baholash o'rniga, ushbu o'zgaruvchining joriy qiymatini beradi. Bu o'zgaruvchilar protseduradan tashqarida qanday baholanishidan farq qiladi, ammo o'zgaruvchilarning boshqa dasturlash tillarida ishlashiga o'xshaydi.
Izohlar
Eslab qolish jadvallari (variantni eslab qolish) o'zgarishi mumkin bo'lgan ob'ektlarni (masalan, rtables yoki jadvallarni) kirish sifatida qabul qilishga mo'ljallangan protseduralar uchun ishlatilmasligi kerak, chunki Maple eslash jadvallaridan qiymatlarni olishda bunday ob'ekt o'zgarganligini aniqlamaydi.
Misollar
lc: = proc (s, u, t, v)
tavsif "argumentlarning chiziqli kombinatsiyasini shakllantirish";
s * u + t * v
tugatish jarayoni;
lc: = proc (s, u, t, v) ... oxiri;
> lcApplyFunction (?, x, uminus0I, y)
Pi x - Men y
> DescribeApplyFunction (lc)
# argumentlarning chiziqli kombinatsiyasini hosil qiladi
lc (s, u, t, v)
> lc
lc
> evalApplyFunction (lc)
proc (s, u, t, v) ... oxir;
> opApplyFunction (1, evalApplyFunction (lc))
s, u, t, v
addList: = proc (a :: list, b :: integer) :: integer;
mahalliy x, i, sum;
tavsif "raqamlar ro'yxatini qo'shing va doimiyni ko'paytiring";
x: = b;
yig'indisi: = 0;
chunki men bir ishda
sum: = sum + a [i];
tugatish;
sum: = sum * x;
tugatish jarayoni;
addList: = proc (a :: list, b :: integer) :: integer; ... oxiri;
> sumList: = addListApplyFunction ([1,2,3,4,5], 2)
sumList: = 30
Tafsilotlar
Parametrlarni aniqlash, o'zgartirish va boshqarish bo'yicha tafsilotlar uchun protsedura parametrlarini ko'ring.
Shuningdek qarang
_ natija, tasdiqlash, funktsiya qo'ng'iroqlari, kernelopts, familiyani baholash, protsedura parametrlari, ProcessOptions, prokrame, o'qish va saqlash protseduralari, eslash, qaytarish, maxsus baholash qoidalari, foydalanish
Do'stlaringiz bilan baham: |