May 6, 2021

TechXlk

All About Technology

Arrays ගැන ඉගෙනගනිමු |TechXlk C Tutorial – 11

Arrays in C C tutorials 11 __TechXlk__

ඔන්න අපි මේ article එකෙන් අලුත්ම කොටසක් කතා කරන්න යන්නෙ.ඒ තමයි c හි භාවිතා වන Arrays(ආරාව) ගැන .Arrays කියල කියන්නේ ඕනෑම ක්‍රමලේඛන භාෂාවක බොහෝසෙයින් භාවිතා කරන දෙයක්.අපි මේ article එකෙන්,array එකක් සකස්කරන්න ,එහි දත්ත ලබන්නේ කොහොමද කියල කතාකරමු.

මුලින්ම මොකක්ද මේ array කියල කියන්නේ?

array එකක් යනු බහු අගයන් ගබඩා කල හැකි විචල්‍යයක් (variable) ලෙස සරලව අර්ථ දැක්විය හැකි වේ.අපිට පුර්ණ සංඛ්‍යා 100 ක් ගබඩා කරන්න ඕනි වෙනවා ,එකට අපිට පහලින් තියෙනවා වගේ array එකක් හදාගන්න පුළුවන්.

int data[100];

කොහොමද අපි array එකක් හදාගන්නේ?…

datatype arraname [array size]

මුලින්ම අපි array එකේ datatype එක හදුන්ව දෙන්න ඕනි.

ඊළගට array එකේ නම ,මෙතනදීත් අපි variable එකක් නම් කරද්දී පිළිපදින නීති අනුගමනය කරන්න ඕනි.

ඊළගට කොටු වරහන් දෙකක් ඇතුලේ array එකේ size එක ලබා දෙන්න ඕනි.

අපේ කලින් උදාහරණය බලන්න, array එක int data type එකට අයත් වෙනවා.array එකේ නම data ,ඒ වගේම array එකේ ගබඩා කළහැකි අගයන් ගණන 100 ක් වෙනවා.

තව වැදගත් දෙයක් තියෙනවා ,array හැදුවට පස්සේ එකේ නමයි size එකයි වෙනස් කරන්න බැ.ඒකනිසා array එක හදද්දිම අපිට ඕනි කරන විදියට, විශේෂයෙන්ම size එක තීරණය කර ගන්න ඕනි.

array එකක elements ලබා ගැනීම.

අපි මේක උදාහරණයකින්ම පැහැදිලි කර ගනිමු.

int mark[5];

අපේ මේ උදාහරණය බලන්න ,එකේදී අපි array size එක දීල තියෙන්න 5 යි කියල .ඒ කියන්නේ අපි මේ variable එක කොටස් 5 කට වෙන් කර ගන්නවා,

ඊළගට ඒ ඒ කොටසට වෙනම අගයක් ලබා දෙනවා,අපි මේ අගයට කියන්නේ index එක කියල.මේ වැඩේ අපි කරන එකක් නෙවෙයි.array එකක් හදද්දිම මේක සිද්ද වෙනවා.මේ index දෙන්න කොහොමද කියල පහල උදාහරණය බැලුවම හොදින් තේරුම් ගන්න පුළුවන් ,

දැන් ඔයාලට තේරෙනවා ඇති index එක ගන්නේ කොහොමද කියල.අපිට array එකේ පලවෙනි element එක ගන්න ඕනිනම් mark[0] ද,දෙවැනි element එක ගන්න ඕනිනම් mark[1] ලෙසද සටහන් කල යුතු වේ.

මේ උදාහරණය හොදින් බලන්න,

int mark[5]={19,10,8,17,9};

අපි මෙතනදි mark කියන list එකට data දාගෙන තියෙනව.මම පහලින් දාල තියෙන රූපෙන් බලාගන්න පුළුවන් කොහොමද මේ data ටික index වෙලා තියෙන්නේ  කියල.

අපි බලමු එහෙනම් මේක ඇත්තටම හරිද කියල,

