Wednesday, September 26, 2012

Arrays in Java දෙවන කොටස


‍අ‍පි ‍මී‍ට ‍පෙ‍ර ‍පා‍ඩ‍මෙන්‍ ‍ක‍තා ‍ක‍ලේ 1  dimentional  arrays  ‍පි‍ලි‍බ‍ද‍ව‍යි  java   coding ‍ව‍ල‍දී ‍බො‍හෝ ‍වි‍ට ‍මෙ‍ම arays  ‍බා‍වි‍තා ‍වු‍ව‍ද, 2  dimentional  arrays ‍බා‍වි‍ත‍ය‍ද ‍ඉ‍තා ‍වැ‍ද‍ගත්‍ය. ‍එ‍බැ‍වින්‍ ‍අ‍පි ‍අ‍ද 2   dimentional  arrays  ‍පි‍ලි‍බ‍ද‍ව ‍ක‍තා ‍ක‍ර‍මු.

arrays ‍ය‍නු  ‍කු‍මක්‍‍ද ‍එ‍ය ‍ප‍රි‍ග‍න‍ක‍යේ ‍ම‍ත‍ක‍යේ ‍තැන්‍‍පත්‍ ‍වන්‍‍නේ ‍කෙ‍සේ‍ද ‍යන්‍‍න ‍මේ ‍ව‍න ‍වි‍ට ‍ඔ‍බ ‍දන්‍‍න‍ව ‍ඇ‍ති.
 ‍එ‍ය ‍ත‍ව‍මත්‍ ‍නො‍දන්‍‍න‍ව‍නම්‍ ‍අ‍පේ ‍මී‍ට ‍පෙ‍ර  post ‍එ‍ක ‍කි‍ය‍වන්‍‍න . ‍අ‍පි ‍‍දැන්‍ ‍බ‍ල‍මු 2   dimentional  array ‍එ‍කක්‍ ‍ප‍රි‍ග‍න‍ක‍යේ ‍ම‍ත‍ක‍යේ ‍‍තැන්‍‍පත් ‍ව‍න ‍අ‍කා‍ර‍ය.



‍හො‍ද‍යි ‍අ‍පි ‍දැන්‍ ‍බ‍ල‍මු java  use ‍ක‍ර‍ල 2d   array ‍එ‍කක්‍ create  ‍ක‍ර‍ගන්‍‍නා ‍අ‍කා‍ර‍ය ‍මේ ‍ස‍ද‍හා ‍වි‍වි‍ද ‍වි‍දි ‍කි‍හි‍ප‍යක්‍ ‍ති‍ය‍න‍ව ‍අ‍පි ‍එ‍කින්‍ ‍එ‍ක ‍බ‍ල‍මු.
Syntax 01 :-

1.      DataTyp  ArrayName [][] = new DataTyp  [Rows][Columns] ;

Code 01 :-
1.      int  height  [][] = new int  [4][5] ;

Syntax 02 :-
1.      int  height  [][] = { {row value1,row value 2,row value 3,row value 4},
                               {row value1,row value 2,row value 3,row value 4},
                               {row value1,row value 2,row value 3,row value 4},
                               {row value1,row value 2,row value 3,row value 4},
                               {row value1,row value 2,row value 3,row value 4} } ;

ඉ‍හ‍ත ‍අ‍කා‍ර‍ය‍ට  2d  array ‍එ‍කක්‍ create  ‍ක‍ර ‍එ‍ය acsess  ‍ක‍ර‍න ‍අ‍කා‍ර‍ය ‍ප‍හ‍ත code  ‍එ‍ක ‍අ‍දා‍ර‍යෙන්‍ ‍ව‍ට‍හා ‍ග‍මු.

Code:-

public class twoDArray {

