கணினி அறிவியல் - விவரக்குறிப்பு | 11th Computer Science : Chapter 6 : Specification and Abstraction
விவரக்குறிப்பு (Specification)
ஒரு சிக்கலைத் தீர்ப்பதற்கு, முதலில் நாம் அந்த சிக்கலை தெளிவாகவும் துல்லியமாகவும் விளங்க வேண்டும். கொடுக்கப்பட்ட உள்ளீடு மற்றும் தேவையான வெளியீடு மூலம் ஒரு சிக்கல் குறிப்பிடப்படுகிறது. ஒரு சிக்கலை தீர்ப்பதற்கு ஒரு நெறிமுறையை வடிவமைக்க வேண்டும், நாம் கொடுக்கப்பட்ட உள்ளீடு மற்றும் தேவையான வெளியீட்டின் பண்புகளை தெரிந்து கொள்ள வேண்டும். உள்ளீடு மற்றும் தேவையான வெளியீட்டிற்கும் இடையேயான தொடர்பை உருவாக்குவதே நெறிமுறையின் இலக்காகும்.
ஒரு நெறிமுறையானது கொடுக்கப்பட்ட உள்ளீட்டு பண்புகள், உள்ளீடு மற்றும் தேவையான வெளியீடு ஆகியவற்றுக்கு இடையேயான
தொடர்புகளால் குறிப்பிடப்படுகிறது. எளிமையான சொற்களில், ஒரு நெறிமுறையின் விவரக்குறிப்பு விரும்பிய உள்ளீடு வெளியீடு உறவு ஆகும்.
ஒரு நெறிமுறைக்கும் பயனருக்கும் இடையே உள்ளீடுகளும் வெளியீடுகளும் மாறிகள் மூலம் அனுப்பப்படுகின்றன. நெறிமுறை துவங்கும் போது மாறிகளின் மதிப்புகள் ஆரம்ப நிலை என்றும், நெறிமுறை முடியும் போது மாறிகளின் மதிப்புகள் இறுதி நிலை என்று அறியப்படுகிறது.
உள்ளீடுகளின் தேவையான பண்புகள் P எனவும் மற்றும் விரும்பிய வெளியீடுகளின் பண்புகள் Q எனவும். பின்னர் S- என நெறிமுறை குறிப்பிடப்பட்டுள்ளது.
1 நெறிமுறை_பெயர் (உள்ளீடுகள்)
2 -- உள்ளீடுகள் : P
3 -- வெளியீடுகள் : Q
இந்த விவரக்குறிப்பானது நெறிமுறை தொடங்கும் போது P ஐ உள்ளீடாக பெற்று அது முடியும் போது வெளியீடான Q ஐ திருப்தி செய்ய வேண்டும்.
ஒரு -- இரட்டை கோடுடன் தொடங்கும் வரியானது மற்ற மீதமுள்ள வரியை ஒரு குறிப்பு என்று குறிக்கிறது. குறிப்புகளுடன் தொடங்கும் கூற்றுகளைகணிப்பொறி செயல்படுத்துவதில்லை இது பயணர்கள் புரிந்துகொள்வதற்கான மேற்கோள் ஆகும். நெறிமுறைகளைப் புரிந்துகொள்வதற்கு குறிப்புகள் முக்கியமான மற்றும் பயனுள்ளதாகும். நெறிமுறை குறியீட்டில், ஒரு குறிப்புடன் தொடங்க நாம் இரட்டை கோடுகள் (--) பயன்படுத்துகிறோம். (C ++ இல், ஒரு இரட்டை (ஸ்லாஷ் -slash) // உடன் தொடங்கும் வரி குறிப்பு என்று குறிப்பிடுகிறது).
எடுத்துக்காட்டு 6.6. ஒரு முழு எண் Aலிருந்து முழு எண் B-யை வகுத்து வரும் ஈவு மற்றும் மீதியைக் கான ஒரு நெறிமுறையின் விவரக்குறிப்பை எழுதுக.
வகு (22, 5) = 4, 2 - ( ஈவு - 4, மீதி - 2)
வகு (15, 3) = 5, 0 – ( ஈவு - 5, மீதி - 0)
A மற்றும் B ஐ உள்ளீடு மாறிகள் என்று கருதுவோம். மாறி q - ல் ஈவையும் மற்றும் மாறி r -ல் மீதியையும் சேமித்து வைப்போம். Q மற்றும் r ஆகியவை வெளியீடு மாறிகள் ஆகும்.
A மற்றும் B அகிய உள்ளீடுகளின் பண்புகள் யாவை?
1. A - ஒரு முழு எண்ணாக இருக்க வேண்டும். முழு எண் மூலம் வகுக்கும் பொது மீதி கிடைக்கும். மற்றும்
2. B – 0 வாக இருக்கக்கூடாது, ஏனென்றால் 0 ஆல் வகுக்க அனுமதிக்கப்படாது.
உள்ளீடுகளின் பண்புகளை குறிப்பிடுவோம்.
— inputs: A is an integer and B ≠ 0
A மற்றும் B -யின் உள்ளீடுகள் q மற்றும் அகிய வெளியீடுகளுக்கு இடையே உள்ள உறவு என்ன?
1. q (ஈவு) மற்றும் r (மீதி) அகிய இரண்டு வெளியீடுகளின் பண்புகள் நிறைவேற்றப்பட வேண்டும்.
A = q X B + r, மற்றும்
2. மீதி / வகு எண் B விட குறைவாக இருக்க வேண்டும்,
0 ≤ r < B
இந்த தேவைகளை இணைத்து, தேவையான உள்ளீடு -- வெளியீடு உறவு என குறிப்பிடுவோம்.
-- outputs: A = q × B + r மற்றும் 0 < r < B.
குறிப்பு பொதுவாக -- என்ற குறியுடன் தொடங்குகிறது
--inputs: என தொடங்கும் வரி குறிப்பாகும். இது கொடுக்கப்பட்ட உள்ளீடுகளின் பண்பை குறிக்கின்றது
--outputs: என தொடங்கும் வரி குறிப்பாகும். இது உள்ளீடு மற்றும் வெளியீடுகளின் இடையே உள்ள உறவை குறிக்கும். நெறிமுறையின் விவரக்குறிப்பு
1. divide (A , B)
2. -- inputs: A is an integer and B ≠ 0
3. -- outputs : A = q × B + r and 0 ≤ r < B
விவரக்குறிப்பு வடிவம் (Specification format): பொதுவாக விவரக்குறிப்புகளை மூன்று பகுதி வடிவத்தில் எழுதலாம் :
• நெறிமுறையின் பெயர் மற்றும் உள்ளீடுகள்
• உள்ளீடு: உள்ளீடுகளின் பண்புகள்
• வெளியீடு: உள்ளீடு வெளியீடு உறவு
முதல் பகுதி நெறிமுறையின் பெயர் மற்றும் உள்ளீடுகளாகும். இரண்டாவது பகுதி உள்ளீடுகளின் பண்புகள் ஆகும். இது குறிப்புகளாக எழுதப்பட்டு --inputs உடன் தொடங்குகிறது. மூன்றாவது பகுதி விரும்பிய உள்ளீடு-வெளியீடு உறவாகும். இது குறிப்புகளாக எழுதப்பட்டு --outputs உடன் முடிகிறது. உள்ளீடு மற்றும் வெளியீடை குறிப்பிட ஆங்கிலம் மற்றும் கணித குறியீடுகளை பயன்படுத்தலாம்.
எடுத்துக்காட்டு 6.7. ஒரு எண்ணின் வர்க்க மூலத்தை (square_root) கணக்கிடுவதற்கு நெறிமுறையின் விவரக்குறிப்பை எழுதவும்.
1. நெறிமுறை, square_root என பெயரிடுவோம்.
2. இது எண்ணை உள்ளீடாக எடுக்கும். உள்ளீட்டை நாம் n என பெயரிடலாம். n எதிர்மறை எண்ணாக இருக்கக்கூடாது.
3. இது வர்க்க மூலத்தின் n-ஐ வெளியீடுகிறது. வெளியீட்டை y என பெயரிடுவோம். பின்னர் n வர்க்க மூலத்தின் y ஆக இருக்க வேண்டும்.
இப்போது நெறிமுறையின் விவரக்குறிப்பு
square_root(n)
-- inputs: n is a real number, n ≥ 0.
-- outputs: y is a real number such that y2 = n.
ஒப்பந்த விவரக்குறிப்பு (Specification as contract)
நெறிமுறை வடிவமைப்பாளருக்கும் மற்றும் நெறிமுறை பயனர்களுக்கும் இடையே ஒரு ஒப்பந்தமாக செயல்படுகிறது .ஏனென்றால் வடிவமைப்பாளர் மற்றும் பயனரின் உரிமைகள் மற்றும் பொறுப்புகளை அது வரையறுக்கிறது.
உள்ளீடுகளின் தேவையான பண்புகளை நிறைவேற்றுவது பயனரின் பொறுப்பு, ஆனால் அது வடிவமைப்பாளரின் உரிமை. விரும்பிய உள்ளீடு - வெளியீடு உறவு வடிவமைப்பாளரின் பொறுப்பு மற்றும் பயனரின் உரிமை. பயனர் உள்ளீடுகளின் பண்புகளை முக்கியமாக, நிறைவேற்றாவிட்டால், விரும்பிய உள்ளீடு-வெளியீடு உறவை நிறைவேற்ற செய்ய வடிவமைப்பாளரின் கட்டளையிலிருந்து விடுபடலாம்.
எடுத்துக்காட்டு 6.8. நெறிமுறை square_root விவரக்குறிப்பைக் எடுத்துக்கொள்ளவும்.
square_root(n)
-- inputs: n is a real number, n ≥ 0.
-- outputs : y is a real number such that y2 = n.
நெறிமுறை வடிவமைப்பாளர், கொடுக்கப்பட்ட எண்ணானது எதிர்மறை எண் அல்ல, மேலும் நெறிமுறை உருவாக்கவும் முடியும். பயனர் கொடுக்கப்பட்ட எண் வர்க்க மூலத்தின் எண்ணாக வெளியீட்டாக எதிர்பார்க்கலாம்.
கொடுக்கப்பட்ட எண்ணின் வெளியீடு எதிர்மறை வர்க்க மூல எண்ணாக இருக்கலாம். வெளியீடு நேர்மறை வர்க்க மூல எண் என்று குறிப்பிடப்படவில்லை. பயனர் உள்ளீடாக எதிர்மறை எண்ணைக் கொடுத்தால், வெளியீடு எண்ணின் வர்க்க மூல எண்ணாக இருக்க வேண்டிய அவசியமில்லை.