May 11, 2021

TechXlk

All About Technology

Multidimensional array(බහුමාණිය ආරාව )|TechXlk C Tutorial -12

multidimensional array in C .Ctutorial 12 __TechXlk__

multidimensional array ( බහුමානීය ආරා ).

අපි කලින් article එකෙන් ඒක මාන ආරා ගැන කතා කරා.මේ article එකෙන් අපි බහුමානිය ආරා(multidimensional array) ගැන ඉගෙන ගනිමු.

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

Array  එකක් ඇතුලේ තවත් array එකක් හදල තියෙනවනම් එවැනි array වර්ග  multidimensional array කියල කියන්න පුළුවන්.

පහලින් තියෙන උදාහරණය බලන්න ,

float x[3][4];

මෙතන x කියල කියන්නෙ ද්විමාන (2d) array එකක් ,මේ array එකට elements 12ක් ගබඩා කරලා තියාගන්න පලුවන්.මේක තේරුම් ගන්න පහසු වෙන්නත් එක්ක ,මේ array එක පේලි 3 ක් හා තීරු 4 ක වගුවක් වගේ හිතන්න

මේ වගේම අපිට ත්‍රිමාන (3d) array එකක් උනත් හදාගන්න පුළුවන්.උදාහරණයක් විදියට,

float x[2][4][3];

මේ array එකට elements 24 ක් ගබඩා කරලා තියාගන්න පුළුවන්.

ද්විමාන (2d) array එකක් නිර්මාණය කර ගැනීම.

int c[2][3]={{1,3,0}, {-1,5,9}};
int c[][3]={{1,3,9},{-1,5,9}};
int c[2][3]={1,3,0,-1,5, 5}:

ඔය උඩ තියෙන උදාහරණයේ තියෙන ක්‍රම තුනෙන් ඕනෑම ක්‍රමයකට 2d array එකක් නිර්මාණය කර ගන්න පුළුවන්.

මෙහෙමයි වෙන්නේ ඔය c[2] කියල තියෙන්නේ array එක ඇතුලේ හදන්න පුළුවන් අනිත් array ගණන.

එතකොට c[3] න් කියන්නේ ඒ array එකක තියෙන්න පුළුවන් elements ගණන.

එහෙම බැලුවම c[2][3] කියල කියන්නේ array එක ඇතුලේ තව array දෙකකින් හා ඒ array එකක් ඇතුලේ elements 3 තියෙන 2d array එකක්.

ද්විමාන (2d) array එකක දත්ත ගබඩා කිරීම හා දත්ත ලබා ගැනීම.

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

#include <stdio.h>
const int city=2;
const int week=7;
int main(){
    int temperature([city] [week]);
    for(int i=0; i<city; ++i){
        for(int j=0; j<week; ++j){
            printf ("CITY %d DAY %d: ",i+1,j+1);
            scanf ("%d", &temperature [i][j]);
        }
    }
    printf ("\nDISPLAYING TEMPERATUREs....\n\n");
    for(int m=0; m<city; ++m) {
        for(int n=0; n<week; ++n){
            printf ("CITY %d DAY %d temperature:%d\n",m+1,n+l,temperature [m][n]);
        }
    }
}

මේ programme එකේ output එක පහලින් බලාගන්න පුළුවන්.

ත්‍රිමාන (3d) array එකක් නිර්මාණය කර ගැනීම.

int test[2][3][4]={
    {{1,2,3},{4,5,6},{7,8,9,10}},
    {{13,14,15,16},{17,18,19,20},{21,22,23,24}}
};

 මෙතනත් අර කලින් කිව්ව විදියටම තමයි.මෙතනදී ප්‍රදාන array එක ඇතුලේ තව array දෙකක් තියෙනවා.මේ array දෙක ඇතුලෙත් තව array 3 ක් තියෙනවා.

මේ array එකේ elements 24 ක් ගබඩා කරන්න පුළුවන්.

ත්‍රිමාන (3d) array එකක දත්ත ගබඩා කිරීම හා දත්ත ලබා ගැනීම.

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

#include <stdio.h>
int main(){
    int num[2][3][2];
    printf("enter 12 numbers:");
    for(int i=0; i<2; ++i){
        for(int j=0; j<3; ++j){
            for(int k=0;k<2;++k){
            scanf ("%d", &num[i][j][k]);
            }
        }
    }
    printf ("\nDISPLAYING TEMPERATUREs....\n\n");
    for(int i=0; i<2; ++i){
        for(int j=0; j<3; ++j){
            for(int k=0;k<2;++k){
               printf("test[%d][%d][%d]=%d \n",i,j,k,num[i][j][k]);
            }
        }
    }
}

මේ programme එකේ output එක පහලින් බලාගන්න පුළුවන්.

Array එකක elements, function එකක arguments ලෙස ලබාදීම.

Array එකක elements, function එකක argument ලෙස ලබාදෙන්නේ, ඒ elements variable එකකට ලබා දෙන විදියටම තමයි.මේක කරන විදිය පහල උදාහරණයෙන් පෙන්වල දෙන්නම්.

#include<stdio.h>
int main(){
    int age[]={15,25,32,45};
    agearray(age[1],age[2]);
    return 0;
}
int agearray(int agel,int age2) {
    printf ("AGE1: %d AGE2: %d",agel,age2);
    return 0;
}

Array එකක් function එකක argument එක ලෙස ලබා දීම.

#include <stdio.h>
int main(){
    int num[4]={14,22,23,58};
    int result=numarray (num) ;
    printf ("total is: %d", result);
    return 0;
}
int numarray(int num[))
{
    int total=5;
    for(int i=0; i<4; ++i){
        total=total+num[i];
    }
    return total;
}

අපි කලින් උදාහරණයෙන් කතා කරේ element එකක් function එකකට pass කරන විදිය.element එකක් විතරක් නෙවයි අපිට සම්පුර්ණ array එකම උනත් argument එකක් විදියට array එකකට pass කරන්න පුළුවන්.

අපි මේ උදාහරණයේදී සම්පුර්ණ array එකම function එකට pass කරගත්තා.

අපි function එකට array එක pass කරපු පේලිය බලන්න.

int result = numarray(num);

අපි function එකට pass කරලා තියෙන්නේ array එකේ නම විතරයි.

නමුත් අපේ function එක define කරන තැන බලන්න.

int numarray(int num[])

එතනදී අපි [ ] මේ වරහන් දෙක පාවිච්චි කරලා තියෙනව.මේ වරහන් දෙකෙන් අපි compiler ට කියනවා අපි මේ pass කරන්නෙ array එකක් කියල.

අපිට multidimensional array එකක් function එකකට pass කරන්න ඕනි උනත් කරන්නේ ඔය විදියටම තමයි.එතකොට අපි කලින් වගේම num[ ][ ] කියල වරහන් දෙකක් දාල compiler ට කියනවා අපි දැන් pass කරන්නෙ multidimensional array එකක් කියල.

හරි එහෙනම් අපි මේ article එකෙන් ගොඩක් කරුණු කතා කරා.array ගැන තව හොදට හොයල බලන්න.

එහෙනම් දැනට මේ article එක ඉවර කරමු.ඊලග article එකෙන් තවත් වැදගත් කරුණු ටිකක් ඉගෙනගමු…