Wednesday, November 20, 2019

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



அர்ரே என்பது அக்ரிகேட் டேட்டா டைப் ஆகும்.அல்லது டெரிவ்ட் டேட்டா டைப்.
நாம் ஏன் அர்ரேயை பயன்படுத்த வேண்டும் என்பது குறித்து பார்ப்போம்.
உதாரணமாக
Int a ;
என்று  அறிவித்தவுடன் மெமரியில் ஒரு லொக்கேசன் குறிப்பிட்ட முகவரியில் a என்று  ஒரு வேரியபிள் பெயரிட்டு 2 பைட் மெமரி ஒதுக்கீடு செய்கின்றது.
a=10;
இப்பொழுது a என்ற வேரியபிளில் 10 என்பது மதிப்பிருத்தப்படுகின்றது.
இப்பொழுது
a=20;
என்று கொடுக்கின்றோம்.
இப்பொழுது a என்றலொக்கேசனில் 10 என்ற மதிப்பானது அழிக்கப்பட்டு 20 என்பது மதிப்பிருத்தப்படுகின்றது.
இதில் இருந்து ஒரு வேரியபிளில் ஒரே ஒரு மதிப்பு தான் சேமிக்க முடியும் என்பது தெளிவாகின்றது.
ஒரு பள்ளியில் உள்ள 100 ,மாணவர்களின் மதிப்பெண்களை சேமிக்க வேண்டுமென்றால் 100 வேரியபிள் உருவாக்கப்பட வேண்டும்.
அதற்கு மாற்றாக ஒரு வேரியபிளில் ஒன்றுக்கு மேற்பட்ட டேட்டாக்களை சேமிப்பது தான் அர்ரே ஆகும்.
அர்ரே டிக்லரேசன் சிண்டாக்ஸ்
Datatype identifier[size];
சான்று:
Int a[5];
வேரியபிளின் பக்கத்தில் ஒரு சதுர அடைப்பிக்குறிக்குள் அதன் சைஸ் குறிப்பிடப் பெற்று அறிவிக்கப்படுகின்றது.
மேலே உள்ள சான்றில் a என்பது வேரியபிள் பெயர், அதன் சைஸ் 5 ஆகும்.
அதாவது a என்ற வேரியபிளில் 5 இன்டிஜெர் எண்களை சேமிக்கலாம்.
அர்ரேயில் உள்ள எல்லா எலிமென்டுகளும் ஒரே டேட்டா டைப் ஆக இருக்க வேண்டும்.
எல்லா எலிமெண்டுகளும் ஒரு பேஸ் முகவரியில் தொடங்கி ஒவ்வொரு எலிமென்டுக்கும் அதன் டேட்டா டைப்பை பொறுத்து பைட்டின் எண்ணிக்கை அமைகின்றது
உதாரணமாக a –ந் பேஸ் முகவரி 2004 என்று எடுத்துக் கொள்வோம்.
a  என்பது இன்ட் ஆகையால் ஒவ்வொரு எலிமெண்டும் 2 பைட் மெமரி எடுத்துக் கொள்ளும்.
a என்ற முகவரியில் அதன் அர்ரே பேஸ் முகவரி  சேமிக்கப்படும். சான்றாக 2004.
பாயிண்டர்கள் மட்டுமே முகவரி யை சேமிக்க என்ற கேள்விக்கு a இண்டெர்னல் பாயிண்டர் வேரியபிள் ஆகும்.
இப்பொழுது லோக்கல் அர்ரே வேரியபிள் அறிவிப்புக்கும் குலோபிள் வேரியபிள் அறிவிப்பிக்கும் வித்தியாசம் பற்றி பார்ப்போம்.

லோக்கள் அறிவிப்பு:


பொதுவாக ஒரு வேரியபிள் அறிவிக்கப்பட்டு அதற்கு மதிப்பிருத்தப்பட்டா விட்டால் அதில் ஏதாவது கார்ப்பேஜ் மதிப்பு சேவ் ஆகும் என்பது நாம் அறிந்ததே.
அர்ரே ஆனது நேரடியாக தொடக்க மதிப்பிருத்தப்படலாம்.
Int a[5];
என்றுஅறிவிக்கப்பட்டால் ஐந்து லொக்கேசனிலும் கார்பேஜ் மதிப்பு சேவ் ஆகும்.
Int a[5]={10,20,30,40,50};

என்று அறிவிக்கப்பட்டால் ஐந்து லோக்கேசனிலும் ஒவ்வொரு மதிப்பு ஸ்டோர் ஆகும்.
a[0]=10
a[1]=20
a[2]=30
a[3]=40
a[4]=50
இப்பொழுது
Int a[5]={10,20};
என்று அறிவிக்கப்பட்டால்
முதல் இரண்டு லோக்கேசனிலும் 10, 20 ம் அதற்கடுத்து உள்ள மூன்று லோக்கேசனிலும் 0 என்பது சேவ் ஆகும் .

குளோபல் அறிவிப்பு.

int a[5];
என்று குளோபல் ஆக அறிவிக்கப்பட்டால் எல்லா லோக்கசனிலும் 0 ஆகும்.
(குறிப்பு: ஒரு ஃபங்க்சனுக்குள் அறிவிக்கப்பட்டால் லோக்கல் அறிவிப்பு ஃபங்க்சனுக்கு வெளியே அறிவிக்கப்பட்டால் குளோபள் அறிவிப்பு)

அர்ரே பிராசஸ்

ஒரு அர்ரே எலிமெண்டுகள் ஃபார் லூப் கொண்டு பிராசஸ் செய்யப்படுகின்றன.
காரணம் ஒரு அர்ரேயில்  100 மதிப்பு இருந்தால் உள்ளீடு வாங்குவதற்கு 100 scanf() ஃபங்க்சன் எழுத முடியாது. ஒரு ஃபார் லூப் மூலம் எல்லா எலிமெண்டுகளையும் இன்புட் வாங்கலாம்.
சான்று:
int a[5];
int i;
உள்ளீடு
for(i=0;i<5;i++)
{
Scanf(“%d”,&a[i]);
}
முதல் இட்டரேசனில் a[0] இன்புட் வாங்கப்படும்.
அடுத்தடுத்த இட்டரேசனில் a[1],a[2],a[3],a[4]  இன்புட் வாங்கப்படும்.
வெளியீடு:
for(i=0;i<5;i++)
{
printf(“%d\t”,a[i]);
}
ஒவ்வொரு இட்டரேசனிலும் a[0],a[1],a[2],a[3],a[4] ஆகியவை வெளியீடு செய்யப்படுகின்றன.
-தொடரும்.



ads Udanz

No comments:

Post a Comment