Tuesday, September 11, 2012

Variables හා Data Types ගැන ඉගෙනගමු.

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


අද අපි අළුත් පාඩමක් පටන්ගන්නවා කියල මම කලින් ලිපියෙන් කිව්වනෙ. ඒ කිව්ව වගේම අද අපි java වල variables භාවිතයෙන් programming කරන හැටියි data types ගැනයි ඉගෙනගන්න යන්නෙ. අපි එහෙනම් පටන් ගමු.


මුලින්ම මොකක්ද මේ variable එකක් කියන්නෙ කියල බලමු. Variable එකක් කියන්නෙ විචල්‍යයක්.විචල්‍යය කියන එක දන්නවනෙ, අපි සාමාන්‍යයෙන් ගානක් හදද්දි x, y කියල දාගෙන හදන්නෙ.අන්තිමට x, y වල විවිධ අගයන් වලට අපිට ඕනෙ පිළිතුර ගන්න පුළුවන්. ඒ වගේම තමයි variables ක්‍රියාකරන්නෙ. අපි program එකක් ලියන්නෙ මොකක් හරි වැඩක් කරගන්නනෙ. එතකොට අපිට ඕනවෙනව program එකට අපිට අවශ්‍ය data input කරල අපිට අවශ්‍ය output එක ගන්න. ඔන්න ඔය අපි input කරන data තියාගන්න (store) තමයි අපිට variable ඕන වෙන්නෙ.

 
දැන් කට්ටියට අදහසක් ඇති මේ variable කියන්නෙ මොකක්ද කියල. අපි program එකකුත් ලිව්වම තවත් හොඳට තේරෙයි. හැබැයි program එක ලියන්න කලින් තව දේවල් කිහිපයක් ඉගෙනගන්න තියෙනව. මම කලින් කිව්වනෙ java වල program කරන ක්‍රමයක් (Syntax එකක්) තියෙනව කියල. එහෙනම් අපි මුලින්ම බලමු variable එකක් declare කරගන්නෙ කොහොමද කියල. Declare කරනව කියල අපි අදහස් කරන්නෙ මේකයි. අපි variable එකක් හදාගන්නෙ කිසියම් දෙයක් එකෙ store කරගන්නනෙ. ඉතිං ඒ සඳහා අපිට පරිගණකයේ මතකයෙන් ඉඩක් වෙන්කරගැනීම තමයි declare කරනව කියල අදහස් කරන්නෙ.


<data_type> <identifier>;

මම ඔය ඉහළින් පෙන්නල තියෙන්නෙ variable එකක් declare කරගන්න ආකාරය. මුලින්ම අපේ variable එකේ data type එක දෙන්න ඕනෙ. ඊට පස්සෙ අපේ variable එක හඳුනාගන්න නමක් දෙන්න ඕනෙ. හරියට අපි ගණිතයේදී x, y දෙනව වගේ. ඒ නමට තමයි අපි identifier එකක් කියන්නෙ. ඊට පස්සෙ semicolon (;) එකකින් statement එක ඉවර කරන්න ඕනෙ. උදාහරණයක් විදිහට අපි බලමු x කියල variable එකක් හදාගන්න හැටි.


int x;

මෙතන int කියල තියෙන්නෙ java වල තියෙන data type එකක්. මම මේ variable එකේ identifier එක විදිහට x කියල දීල තියෙනව. ඔන්න ඔහොම තමයි අපි java වල variable එකක් හදාගන්නෙ.


අපි මෙතනදි data type ගැන කතා කරා. ඒ වගේම තමයි data types ගැන දැනගන්නේ නැතුව variable වල ඉස්සරහට යන්න බැරි බව ඔයාලට තේරෙන්න ඇති. ඒ නිසා අපි දැන් java වල තියෙන data types ගැන කතා කරල ආපහු variables වලට එමු.

මම කලින් කිව්ව අපිට program එකක් කරද්දි විවිධ දේවල් input කරන්න වෙනව කියල. ඒව සංඛ්‍යා වෙන්න පුළුවන්. අකුරු වෙන්න පුළුවන්, වචන වෙන්න පුළුවන්. අපි දන්නවා පරිගණකය හඳුන්නෙ 1 යි 0 යි විතරයි. හරියටම කියනවනම් විභව (voltage) අඩු වැඩි වීමක් විතරයි පරිගණකය හඳුනාගන්නෙ. මේක ඉලෙක්ට්‍රොනික උපකරණයක් නෙ. ඉතිං මේ මගින් තමයි අපේ අකුරු, වචන, ඉලක්කම් වගේ සේරම input එයා හඳුනාගන්නෙ. ඒ නිසා අපි input කරන්නෙ ඉලක්කමක්ද, වචනයක්ද කියන එක මුලින් දැනුම දීල ඉන්න ඕනෙ. නැත්තං පරිගණකයට පැටලෙන්න පුළුවන්. පරිගණකයට හිතල වැඩ කරන්න පුළුවන් හැකියාවක් නෑනෙ. ඒ නිසා තමයි data types තියෙන්නෙ. මේ මගින් අපිට පුළුවන් අපි ගනුදෙනු කරන්නෙ මොනවගේ දේවල් එක්කද කියල පරිගණකයට දන්වන්න. අපි බලමු එහෙනම් මොනවද java වල තියෙන data types කියල.







