Saturday, February 24, 2018

சி மொழியில் அர்ரேக்கள்-புதியவர்களுக்கு.





அர்ரே என்பது என்ன?
அர்ரே என்பது அக்ரிகேட் டேட்டா டேர்ம் அல்லது டெரிவெட் டேட்டா டைப் எனப்படுகின்றது. இதாவது இன்ட், ஃப்லோட், டபுள் இவைகள் முதன்மை டேட்டா டைப்புகள் என்றும் இதிலிருந்து டெரிவ்டு ஆன டேட்டா டைப் அர்ரே உருவாக்கப்படுகின்றது.
தேவை என்ன?
இப்பொழுது முதன்மை டேட்டா டைப் ஆன இன்ட் இன a என்கின்ற ஒரு டேட்டா டைப்பை எடுத்துக் கொள்வோம்.
Int a;
இப்பொழுது a என்கின்ற வேரியபிள் உருவாக்கப்பட்டு அதற்கு இரண்டு பைட் மெமரி அலகேட் செய்யப்படுகின்றது இதன் மெமெரி அட்ரஸ் 2024 என எடுத்துக் கொள்வோம்.

இப்பொழுது
a=5;
இப்பொழுது  a என்கின்ற லொக்கேசனில் 5 மதிப்பிருத்தப் படுகின்றது.
இப்பொழுது
a=12;
இப்பொழுது a என்கின்ற லொகேசனில் 5 அழிந்து விட்டு 12 மதிப்பிருத்தப்படுகின்றது.
இப்பொழுது
Printf(“%d”,&a);
எனக் கொடுத்தால் 12 என வெளியீடு இருக்கும்.
இதிலிருந்து நமக்கு தெரிய வரும் தகவல் என்ன வென்றால் ஒரு வேரியபிளில் அதிகபட்சமாக  ஒரு டேட்டா தான் ஸ்டோர் செய்யமுடியும் என்பதாகும்.
இப்பொழுது ஒரு வ்குப்பில் படிக்கும் ஐம்பது மாணவர்களின் மதிபெண்களை ப்ரின்ட் செய்ய வேண்டுமென்றால் ஐம்பது வேரியபிள்கள் தேவைப்படும்.
இவற்றை நிரலில் அறிவித்தால் நிரலானது எவ்வளவு சிக்கலான ஒன்றாக மாறும் என்று யோசித்தீர்களா?
இப்பொழுது
Int a[5];
என அறிவித்துள்ளோம். இப்பொழுது a என்கின்ற ஒரு வேரியபிளில் ஐந்து டேட்டாக்கள் வரை ஸ்டோர் செய்யலாம். ஒரே ஒரு நிபந்தனை தான் இந்துமே ஒரே டேட்டா டைப் ஆக இருக்க வேண்டும். இதுவே அர்ரே ஆகும்.
இப்பொழுது
Int a[5]={10,5,3,2,1};
என்றால் a என்கின்ற பெயரில் ஒரு பிளாக் மெமரி உருவாக்கப்பட்டு அதற்கு ஒரு எலிமென்டிற்கு 2 பைட்டுக்கள் மூலம் 5*2 =10 பைட் மெமரி அலகேட் செய்யப்படும்.
உதாரணதிற்கு முதல் எலிமெண்டின் முகவரி 2024 என்றால் அதற்கு அடுத்துள்ள எலிமெண்டின் முகவரி 2026 ஆக இருக்கும். மிக முக்கியமான ஒரு தகவல் நாம் அறிய வேண்டியது ஒரு அர்ரேயின் அணைத்து எலிமெண்டுகளும் தொடர்ச்சியான மெமரியில் இருக்கும்.
ஒரு அர்ரேயை ரீட் செய்யவோ  அல்லது ரைட் செய்யவோ வேண்டுமென்றால் இடரேசன் மூலமாக தான் முடியும். சான்றாக ஃபார் லூப்.
Int a[5];
Int I;
For(i=0;i<5;i++)
{
Scanf(“%d”,&a[i]);
}
ப்ரிண்ட் செய்ய
For(i=0;i<5;i++)
printf(“%d”,a[i]);
}
இதில் அர்ரேயின் இண்டெக்ஸ் ஆக  I செயல்படுகின்றது.
முதல் இடரேசனில் ஐ-யின்  மதிப்பு 0 ஆக இருக்கும். அதாவது ஒரு அர்ரேயின் இண்டெக்ஸ் 0-வில் தான் தொடங்கும். இது ஒவ்வொரு இடரேசனில் ஒன்னொன்றாக இன்க்ரிமெண்ட் ஆகும். இது ஐ-யின் மதிப்பு 4 வரை தான் ஒர்க் ஆகும் ஏனெனில் நம் அர்ரேயின் கடைசி இண்டெக்ஸ் 4 அதாவது அர்ரேயின் லெங்க்த் ஆன 5-யை விட ஒன்று குறைவு.

ஒரு அர்ரேயை அறிவித்து விட்டும் மட்டும் விட்டு அதை ஏதும் மதுப்பிருத்தாமல் ப்ரிண்ட் செய்தொமென்றால் எல்லாம் கார்பேஜ் மதிப்புகளாக இருக்கும்.
உதாரணம்
Int a[5];
For(i=0;i<5;i++)
printf(“%d”,a[i]);
}

இப்பொழுது ஐந்து மதிப்புகளுமே கார்பேஜ் மதிப்பாக இருக்கும்.
இப்பொழுது
நீங்கள்:
A[5]={12,4, 3,8,7};
எனக் கொடுத்து விட்டு ப்ரிண்ட் செய்தால்
For(i=0;i<5;i++)
printf(“%d ”,a[i]);
}
வெளியீடு:

12 4 3 8 7;
இப்பொழுது முதல் இரண்டு எலிமென்ட் மற்றும் மதிப்பிருத்துவீர்கள் என்றால்
Int a[5]={12,7}
இப்பொழுது அதை பிரிண்ட் செய்தால்
For(i=0;i<5;i++)
printf(“%d”,a[i]);
}
அதன் வெளியீடாக
12, 7, 0, 0, 0
இருக்கும்-தொடரும்-
முத்து கார்த்திகேயன், மதுரை.

ads Udanz

No comments:

Post a Comment