    public static void main(String[] args) {
        //create 2d array
        int mathsTable[][]={{2,4,6,8},
                                          {3,6,9,12},
                                        {4,8,12,16},
                                      {5,10,15,20},
                                      {6,12,18,24}};
        //Acess 2d Array using for loops
        for(int row=0;row<mathsTable.length;row++){
            for(int colo=0;colo<mathsTable[row].length;colo++){
                System.out.print(mathsTable[row][colo]+"\t");
            }
            System.out.println("");
        }

    }

}

 
Out put :-

‍අ‍පි‍ට ‍මේ ‍අ‍කා‍ර‍ය‍ට 3D   Array ‍එ‍කක්‍ ‍උ‍නත්‍ ‍ස‍දා ‍ගන්‍‍න ‍පු‍ලු‍වන්‍ ‍එ‍ය ‍ප‍හ‍ත code  ‍එක්‍ ‍ම‍ගින්‍ ‍බ‍ලන්‍‍න.
Code :-

import java.util.Random;

public class threeDArray {

    public static void main(String[] args) {
        //creating 3D Array
        float maths[][][]=new float[4][3][5];
        for(int x=0;x<maths.length;x++){
            for(int y=0;y<maths[x].length;y++){
                for(int z=0;z<maths[x][y].length;z++){
                    //filling 3d array with random values
                    maths[x][y][z]=(float)Math.random();
                    System.out.println(maths[x][y][z]);
                }
            }
        }

    }

}

 
Out put :-


‍දැන්‍ ‍අ‍පි ‍බ‍ල‍මු Arrays  ‍ස‍ද‍හා ‍පො‍ඩි ‍ගැ‍ට‍ලු ‍ටි‍කක්‍..

01)   ‍අං‍‍ක 1 ‍ස‍හි‍ත length   =  6 ‍ව‍න array  ‍එ‍කක්‍ ‍ස‍හ ‍අං‍‍ක   2 ස‍හි‍ත length   =  6 ‍ව‍න array ‍එ‍කක්‍ ‍ස‍දා ‍ගන්‍‍න ‍මෙ‍ම array  ‍දෙ‍ක ‍බා‍වි‍ත‍යෙන්‍ 121212121212 ‍ලෙ‍ස ‍අ‍ඩං‍‍ගු array  ‍එ‍කක්‍ ‍ස‍දා ‍එ‍ය print  ‍ක‍ර‍ගන්‍‍න .

02)  ‍පි‍ලි‍ව‍ලින්‍ ‍අන්‍‍ක 56,24,10,3,23,89 ‍අ‍ඩං‍‍ගු  array ‍එ‍කක්‍ ‍ස‍දා ‍එ‍ම‍ගින්‍ ‍එ‍හි ‍අ‍ඩං‍‍ගු maximum   value ‍එ‍ක ‍හා minimum   value ‍එ‍ක print  ‍ක‍ර‍ගන්‍‍න.


  3)  ‍අන්‍‍ක 2 ‍ඇ‍තු‍ලත්‍  length=6  ‍කින්‍ ‍යුක්‍‍ත A ‍නම්‍ array  ‍එ‍කක්‍ ‍ස‍දා ‍ගන්‍‍න .‍‍එ‍හි element  2න්‍ ‍ගු‍න ‍ක‍ර ‍එ‍ම ‍අ‍ග‍යන්‍ ‍ස‍හි‍ත B  ‍නම්‍ array  ‍එ‍ක ‍ස‍දා ‍ගන්‍‍න . print ‍ක‍ර‍ගන්‍‍න  ‍එ‍ම b   array ‍‍එ‍කෙ‍හි element   ‍නැ‍ව‍ත 2න්‍ ‍බෙ‍දා  c array  ‍එ‍ක ‍ස‍දා, print ‍ක‍ර‍ගන්‍‍න .

Answers  ;-
01)

public class q1 {