ඔය පින්තූරෙ තියෙන්නෙ java වල තියෙන data types ටික. මෙතනින් Reference data types කියන ටික
මම අද කතා කරන්න බලාපොරොත්තු වෙන්නෙ නෑ. ඒ ටික තව ඉස්සරහට යනකොට ඉගෙනගන්න පුළුවන්. අපි අද කතා කරන්නෙ primitive data types ගැන.


Non numeric

Boolean
මේ boolean කියන data type එක පාවිච්චි වෙන්නෙ Boolean expression එකක result එක විදිහට. Boolean expression එකක් කියන්නෙ පිළිතුර true හරි false හරි වෙන expression එකක්. මේ data type එක ගැන අපැහැදිලි නම් දැනට ඒක අමතක කරල තියන්න. පස්සෙ program වල භාවිතා වෙනකොට තේරුම් ගන්න පුලුවන්.


Char
char data type එක භාවිත වෙන්නෙ අකුරු සමග කටයුතු කරනකොට. මේ data type එක සහිත variable එකක තනි අකුරක් store කරගන්න පුළුවන්. මේ ගැන තව විස්තර තියෙනව. ඒ ගැන උදාහරණ එක්කම කියල දෙන එක හොඳයි කියල තමයි මගේ අදහස. ඒ නිසා ඒකත් මම ටිකක් පස්සට තියනව.


Numeric 

Byte
මේ data type එක භාවිත වෙන්නෙ පුර්ණ සංඛ්‍යා සමග වැඩ කරද්දි. මේ data type එක 8 bit data type එකක්. ඒ කියන්නෙ මේ data type එකේ variable එකක bit 8 ක තොරතුරු රඳවගන්න පුළුවන්. ඒ තොරතුරු ප්‍රමාණය කොහොමද තීරණය වෙන්නෙ කියල දැනගන්න අපිට computer hardware ගැන දැනගන්න වෙනව. ඒක පැහැදිලි කරන්න ගොඩක් වෙලත් යනව. අනික අපේ පදමට අදාලත්වයකුත් නෑනෙ. ඒ නිසා මම ඒ ගැන කියන්න යන්නෙ නෑ. මම කෙටියෙන් කිව්වොත් 1 bit එකක data 21 ප්‍රමාණයක් රඳවගන්න පුළුවන්. එතකොට byte variable එකක 28 data ප්‍රමාණයක් (සංඛ්‍යා 512ක්) රඳවගන්න පුළුවන්. byte variable එකක සෘණ ධන අගයන් දෙකම රැඳවිය හැකි නිසා -128 සිට 127 දක්වා සංඛ්‍යා රඳවන්න පුළුවන්.


Short

මේකත් පුර්ණ සංඛ්‍යා සඳහා භාවිත වන data type එකක්. මෙය byte වලින් වෙනස් වන එකම කරුණ තමයි මේ data type එක 16 bit වීම. ඒ නිසා short variable එකක -32768 සිට 32767 දක්වා පුර්ණ සංඛ්‍යා රඳවන්න පුළුවන්.


Int
මේකත් පුර්ණ සංඛ්‍යා සඳහා භාවිත වන data type එකක්. මේ data type එක 32 bit data type එකක්. ඒ නිසා int variable එකක -2,147,483,648 සිට 2,147,483,647 දක්වා පුර්ණ සංඛ්‍යා රඳවන්න පුළුවන්.


Long
මේකත් පුර්ණ සංඛ්‍යා සඳහා භාවිත වන data type එකක්. මේ data type එක 64 bit data type එකක්. long variable එකක කොච්චර සංඛ්‍යා රඳවන්න පුලුවන්ද කියල ඔයාල හොයල බලන්නකො.

