கணினி அறிவியல் : பைத்தானில் C++ நிரல்களை இறக்கம்
செய்தல்
மதிப்பீடு
பகுதி - அ
சரியான விடையை தேர்ந்தெடுத்து
எழுதுக (1 மதிப்பெண்)
1. பின்வருவனவற்றுள் எது
Scripting மொழி அல்ல?
அ)
ஜாவாஸ்கிரிப்ட்
ஆ)
PHP
இ)
பெர்ல்
ஈ)
HTML
விடை: ஈ) HTML
2. பைத்தான் நிரலில் C++ நிரலை
தருவித்தல் எவ்வாறு அழைக்கப்படுகிறது?
அ)
wrapping செய்தல்
ஆ)
பதிவிறக்கம் செய்தல்
இ)
இணைத்தல்
ஈ)
பிரித்தல்
விடை: அ)
wrapping செய்தல்
3. API ன் விரிவாக்கம்
அ).
Application Programming Interpreter
ஆ)
Application Programming Interface
இ)
Application Performing Interface
ஈ)
Application Programming Interlink
விடை : ஆ) Application
Programming Interface
4. பைத்தான் மற்றும் C++ நிரல்களை
இடைமுகப்படுத்துவதற்கான கட்டமைப்பு
அ)
Ctypes
ஆ)
SWIG
இ)
Cython
ஈ)
Boost
விடை: ஈ) Boost
5. பின்வருவனவற்றுள் எது உங்கள்
குறிமுறையை இது தனித்தனி பகுதிகளாக பிரித்தெடுப்பதற்கான மென்பொருள் வடிவமைப்பு தொழில்நுட்பம்?
அ)
பொருள்நோக்கு நிரலாக்கம்
ஆ)
கூறுநிலை நிரலாக்கம்
இ)
குறைந்த நிலை மொழி நிரலாக்கம்
ஈ)
செயல்முறை நோக்கு நிரலாக்கம்
விடை: ஆ) கூறுநிலை
நிரலாக்கம்
6. நீங்கள் விண்டோஸ் இயக்க முறைமைய
தொடர்பு கொள்ள எந்த கூறுநில அனுமதிக்கிறது?
அ)
OS கூறுநிலை
ஆ)
sys கூறுநிலை
இ)
csv கூறுநிலை
ஈ)
getopt கூறுநிலை
விடை: அ) OS கூறுநிலை
7. சரங்களை எந்த மாதிரியாக பிரிக்கும்பொழுது
பிழையின்றி அமைந்தால், getopt() வெற்றி அணியை திருப்பி அனுப்பும்?
அ)
argv மாறி
ஆ)
opt மாறி
இ)
args மாறி
ஈ)
ifile மாறி
விடை : இ) args
மாறி
8. பின்வரும் நிரல் பகுதியில்
உள்ள செயற்கூறி பெயரை அடையாளம் காண்க.
if_name_=='_main_':
main(sys,argv[1:])
அ)
main(sys.argv[1:]
ஆ)
_name_
இ)
_main
ஈ)
argv
விடை : அ) main
(sys,argv[1:1]
9. கீழ்க்கண்டவற்றுள் எது உரை,
எண்ச படங்கள் மற்றும் அறிவியல் சார்ந்த தரவுகள் செயலாக்கப் பயன்படும்?
அ)
HTML
ஆ)
C
இ)
C++
ஈ)
PYTHON
விடை : ஈ)
PYTHON
10. __name_ இது எதனை கொண்டுள்ளது?
அ)
c++ filename
ஆ)
main() name
இ)
python filename
ஈ)
os module na
விடை : அ) c++
filename
பகுதி - ஆ
அனைத்து வினாக்களுக்கும்
விடையளி (2 மதிப்பெண்கள்)
1. Scripting மொழிக்கும், மற்ற
நிரலாக்க மொழிக்கும் உள்ள தத்துவார்த்த வேறுபாடு யாது?
விடை. (i) அடிப்படையில் அனைத்து scripting மொழிகளும் நிரலாக்க மொழிகளாகும்.
இரண்டுக்குமிடையே தத்துவார்த்தமான வேறுபாடு என்னவெனில், Scripting மொழிக்கு தொகுத்தல்
படிநிலைத் தேவைப்படாது, மாறாக விளக்கம் தேவைப்படும்.
(ii) உதாரணத்திற்கு ஒரு C++ நிரல் இயக்குவதற்கும் முன்பாக, தொகுக்கப்பட
வேண்டும். அதே சமயம் ஜாவாஸ்கிரிப்ட் அல்லது பைத்தான் போன்ற scripting மொழிகள் தொகுக்கப்பட
தேவையில்லை.
(iii) நிரலாக்க மொழிக்கு தொகுப்பான் / நிரல்பெயர்ப்பி தேவைப்படுவது
போல scripting மொழிக்கு வரி மொழி மாற்றித் தேவைப்படுகிறது.
2. தொகுப்பான் மற்றும் வரிமொழி மாற்றியை வேறுபடுத்துக.
3. விரிவாக்கம் தருக. (i)
SWIG (ii) MinGW
விடை. (i) SWIG - Simplified Wrapper Interface Generator
(ii) MinGW - Minimalist GNU for windows விண்டோஸ்-க்கான குறைந்த பட்ச
GNU)
4. கூறுநிலைகளின் பயன் யாது?
விடை. கூறுநிலை நிரலாக்கம் என்பது உங்கள் குறிமுறையை சிறுசிறு பகுதிகளாக
பிரிப்பதற்கான மென்பொருள் வடிவமைப்பு நுட்பமாகும். இந்த பகுதிகள் கூறுநிலைகள் என்றழைக்கப்படுகின்றன.
பயன் :
(i) கூறுநிலை , குறிமுறையின் மறுபயனாக்கத்தை வழங்குகிறது.
(ii) வெவ்வேறு நிரல்களில், நாம் மிகுதியாக பயன்படுத்தும் செயற்கூறு
வரையறைகளை நகலெடுப்பதற்கு பதிலாக, அவற்றை ஒரு கூறுநிலையில் வரையறுத்து, தருவித்துக்
கொள்ளலாம்.
5. cd கட்டளையின் பயன் யாது? எடுத்துக்காட்டு
தருக.
விடை. "cd" கட்டனை change dictionary என்பதை குறிக்கும்...
எ.கா. "cd C:\program Files |OpenOfice 4 \program"
பகுதி - இ
அனைத்து வினாக்களுக்கும்
விடையளி (3 மதிப்பெண்கள்)
1. பைத்தான் மற்றும் C++ வேறுபடுத்துக.
பைத்தான்
1. பொதுவாக, பைத்தான் ஒரு ‘வரி மொழி மாற்றி' மொழியாகும்.
2. பைத்தான் மாறும் தன்மைக் கொண்ட மொழியாகும்.
3. மாறியை அறிவிக்கும் போது, அது சார்ந்த தரவின வகையை குறிப்பிடத் தேவையில்லை
4. இது Scripting மற்றும் பொதுப் பயன் மொழியென இருவகையிலும் செயல்பட முடியும்.
C++
1. பொதுவாக C++ மொழி, ஒரு தொகுப்பு மொழியாகும்.
2. C++ நிலையான தன்மைக் கொண்ட தொகுக்கப்பட்ட மொழி.
3. மாறியை அறிவிக்கும் போது, தரவினத்தை குறிப்பிட வேண்டும்.
4. இது ஒரு பொதுப்பயன் நிரலாக்க மொழியாகும்.
2. ' Scripting மொழியின் பயன்பாடுகள்
யாவை?
விடை. (i) ஒரு நிரலில் சில செயல்பாடுகளை தானியங்குப்படுத்துதல்
(ii) தரவு தொகுப்பிலிருந்து தகவலைப் பிரித்தெடுத்தல்
(iii) பழமையான நிரலாக்க மொழிகளுடன் ஒப்பிடும் போது, குறைந்த நிரல் குறிமுறையைக்
கொண்டது.
(iv) பயன்பாடுகளுக்கு புதிய செயல்பாடுகளை கொண்டு வர முடியும் மேலும்,
சிக்கலான அமைப்புகளை ஒருங்கமைக்க முடியும்.
3. MinGW என்றால் என்ன? அதன் பயன்
யாது?
விடை . (i) MinGW இயக்க நேர தலைப்புக் கோப்புகளின் தொகுப்பைக் குறிக்கிறது.
விண்டோஸ் இயக்க முறைமையில் இயங்கும் வகையில், C,C++ மற்றும் FORTRAN நிரல் குறிமுறைகளைத்
தொகுக்கவும், இணைக்கவும் இது பயன்படுகிறது.
(ii) MinGW - W64 (MinGW ன் பதிப்பு) windows இன் C++க்கு சிறந்த தொகுப்பான்
/ நிரல் பெயர்ப்பி ஆகும். C++ நிரல்களை தொகுத்து, இயக்க, விண்டோஸ் இயக்க முறைமைக்கு
'g++' தொகுப்பான் தேவை MinGW_g++ஐ பயன்படுத்தி பைத்தான் நிரல் மூலம் C++ நிரல்களை தொகுத்து,
இயக்க அனுமதிக்கிறது.
(iii) C++ நிரல் குறிமுறையைக் கொண்ட பைத்தான் நிரல்களை MinGW-W64
Project திட்டப்பணி (run முனையம்) மூலம் மட்டுமே இயக்க முடியும்.
(iv) பைத்தான் நிரல்கள் இயக்கப்பட வேண்டிய கட்டனை வரி சாளரத்தை run
முனையம் திறந்து வைக்கும்.
(v) g ++ என்பது GCCயை (GNU C தொகுப்பான்) அழைக்கும் நிரல். இது தானாகவே
தேவையான C++ நூலக கோப்புகளை இலக்க நிரலுடன் இணைக்கிறது.
4. கீழ்க்காணும் கூற்றில் கூறுநிலை,
செயற்குறி, வரையறையின் பெயர் ஆகியவற்றை அடையாளம் காண்க.
விடை: welcome.display()
5. sys.argv என்றால் என்ன?
விடை. (i) sys.argv என்பது பைத்தான் நிரலுக்கு அனுப்பி வைக்கப்படும் கட்டளை
வரி செயலுருபுகளின் பட்டியலாகும். argv கட்டளை வரி உள்ளீட்டு வழியாக வரும் உருப்படிகள்
அனைத்தையும் கொண்டிருக்கும். இது, அடிப்படையில், நிரலின் கட்டளை வரி செயலுருபுகளைக்
கொண்ட ஓர் அணியாகும்.
(ii) sys.argv ஐ பயன்படுத்த, முதலில் நீங்கள் sys கூறுநிலையைத் தருவித்துக்
கொள்ள வேண்டும். முதல் செயலுருபு sys.argv [0] எப்பொழுதும் செயல்படுத்த வேண்டிய நிரலின்
பெயராக இருக்கும். மேலும், sys. argv [1] என்பது நிரலுக்கு (இங்கு இது C++ கோப்பு)
அனுப்படும் முதல் செயலுருபு ஆகும்.
பகுதி - ஈ
அனைத்து வினாக்களுக்கும்
விடையளி (5 மதிப்பெண்கள்)
1. பைத்தானில் ஏதேனும் 5 பண்புக்கூறுகளை
கூறவும்.
விடை. (i) பைத்தான் தேவையற்ற (garbage) மதிப்புகளைச் சேகரிக்கும் தானியங்கியைப்
பயன்படுத்துகிறது. இந்த பண்புக்கூறு C++ல் கிடையாது.
(ii) C++ நிலையான வகையைச் சார்ந்த மொழி, ஆனால் பைத்தான் ஒரு மாறக்கூடிய
வகையைச் சார்ந்த மொழியாகும்.
(iii) பைத்தான் வரி மொழி மாற்றி மூலம் இயங்குகிறது. ஆனால் C++ மொழி
முன் தொகுக்கப்பட்டது.
(iv) C++ நிரல் குறிமுறையைக் காட்டிலும் பைத்தான் குறிமுறை 5லிருந்து
10 தடவைகள் (மடங்குகள்) குறைவானது.
(v) பைத்தானில், வெளிப்படையாக தரவினங்களை அறிவிக்க தேவையில்லை. ஆனால்
C++-ல் அவை அறிவிக்கப்பட வேண்டும்.
2. பின்வரும் கட்டளை ஒவ்வொன்றையும்
விளக்கவும்.
Python <filename.py> -
<i> <C++ filename
without cpp extension>
Python கட்டளை வரியிலிருந்து பைத்தான் நிரலை செயல்படுத்துவதற்கான சிறப்புச்
சொல்
filename.py செயல்படுத்த வேண்டிய பைத்தான் நிரலின் பெயர் உள்ளீட்டு
முறைமை
C++ filename without cpp extension தொகுக்கப்பட்டு செயல்படுத்தப்பட வேண்டிய C++ நிரலின் பெயர்.
உதாரணத்திற்கு, கட்டளை தூண்டுக்குறியில், "Python pycpp.py –
i pali" என்று உள்ளீட்டு enter விசையை அழுத்தவும். தொகுத்தல் வெற்றிகரமாக முடிந்தால்
நீங்கள் எதிர்பார்த்த வெளியீடு கிடைக்கும் இல்லையேல் பிழைச் செய்தி வெளியிடப்படும்.
3. பைத்தானில், Sys, os,
getopt கூறுநிலைகளின் தேவை என்ன என்பதை விளக்குக.
விடை. பைத்தானில் sys கூறுநிலை : இந்த கூறுநிலை வரிமொழி மாற்றியால் பயன்படுத்தப்படுகிறது.
மாறிகளுக்கும், வரிமொழி மாற்றியுடன் வலுவாக ஊடாடு செயற்கூறுகளுக்கும் அணுகுதலை வழங்குகிறது.
sys.argy
(i) sys.argv என்பது பைத்தான் நிரலுக்கு அனுப்பி வைக்கப்படும் கட்டளை
வரி செயலுருபுகளின் பட்டியலாகும். argv கட்டளை வரி உள்ளீட்டு வழியாக வரும் உருப்படிகள்
அனைத்தையும் கொண்டிருக்கும். இது, அடிப்படையில், நிரலின் கட்டளை வரி செயலுருபுகளைக்
கொண்ட ஓர் அணியாகும்.
(ii) sys.argv ஐ பயன்படுத்த, முதலில் நீங்கள் sys கூறுநிலையைத் தருவித்துக்
கொள்ள வேண்டும். முதல் செயலுருபு sys.argv[0] எப்பொழுதும் செயல்படுத்த வேண்டிய நிரலின்
பெயராக இருக்கும். மேலும், sys. argv[1] என்பது நிரலுக்கு (இங்கு இது C++ கோப்பு) அனுப்பப்படும்
முதல் செயலுருபு ஆகும்.
பைத்தானில் OS கூறுநிலை
(i) பைத்தானில் இருக்கும் OS கூறுநிலை இயக்க முறைமையை சார்பு செயல்பாட்டுடன்
பயன்படுத்துவதற்கான ஒரு வழிமுறையை வழங்குகிறது.
(ii) பைத்தான் இயங்கிக் கொண்டிருக்கும்போது, விண்டோஸ் இயக்க முறைமையுடன்
OS கூறுநிலை ஊடாட அனுமதிக்கும் செயற்கூறுகளாவன.
Os.system() : செயல்தளத்தில் (Shell) C++ தொகுத்தலுக்கான கட்டளையை
(Unix, C கட்டளைகளை கொண்டுள்ள ஓர் சரம், C++ கட்டளைகளையும் ஆதரிக்கும்) இயக்கும்.
(இங்கு இது ஒரு கட்டளை சாளரம்) உதாரணத்திற்கு, C++ நிரலைத் தொகுக்க g++ தொகுப்பி செயல்படுத்தப்பட
வேண்டும்.
பைத்தான் getopt கூறுநிலை: பைத்தானில் getopt கூறுநிலை கட்டளை வரி தேர்வுகளையும்,
செயலுருபுகளையும் பிரித்தெடுக்க உங்களுக்கு உதவும். இந்த கூறுநிலை கட்டளைவரி செயலுருபு
பிரித்தெடுத்தலை செயல்படுத்த செயற்கூறுகளை வழங்குகிறது.
getopt.getopt வழிமுறை
இந்த வழிமுறை கட்டளை வரி தேர்வுகளையும், செயலுருபுகள் பட்டியலையும்
பிரித்தெடுக்கும். இந்த வழிமுறைக்கான தொடரியல் பின்வருமாறு
<opts>,<args>=getopt.getopt(argv,options,
[long_options])
செயலுருபுகளின் விவரங்கள் :
(i) argv - இது பிரிக்கப்பட வேண்டிய செயலுருபின் மதிப்புகளின் பட்டியலைக்
குறிக்கும். நமது நிரலில், கட்டளை முழுமையும் பட்டியலாக அனுப்பப்படுகிறது.
(ii) options - இது பைத்தான் நிரல் உள்ளீடு அல்லது வெளியீட்டிற்கான
தேர்வு எழுத்துக்களின் சரமாகும். இங்கு 'i' அல்லது 'o' போன்ற தேர்வுகளும், அதைத் தொடர்ந்து
முக்காற்புள்ளியும் (:) அமைந்திருக்கும். இங்கு (:) பாங்கினை குறிப்பிடப் பயன்படுகிறது.
(iii) long_options - இந்த அளபுரு சரங்களின் பட்டியலுடன் செலுத்தப்படுகிறது.
Long options-ன் செயலுருபைத் தொடர்ந்து ('=') என்ற சமக்குறி இடம்பெற வேண்டும். நம்முடைய
நிரலில் C++ கோப்பின் பெயர் சரமாக செலுத்தப்படும். மேலும், அது ஒரு உள்ளீடு கோப்பு
என்பதைக் குறிக்க, அதனுடன் 'i' என்ற தேர்வும் செலுத்தப்படும்.
4. getopt() என்ற செயற்கூறின்
தொடரியலை எழுதி, அதன் செயலுருபுகளையும், திருப்பியனுப்பும் மதிப்புகளையும் விளக்குக.
விடை. பைத்தான் getopt கூறுநிலை: பைத்தானில் getopt கூறுநிலை கட்டளை வரி
தேர்வுகளையும், செயலுருபுகளையும் பிரித்தெடுக்க உங்களுக்கு உதவும். இந்த கூறுநிலை கட்டளைவரி
செயலுருபு பிரித்தெடுத்தலை செயல்படுத்த செயற்கூறுகளை வழங்குகிறது.
getopt.getopt வழிமுறை
இந்த வழிமுறை கட்டளை வரி தேர்வுகளையும், செயலுருபுகள் பட்டியலையும்
பிரித்தெடுக்கும். இந்த வழிமுறைக்கான தொடரியல் பின்வருமாறு
<opts>,<args>=getopt.getopt(argv,options,
[long_options])
செயலுருபுகளின் விவரங்கள் :
(i) argv - இது பிரிக்கப்பட வேண்டிய செயலுருபின் மதிப்புகளின் பட்டியலைக்
குறிக்கும். நமது நிரலில், கட்டளை முழுமையும் பட்டியலாக அனுப்பப்படுகிறது.
(ii) options - இது பைத்தான் நிரல் உள்ளீடு அல்லது வெளியீட்டிற்கான
தேர்வு எழுத்துக்களின் சரமாகும். இங்கு 'i' அல்லது 'o' போன்ற தேர்வுகளும், அதைத் தொடர்ந்து
முக்காற்புள்ளியும் (:) அமைந்திருக்கும். இங்கு (:) பாங்கினை குறிப்பிடப் பயன்படுகிறது.
(iii) long options - இந்த அளபுரு சரங்களின் பட்டியலுடன் செலுத்தப்படுகிறது.
Long options-ன் செயலுருபைத் தொடர்ந்து ('=') என்ற சமக்குறி இடம்பெற வேண்டும். நம்முடைய
நிரலில் C++ கோப்பின் பெயர் சரமாக செலுத்தப்படும். மேலும், அது ஒரு உள்ளீடு கோப்பு
என்பதைக் குறிக்க, அதனுடன் 'i' என்ற தேர்வும் செலுத்தப்படும்.
getopt() method returns
value consisting of two elements.
(i) வழிமுறை இரண்டு உறுப்புகளை கொண்டுள்ள மதிப்புகளை திருப்பியனுப்பும்.
இவை ஒவ்வொன்றும் தனித்தனியாக opts மற்றும் args என்ற இரண்டு வெவ்வேறு பட்டியலில் (அணிகள்)
சேமிக்கப்படும்.
(ii) Opts பாங்கு, பாதைப் போன்ற பிரிக்கப்பட்ட சரங்களின் பட்டியலைக்
கொண்டிருக்கும். Args, தவறான பாதை அல்லது பாங்கின் காரணமாக பிரிக்கப்பட முடியாத எந்தவொரு
சரத்தின் பட்டியலைக் கொண்டிருக்கும்.
(iii) Geopt() வழிமுறையின் மூலம் சரங்களை பிரித்தெடுக்கும் போது பிழையேதும்
இல்லாவிட்டால் args வெற்று அணியாக அமையும்.
(iv) உதாரணத்திற்கு, p4 என்ற C++ கோப்பினை, கட்டளை வரியில் இயக்கப்போகும்
பைத்தான் நிரல், பின்வரும் ஒன்றைப் போல getopt() வழிமுறையைக் கொண்டிருக்கும்.
opts, args = getopt.getopt (argv,
"i:",('ifile='])
(v) நம்முடைய எடுத்துக்காட்டுகளில், கட்டளை வரி கட்டளைகளை அனைத்தும்
பிரிக்கப்பட்டிருப்பதாலும், செயலுருபு மீதமில்லாமலிருப்பதாலும், இரண்டாவது செயலுருபு
args வெறுமையாக இருக்கும் [ ]. Print() கட்டளையைப் பயன்படுத்தி args வெளிக்காட்டப்பட்ட
செய்திருந்தால், வெளியீடு [ ] என இருக்கும். >>>print(args) []
5. கீழ்க்காணும் c++ நிரலை செயல்படுத்த
ஒரு பைத்தான் நிரலை எழுதவும்.
#include <iostream>
using namespace std;
int main()
[cout<<"WELCOME";
return(0);
}
The above C++ program is saved in a file welcome.cpp
விடை. #Now select FileNew in Notepad and type the Python program as
main.py
# Program that compiles and executes a .cpp file
# Python main.py -i welcome
import sys, os, getopt
def main(argv):
cpp_file = "
exe file="
opts, args = etopt.getopt(argv,"i:",['ifile='])
for o, a in opts:
if o in ("-1", "--ifile"):
cpp_file = a + '.cpp'
exe_file = a + '.exe'
run(cpp_file, exe_file)
def run(cpp_file, exe_file):
print("Compiling " + cpp_file)
os.system('gh' + cpp_file +'-o'+ exe_file)
print("Running" + exe_file)
print("-------------------------")
print
os.system(exe_file)
print
if _ name_ =='_main_':
main(sys.argv[1:])
Output:
Welcome