    public static void main(String[] args) {
        int a[]={1,1,1,1,1,1};
        int b[]={2,2,2,2,2,2};
        int c[]=new int[12];
        for(int i=0;i<a.length;i++){
            c[i*2]=a[i];
            c[i*2+1]=b[i];
        }
        for(int i=0;i<c.length;i++){
            System.out.print(c[i]+" ");
        }

    }

}

 

02)


public class q2 {

    public static void main(String[] args) {
        int array[]={56,24,10,3,23,89 };
        int max=array[0];
        int min=array[0];
        for(int i=0;i<array.length;i++){
            if(array[i]>=max);
            max=array[i];
        }
        System.out.println("max value is "+max);
        for(int j=0;j<array.length;j++){
            if(array[j]<=min)
                min=array[j];
        }
        System.out.println("min value is "+min);
    }

}

 

03)

public class q3 {

    public static void main(String[] args) {
        int a[]={2,2,2,2,2,2};
        int b[]=new int[6];
        for(int i=0;i<b.length;i++){
            b[i]=a[i]*2;
            System.out.print(b[i]+" ");
        }
        System.out.println("");
        int c[]=new int[6];
        for(int i=0;i<b.length;i++){
            c[i]=b[i]/2;
            System.out.print(c[i]+" ");
        }
    }


}



By Manoj Priyankara

Saturday, September 15, 2012

Java වැඩසටහනකට user inputs ලබාදීම( buffered reader භාවිතය )



අද අපි කතා කරන්න යන්නේ   buffered reader එක මගින් java  වැඩසටහනකට  user inputs ලබා ගන්න විදිය ගැන.අපි පහත code  එක මගින් මෙය තේරුම් ගනිමු.

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class BufferedReaderDemo {

      
       public static void main(String[] args) throws Exception {
             
              InputStreamReader isr=new  InputStreamReader(System.in);
              BufferedReader br=new BufferedReader(isr);
             
              System.out.println("enter your name");
              String name = br.readLine();
             
             
              System.out.println("enter your age ");
              int age = Integer.parseInt(br.readLine());
             
             
              System.out.println("enter your height ");
              double height  = Double.parseDouble(br.readLine());
             
              System.out.println("Your name is  "+name + "  You are  "+age+ "  years old  "+ "and  " + "Your height is  "+ height);
             
             
             
             

       }

}



මෙහි output  එක  :







ඉහත code  එකේ මුලින්ම කරලා තියෙන්නේ  io   package  එකේ තියන  BufferedReader හා InputStreamReader  කියන classes  දෙක   import  කිරීම. මෙලෙස  import කිරීම මගින් එම  class දෙක තුල ඇති methods   අපේ  code එක තුලදී අපිට භාවිතා කරන්න පුලුවන්. ඉහත  classes දෙක වෙන වෙනම import  නොකර කෙලින්ම import java.io.*;ලෙස මුලු  io package එකම  import කරන්නත් පුලුවන්. එවිට io package එකේ ඇති සියලුම classes  අපේ code  එක තුලට import වෙනවා.



ඉන්පසු  main method එක අවසානයේදී  throws Exception ලෙස දක්වා ඇත්තේ මොකක්ද කියන එක ඔබට ගැටලුවක් වෙන්න පුලුවන්. අපි එහිදී සිදු කරලා තියෙන්නේ user inputs  ලබා දීමේදී සිදු විය හැකි exceptions handle  කිරීම.  මෙය  try ,catch   භාවිතයෙන්  උනත්  සිදු  කරන්න  පුලුවන්. Exception Handle කිරීම ගැන අපි ඉදිරියේදී කතා කරමු. දැනට ඒක ගැන වැඩිපුර නොහිතා Bufferde Reader  එක භාවිතා කරන විට Exception handle  කරන්න ඕන කියල විතරක් මතක තියා ගන්න.



හරි දැන් ඔබට ගැටලුවක් ඇති මෙන්න මේ කොටසින් කරන්නේ මොකක්ද කියලා.
InputStreamReader isr=newInputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);