දැන් මේ ටික කියෙව්වම ඔයාල බලන්න ඇති පුර්ණ සංඛ්‍යා තියාගන්න මෙච්චර data types මොකටද කියල. Long විතරක් තිබුණනම් ඇතිනෙ. ඒත් අපි program එකක් ලියනකොට අපි භාවිත කරන memory capacity එක හැකිතාක් අඩු කරගන්න පුලුවන්නම් හොඳයි. ඉතිං දැන් තේරෙනව ඇතිනෙ කුඩා අංකයක් ලොකු memory ප්‍රමාණයක් පාවිච්චි කරන data type එකක variable එකක දැම්මම වෙන දේ. උදාහරණයක් විදිහට අපි 127 කියන සංඛ්‍යාව long variable එකක දැම්ම කියල හිතන්නකො. මේ සංඛ්‍යාව රඳවන්න අපිට bit 8ක් තිබුණම ඇති. ඒත් අපි bit 64ක්ම පාවිච්චි කරල තියෙනව. ඒක programming වලදි කරන්න හොඳ දෙයක් නෙමෙයි. දැන් ඔයාල බලයි අපි මේ සේරම ranges මතක තියාගන්න ඕනෙද කියල. නෑ නෑ එහෙම ඕනෙ නෑ. නිකන් දළ වශයෙන් දැනගත්තම ඇති. මම මේ ලිපියට ලියන්න මේ ranges හොයාගත්තෙත් google search එකක් දාල.
ඔයාලට දැන් තව ප්‍රශ්නයක් මතු වෙලා ඇති. පුර්ණ සංඛ්‍යා නම් හරි, ඒත් දශම සංඛ්‍යා කොහෙද දාන්නෙ කියල. නේද? ඒවටත් data types තියෙනව. ඊළඟට කතාකරන්න යන්නෙ ඒ ගැන තමයි.

Float and Double
දශමස්ථාන සහිත සංඛ්‍යා සමග කටයුතු කිරීම සඳහා java වල හඳුන්වාදී තිබෙන data types දෙක තමයි float සහ double කියන්නෙ. මෙතනින් float data type එක 32 bit වන අතර double data type එක 64 bit වෙනව. මේ data types වල භාවිත කරන්න පුළුවන් සංඛ්‍යා පරාසය හොයල බලන්නකො. Float data type එකේ සාමාන්‍යයෙන් දශමස්ථාන 6 කට නිවැරදිව සංඛ්‍යාවක් රඳවන්න පුළුවන්. Double වල මෙම දශමස්ථාන සංඛ්‍යාව 15 පමණ.

ඔන්න ඔය ටික තමයි අපි අද data types ගැන කතා කරන්නෙ. තව ඉස්සරහට යද්දි මේ දේවල් ගැන තව තව වැඩිපුර කරුණු ඉගෙනගන්න පුළුවන්. එහෙනම් අපි ආපහු variables වලට එමු. මම හිතුව variables වල ඉතුරු ටික program එකක් මගින්ම කතා කරනව කියල. අපි දැන් program එකක් ලියන්න යන්නෙ අපි අරය සඳහා අගයක් දුන්නම වෘත්තයක පරිධිය, වර්ගඵලය output එක ලෙස ලබා දෙන program එකක්. අපි ලියමුකො එහෙනම්. අපි හිතමු අරය පුර්ණ සංඛ්‍යාත්මක අගයක් කියල.



public class Circle {
      public static void main(String[] args){
             short radius = 10;
  
             double pi;
             pi = 3.14;
  
             System.out.println("Radius is : "+radius);
  
             double circ = 2*pi*radius;
             double area = pi*radius*radius;
  
             System.out.println("Circumference :"+circ+"\nArea : "+area);
       }
}


මේක තමයි අපේ program එක. මේක දැන් type කරගන්නකො NetBeans එකේ. දැන් ඕකට මම කලින් ලිපියෙ කිව්ව වගේ අලුතෙන්ම project එකක් හදලම පටන් ගන්න ඕනෙ නෑ. කෙලින්ම new file click කරල class එකක් ගන්න. නැත්තම් වම් පැත්තෙ පේනව ඇති ඔයාගෙ project එකේ නම තියෙනව. ඒක right click කරල new වල new class තෙරුවත් හරි. අපැහැදිලිනම් බලන්නකො ඔය පින්තූරෙ.






අපි බලමු මේ program එකේ මොනවද කරල තියෙන්නෙ කියල. මුල්ම statement එක බලන්නකො.

short radius = 10;

මේ තියෙන්නෙ program එකේ මුල්ම statement එක. මේ කරල තියෙන්නෙ short type එකේ radius කියල variable එකක් හදල එකට value එකක් දීල තියෙනව. මෙහෙම value එකක් දෙනවට අපි කියනව initialize කරනව කියල. ඉතිං අපිට මෙහෙම = ලකුණ භාවිතා කරල අපිට අවශ්‍ය value එක variable එකේ store කරන්න පුළුවන්. මේක තමයි ඒකෙ syntax එක. අපි එහෙනම් ඊළඟ statement දෙක ගමුකො.


