Professional Documents
Culture Documents
Write Code in Tamil Jan 03 2015
Write Code in Tamil Jan 03 2015
மதைதயா அணணாமைல,
என. ொசாககன
தமிழில் நிரல் எழுத
- எழில் நிரலாகக ொமாழி
மதைதயா அணணாமைல,
மற்றும
என. ொசாககன
தமிழில் நிரல் எழுத - எழில் நிரலாகக ொமாழி | 3
தமிழில் நிரல் எழுத - எழில் நிரலாகக ொமாழி
This book may be used under the terms of the following license.
CC Attribution Non-Commercial 4.0 , International
This license lets others remix, tweak, and build upon your work non-commercially, and although their new
works must also acknowledge you and be non-commercial, they don’t have to license their derivative works
on the same terms.
You are free to:
Share — copy and redistribute the material in any medium or format
Adapt — remix, transform, and build upon the material
The licensor cannot revoke these freedoms as long as you follow the license terms.
Attribution — You must give appropriate credit, provide a link to the license, and indicate if
changes were made. You may do so in any reasonable manner, but not in any way that suggests the
licensor endorses you or your use.
NonCommercial — You may not use the material for commercial purposes.
No additional restrictions — You may not apply legal terms or technological measures that
legally restrict others from doing anything the license permits.
ஒபபுைககைள
மனனைர
தர. அரணராம,
மினனயல் ொபாறியாளர
ட்விட்டர: @arunatma
ொபாங்களூர, 2015
11.17 நளம.....................................................................................................................................70
11.18 நட்டகக................................................................................................................................70
11.19 dict........................................................................................................................................71
11.20 ைவ.......................................................................................................................................71
11.21 எட........................................................................................................................................71
11.22 நிரல்பாகம...........................................................................................................................72
11.23 பனொகாட...........................................................................................................................72
11.24 ேகாபைப_தற.....................................................................................................................72
11.25 ேகாபைப_எழுத................................................................................................................73
11.26 ேகாபைப_மட...................................................................................................................73
11.27 ேகாபைப_பட.....................................................................................................................74
யாதம ஊேர, யாவரம ேகளர!
கணன, தரவ (logic) ொமாழிையததவிர எநத ொமாழிையயும இயல்பாக அறியாத. அைகயால்,
ஆலங்கலததல் மட்டமனறி, தமிழிலம நங்கள கணணைய கட்டைளயிட எழுதலாம! இதற்கப ொபயர
நிரலாககம; இபபட அைமநத ஒர ொமாழி தான எழில்.
இநத புததகததன வழியாக எழில், ேமலம நிரலாககம, இரணடம கற்றுகொகாணட, Java, Python
ொபானற ொமாழிகைள கற்க தயாராகவிடவரகள என நமபுகேரன.
"எழில்" நிரல் ொமாழி நாம நனக அறிநத தமிழிேலேய நிரல்கள எழுத வழிவைக ொசயகறத.
ஆலனால், நமமைடய மதல் நிரைல எபபட எழுதவத? ேநரடயாகக கணனயில் நிரல் எழுத
உட்காரநதவிடலாமா?
1. நிலதைதத தரமானபபத
2. அங்ேக எனன கட்டபேபாகேறாம (வடா, அலவலகமா, கைடயா, ேவறு ஏதாவதா) எனறு
தரமானபபத
3. அதற்கத தட்டம ேபாடவத (Blueprint)
4. எங்ேக சவரகள, எங்ேக தணகள எனறு தரமானதத, தட்டததகேகற்ப அஸதவாரம
ேபாடவத
5. அதனமத வட்ைட எழுபபுவத
6. உளேள நுைழநத எல்லாம தரபதயாக உளளதா எனறு பாரபபத
7. நணபரகள, உறவினரகளககச ொசால்லவத
8. இேத ஏழு நிைலகள, கணன நிரல் எழுதவதலம உணட:
9. நிலதைதத தரமானபபதேபால், இங்ேக களதைத, கணன ொமாழிையத தரமானககேறாம
10. எைதக கட்டபேபாகேறாம எனறு தரமானபபதேபால், இங்ேக எனன நிரல் எழுதவத எனத
தரமானககேறாம
11. தட்டம ேபாடவதேபால், இங்ேக Algorithm எனபபடம நிரல் வழிமைறைய எழுதகேறாம
12. அஸதவாரம ேபாடவதேபால், இங்ேக pseudocode எனபபடம மாதரி நிரைல
எழுதகேறாம
13. வட்ைட எழுபபுவதேபால், இங்ேக மழுைமயான நிரைல எழுதகேறாம
14. உளேள நுைழநத பாரபபதேபால், இங்ேக நாம எழுதய நிரைலப பரிேசாதககேறாம
(Testing)
15. நணபரகள, உறவினரகளககச ொசால்லவதேபால், இங்ேக நமமைடய நிரைல நிரநதரமாகச
ேசமிததைவதத ேவணடமேபாொதல்லாம பயனபடததகேறாம
இபபட ொமாததமாகச ொசானனால் கழபபமாகதான இரககம. அதற்கப பதலாக, இநத ஏழு
நிைலகைளப பனபற்றி, ஒர மாதரி நிரல் எழுதபபாரபேபாமா?
இதல் நமககக கழபபேம ேவணடயதல்ைல. "எழில்" ொமாழிையதான பனபற்றபேபாகேறாம
எனறு நாம ஏற்ொகனேவ தரமானததவிட்ேடாம.
நமமைடய விணேடாஸ அல்லத ைலனகஸ வைகக கணனயில் "எழில்" ொமாழியில் நிரல்
எழுதலாம. ஆலனால் அதற்க நங்கள "எழில்" ொமனொபாரைள அநதக கணனயில்
நிறுவியிரககேவணடம. ஒரேவைள நங்கள இனனம அதைனச ொசயயவில்ைல எனறால்,
இைணயதளம http://www.ezhillang.org கக வாரங்கள. அங்ேக நங்கள "எழில்"
ொமனொபாரைளத தரவிறககம ொசயயலாம. அல்லத, ேநரடயாக அங்ேகேய நிரல் எழுதச சரி
பாரககலாம.
புததாக நிரல் எழுதேவார பயிற்சககாக இைணயதளம http://www.ezhillang.org
ேலேய
நிரல் எழுதவத நல்லத. அதல் நல்ல அனபவம ஏற்பட்டபறக நம கணனயில் "எழில்"ஐ
நிறுவிகொகாளளலாம.
நங்கள உங்கள விரபபமேபால் எதற்கம நிரல் எழுதலாம. இங்ேக ஓர எளய உதாரணமாக,
இர எணகளைடய சராசரிையக கணடறிவதற்க நிரல் எழுதேவாம.
ஆலங்கலததல் இதைன Program Objective எனபாரகள. அதாவத, நாம எழுதபேபாகம
நிரலன ேநாககம எனன? அத எபபடச ொசயல்படேவணடம? இைதத ொதளவாகத
ொதரிநதொகாணடால்தான, நாைளகேக அதல் பைழகள ஏதம இரநதால் கவனததச
சரிபபடததமடயும.
ஆலக, நமமைடய நிரலன ேநாககம, இரணட எணகளன சராசரிையக கணடபடபபத.
நிரல் வழிமைற எனபத, இநத ேநாககதைத நாம எபபட நிைறேவற்றபேபாகேறாம
எனபதற்கான தட்டமிடல். அதாவத, படபபடயாகச சநதபபத.
ஆலங்கலததல் Algorithm எனறு அைழககபபடம நிரல் வழிமைறைய எழுதவதற்கப பல
வழிகள உணட, அழகழகாக ொபாமைம ேபாட்ட எழுதவதற்க நிைறய tools கட உணட.
அைதொயல்லாம நாம பனனால் கற்றுகொகாளேவாம. இபேபாைதகக, ஒர காகதததல் 1, 2, 3
எனறு எண ேபாட்ட எழுதனால் ேபாதமானத.
நம ேநாககம, சராசரி கணடபடபபத. அதற்க உளளட (Input) எனன?
இரணட எணகள. நாம அவற்ைற எண1, எண2 என அைழபேபாம.
இநத நிரலன ொவளயட (Output or Result) எனன?
நாம தநத இர எணகளன சராசரிதான அத. இநத எணைண நாம எண3 எனறு
அைழபேபாம.
எண1, எண2 ஆலகயவற்ைற ைவததகொகாணட நாம எபபட எண3ஐக கணடறிவத?
இதற்கான கணதச சததரம எனன?
இர எணகளன சராசரி எனபத, அவற்ைறக கட்ட இரணடால் வகபபததான. அதாவத:
எண3 = (எண1 + எண2) / 2
அவவளவதான. நாம நமத நிரல் வழிமைறைய எழுதவிட்ேடாம. இேதா இபபட:
உளளட: எண1, எண2
1. எண1 எனற எணைணப ொபறுக
2. எண2 எனற எணைணப ொபறுக
3. இவவிர எணகைளயும கட்டக
4. வநத கட்டத ொதாைகைய இரணடால் வககக
5. கைடதத விைடைய எண3 எனச ேசமிகக
6. தைரயில் எண3 எனற விைடைய அசசடக
ொவளயட: எண3
இத ஒர ேநரடயான நிரல் வழிமைற. அதாவத, ஒனறுககப பறக இரணட, அதனபன மனறு
என வரிைசயில் ொசல்வத. சல நிரல் வழிமைறகள அவவாறினறி கதததச ொசல்லம, தரமபச
ொசல்லம (உதாரணமாக, 1, 2, 10 அல்லத, 1, 2, 3, 4, 3, 4, 3, 4, 5 எனபதேபால).
இபபடபபட்ட சககலான நிரல் வழிமைறகைள நாம பனனர ொதரிநதொகாளேவாம. இபேபாைதகக
நமத மதல் கணன நிரைல எழுத இநத எளய வழிமைற ேபாதமானத.
ஒர மககயமான கடததைத எழுதவதற்கமனனால் மனததல் அைத எழுதப பாரககேறாம,
அல்லத ஒர தணடக காகதததல் எழுதகேறாம அல்லவா? அதேபால "எழில்" ொமாழியில் இநத
நிரைல எழுதவதற்கமனனால், மாதரி நிரல் ஒனைற எழுதப பாரததவிடேவாம.
இங்ேக நாம "எழில்" ொமாழியின கறிசொசாற்கைளச சரியாகப பயனபடததேவணடம எனறு
அவசயம இல்ைல. சாதாரணத தமிழில் எழுதனாேல ேபாதம. இேதா இபபட:
எண1 ொபறுக
எண2 ொபறுக
கட்டதொதாைக = எண1 + எண2
எண3 = கட்டதொதாைக / 2
எண3 அசசடக
இத ஒர மாதரி நிரல்தான. இதைன நாம "எழில்" இைணயததளததல் ைவதத இயககனால்
விைட கைடககாத, பைழ(Error)தான கைடககம.
அதனால் தவறில்ைல. நம நிரல் எபபட இரககேவணடம எனறு புரிநதொகாணடவிட்ேடாம
அல்லவா? அததான நம ேநாககம.
இததான நமமைடய ஏழு படநிைலகளல் மிக மககயமானத. நமமிடம உளள மாதரி நிரைல
எடததகொகாணட, ஒவொவார வரியாக "எழில்" ொமாழிகக ஏற்றபட அதைன மாற்றபேபாகேறாம.
இதற்கத ேதைவயான உதவிக கறிபபுகள, கறிசொசாற்கள, மாதரி நிரல்கள என அைனததம
"எழில்" இைணயத தளததல் கைடககனறன. அவற்றின தைணேயாட படபபடயாக நாம இதல்
மனேனறேவணடம. ஒவொவார வரிையயும சரியான "எழில்" ொமாழிக கட்டைளகளாக
மாற்றேவணடம.
உதாரணமாக, “எண1 ொபறுக” எனற வரி இபபட மாறும:
எண1 = 10
அடதத, “எண2 ொபறுக” எனற வரி, இதவம எளைமயானததான:
எண2 = 6
மனறாவதாக, கட்டதொதாைக கணககடவத. இநத வரி மாதரி நிரலல் உளளதேபாலேவ
"எழில்" ொமாழியிலம இயங்கம:
கட்டதொதாைக = எண1 + எண2
நானகாவத வரியும இேதேபால்தான, மாதரி நிரலல் உளளத அபபடேய இங்ேகயும வரம:
எண3 = கட்டதொதாைக / 2
நிைறவாக, விைடைய அசசடம ஐநதாவத வரி இபபட மாறும:
பதபப "நங்கள தநத எணகளன சராசரி: ", எண3
அவவளவதான! வாழ்ததகள! நங்கள உங்களத மதலாவத "எழில்" நிரைல
எழுதவிட்டரகள:
எண1 = 10
எண2 = 6
கட்டதொதாைக = எண1 + எண2
எண3 = கட்டதொதாைக / 2
பதபப "நங்கள தநத எணகளன சராசரி: ", எண3
நாம நிரல் எழுதவிட்ேடாம. ஆலனால் அத சரியாக இயங்ககறதா எனறு பாரககேவணடேம.
இதற்க நாம "எழில்" ொமனொபாரைளப பயனபடததலாம, அல்லத, "எழில்" இைணயத தளததககச
ொசல்லலாம. இத நமத மதல் நிரல் எனபதால், அதைன ேநரடயாக இைணயத தளததல் இயககப
பாரபேபாம.
உங்கள இைணய உலாவி(Browser)ஐத தறநத http://ezhillang.org எனற
இைணயதளம (website) மகவரிககச ொசல்லங்கள. அங்ேக "எழில் நிரல் எழுத இங்ேக களக
ொசயயவம(Click Here)" எனற இைணபபு காணபபடம. அதைன களக ொசயயுங்கள.
இபேபாத, ேமேல நாம காகதததல் எழுதய நிரைல அங்ேக தட்டசச ொசயயேவணடம.
உங்களககத தமிழ் தட்டசச ொசயவத சரமம எனறால், அங்ேக இதற்காகத தரபபட்டளள விேசஷப
ொபாததானகைளேயா தட்டசச உதவி நிரைலேயா பயனபடததங்கள.
அடதத "நிரைல இயககங்கள" எனற ொபாததாைன அழுததங்கள. இநத விைட தைரயில்
ேதானறும:
நங்கள தநத எணகளன சராசரி: , 8
வாழ்ததகள! உங்கள நிரல் ொவற்றிகரமாக இயங்ககறத.
ஏேதனம பைழகள இரநதால், பரசைனயில்ைல, பனேன ொசனறு அவற்ைறச சரி ொசயத
விைடையக கணடறியுமவைர நிறுததாதரகள.
10, 6 எனற எணகளககப பதல், ேவறு சல எணகைள இட்டம நங்கள பாரககலாம. சராசரி
எண எபேபாதம சரியாக வரேவணடம.
ஒரமைற நிரல் எழுதயபறக, அதைன நாம தரமபத தரமபப பலமைற
இயககேவணடயிரககலாம. இதற்காக, நாம அதைனக ேகாபபாகச ேசமிததைவபபத அவசயம.
"எழில்" ொமாழியில் எழுதபபடம நிரல்கள அைனததம ".n" எனற நட்சயுடன
ேசமிககபபடேவணடம. உதாரணமாக, இத சராசரி கறிதத நிரல் எனபதால் இதைன "average.n"
எனறு ேசமிககலாம.
இதற்க நங்கள உங்கள கணனயில் உளள notepad ேபானற ஒர 'text editor'ஐத
தறககேவணடம. அதற்கள உங்கள நிரைலத தட்டசச ொசயயலாம, அல்லத ேமேல நாம "எழில்"
இைணயத தளததல் தட்டசச ொசயதைதப பரதொயடதத ஒட்டலாம (cutpaste).
பனனர, அதைனச ேசமிககமேபாத, இநத விவரங்கைளத தரேவணடம:
• ொபயர: average.n
• ேசமிககம இடம: உங்கள விரபபபபட
• Encoding: UTF8
இதேபால் நங்கள எததைண ".n" ேகாபபுகைள ேவணடமானாலம ேசமிககலாம. பனனர
ேவணடயேபாத அவற்ைற எடததப பயனபடததலாம.
பயிற்ச:
இதவைர நாம பாரதத அேத ஏழு படநிைலகைளப பனபற்றி, இநத வைககளல் நிரல்கள
எழுதப பாரங்கள:
• ஓர எணணன வரககதைதக கணடறிதல்
• ஓர எழுததச சரததல் எததைன எழுததகள உளளன எனறு கணடறிதல்
• தரபபடம மனறு எணகளல் மிகச சறியத எத எனறு கணடறிதல்
இவவைக எளய நிரல்கைள எழுத நனக பழகயபறக, நங்கள இனனம சககலான
நிரல்கைள எழுதத ொதாடங்கலாம. அதற்கான உதவிக கறிபபுகள அைனதைதயும "எழில்" இைணயத
தளேம உங்களகக வழங்ககறத.
ொதாடரநத எழுதங்கள. ொவற்றிகக வாழ்ததகள!
தமிழில் கணன ொமனொபாரள நிரல் (Computer Software Program) எழுதக
கற்றுகொகாளளேவணடம எனகற ஆலரவததடன இநத "எழில்" தளததகக வநதரககறரகள.
உங்களகக எங்கள வாழ்ததகள!
"எழில்"பற்றி ேமலம அறியுமனனர, நிரல் எனறால் எனன, அைதகொகாணட நாம எனன
ொசயயமடயும எனறு ஒர சரககமான அறிமகதைதத ொதரிநதொகாளவத நல்லத.
ஆலங்கலததல் ‘கமபயட்டர’ எனபபடம கணன ஓர அற்புதமான சாதனம. ஆலனால், அதற்கச சய
அறிவ எனறு எதவம கைடயாத. மனதரகளாகய நாம ொசால்வைதத தரமபச ொசயயும,
அவவளவதான.
உங்கள வட்டல் ஒர நாயககட்ட இரபபதாக ைவததகொகாளளங்கள. அதனடம ‘உட்கார’ எனறு
ொசானனால் அத உட்காரகறத, ‘நில்’ எனறு ொசானனால் அத நிற்கறத.
இங்ேக ‘உட்கார’, ‘நில்’ எனற ொசாற்கைள நாம ‘கட்டைள’ எனறு அைழககேறாம. நங்கள
இடகற கட்டைளகக ஏற்ப அத ொசயல்படகறத. அவவளவதான.
கணனயும அபபடதான, நங்கள தரம கட்டைளகக ஏற்ப அத இயங்கம.
ஒேர பரசைன, ‘உட்கார’, ‘நில்’ ேபானற கட்டைளகள அதற்கப புரியாத. ொதலங்க ொதரிநத
ஒரவரிடம நங்கள தமிைழத தவிரததத ொதலங்கல் ேபசவதேபால, கணனககத ொதரிநத ொமாழியில்
ேபசனால்தான அதற்கப புரியும!
கணனகக எனொனனன ொமாழிகள ொதரியும?
ஆலங்கலததல் இதற்க ஏராளமான ொமாழிகள உளளன. உலொகங்கம லட்சககணககாேனார இதைனப
பயனபடததக கணனககக கட்டைளயிடகறாரகள, கணனயும அதனபட ொசயல்படகறத.
இநதக கட்டைளகளன ொதாகபபுதான, சாஃபட்ேவர பொராகராம, அல்லத, ொமனொபாரள நிரல்.
இபேபாத, ஆலங்கலம அறியாதவரகளம கணன நிரல் எழுதக கற்கேவணடம எனற எணணததடன,
தமிழில் "எழில்" எனற இநத ொமாழி அறிமகபபடததபபடகறத.
எனன ொசால்கறரகள? தமிழ் எனபேத ஒர ொமாழிதாேன, அபபடப பாரததால் "எழில்" எனபத
இனொனார ொமாழியாகதாேன இரககேவணடம?
உணைமதான, தமிழ் எனகற, உங்களகக ஏற்ொகனேவ நனறாகத ொதரிநத ொமாழியில் உளள அேத
ொசாற்கைளப பயனபடதத உரவாககபபட்ட இனொனார ொமாழிதான "எழில்". இைத நங்கள
காகதததலம எழுதலாம, கணனயிலம எழுதலாம. அதனமலம கணனைய உங்கள விரபபமேபால்
இயககலாம.
இநதச சறு ைகேயட்டல், "எழில்" ொமாழிையப பயனபடததவதற்கான நுட்பங்கைள உங்களககச
ொசால்லததரபேபாகேறாம. ஒவொவார படயாக மனேனறி, மிக விைரவில் "எழில்"மலம
நிைனததைதொயல்லாம ொசயயத ொதரிநதொகாளளபேபாகறரகள, கணன உங்களைடய அடைமயாகக
ைக கட்ட நிற்கபேபாகறத.
1. நங்கள விரமபும விஷயங்கைளத தைரயில் அசசடலாம
2. எளய, சககலான கணகககைளப ேபாடலாம
3. தரகக அடபபைடயிலான (Logical) தரமானங்கைள எடககலாம
4. படம வைரயலாம
5. ஒேர ொசயைல நறு மைற, ஆலயிரம மைற, ேகாட மைற தரமபத தரமபச ொசயயலாம
6. மககயமாக, இதனமலம கற்றுகொகாணட விஷயங்கைள அடபபைடயாக ைவதத, மற்ற
கணன ொமாழிகள, இைதவிடப ொபரிய, பயனளளவற்ைறத ொதரிநதொகாளளலாம
உலொகங்கம கணன நிரல் எழுதத ொதரிநதவரகளகக நல்ல ேவைல வாயபபுகள உணட. ஆலனால்
அைதவிடப ொபரிய விஷயம, நிரல் எழுதப பழகவதனமலம உங்களககத தரககரதயிலான சநதைன
நனக பழகம, அத உங்களத படபபலம, மற்ற ொசயல்பாடகளலம பரதபலககம.
வாரங்கள, "எழில்" உலகததனள ொசல்ேவாம. அத ஒர பரவசமான பயணம!
அதற்கமனனால், "எழில்" ொமாழிபற்றிய சல அடபபைட விஷயங்கைளத ொதரிநதொகாணடவிடவத
நல்லத.
எழில் எனபத, தமிழில் உரவாககபபட்ட கணன நிரல் ொமாழி. மிகவம எளைமயானத, தறமலம
(Open Source) அடபபைடயில் ொவளயிடபபடவத.
இதன ேநாககம, தமிைழத தாயொமாழியாகக ொகாணட மாணவரகள சலபமாகக கணன நிரல் எழுதக
கற்பபபத. இைதக ொகாணட அவரகள தரககரதயில் சநதபபத, கணகககள ேபாடவத,
கணனயியல் ேபானறவற்ைற ஆலங்கலததன தைண இனறிேய அறியமடயும.
எழில் நிரல் ொமாழியில், தமிழ்ச ொசாற்களம, இலககணமம மிக எளைமயாக அைமககபபட்டளளத.
அேதசமயம மற்ற நவன கணன நிரல் ொமாழிகளல் (ஆலங்கலம அடபபைடயிலானைவ) உளள
எல்லா வசதகளம இதலம உணட.
பயனளள இநத எழில் கணன நிரல் ொமாழி, இலவசமாகேவ வழங்கபபடகறத. 2007 ம
ஆலணடமதல் உரவாகவரம இநத ொமாழி, 2009 ம ஆலணட மைறபபட ொவளயானத.
எழில் ொமாழியில் நிரல் எழுதவதற்கான வழிமைறகள, கட்டததட்ட BASIC கணன
ொமாழிையபேபாலேவ அைமநதரககம. நங்கள எழுதம நிரல்கள ஒனறபன ஒனறு எனற வரிைசயில்
இயககபபடம. அல்லத, Functions எனபபடம ‘நிரல் பாக’ங்கைள நங்கள பயனபடததலாம.
இநத ொமாழியில் எணகள, எழுததச சரங்கள, தரககக கறியடகள, பட்டயல்கள ேபானற வைககள
உணட. நங்கள பயனபடததம மாறி(Variable)கைளத தனேய அறிவிகக(Declaration)த
ேதைவயில்ைல. ேநரடயாக நிரலல் பயனபடததத ொதாடங்கலாம.
அேதசமயம, ஒர வைக மாறிைய இனொனார வைக மாறியாக மாற்றுவத எனறால், அதற்க உரிய
கறிசொசாற்கைளப பயனபடததேவணடம.
1. கல்வி : ஒனறாம வகபபு மதல் 12 ம வகபபுவைர பயிலம மாணவரகள இதைனப
பயனபடதத அடபபைடக கணனயியல், நிரல் எழுததல்பற்றி அறியலாம
2. இயல்பானத : எழில் ொமாழியின இலககணம, தமிழின எழுதத இலககணதைத ஒட்டேய
அைமககபபட்டளளத. ஆலகேவ, தமிழில் ேபசகற, எழுதகற எவரம இதைனச சலபமாக
அறிநதொகாணட பனபற்றலாம
இதல் உளள வசதகள:
1. கணதம மற்றம தரககரதயிலான கறியடகள
2. மநநற்ைறமபதககம ேமற்பட்ட நிரல் பாகங்கள இதல் ஏற்ொகனேவ ேசரககபபட்டளளன
3. இைவதவிர, நங்கேள புதய நிரல் பாகங்கைள எழுதச ேசரககலாம
4. Notepad++ மற்றும Emacs பயனபடததகறவரகள, தங்களத நிரல்களகக ஏற்ற வணணக
கறியடகைள அைமததகொகாளளம வசத எழில் ொமாழியில் உணட
2.4 கறிசொசாற்கள:
எழில் ொமாழியில் நிரல் எழுதவதற்க ஏராளமான கறிச ொசாற்கள உளளன. இவற்ைற நாம
அடததடதத அததயாயங்களல் விளககமாகப பாரககவிரககேறாம.
இபேபாைதகக, எழில் ொமாழியில் உளள மககயமான கறிச ொசாற்களன பட்டயைலயும, அதற்க
இைணயான ஆலங்கலச ொசாற்கைளயும இங்ேக பாரததவிடேவாம:
ஆலக : for
நிறுதத : break
ொதாடர : continue
பனொகாட : return
ஆலனால் : if
இல்ைலஆலனால் : elseif
இல்ைல : else
ேதரநொதட : select
ேதரவ : case
ஏேதனல் : otherwise
வைர: while
ொசய : do
மடேயனல் : until
பதபப : print
நிரல்பாகம : function
மட : end
அதற்கமனனால், நங்கள ஏற்ொகனேவ "எழில்" ொமாழிையப பயனபடததவதற்கான ொமனொபாரைள
(Software) இைணயததலரநத பதவிறககம ொசயதவிட்டரகள (Downloaded), உங்கள கணனயில்
அைத நிறுவிவிட்டரகள (Installed) என நமபுகேறன. ஒரேவைள நங்கள அைதச ொசயயவில்ைல
எனறால், உடனடயாக http://ezhillang.org/ எனற இைணய தளததககச ொசல்லங்கள, அங்ேக
தரபபட்டளள உதவிக கறிபபுகளன அடபபைடயில் உங்கள கணனைய "எழில்" மயமாககங்கள!
அடதத, நாம நிரல் எழுதத ொதாடங்கேவணடம. ஆலனால், எங்ேக?
இதற்க நாம Interpreter எனற பகதையத ொதாடங்கேவணடம. அதாவத, உங்களத நிரைல
வாசதத, அைதச ொசயல்படதத விைடகைளத தைரயில் காட்டகற பகத. நம வசதககாக, இதைன
"நிரல் ேமைச" என அைழபேபாம!
உங்களத எழில் கணனத தைரயில் "ez" எனறு தட்டசச ொசயயுங்கள. விைசபபலைகயில் உளள
"Enter" விைசையத தட்டங்கள.
உடேன, உங்கள தைரயில் Interpreter, அதாவத நிரல் ேமைச ேதானறும. இதல்தான நாம
நமமைடய நிரல்கைள எழுதபேபாகேறாம***
அதாவத, உங்கள கணன உங்களகக வணககம ொசால்லபேபாகறத. அதற்க நங்கள
பறபபககேவணடய கட்டைள இத:
பதபப "வணககம தமிழகம!"
இநதக கட்டைளைய நங்கள தட்டசச ொசயத, "Enter" எனற விைசையத தட்டங்கள.
மறுவிநாட, உங்கள தைரயில் "வணககம தமிழகம!" எனற எழுததகள ேதானறும.
வாழ்ததகள! நங்கள உங்களைடய மதல் நிரைல எழுதவிட்டரகள!
இத மிக எளைமயான நிரல்தான. இனனம சககலான, பயனளள பல ொசயல்கைளச ொசயயககடய
நிரல்கைள அடததடதத எழுதபேபாகறரகள.
அதற்கமனனால், நாம ொதாடங்கய நிரல் ேமைசைய எபபட மடைவபபத எனறு
ொதரிநதொகாளளேவணடம. அதற்க நங்கள பயனபடததேவணடய கட்டைளச ொசால் exit()
இைதத தட்டசச ொசயத "Enter" ொபாததாைன அழுததயதம, நிரல் ேமைசத தைர காணாமல்
ேபாயவிடம.
பறக, நமகக ேவணடயேபாத ez எனறு தட்டசச ொசயத மணடம "Enter" ொபாததாைன
அழுததனால் ேபாதம, மணடம நிரல் ேமைச ேதானறும, அடதத நிரைல எழுதத
ொதாடங்கலாம.இபபட ஒவொவாரமைறயும நிரல் ேமைசையத ொதாடங்க, மணடம மடைவபபத
சரமமாக இரநதால்,
1. மதலல், மனபுேபாலேவ நிரல் ேமைசையத ொதாடங்ககொகாளளங்கள
2. அதல் இபபட தட்டசச ொசயயுங்கள:
$ python ezhil/EZWeb.py
3. சல விநாடகள கழிதத, உங்கள தைரயில் ‘Server Starts localhost:8080’ எனற
வாசகம ேதானறும
4. இபேபாத, உங்கள கணனயில் ’எழில்’ ொமாழி நிறுவபபட்டரககம இடததகக (Folder)
ொசல்லங்கள, அங்ேக ‘Web' எனற பகதையத தறங்கள
5. அதற்கள ‘ezhil_on_the_web.html' எனற ேகாபபு இரககம, அதைனத தறங்கள
6. அவவளவதான, இனேமல் நங்கள உங்கள Internet Browser ன தைரயிேலேய ‘எழில்’
நிரல்கைள எழுதலாம, இயககலாம, விைடையப பாரககலாம!
ஒர விஷயம, Browser மலம இயங்கம இநத “எழில்” வடவததல் சல கறிபபட்ட வசதகள
இல்ைல, உதாரணமாக, கணனையப பயனபடததகறவரிடம ஓர எணைணேயா, எழுதைதேயா
ேகாரிப ொபறமடயாத, படம வைரயமடயாத.
ஆலகேவ, இநதப புததகததல் உளள சல நிரல்கைள நங்கள அதல் இயககமடயாமல் ேபாகலாம,
அபேபாத, நாம மனபு பாரததளள நிரல் ேமைசையப பயனபடததகொகாளளங்கள.
$ pip install ezhil
$ python
பறக,
>>> import ezhil
>>> ezhil.start()
கட்டைளயிட்டால் நங்கள ைபததான வழியில் எழில் ொசயல்படததலாம.
$ python
Python 2.7.3 (default, Feb 27 2014, 20:00:17)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import ezhil
>>> ezhil.start()
எழில் ஒர தமிழ் நிரலாகக ொமாழி (Tue Jul 2 20:22:25 EDT 2013)
Ezhil : A Tamil Programming Language version 0.76, (C) 20072013
Type "help", "copyright", "credits" or "license" for more information.
எழில் 1>>
இபேபாத, "எழில்" ொமாழிையப பயனபடததச சல எளய கணகககைளப ேபாடேவாம.
மதலல், நாம ஏற்ொகனேவ பாரதத மைறபபட உங்கள நிரல் ேமைசையத தறநதொகாளளங்கள.
அதல் கேழ உளள வரிையத தட்டசச ொசயத "Enter" ொபாததாைன அழுததங்கள
பதபப 10+15
இபேபாத உங்கள தைரயில் 25 எனற எண ேதானறும. அதாவத, 10, 15 ஆலகயவற்றின கட்டத
ொதாைக. இேதேபால், நாம கழிததல், ொபரககல், வகததல் ஆலகயவற்ைறயும ொசயயலாம. இபபட:
பதபப 305
பதபப 5*5
பதபப 25/5
இனனம ொகாஞ்சம ொபரிய கணகக, இரபதைதநதன அடகக இரணட, அதாவத 25 * 25 எபபடக
கணககடவரகள? இேதா, இபபடதான:
பதபப 25^2
இநதக கணகககைள நாம தனததனேய ேபாடேவணடம எனறு அவசயம இல்ைல, பலவற்ைறத
ொதாகதத ஒேர வரியில்கட எழுதலாம. இபபட:
பதபப (((5+(25^2))/6)^2)
இங்ேக நங்கள அைடபபுககறி தநதளள வரிைசபபட "எழில்" ஒவொவார கணககாகப ேபாடம,
நிைறவாக சரியான விைடையச ொசால்லவிடம.
உங்களைடய கணகக வகபபல் "ைப" எனற மககயமான எணைணபபற்றிப படததரபபரகள.
3.14 எனறு ொதாடங்கம அநதப பயனளள எணைண உங்களத "எழில்" கணகககளல்
பயனபடததேவணடமானால், இபபட எழுதேவணடம:
பதபப pi()
இேதேபால், Sin, Cos, Tan, Log ேபானறவற்ைறயும "எழில்" கணகககளல் ொகாணடவரலாம.
இபபட:
radian = pi()/180
பதபப sin(30*radian)
பதபப tan(60*radian)
பதபப log(100*radian)
ஆலனால், இைவொயல்லாம நாேம தட்டசச ொசயகற கணகககள. ொகாஞ்சம விததயாசமாக, நாம
ேகட்கற கணகககைளக கணனேய ேபாட்டப பதல் தரமபட மாற்றமடயாதா?
நிசசயமாகச ொசயயலாம, அததான நமமைடய அடதத பண!
இதவைர, நாம தட்டசச ொசயத விஷயங்கைள "எழில்" ொமாழி அபபடேய
நிைறேவற்றிகொகாணடரநதத. இபேபாத, அத ேகட்கம ேகளவிகக நாம பதல்
ொசால்லபேபாகேறாம.
இதற்க நாம "உளளட" எனற கட்டைளையப பயனபடததேவணடம. இதேபால:
மதல்எண = உளளட("ஓர எணைணச ொசால்லங்கள: ")
இநதக கட்டைளைய நிைறேவற்றினால், உங்கள கணனத தைரயில் "ஓர எணைணச ொசால்லங்கள:
" எனற எழுததகள ேதானறும. நங்கள ஏதாவத ஓர எணைணத தட்டசச ொசயத "Enter"
ொபாததாைன அழுததேவணடம.
உடேன, நங்கள தட்டசச ொசயத எண கணனயால் ொபறபபட்ட, "மதல்எண" எனற ொபயரில்
ேசமிககபபட்டவிடம.
இபேபாத, இரணடாவதாக இனேனார எணைணயும உளளட ொசயேவாம.
இபபட:
இரணடாமஎண = உளளட("இனேனார எணைணச ொசால்லங்கள: ")
இநதக கட்டைள நிைறேவறியதம, நங்கள இனேனார எணைணத தட்டசச ொசயயேவணடம. அத
"இரணடாமஎண" எனற ொபயரில் ேசமிககபபட்டவிடம.
இபேபாத, இநத இரணட எணகைளயும கட்ட, "மனறாமஎண" எனற ொபயரில் ேசமிபேபாம. இத
உங்களகக ஏற்ொகனேவ நனறாகத ொதரிநத விஷயமதாேன:
மனறாமஎண = மதல்எண + இரணடாமஎண
நிைறவாக, இநத விைடைய அசசடேவாம, இேதா இபபட:
பதபப "நங்கள தநத எணகளன கட்டத ொதாைக: " மனறாமஎண
அவவளவதான. இபேபாத, இநத நிரைல இயககப பாரபேபாம.
See : simple_add.n
ஓர எணைணச ொசால்லங்கள: 6
இனேனார எணைணச ொசால்லங்கள: 7
நங்கள தநத எணகளன கட்டத ொதாைக: , 13
ஓர எணைணச ொசால்லங்கள: 10
இனேனார எணைணச ொசால்லங்கள: 5
நங்கள தநத எணகளன கட்டத ொதாைக: 15
அரைம! "எழில்" ொமாழிையப பயனபடதத ஓர உபேயாகமான நிரல் எழுதவிட்டரகள!
இபேபாத, உங்களகக ஒர பயிற்ச.
ஒர கைடயில் மககள வநத காயகறி, பழம, ொராட்ட வாங்கச ொசல்கறாரகள. இவற்றின
விைலகைள நங்கள தனததனேய ொபற்று, ொமாததக கட்டத ொதாைக எவவளவ எனறு
ொசால்லேவணடம. பனனர, அவரகள தரம ொதாைக எவவளவ எனறு பாரதத, மத சல்லைற
எவவளவ எனறும ொசால்லேவணடம.
இதவைர நங்கள கற்றுகொகாணட விஷயங்கைள ைவதத அதற்க ஒர நிரல் எழுதங்கள பாரககலாம!
விைட:
காயகறி = உளளட("காயகறி வாங்கய ொதாைக எவவளவ? ")
பழம = உளளட("பழம வாங்கய ொதாைக எவவளவ? ")
ொராட்ட = உளளட("ொராட்ட வாங்கய ொதாைக எவவளவ? ")
ொமாதததொதாைக = காயகறி + பழம + ொராட்ட
பதபப "நங்கள தரேவணடய ரபாய " ொமாதததொதாைக
தரமொதாைக = உளளட("நங்கள தரம ொதாைக எவவளவ? ")
மததொதாைக = தரமொதாைக ொமாதததொதாைக
பதபப "நனறி. மத சல்லைறையப ொபற்றுகொகாளளங்கள: ரபாய " மததொதாைக
"க" எனபத ஒர தன எழுதத, "ல்" எனபத இனொனார தன எழுதத, அைவ ேசரநத "கல்"
எனற வாரதைத உரவாகறத. இபபடப பல வாரதைதகள ேசரநத ஒர வாககயமாகம, இபபட:
"கல்லம மணணம ேசரநத கட்டய வட."
இைவ அைனதைதயும நாம "சரங்கள" எனறு அைழககலாம. ஒர சரம எனபத தன எழுததாகேவா,
வாரதைதயாகேவா, வாககயமாகேவா இரககலாம.
உதாரணமாக, "ந" எனபத ஒர சரம, "நர" எனபத இனொனார சரம, "நர தரகேறன" எனபத
இனொனார சரம. இபபட ொசால்லகொகாணேட ேபாகலாம.
அ = உளளட("உங்களககப படதத ஏதாவத ஓர எழுததச சரதைதத தாரங்கள: ")
பதபப "நங்கள தநத சரம: " அ
பதபப "அநதச சரததன நளம: " நளம(அ)
இநத நிரைல ேமேலாட்டமாகப படததாேல உங்களகக நனறாகப புரியும. நங்கள தரபேபாகம
கணனைய "எழில்" ொமாழி வாங்க, "அ" எனற ொபயரில் ேசமிககறத, பனனர அதன நளதைதக
கணககட்ட அசசடகறத. (See demo program: string_demo.n )
இபேபாத, நாம எழுதய நிரைல இயககப பாரபேபாம:
உங்களககப படதத ஏதாவத ஓர எழுததச சரதைதத தாரங்கள: என ொபயர எழில்
நங்கள தநத சரம: என ொபயர எழில்
அநதச சரததன நளம: 10
அடதத, இரணட எழுததச சரங்கைள ஒட்டைவபபத எபபட எனறு பாரககலாம.
இதற்க, நங்கள எணகைளக கட்டவதற்கப பயனபடததய "+" எனற கறியட்ைடப
பயனபடததலாம. இேதா இபபட:
அ = "தமிழ்"
ஆல = "அமத"
இ = அ + ஆல
பதபப அ
பதபப ஆல
பதபப இ
இநத நிரல், "தமிழ்" மற்றும "அமத" எனற இர எழுததச சரங்கைள ஒட்டைவததக காணபககறத.
அதைன இயககனால், "தமிழ்அமத" எனறு அசசடம.
இபேபாத, உங்களகக ஒர பயிற்ச, "தமிழ்அமத" எனற ொசால் பாரபபதற்க நனறாக இல்ைலேய,
இநத நிரைலக ொகாஞ்சம மாற்றி, இர ொசாற்களககம நடவில் ஓர இைடொவள விட்ட "தமிழ்
அமத" எனறு அசசடமபட ொசயயுங்கள, பாரககலாம!
விைட:
அ = "தமிழ்"
ஆல = " "
இ = "அமத"
ஈ = அ + ஆல + இ
பதபப ஈ
அடதத பயிற்ச. இதவைர நங்கள கற்றுகொகாணட விஷயங்கைளொயல்லாம ைவதத, கேழ
தரபபட்டளள ேதைவகேகற்ப ஒர நிரல் எழுதங்கள:
* உங்கள கணன இரணட எழுததச சரங்கைளக ேகட்டப ொபறேவணடம
* அநத இரணைடயும ஒட்டைவதத மனறாவதாக ஒர சரதைத உரவாககேவணடம
* இநத மனறாவத சரததன நளதைதத தைரயில் அசசடேவணடம
விைட:
மதல்சரம = உளளட("ஒர வாககயம ொசால்லங்கள: ")
இரணடாமசரம = உளளட("இனொனார வாககயம ொசால்லங்கள: ")
மனறாமசரம = மதல்சரம + இரணடாமசரம
சரநளம = நளம(மனறாமசரம)
பதபப "நங்கள தநத இர சரங்களல் உளள ொமாதத எழுததகள " சரநளம
அடதத, ஒர ஜாலயான விைளயாட்ட, ஒர சரததககள நாம விரமபுகற எழுததகள எங்ேக
இரககனறன எனறு ொகாஞ்சம ேதடக கணடபடககலாமா?
இதற்க, "சரம_கணடபட" எனற கட்டைள வாரதைதையப பயனபடததேவணடம. இேதா இபபட:
மககனகள = "மா, பலா, வாைழ"
பதபப "மககனகள : " மககனகள
பதபப சரம_கணடபட(மககனகள, "வாைழ")
பதபப சரம_கணடபட(மககனகள, "ேதங்காய")
மா, பலா, வாைழ எனற மககனகளல், வாைழ உளளத, ஆலகேவ, வாைழையத ேதடமேபாத
பஜஜயததகக ேமற்பட்ட ஓர எண விைடயாகக கைடககம.
ஆலனால், அநத மககனகளன பட்டயலல் ேதங்காய இல்ைல. ஆலகேவ, அதைனத ேதடமேபாத
பஜஜயதைதவிடக கைறவான (1) விைட உங்களககக கைடககம. இதேவ "சரம_கணடபட"
கட்டைளயின பயன.
அடதத, மககனகைளக ொகாஞ்சம மாற்றம ொசயேவாமா? எனகக வாைழ படககாத, அதற்கப
பதலாகக ொகாயயாைவச ேசரதத விைளயாடேவாம. இேதா இபபட:
மககனகள = "மா, பலா, வாைழ"
பதபப "பைழய மககனகள : " மககனகள
மககனகள = சரம_இடமாற்று(மககனகள, "வாைழ", "ொகாயயா")
பதபப "புதய மககனகள : " மககனகள
இங்ேக "சரம_இடமாற்று" எனற கட்டைள "வாைழ"ையத தகக எறிநதவிட்ட, அநத இடததல்
"ொகாயயா" ைவ உளேள நுைழததவிட்டத. இதைன இயககனால், கழ்ககாணம விைட கைடககம:
பைழய மககனகள : மா, பலா, வாைழ
புதய மககனகள : மா, பலா, ொகாயயா
இபபட ஒவொவார பழமாகப பாரததப பாரதத மாற்றிகொகாணடரபபத சரமம. இைதேய இனனம
சலபமாகச ொசயய ஏேதனம வழி உணடா?
அதற்க நங்கள "பட்டயல்" எனற கட்டைளையப பயனபடததேவணடம.
மதலல், ஒர காலப பட்டயைலத தயாரிபேபாம. இேதா, இபபட:
பழங்கள = பட்டயல்()
அடதத, இநதப பட்டயலல் பழங்கைளச ேசரபேபாம, அதற்க "பனஇைண" எனற கட்டைளையப
பயனபடததேவணடம:
பனஇைண(பழங்கள, "மா")
பனஇைண(பழங்கள, "பலா")
பனஇைண(பழங்கள, "வாைழ")
பனஇைண(பழங்கள, "ொகாயயா")
பனஇைண(பழங்கள, "ஆலபபள")
ஆலக, இபேபாத நம பட்டயலல் ஐநத பழங்கள உளளன. அவற்றுககத தனததனேய எணகள
தரேவாமா?
ஒர விஷயம, பட்டயலன எணகள 1, 2, 3 என அைமயாத, பஜஜயததலரநத ொதாடங்கம,
அதாவத, 0, 1, 2... இபபட.
0 மா
1 பலா
2 வாைழ
3 ொகாயயா
4 ஆலபபள
இபேபாத, நாம ஒர கறிபபட்ட பழதைத அசசடேவணடொமனறால், "எட" எனற கட்டைளையப
பயனபடததேவணடம. உதாரணமாக, இநத வரிையப பாரங்கள:
*************************************
எட(பழங்கள, 1)
*************************************
இநத நிரல் இயங்கனால், "பலா" எனறு அசசடம. காரணம, அநதப பட்டயலல் 1 எனற
எணணகக ேநராக அநதப பழமதான பதவாகயுளளத.
அடததபடயாக, இநதப பட்டயலல் உளள பழங்கைள அகர வரிைசபபட அடககேவாமா? அதற்க
நாம "வரிைசபபடதத" எனற கட்டைளையப பயனபடததேவணடம. இேதா, இபபட:
வரிைசபபடதத(பழங்கள)
இநதக கட்டைள, பழங்கைள அகர வரிைசபபட மாற்றும. அதாவத, மதலல் ஆலபபள, அடதத
ொகாயயா, பலா, மா, அதனபறக வாைழ.
இபேபாத, மனபு நாம இயககய பைழய கட்டைளைய மணடம இயககேவாம:
எட(பழங்கள, 1)
ஆலனால் விைட, பலா இல்ைல, ொகாயயா! காரணம, நாம பழங்கைள அகர வரிைசபபட
அடககயததான!
இபேபாத, உங்களகக ஒர பயிற்ச, மனறு நணபரகளைடய ொபயைரப பட்டயலல் ேசரதத, அகர
வரிைசபபட அவரகள ஒவொவாரவரககம வணககம ொசால்ல அசசடங்கள. உதாரணமாக, வணககம
கேணஷ, வணககம ரேமஷ... இபபட.
விைட:
நணபரகள = பட்டயல்()
பனஇைண(நணபரகள, "கேணஷ")
பனஇைண(நணபரகள, "ரேமஷ")
பனஇைண(நணபரகள, "மேகஷ")
வரிைசபபடதத(நணபரகள)
அ = "வணககம "
பதபப அ + எட(நணபரகள, 0)
பதபப அ + எட(நணபரகள, 1)
பதபப அ + எட(நணபரகள, 2)
5 - நிபநதைன (Conditionals)
இதவைர, நாம எழுதய நிரல் வைககள அைனததம, ேநர ேகாட்டல் ொசல்பைவ. அதாவத, ஒர
வரிககபபறக அடதத வரி, பனனர இனொனார வரி... இபபட.
அவவாறில்லாமல், சல காரணகளகேகற்ப ஒேர நிரைல ொவவேவறுவிதமாக மாறி இயங்கச ொசயய
மடயுமா?
தாராளமாகச ொசயயலாம, இதற்க நாம தரககக கறியடகைளப பயனபடததேவணடம.
உதாரணமாக, நங்கள வட்டபபாடம எழுத மடததால், விைளயாடச ொசல்லலாம எனறு உங்கள தாய
கறுகறார. இதைனத தரககக கறியடகளனபட எபபட எழுதவத?
• வட்டபபாடம எழுத மடததவிட்டாயா?
• ஆலம எனல் ... விைளயாடலாம
• இல்ைல எனல் ... விைளயாடககடாத
இேத விஷயதைத "எழில்" ொமாழியில் ஒர நிரலாக எழுதப பாரபேபாமா? இேதா, இபபட:
அ = உளளட("வட்டபபாடம எழுதவிட்டாயா? ")
@(அ == "ஆலமாம") ஆலனால்
பதபப "விைளயாடச ொசல்லலாம"
இல்ைல
பதபப "வட்டபபாடம எழுதயபறகதான விைளயாடேவணடம!"
மட
இங்ேக நாம பயனபடததயிரககம தரககக கறியட, இபபட அைமகறத:
1. மதலல் "@" எனற சறபபு எழுதத
2. அடதத, அைடபபுககறிககள நாம ஒபபடவிரமபும விஷயம (அ = "ஆலமாம")
3. அடதத, "ஆலனால்" எனகற ொசால்
4. அடதத வரியில், அநத ஒபபட உணைம எனல், நாம ொசயய விரமபும ொசயல், இங்ேக
நாம ஒனறு அல்லத அதற்க ேமற்பட்ட ொசயல்கைள ொவவேவறு வரிகளல் தரலாம
5. அடதத "இல்ைல" எனகற ொசால்
6. அடதத வரியில், அநத ஒபபட ொபாய எனல், நாம ொசயய விரமபும ொசயல், இங்ேகயும
நாம ஒனறு அல்லத அதற்க ேமற்பட்ட ொசயல்கைள ொவவேவறு வரிகளல் தரலாம
7. நிைறவாக "மட" எனகற ொசால், நாம ொசயயும தரககரதயிலான பணகைள நிைறவ
ொசயகறத
இைதப புரிநதொகாளவதற்க, இனேனார எளய உதாரணம பாரபேபாம: (see: program
age.n )
வயத = உளளட("உங்கள வயத எனன? ")
@(வயத > 18) ஆலனால்
பதபப "நங்கள ேதரதலல் வாககளககலாம"
பதபப "நங்கள வாகனம ஓட்டலாம"
இல்ைல
பதபப "நங்கள ேதரதலல் வாககளகக இயலாத"
பதபப "நங்கள வாகனம ஓட்ட இயலாத"
மட
இைதேய ொகாஞ்சம விரிவபடதத, ஒர சறிய விநாட வினா நிகழ்சச நடததேவாமா?
பதபப "இநதயாவின தைலநகரம எத?"
பதபப "அ. ொசனைன"
பதபப "ஆல. மதைர"
பதபப "இ. ொடல்ல"
பதபப "ஈ. மமைப"
சரியானவிைட = "இ"
உங்களவிைட = உளளட("உங்களைடய பதல் எனன? ")
@(சரியானவிைட == உங்களவிைட) ஆலனால்
பதபப "வாழ்ததகள. உங்களகக 10 மதபொபணகள!"
இல்ைல
பதபப "தவறான விைட. மணடம மயற்ச ொசயயுங்கள!"
மட
சல ேநரங்களல், ஒர தரகக ஒபபட்டககள இனொனார தரகக ஒபபடம வரலாம, அபேபாத @,
ஆலனால், இல்ைல, மட ஆலகய நானக ொசாற்கைளயும மழுைமயாக, அடததடதத வரம ஒேர
ொதாகபபாக (Block) ஒனறுககள இனொனானைற அைமததப பயனபடததேவணடம. கட்டததட்ட
உங்கள கணதப பாடததல் வரம அைடபபுககறிகைளபேபால எனறு ைவததகொகாளளங்கேளன!
உதாரணமாக, இநத நிரைலப பாரங்கள:
அ = உளளட("ஓர எணைணச ொசால்லங்கள ")
ஆல = உளளட("இனேனார எணைணச ொசால்லங்கள ")
@(அ == ஆல) ஆலனால்
பதபப "இர எணகளம சமம!"
இல்ைல
@(அ > ஆல) ஆலனால்
பதபப "மதல் எண ொபரியத!"
இல்ைல
பதபப "இரணடாம எண ொபரியத!"
மட
மட
இதவைர நாம பாரதத நிரல்கேளாட ஒபபடைகயில், இத ொகாஞ்சம ொபரியதாக உளளத. பனனர
இனொனாரநாள ேவொறாரவேரா (அல்லத நாேமகட) இதைனப படததால் நமககப புரியுேமா,
புரியாேதா!
ஆலகேவ, நிரல் எழுதமேபாேத, அதற்கான விளககங்கைளயும ஆலங்காங்ேக எழுதவிடவத நல்லத.
இதற்க நங்கள "##" எனற சனனதைதப பயனபடததேவணடம. இேதா இபபட:
## இநத நிரைல எழுதயவர: சநதரேசகரன
## மதல் எணைண உளளடதல்
அ = உளளட("ஓர எணைணச ொசால்லங்கள ")
## இரணடாவத எணைண உளளடதல்
ஆல = உளளட("இனேனார எணைணச ொசால்லங்கள ")
## உளளட்டபபட்ட இர எணகளம சமமா எனறு ஒபபட்டப பாரததல்
@(அ == ஆல) ஆலனால்
பதபப "இர எணகளம சமம!"
இல்ைல
## அவற்றில் ஏேதனம ஒனறு ொபரியதா எனறு ஒபபட்டப பாரததல்
@(அ > ஆல) ஆலனால்
பதபப "மதல் எண ொபரியத!"
இல்ைல
பதபப "இரணடாம எண ொபரியத!"
மட
மட
5.2 பயிற்ச
இபேபாத, உங்களகக ஒர பயிற்ச. கழ்ககாணம ேதைவகேகற்ப "எழில்" ொமாழியில் ஒர நிரல்
எழுதங்கள, ஆலங்காங்ேக உரிய விளககங்களடன அத அைமயேவணடம:
* இனறு எனன கழைம எனறு ேகட்டத ொதரிநதொகாளளேவணடம
* அத சன அல்லத ஞாயிறு எனல், விடமைற நாைள அனபவிககமாறு வாழ்ததேவணடம
விைட:
## இநத நிரைல எழுதயவர: கவிதா
## கழைம உளளடபபடகறத
கழைம = உளளட("இனறு எனன கழைம?")
## இத சனககழைமயா?
@(கழைம == "சன") ஆலனால்
பதபப "மகழ்சச, விடமைற நாைள அனபவியுங்கள!"
இல்ைல
## இத ஞாயிற்றுககழைமயா?
@(கழைம == "ஞாயிறு") ஆலனால்
பதபப "மகழ்சச, விடமைற நாைள அனபவியுங்கள!"
இல்ைல
பதபப "நனறி, இநத நாள இனய நாளாகட்டம!"
மட
மட
அ = 0
@(அ < 5) வைர
பதபப "வணககம!"
அ = அ + 1
மட
இநத நிரைல வரி வரியாகப படததப புரிநதொகாளேவாம:
1. மதலல் "அ" எனற மாறியில் 0 எனற எணைணச ேசமிககேறாம
2. அடதத, அநத "அ" எனற மாறியில் உளள எண ஐநைதவிடக கைறவா எனறு
பாரககேறாம (ஆலம!)
3. ஆலம எனல், நாம இரணட ேவைலகைளச ொசயகேறாம:
4. தைரயில் வணககம எனறு அசசடகேறாம
5. "அ" எனற மாறியுடன ஒனைறக கட்டகேறாம. அதாவத அ = 0 + 1 = 1
6. மறுபட, "அ" எனற மாறியில் உளள எண ஐநைதவிடக கைறவா எனறு பாரககேறாம
(ஆலம!)
7. மறுபட, தைரயில் "வணககம" எனறு அசசடகேறாம, "அ" எனற எணணடன ஒனைறக
கட்டகேறாம அ = 1 + 1 = 2
8. இபபடேய 6, 7 இரணைடயும தரமபத தரமப ொசயகேறாம, "அ" எனற எணணல் 3,
4, 5 எனற எணகள பதவாகனறன
9. இபேபாத "அ" எனற மாறியில் பதவாகயிரககம எண ஐநைதவிடக கைறவாக இல்ைல,
ஆலகேவ நிரைல அததடன நிைறவ ொசயதவிடகேறாம
ஐநத மைற, இல்ைலயா?
அததான "வைர" எனற கறிசொசால்லன ேவைல. நாம கறிபபடம நிபநதைன (அ < 5)
உணைமயாக உளளவைர, அேத ேவைலையத தரமபத தரமபச ொசயதொகாணடரககம.
இதற்க ஓர உதாரணம இேதா:
அ = 0
ொசய
பதபப "வணககம!"
அ = அ + 1
மடேயனல் @(அ < 5)
ஏன ொதரியுமா?
"வைர" எனற கறிசொசால்ைலப பயனபடததமேபாத, உங்கள கணன "அ < 5" எனற
நிபநதைனைய மதலல் பரிேசாதததவிட்ட, அதனபறகதான நாம ொசால்வைத அசசடம. ஆலகேவ,
அ = 5 எனறு ஆலனதம, உடனடயாக அசசடவைத நிறுததவிடம.
இபேபாத, உங்களகக ஒர பயிற்ச:
• தைரயில் ஓர எணைணக ேகட்கேவணடம
• அநத எண ஐமபதாகேவா, அல்லத அைதவிடக கைறவான ஓர எணணாகேவா
இரநதால், அதற்கப பதல் இனேனார எணைணக ேகட்கேவணடம
• ஐமபைதவிடப ொபரிய ஓர எண வரமவைர ொதாடரநத ேகட்டகொகாணேட
இரககேவணடம
விைட:
அ = உளளட ("ஏதாவத ஓர எணைணத தாரங்கள ")
@(அ <= 50) வைர
அ = உளளட("இநத எண ேவணடாம. இனேனார எணைணத தாரங்கள ")
மட
பதபப "நனறி!"
இைத ஓர உதாரணததடன பாரததால் புரியும. உங்கள வகபபல் உளள ஒவொவாரவரின ொபயைரக
ேகட்ட, அவர ஆலணாக இரநதால் "ொசல்வன" எனறும, ொபணணாக இரநதால் "ொசல்வி" எனறும
அைடொமாழிேயாட அைழதத வணககம ொசால்லேவணடம. அதற்க ஒர நிரல் எழுதேவாம.
ொபயர = உளளட ("உங்கள ொபயர எனன? ")
பாலனம = உளளட ("நங்கள ஆலணா? ொபணணா? ")
@(பாலனம) ேதரநொதட
ேதரவ @("ஆலண")
பதபப "வணககம ொசல்வன. ", ொபயர
நிறுதத
ேதரவ @("ொபண")
பதபப "வணககம ொசல்வி. ", ொபயர
நிறுதத
மட
எளைமயான நிரல்தான. இல்ைலயா?
* மதலல் உங்கள நணபரைடய ொபயர மற்றும பாலனதைதக ேகட்டகொகாளகேறாம
* பனனர பாலனதைத அடபபைடயாக ைவதத, ஒவொவார ேதரவாகப பாரககேறாம
* ஆலண எனல் "வணககம ொசல்வன. " எனறு ொசால்ல அவர ொபயைர அசசடகேறாம,
அேதாட நிரைல நிறுததவிடகேறாம, இதற்க "நிறுதத" எனற கறிசொசால் பயனபடகறத
* ஒரேவைள அபபட நிறுததாமல் நிரைல ேமலம ொதாடரேவணடம எனறால், அதற்கத
"ொதாடர" எனற கறிசொசால்ைலப பயனபடததலாம
* உங்கள நணபர ொபண எனல் "வணககம ொசல்வி. " எனறு ொசால்ல அவர ொபயைர
அசசடகேறாம, அேதாட நிரைல நிறுததவிடகேறாம
* நிைறவாக "மட" எனற கறிசொசால்ைலப பயனபடதத வைளயதைத நிைறவ ொசயகேறாம
ஊர = உளளட ("உங்கள ஊர எனன? ")
@(ஊர) ேதரநொதட
ேதரவ @("ொசனைன")
பதபப "ொசனைனயில் உளள ொமரனா கடற்கைர அழகானத!"
நிறுதத
ேதரவ @("ேகாைவ")
பதபப "ேகாைவயின தமிழ் மிக இனைமயானத!"
நிறுதத
ேதரவ @("மதைர")
பதபப "சறநத ேகாயில்கள நிைறநதத மதைர!"
நிறுதத
ஏேதனல்
பதபப "உங்கள ஊரபற்றி அறிநததல் மகழ்சச!"
நிறுதத
மட
உங்கள வட்டச சைமயலைறயில் சறிய, ொபரிய தட்டகள இரநதால், ஒர தட்ைட இனொனானறுககள
ொபாரததலாம அல்லவா? அதேபால, எழில் கணன ொமாழியில் இநத வைளயங்கைள ஒனறுககள
ஒனறு என அைமககலாம. அதைனப ‘பனனல் வைளயம’ (Nested Loop) எனபாரகள.
பனனல் வைளயங்கைள எபபட அைமபபத எனபதற்க உதாரணமாக இநத நிரைலப பாரங்கள:
அ = 1
@(அ <= 10) வைர
ஆல = 1
@(ஆல <= 10) வைர
இ = அ * ஆல
ஈ = str(அ) + " * " + str(ஆல) + " = " + str(இ)
பதபப ஈ
ஆல = ஆல + 1
மட
அ = அ + 1
மட
6.3 பயிற்ச
இபேபாத, உங்களகக ஒர பயிற்ச:
* நங்கள ஒனறிலரநத நறுககள ஓர எணைணத தரமானததகொகாளளேவணடம (இதற்க
நங்கள "randint(1,100)" எனற கட்டைளையப பயனபடததலாம)
* மற்றவரகைள அைத ஊகககச ொசயயேவணடம, அவரகளகக உதவியாக, சறு
தபபு(Clue)கள தரலாம
* பதத மயற்சகளககள அவரகள அநத எணைணச சரியாக ஊகததவிட்டால், அவரகள
ொவற்றி ொபற்றாரகள என அறிவிககேவணடம
விைட:
எண = randint(1,100)
வாயபபு = 0
@(வாயபபு < 10 ) வைர
ஊகததஎண = உளளட ("ஒனறிலரநத நறுககள உளள ஏேதா ஓர எணைண நான மனததல்
நிைனததளேளன. அத எனன எனறு உங்களால் ஊகககமடயுமா? ")
வாயபபு = வாயபபு + 1
@( எண == ஊகததஎண ) ஆலனால்
பதபப "வாழ்ததககள! சரியான பதல்!"
exit(0)
மட
@( எண < ஊகததஎண ) ஆலனால்
பதபப "நங்கள ொசால்லம எண தவறு, நான நிைனதத எணைணவிட அத ொபரியத!"
இல்ைல
பதபப "நங்கள ொசால்லம எண தவறு, நான நிைனதத எணைணவிட அத சறியத"
மட
பதபப "கவைல ேவணடாம, இனனம ", (10 வாயபபு), " வாயபபுகள உளளன. நங்கள
நிசசயம ொவல்லலாம, மணடம மயற்ச ொசயயுங்கள!"
மட
பதபப "மனனககவம, நங்கள பதத வாயபபுகளககள சரியான எணைணக கணடபடககவில்ைல!"
அடதத, ’ஒவொவானறாக’ எனகற ஒர கறிசொசால்ைலப பாரககவிரககேறாம. ஆலங்கலததல்
இதைன 'For Each Loop' எனறு அைழபபாரகள.
உதாரணமாக, ஒனறு மதல் ஆலறு வைர உளள எணகைள அசசடேவணடம எனறால், அைத இபபடச
ொசயயலாம:
எணகள = [1, 2, 3, 4, 5, 6]
@(எணகள இல் இவொவண) ஒவொவானறாக
பதபப இவொவண
மட
இங்ேக நாம ‘ எணகள’ எனற பட்டயலல் ஆலறு எணகைள ைவததளேளாம. பனனர அவற்ைற
ஒவொவானறாக எடதத ‘இவொவண’ எனற ொபயரில் ேசமிககேறாம, பன அதைன அசசடகேறாம.
ஒரேவைள, ஆலறுககப பதல் நறு எணகள இரநதால்? அததைண நளமாக எழுதவத சரமம
ஆலயிற்ேற!
@(எண = 1, எண <= 100, எண = எண + 1) ஆலக
பதபப எண
மட
மிக எளய நிரல்தான. ஒவொவார வரியாகப படததால் ொதளவாகப புரிநதவிடம:
* மதலல் ‘எண’ எனற ொபயரில் 1 எனற எணைணச ேசமிககேறாம
* பறக, ‘எண <= 100’ எனறு நிபநதைன விதககேறாம
* நிைறவாக, எணைண ஒவொவானறாக அதகரிககேறாம
* ஆலக, ’எண’ எனபத 1, 2, 3, 4, 5, 6 ... என படபபடயாக அதகரிககம, தைரயில்
அசசடபபடம
* அநத ’எண’ 101 ஆலக மாறியதம, ‘எண <= 100’ எனற நிபநதைன தவறாகவிடகறத,
ஆலகேவ, அதற்கேமல் அசசடவைத நிறுததவிடகேறாம
இபேபாத, உங்களகக ஒர பயிற்ச:
* ஒனறு மதல் ஆலயிரம வைர உளள எணகளல் ஒற்ைறபபைட எணகைளமட்டம தைரயில்
அசசடேவணடம
* அடததபடயாக, ஆலயிரததலரநத ஒனறுவைர உளள எணகளல் இரட்ைடபபைட
எணகைளமட்டம தைரயில் அசசடேவணடம
* இதற்க நங்கள "%" எனற கறியட்ைடப பயனபடததலாம, அத இர எணகைள வகதத,
அதனபறக மதமளள எணைணமட்டம தரம.
விைட:
பதபப "ஒற்ைறபபைட எணகள"
@(எண=1, எண <=1000, எண = எண + 1) ஆலக
மதம = எண % 2
@(மதம == 1) ஆலனால்
# ஒற்ைறபபைட எண
பதபப எண
மட
மட
பதபப "இரட்ைடபபைட எணகள"
@(எண=1000, எண >= 1, எண = எண 1) ஆலக
மதம = எண % 2
@(மதம == 0) ஆலனால்
#இரட்ைடபபைட எண
பதபப எண
மட
மட
* மனனாட
* வலத
* இடத
* பனனாட
* எழுதேகால்ேமேல
* எழுதேகால்கேழ
இநதப ொபயரகைளப பாரததாேல, அைவ எனன ொசயயும எனபத உங்களகக ஓரளவ புரியும.
அவற்ைறப பயனபடதத நிரல் எழுதத ொதாடங்கமன, ‘எழுதேகால்’ எனறால் எனன?
சாதாரணமாக நாம ஒர காகதததல் படம வைரயுமேபாத, எழுதேகால் எனபத ேபனா, அல்லத
ொபனசல். அைதக காகதததனமத ைவததப பல தைசகளல் இழுககேறாம. அபபடேய படம
உரவாகறத.
உதாரணமாக, ஓர எளய பயிற்ச. ேகாட ஒனைற வைரயப பழகேவாம.
கணனயிலம அைதேய ொசயயலாம. இேதா இபபட:
மனனாட(50)
அவவளவதான, தைரயின ைமயததல் உளள எழுதேகால், 50 புளளகள வலதபககமாக நகரம.
ேகாட உரவாகவிடம.
அேத ேகாட்ைட ேமலரநத கழாக வைரவொதனறால்? இேதா இபபட:
வலத(90)
மனனாட(50)
இைதேய இனனம ொகாஞ்சம நட்ட, ஒர மழுச சதரம வைரேவாமா?
மனனாட(50)
வலத(90)
மனனாட(50)
வலத(90)
மனனாட(50)
வலத(90)
மனனாட(50)
வலத(90)
எழுதேகால்ேமேல()
மனனாட(200)
எழுதேகால்கேழ()
மனனாட(100)
வலத(90)
மனனாட(100)
வலத(90)
மனனாட(100)
வலத(90)
மனனாட(100)
அ = 0
@(அ < 4) வைர
மனனாட(50)
வலத(90)
அ = அ + 1
மட
இநதப படம அழகாக இரககறத. அடதத, நான இைத அழிததவிட்ட இனொனார படதைத
வைரவதற்க விரமபுகேறன. அத எபபட?
அதற்க நங்கள turtle_reset எனற கட்டைளையப பயனபடததேவணடம. இேதா இபபட:
turtle_reset()
உதாரணமாக, ஒர சவபபுச சதரம வைரயலாமா? இேதா இபபட:
அ = 0
turtle_color("red")
@(அ < 4) வைர
மனனாட(50)
வலத(90)
அ = அ + 1
மட
turtle_color("red")
turtle_fill(True)
turtle_circle(100)
turtle_circle(100, 180)
அபபடயானால், கால்வட்டததகக எனன ொசயவரகள?
turtle_circle(100, 90)
மிக எளைமதான. இல்ைலயா?
அடதத, ொகாஞ்சம சரமமான ஒர வடவதைத வைரேவாம: பசைச நிற நட்சததரம!
இநத நிரல் பாரபபதற்கச சற்று சரமமாக இரககம, ஆலனால், காகதததல் நட்சததரம வைரநத,
உங்கள ேபனா எநதத தைசயில் எவவளவ தரம நகரகறத எனறு ஒரமைற கவனததால் ொதளவாகப
புரிநதவிடம:
turtle_color("green")
வலத(36)
மனனாட(100)
வலத(144)
மனனாட(100)
வலத(144)
மனனாட(100)
வலத(144)
மனனாட(100)
வலத(144)
மனனாட(100)
இதவைர நங்கள கற்றுகொகாணட விஷயங்கைளப பயனபடதத, ஒேர ொசயைலப பலமைற ொசயயும
கணனயின தறைமையயும ஒரங்கைணததால், ஏராளமான புதபபுத விஷயங்கைள நங்கள வைரநத
பாரததக கலககமடயும.
இைத நிரபககமவணணம, உங்களகக இபேபாத ஒர பயிற்ச. "யின யாங்" எனற பரபலமான
சனனதைதபபற்றிக ேகளவிபபட்டரபபரகள. ொதரியாத எனறால், இைணயததல் ேதடங்கள, "எழில்"
ொமாழியில் அதைன வைரநத பாரங்கள
விைட:
turtle_color("black")
turtle_fill(True)
turtle_circle(100, 180)
turtle_circle(200, 180)
இடத(180)
turtle_circle( 100 , 180 )
turtle_color("white")
turtle_fill(True)
turtle_color("black")
இடத(90)
எழுதேகால்ேமேல()
மனனாட(200*0.375)
வலத(90)
எழுதேகால்கேழ()
turtle_circle(200*0.125)
இடத(90)
turtle_fill(False)
எழுதேகால்ேமேல()
பனனாட(200*0.375)
எழுதேகால்கேழ()
இடத(90)
அதேபால, ஒர நிரலன நடேவ, சல விஷயங்கள நாம அடககட ொசயகறைவயாக இரககம,
அவற்ைற ஒவொவாரமைறயும தனததனேய எழுதகொகாணடரககாமல், ஒரமைற
எழுதைவததவிட்ட, ேதைவபபடமேபாத அைழததப பயனபடததலாம, பறக, நமமைடய நிரைலத
ொதாடரநத எழுதலாம.
உதாரணமாக, இரணட எணகளல் எத ொபரியத எனறு கணடபடபபதற்கான எளய நிரல் ஒனைற
எழுதேவாம:
எண1 = உளளட("ஓர எணைணச ொசால்லங்கள: ")
எண2 = உளளட("இனேனார எணைணச ொசால்லங்கள: ")
@(எண1 > எண2) ஆலனால்
பதபப "நங்கள தநதவற்றுள ொபரிய எண: ", எண1
இல்ைல
பதபப "நங்கள தநதவற்றுள ொபரிய எண: ", எண2
மட
மிக எளய நிரல் இத. கணனப பயனாளரிடமிரநத இர எணகைளக ேகட்ட வாங்க, அதல் எத
ொபரியேதா அைதமட்டம தைரயில் அசசடகறத.
நிரல்பாகம ொபரியத (எண1, எண2)
@(எண1 > எண2) ஆலனால்
பனொகாட எண1
இல்ைல
பனொகாட எண2
மட
மட
இங்ேக நாம எனன ொசயதரககேறாம? படபபடயாக அலசேவாம:
1. “ொபரியத" எனற ொபயரில் ஒர நிரல்பாகதைதத ொதாடங்கயிரககேறாம
2. இநத நிரல்பாகதைத அைழகக விரமபுேவார அதற்க இரணட எணகைளத தரேவணடம,
அவற்ைற அைடபபுக கறியினள எழுதயிரககேறாம
3. இவற்றுள எண1 ொபரியத எனறால், நிரல்பாகதைத அைழதேதாரகக அைதேய
விைடயாகக ொகாடககேறாம, இல்லாவிட்டால் எண2 ைவ
விைடயாகத தரகேறாம, இதற்கப
‘பனொகாட’ எனற கறிசொசால் பயனபடகறத. ஆலங்கலததல் இதைன ‘Return' எனபாரகள.
அதற்கான நிரல் வரி மிக எளத:
பதபப ொபரியத(10, 15)
பதபப ொபரியத(12, 8)
1. உதாரணமாக, எண 7 எடததகொகாளேவாம, இதன Factorial 7! எனறு கறிககபபடம
2. 7! = அதல் ொதாடங்க ஒனறு வைரயிலான அைனதத எணகளன ொபரககத ொதாைக,
அதாவத, 7 * 6 * 5 * 4 * 3 * 2 * 1 = 5040
அவவளவதான. எளைமயான கணகக!
ஆலனால், உங்களடம யாராவத ’100! எவவளவ?’ எனறு ேகட்டவிட்டால் எனன ொசயவரகள?
100*99*98... எனறு கணககப ேபாடவதற்க ொராமப ேநரமாகேம!
கவைல ேவணடாம, எழில் ொமாழியும, அதன நிரல்பாகமம உங்கள தைணகக வரம. இேதா
இபபட:
நிரல்பாகம ொதாடரொபரகக(அ)
@(அ == 0) ஆலனால்
பனொகாட 1
இல்ைல
பனொகாட அ*ொதாடரொபரகக(அ1)
மட
மட
பதபப ொதாடரொபரகக(7)
பதபப ொதாடரொபரகக(100)
மறுபடயும, உங்கள கணககப பாடதைதச சற்ேற நிைனவபடததப பாரங்கள, GCD எனறால் எனன?
1. உதாரணமாக, எணகள 54, 42 ஆலகயவற்ைற எடததகொகாளேவாம
2. இதல் 54 எனபத 1, 2, 3, 6, 9, 18, 27 மற்றும 54 ஆலகயவற்றால் வகபடம
3. ஆலனால் 42 எனபத 1, 2, 3, 4, 6, 8, 12, 24 ஆலகயவற்றால் வகபடம
4. இநத இரணட பட்டயலககம ொபாதவான எணகள 1, 2, 3, 6 ஆலகயைவ
5. இவற்றில் ொபரியத 6
6. ஆலகேவ, 54, 42 ன GCD 6
எளைமயான கணககதான. ஆலனால் இைதக ைகயால் ொசயவத சரமம. தரமபத தரமபப பலமைற
வகததப பாரததகொகாணேட இரககேவணடம.
அதற்கதான நிரல்பாகம பயனபடகறத, இேதா இபபட:
நிரல்பாகம மொபாம(அ, ஆல)
ொபரித = max(அ, ஆல)
சறித = min(அ, ஆல)
@(சறித == 0) ஆலனால்
பனொகாட ொபரித
இல்ைல
பனொகாட மொபாம(ொபரித சறித, சறித)
மட
மட
பதபப "54, 42 இைடயிலான மொபாம = ", மொபாம(54, 42)
இநத நிரல் எபபட இயங்ககறத என நாம படபபடயாகப பாரககேவணடம:
மதனமைற:
மொபாம(54, 42)
ொபரித = அவற்றில் ொபரிய எண = 54
சறித = அவற்றில் சறிய எண = 42
சறித == 0 இல்ைல
ஆலகேவ, அேத மொபாம நிரல்பாகம மணடம அைழககபபடம, இபபட: மொபாம(ொபரித
சறித, சறித), அதாவத, மொபாம(5442, 42), மொபாம(12, 42)
இபேபாத,
ொபரித = 42
சறித = 12
சறித == 0 இல்ைல
அேத மொபாம நிரல்பாகம மணடம அைழககபபடம, மொபாம(4212, 12), அதாவத
மொபாம(30, 12)
இபேபாத,
ொபரித = 30
சறித = 12
சறித == 0 இல்ைல
அேத மொபாம நிரல்பாகம மணடம அைழககபபடம, மொபாம(3012, 12) அதாவத,
மொபாம(18, 12)
இபேபாத,
ொபரித = 18
சறித = 12
சறித == 0 இல்ைல
அேத மொபாம நிரல்பாகம மணடம அைழககபபடம, மொபாம(1812, 12) அதாவத,
மொபாம(6, 12)
இபேபாத,
ொபரித = 6
சறித = 12
சறித == 0 இல்ைல
அேத மொபாம நிரல்பாகம மணடம அைழககபபடம, மொபாம(126, 6) அதாவத
மொபாம(6,6)
இபேபாத,
ொபரித = 6
சறித = 6
சறித ==0 இல்ைல
அேத மொபாம நிரல்பாகம மணடம அைழககபபடம, மொபாம(66, 0), அதாவத
மொபாம(6, 0)
இபேபாத,
ொபரித = 6
சறித = 0
சறித == 0
ஆலகேவ, GCD விைட = ொபரித = 6
அவவளவதான. நாம ைகயால் ேபாட்ட அேத கணகைகக கணனயால் ேபாட்டவிட்ேடாம.
நிரல்பாகததன உணைமயான பலன இபேபாத ொதரிநதரககம. ஒரமைற இரமைற அல்ல, நறு
மைற, ஆலயிரம மைறகட இதைன நங்கள அைழததப பயனபடததலாம!
1. ஒனறு மதல் ஐமபத வைர உளள எணகளல் எைவொயல்லாம பகா எணகள (Prime
Numbers) எனறு கணடறிநத, தைரயில் அசசடங்கள
2. பனனர அநத எணகளன கட்டதொதாைகையயும அசசடேவணடம
3. இநதக கட்டதொதாைக பக எணணா, பகா எணணா எனறு கணடறியேவணடம
4. உங்களகக உதவியாக ஒர கறிபபு, ஓர எண பகா எணணா எனறு கணடறிய நங்கள
floor, fmod எனற கணதச ொசயல்பாடகைளப பயனபடததேவணடயிரககம, இைவபற்றித
ேதடப படததத ொதரிநதொகாளளங்கள, அல்லத, உங்களைடய புதய வழிமைறையக
கணடறியுங்கள
விைட:
நிரல்பாகம பகாஎணணா(அ)
ஆல = 1
இ = floor(அ/2)
@(இ >= 2) வைர
@(fmod(அ, இ) == 0) ஆலனால்
ஆல = 0
நிறுதத
மட
இ = இ + 1
மட
பனொகாட ஆல
மட
எல்ைல = 50
எண = 1
கட்டதொதாைக = 0
@(எண <= எல்ைல) வைர
விைட = பகாஎணணா(எண)
@(விைட) ஆலனால்
பதபப எண
கட்டதொதாைக = கட்டதொதாைக + எண
மட
எண = எண + 1
மட
பதபப "இதவைர நாம பாரதத பகா எணகளன கட்டதொதாைக: ", கட்டதொதாைக
கட்டதொதாைகவிைட = பகாஎணணா(கட்டதொதாைக)
@(கட்டதொதாைகவிைட) ஆலனால்
பதபப "இநதக கட்டதொதாைகயும ஒர பகா எணதான"
இல்ைல
பதபப "இநதக கட்டதொதாைக பகா எண அல்ல"
மட
நிரல்பாகம கணககல்மட்டமதான உதவமா? மற்ற இடங்களல் அதைன உபேயாகபபடததமடயாதா?
நனறாக உபேயாகபபடததலாம. உதாரணமாக, படம வைரவதற்க!
இங்ேக நாம வைரயபேபாவத, ஒர ொசடயின படம (ஆலங்கலததல் Fern எனபாரகள), இநதச
ொசடயில் உளள ொவவேவறு அளவிலான இைலகைளொயல்லாம ஒவொவானறாக
வைரநதொகாணடரககாமல், நிரல்பாகததனமலம சட்ொடனறு வைரயபேபாகேறாம. இேதா, இபபட:
நிரல்பாகம சாளரததல் ( அ )
பதபப "Window = ", அ
மட
நிரல்பாகம PD()
பதபப "Pen Down"
மட
நிரல்பாகம PU()
பதபப "Pen Up"
மட
நிரல்பாகம FD(அ)
பதபப "Forward ",அ
மட
நிரல்பாகம RT(அ)
பதபப "Right ", x
மட
நிரல்பாகம LT(அ)
பதபப "Left ",x
மட
நிரல்பாகம BK(அ)
பதபப "Back ",அ
மட
நிரல்பாகம ேவமபு (அளவ, பதவ)
@( அளவ < 1 ) ஆலனால்
பனொகாட 0
மட
FD(அளவ)
RT (70)
ேவமபு (அளவ * 0.5 , 1 * பதவ )
LT(70*பதவ)
FD(அளவ)
LT (70)
ேவமபு (அளவ * 0.5, 1 *பதவ )
RT(70*பதவ)
RT (7*பதவ)
ேவமபு ( அளவ 1, பதவ )
LT(7*பதவ)
BK(அளவ * 2)
மட
சாளரததல் ( "clearscreen" )
PU()
PD()
சா = 5
BK (150*சா )
ேவமபு (25 , 1)
வாசததால், நிரல் ொதளவாகப புரியும.
புதகேகாபபு = ேகாபைப_தற("weekdays.txt", "w")
இங்ேக weekdays.txt எனபத ேகாபபன ொபயர, “w" எனபத நாம அதல் ஏேதா சல
விஷயங்கைள எழுத(write)பேபாகேறாம எனபைதக கறிககம ொசால்.
இபபட நாம உரவாககய புதய ேகாபைப, “புதகேகாபபு" எனற ொபயரில் ேசமிததைவககேறாம.
பனனர இநதப ொபயைரப பயனபடததப பல விஷயங்கைளச ொசயயலாம. உதாரணமாக:
அ = "தங்கள"
ஆல = "ொசவவாய"
இ = "புதன"
ஈ = "வியாழன"
உ = "ொவளள"
ேகாபைப_எழுத(புதகேகாபபு, அ)
ேகாபைப_எழுத(புதகேகாபபு, ஆல)
ேகாபைப_எழுத(புதகேகாபபு, இ)
ேகாபைப_எழுத(புதகேகாபபு, ஈ)
ேகாபைப_எழுத(புதகேகாபபு, உ)
9.1.1. ேகாபைப மட
நிைறவாக, அநதக ேகாபைப மடேவணடம. அதற்கப பயனபடததேவணடய நிரல் வரி:
ேகாபைப_மட(புதகேகாபபு)
அடததபடயாக, நாம எழுதய இநதக ேகாபபல் எனன இரககறத எனறு படகக விரமபுகேறாம.
அதற்க இநதக கட்டைளகைளப பயனபடததலாம:
பைழயேகாபபு = ேகாபைப_தற("weekdays.txt")
வரிகள = ேகாபைப_பட(பைழயேகாபபு)
பதபப வரிகள
ேகாபைப_மட(பைழயேகாபபு)
இபேபாத உங்களகக ஒர பயிற்ச, இதவைர நங்கள கற்றுகொகாணட விஷயங்கைள ைவதத கேழ
தரபபட்டளள ேதைவகளகேகற்ப ஒர நிரல் எழுதங்கள:
1. பஜஜயம மதல் ஐநறு வைர உளள Fibonacci எணகைளக கணடபடககேவணடம
2. அைவ ஒவொவானறின வரககங்கைள(Square)மட்டம ஒர ேகாபபல் எழுதேவணடம
3. பனனர அவற்ைறத தைரயில் அசசடேவணடம
விைட:
எண1 = 0
எண2 = 1
எல்ைல = 500
புதகேகாபபு = ேகாபைப_தற("fibonacci.txt", "w")
ேகாபைப_எழுத(புதகேகாபபு, எண1 * எண1)
ேகாபைப_எழுத(புதகேகாபபு, எண2 * எண2)
எண3 = எண1 + எண2
@(எண3 <= எல்ைல) வைர
ேகாபைப_எழுத(புதகேகாபபு, எண3 * எண3)
எண1 = எண2
எண2 = எண3
எண3 = எண1 + எண2
மட
ேகாபைப_மட(புதகேகாபபு)
# அசசடதல்
பைழயேகாபபு = ேகாபைப_தற("fibonacci.txt")
வரிகள = ேகாபைப_பட(பைழயேகாபபு)
பதபப வரிகள
ேகாபைப_மட(பைழயேகாபபு)
9.3 மடவ
“எழில்" ொமாழியில் ொதாடங்கய உங்கள பயணம, எல்லாப பககங்களலம விரியட்டம, உங்களகக
வாழ்ததகள! நங்கள ஒர ொமனொபாரள உரவாககபவர ஆலக மடயும!
10.2 அறிமகபபடதததல்
”எழில்”ொமாழிையக கற்பதல் உங்களகக உதவவதற்காகேவ , நாங்கள பல உதாரண
நிரல்கைள உரவாககயிரககேறாம. இவற்ைற மைறபபட பாரைவயிட்டாேல ேபாதம,
நங்கேள ொசாநதமாக “எழில்” நிரல்கள எழுதத ொதாடங்கவிடலாம.
10.3 அசசடதல்
இதல் இரணட வைக உணட: எழுததச சரங்கைள அசசடதல், நிரலல் உளள விவரங்கைள
அசசடதல்.
10.5 உளளடதல்
10.6 ஒபபடதல்
@(மதொலண == 0) ஆலனால்
• சறியத “<”
• ொபரியத “>”
• சறியத அல்லத சமம “<=”
• ொபரியத அல்லத சமம “>=”
• || (OR / அல்லத)
இங்ேக நாம மதலல் எண1, எண2 இரணடம சமமா எனறு பாரககேறாம, ஆலம
எனல் ஒர கட்டைளைய நிைறேவற்றுகேறாம. ஒரேவைள அைவ சமமாக
இல்லாவிட்டால், எண1 ொபரியதா எனறு பாரககேறாம, ஆலம எனல் இனொனார
கட்டைளைய நிைறேவற்றுகேறாம, அதவம இயலாவிட்டால் ேவொறார கட்டைளைய
நிைறேவற்றுகேறாம.
அ=1
@( அ <= 10 ) வைர
<கட்டைளகள>
அ=அ +1
மட
அ=0
ொசய
<கட்டைளகள>
அ=அ+1
மடேயனல் @(அ < 5)
8. ஒவொவானறாக அலசதல்
2. ஆலக (For)
9. ேதரநொதடததல்
@(ஊர) ேதரநொதட
@("ொசனைன") ேதரவ
<கட்டைள 1>
@("ேகாைவ") ேதரவ
<கட்டைள 2>
@("மதைர") ேதரவ
<கட்டைள 3>
ஏேதனல்
<கட்டைள 4>
மட
1. நிறுதத (break)
2. ொதாடர (continue)
@( p >= 2 ) வைர
@( fmod( n, p ) == 0 ) ஆலனால்
நிறுதத
மட
p=p-1
மட
@( i = 0, i < n, i = i + 1 ) ஆலக
<சல கட்டைளகள>
@( j < col ) ஆலனால்
ொதாடர
மட
<ேமலம சல கட்டைளகள>
மட
ொசனறுவிடம.
1. பட்டயல்
2. Dict
ப = பட்டயல்()
பனஇைண( ப , "வாைழ")
பனஇைண( ப , "ொகாயயா" )
பனஇைண( ப , "மா")
தைலகழ்( ப )
வரிைசபபடதத( ப )
நட்டகக( ப , ப )
z = dict()
ைவ(z,"name","மண")
ைவ(z,"age",10)
ைவ(z,"location","தஞ்சாவர")
10.13 நிரல்பாகங்கள
நிரல்பாகம ொகல்வின_இரநத_மாற்று( k )
<கட்டைளகள
மட
ொகல்வின_இரநத_மாற்று( 0 )
11.1 பதபப
பயனபடததம விதம ::= "பதபப" எழுததசசரம அல்லத மாறியின ொபயர
["," எழுததசசரம அல்லத மாறியின ொபயர]
11.2 உளளட
உதாரணமாக, “உங்கள வயத எனன?” எனற ேகளவிககப பயனாளர “10” எனறு பதல்
அளததால், அைத நிரலன அடதத வரியில் அபபடேய பயனபடதத இயலாத. Int
எனபபடம எண வைககக மாற்றிதான பயனபடததேவணடம. இபபட:
11.3 ஆலனால்
ொசயல் வாசகங்கள
[”@(” நிபநதைன வாசகம அல்லத வாசகங்கள “) இல்ைலஆலனால்“
ொசயல் வாசகங்கள
”இல்ைல”
ொசயல் வாசகங்கள]
”மட”
11.5 . வைர
11.7 . ஒவொவானறாக
11.8 . ஆலக
ொசயல் வாசகங்கள
[”@(” மாறியின மதபபு “) ேதரவ”
ொசயல் வாசகங்கள
”ஏேதனல்”
ொசயல் வாசகங்கள]
”மட”
11.10 நிறுதத
11.11 ொதாடர
11.12 பட்டயல்
11.13 பனஇைண
11.14 எட
11.15 தைலகழ்
11.16 வரிைசபபடதத
11.17 நளம
11.18 நட்டகக
11.19 dict
11.20 ைவ
11.21 எட
11.22 நிரல்பாகம
11.23 பனொகாட
11.24 ேகாபைப_தற
[” , “ எழுதத] “)”
11.25 ேகாபைப_எழுத
11.26 ேகாபைப_மட
11.27 ேகாபைப_பட
**********************
* * * எழில் ொமாழி வழியாக * * *
** நனக கணன **
** நிரலாககம கற்க * *
*** ***********