#include<stdio.h>
int main(){
    int mark(5]= (19,10,2,17, 9}:
    printf ("mark(0) is equal to %d\n",mark[0]);
    printf ("mark[1} is equal to %d\n",mark[i]);
    printf ("mark[(2) is equal to %d\n",mark[2]);
    printf ("mark(3} is equal to %d\n",mark[3]);
    printf ("mark[4]) is equal to %d",mark[4]);
}

array එකක අගයක් වෙනස් කර ගන්නා ආකාරය.

අපි කලින් සකස් කර ගත්ත array එකක තියෙන අගයක් වෙනස කරගන්නේ කොහොමද කියල බලමු.

මෙතනදි අපි කරන්නේ අපිට වෙනස් කරගන්න ඕනි වෙන අගයට අදාල index එකට, අපිට වෙනස් වෙන්න  ඕනි අගය එකතු කරන එක.පහළ උදාහරණයෙන් මේක කරන විදිය පැහැදිලි කර ගමු.

#include <stdio.h>
int main(){
    int mark[5]={19,10,8,17,9};
    //make the value of the second element as -5;
    mark[1]=-5;
    printf("%d",mark[1]);
}

පරිශීලක ආදාන අගයක් array එකක ගබඩා කර ගන්නා ආකාරය.

මේක අපට බොහෝසෙයින් වැදගත් වන දෙයක්.මෙහෙම හිතන්න,අපිට programme එකකදී ළමයෙක් එක් එක් විෂයට ලබාගත් ලකුණු ගබඩා කර ගන්න ඕනි වෙනවා,මේ වැඩේ ලේසියෙන්ම list එකක් යොදාගෙන කරගන්න පුළුවන්.

පරිශීලක ආදානය කරන අගයක් list එකක් ගබඩා කරගන්න ආකාරය පහතින් පෙන්වන්නම්,

#include <stdio.h>
int main(){
    int mark[5];
    scanf("%d",%mark[0]);
    scanf("%d",%mark[1]);
}

හරි එහෙනම් ,අපි මේ වෙනකන් කතාකරපු හැමදේම භාවිතයට ගනිමින් කරන්න පුළුවන් ප්‍රශ්නයක් සාකච්චා කරමු.එහාකොට මේ කොටස් ටික තවත් හොදට තේරුම් ගන්න පුළුවන් වෙයි.

උදාහරණ.

ශිෂ්‍යයෙකු වාර විභාගයට ලබාගත් ලකුණු වල එකතුව හා සාමාන්‍ය ලකුණ ගණනය කිරීමට වැඩසටහනක්,

#include <stdio.h>
int main(){
    int marks[3];
    for(int i=0; i<=2; ++i){
        printf ("Enter marks: ");
        scanf ("%d", &marks[i]);
    }
    int total=0;
    float avg;
    for(int x=0;x<=2;++x) {
        total=total+marks[x];
    }
    printf ("Total marks got: %d\n",total);
    avg=total/3.0;
    printf ("Average: %.2f",avg);
}

මේ programme එක ක්‍රියාත්මක වෙන ආකාරය සාකච්චා කරමු.

මුලින්ම අපි marks කියල list එකක් සකස් කරගෙන තියෙනවා.මේ list එකේ තමයි අපේ data ටික ගබඩා කරගන්න යන්නෙ.

ඊළගට අපි for loop එකක් යොදාගෙන ශිෂ්‍යයාගේ ලකුණු list එකේ ගබඩා කර ගන්නවා.ඊලග for loop එකෙන් අපි list එකේ තියෙන data ටික කියව ගන්නවා.ඒ එක්කම එම අගය total කියන variable එකට එකතු කර ගන්න එකත් කරගෙන තියෙනවා.අනිත් ටිකනන් අපි හැම උදහරනයකම කරන දේවල්….

අපි දැනට කතා කරපු array සේරම ඒකමාන ආරා(array) කියල හදුන්නවනවා.මීට අමතරව තවත් array වර්ගයක් තියෙනවා ඒ තමයි බහුමානීය ආරා (multidimensional array).අපි මේ වර්ගයේ array ගැන ඊලග article එකෙන් කතා කරමු….