double pi;
pi = 3.14;
  
අපිට ඕනෙ නම් variable එක මුලින් හදාගෙන පස්සෙ අපිට ඕන තැනදි initialize කරගන්න පුළුවන්. මුලින් variable එක declare කරාට පස්සෙ අපි program එක ඇතුලෙ ඒ variable එකේ නම සඳහන් කරාම compiler එක දන්නවා අපි මේ අහවල් variable එක ගැන තමයි කියන්නෙ කියල. ඒ නිසා ආපහු data type එක දෙන්න අවශ්‍ය නෑ.
  
System.out.println("Radius is : "+radius);
ඊළඟ statement එක අපිට පුරුදු එකක් හැබැයි පොඩි වෙනසක් තියෙනව. පේනවද මම radius කියන variable එක print කරගෙන තියෙන හැටි? අපිට display කරන්න ඕනෙ වචන ටික double quotations ඇතුලෙ දීල ඊට පස්සෙ + ලකුණක් දාල variable එකේ නම දීල තියෙනව. අපිට අවශ්‍ය වුණොත් වාක්‍යක් මැද්දෙ variable එකක් print කරන්න? බලන්නකො මේ උදාහරණය.
  
System.out.println("I have given"+radius+"as the value of the radius");


දැක්කද? අපිට අවශ්‍ය විදිහට + ලකුණු මගින් අවශ්‍ය තැන් වලට variables print කරගන්න පුළුවන්. මම අන්තිමට result එක print කරල තියෙන විදිහත් මේ සඳහා උදාහරණයක් විදිහට ගන්න පුළුවන්. ඔය පහළින් තියෙන්නෙ.
  
System.out.println("Circumference :"+circ+"\nArea : "+area);
Radius එක print කරාට පස්සෙ මම කරල තියෙන්නෙ මෙන්න මේක.
  
double circ = 2*pi*radius;
double area = pi*radius*radius;

මෙතන කරල තියෙන දේ හැමෝටම තේරෙනවනෙ. මම කරල තියෙන්නෙ variable දෙකක් හදල ඒවයෙ අගය විදිහට පරිධිය හා වර්ගඵල සොයන සූත්‍ර දීල තියෙනව. මේ සූත්‍ර දෙන්න භාවිත කරල තියෙන්නෙ අපි කලින් හදාගත්ත variables. මෙතන * ලකුණෙන් කියන්නෙ ගුණ කිරීම. පරිගණක වල ගුණ කෙරීම සඳහා භාවිත වෙන්නෙ ඔය තරු ලකුණ (*). මම එක variable එකක් විස්තර කරන්නම්කො කට හරි අපැහැදිලි වුනොත් කියල. double area කියන variable එක මම හදල ඒක initialize කරල තියෙනව pi * radius * radius කියන සුත්‍රයෙන්. Program ඒක run වෙද්දි මේ variable වලට අදාළ අගයන් පරිගණකය විසින් ආදේශ කරගෙන ඒක විසඳල උත්තරේ area කියන variable එකට ආදේශ කරනව. හරියට නිකන් අපිට මෙහෙම ගානක් දුන්න වගේ.

A = x + 2*y ; x = 5 නම් හා y = 2 නම් A හි අගය සොයන්න. අපි මේ ගාන හදන විදිහටම තම පරිගණකයත් කරන්නෙ.

මම හිතන්නෙ ඔයාලට තේරෙන්න ඇති මේ ගැන. නොතේරෙන දෙයක් තියෙනවනම් comment එකක් දාන්නකෝ. එහෙනම් අදට පාඩම ඉවරයි. අපි තව අලුත් පාඩමකින් ඉක්මනින් හමුවෙමු.
 

9 comments:

  1. public class Test8 {
    public static void main(String[]args){
    short x = 5;
    short y = 2;

    int A = x+2*y;
    System.out.println("If x=5 and y = 4\nA = x+2y");
    System.out.println(".............\n.............");
    System.out.println("A = x+2y\nA = 5+2*4");
    System.out.println("A ="+A);
    }
    }

    ReplyDelete
  2. ela machan. mama mula idalama lesson tika balagena awe. niyametama karagena yanawa. mul comment 1 demmeth mama. a mama hadapu gaana.digatama liyanna. ela mcn best of luck!

    ReplyDelete
  3. macho me jpanal use karana heti dapanko.

    ReplyDelete
  4. thank you very much.supiriyatama pahedili karala tiyanava.kiyanna vachana nehe.super.

    ReplyDelete
  5. hondata therenawa.. thank u sooo much..!!

    ReplyDelete
  6. Mama me tika mula idlama kiyawanawa mata pprograming gna mokuth danne na igena ganna hadanne

    ReplyDelete