ඇත්තටම මෙහිදී මුලින්ම සිදු කරලා තියෙන්නේ අපි import  කරපු  InputStreamReader  class එක භාවිතා කරලා isr  කියල  object එකක් සාදා ගැනීම. එම object  එක සැදීමේදී  System.in කියලා  parameter එකකුත් pass  කරන්න ඕන.



ඉන් පසුව BufferedReader br=new BufferedReader(isr);  කියන එකෙන් කරන්නෙ අපි  import කර ගත්  BufferedReader class එක භාවිතා කරලා  br කියල  object එකක් සාදා ගැනීම.  මෙහිදී අපි ඉහත  සාදා ගත්  isr object එක මෙම br object  එකට  parameter එකක් ලෙස  pass කරනවා.

ඉහතදී  පේලි දෙකකින් ලියා ඇති code  එක පහත  පරිදි තනි පේලියකින් උනත් ලියන්න පුලුවන්.
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

මෙම object  සෑදීම පිලිබදව ඔබට එතරම් වැටහෙන්නේ නැත්නම් අපි  object oriented කොටස ගැන ඉදිරි පඩම් වලදි කතා කරන විට එය  ඔබට  හොදින් වැටහේවි.  

 එතකම්  BufferedReader එක භාවිතා කිරීමට main  method  එකතුල
InputStreamReader isr=new  InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
ලෙස දැක්විය යුතු බව මතක තබා ගන්න. 




හරි දැන් අපි බලමු සාදා ගත්  BufferedReader object එක භාවිතයෙන් කොහොමද user inputs  කියවන්නෙ කියලා. BufferedReader එක භාවිතා කරලා  user inputs ගනිද්දි අපිට එම input  එක ගන්න පුලුවන් String  එකක් විදියට විතරයි.


අපිට numeric value එකක්  user input එකක් විදියට ගන්න ඕනි නම් අපි එය  String  එකක් විදියට අරගෙන අදාල numeric value  එකට  convert කල යුතුයි.

BufferedReader එකෙන් String  එකක්  input එක විදියට ගන්නව නම් මෙන්න මෙහෙම තමා ඒක කරන්න ඕන.
String name = br.readLine();

මෙහිදී   br  object  එක  සහ  BuffereedReader   class   එකේ තියන  readline metnod එක භාවිතා කොට ගෙන අදාල String  එක name කියලා String variable  එකකට  assign   කරනවා.


BufferedReader  එකෙන්  Integer   එකක්  input එක විදියට ගන්නව නම් මෙන්න මෙහෙම තමා ඒක කරන්න ඕන.

int age = Integer.parseInt(br.readLine());

මෙහිදී සිදු වන්නේ  Integer  class   එකේ ඇති  parseInt method එකට   parameter  එකක් ලෙස BufferedReader  එකෙන් ලබා ගන්නා  input එක ලබා දී එය   Integer එකකට  convert කිරීමයි. .



BufferedReader  එකෙන්   Double    එකක්  input එක විදියට ගන්නව නම් මෙන්න මෙහෙම තමා ඒක කරන්න ඕන.

double height  = Double.parseDouble(br.readLine());


මෙහිදී සිදු වන්නේ  Double   class   එකේ ඇති  parseDouble method එකට   parameter  එකක් ලෙස BufferedReader  එකෙන් ලබා ගන්නා  input එක ලබා දී එය   Double  එකකට  convert කිරීමයි. .


ඉහත එකේ අනිත කොටස් ඔබට තෙරුම් ගන්න පුලුවන් සරල දෙවල් ටිකක් තමා තියෙන්නේ. තේරෙන්නේ නැති තැනක් තියනව නම් අපිට කියන්න.හොදම දේ තමා  BufferedReader එක යොදා ගෙන තවත් ලියන්න.එහෙනම් අදට නවතිනවා.තවත් පාඩමකින් අපි ලගදීම හමුවෙමු.

By Hasitha Thamaranga