Tuesday, April 7, 2020

Python -2 - මෙහෙයවන තව දුරටත්



Python -2 කොටස - මෙහෙයවන තව දුරටත්

සැසඳුම් මෙහෙයවන(comparison operators  )

අගයයන් 2 ක් සන්සන්දනය කිරීම සඳහා මෙහි දැක්වෙන සැසඳුම් මෙහෙයවන භාවිතා කෙරේ. 

නම
උදා
 Equal
x == y
Not equal
x != y
Greater than
x > y
Less than
x < y
Greater than or equal to
x >= y
Less than or equal to
x <= y

පහත සැසැඳුම්  පරීක්ෂා කර පිළිතුරු ලබා ගන්න.
උදා  >>>34>23 ලෙස ඇතුලත් කර තහවුරු (Enter) කරන්න.

34 >23

34>=34

a=34
b=54
b>a

23=23

23==23

23!=23

b!=a

b %2 ==0




 තාර්කික මෙහෙයවන- Logical Operators

මෙහෙයවනය
උදාහරණය
ප්‍රතිඵලය
and 
8 < 5 and  1< 10

or
4 < 5 or 8 < 4


X=10 ,  y=45

not
not(x < 15 and  y < 10)


Python Membership Operators

 x = ["apple", "banana"]
 “banana" in x     ………………………………
“banana" not in x   ……………………………………………

>>>  “k” in “sarath bogahapitiya”

>>>  “a” in “sarath bogahapitiya”


Python Bitwise Operators -බිටු අනුසාරිත මෙහෙයවන


x=10  සහ y = 4  වේ නම් පහත වගුවේ සඳහන් බිටු අනුසාරිත මෙහෙයවන වල පිළිතුරු  ලබාගන්න


10   -->     1 0 1 0
4-->          0 1 0 0
AND--->  0 0 0 0
ඉහත සංඛ්‍යා 2 හි අනුරෑප බිටු එකිනෙක සලකමින් ඒවායේ තාර්කික AND කර්මය ක්‍රියාත්මක කළ විට පිළිතුර ලෙස 0 ලැබේ.

මෙහෙයවනය
තේරුම
උදා

&
Bitwise AND
x& y

|
Bitwise OR
x | y

~
Bitwise NOT
~x

^
Bitwise XOR
x ^ y

>> 
Bitwise right shift
x>> 2

<< 
Bitwise left shift
x<< 2















Monday, April 6, 2020

PYTHON -3 (DATA TYPES)

python -3 කොටස
Data types in python /දත්ත වර්ග

Python හි යෙදෙන දත්ත වර්ග 9 ක් ඇත: ඒවා 
 string,integer, float, complex, bool,  list, tuple, set and dictionary. 
ලෙස හඳුන්වයි

·         strings- string
·         numbers 
o   integer numbers - integer
o   floating-point numbers - float
o   complex numbers  -complex
·         tuples - tuple
·         lists -list

·         sets -set
dictionaries - dictionary

යම් දත්තයක දත්ත වර්ගය පරීක්ෂා කිරීම සඳහා type()  නැමැති function එක භාවිතා කරන්න.
උදා
>>> type( 'Hello, World! ' )
<class 'str'>

>>> type(17)
<class'int'>
Python පරිගණක භාෂාවේ එන දත්ත වර්ග මොනවාද යන්න අවබෝධ කර ගැනීම සඳහා type ( ) නැමැති function එක භාවිතා කරන්න

type(“hello”)

type(“4.5”)

type(4.5)

type(45)

type([])

x=”hello”
type(x)

x=45
type(x)

x=45.5
type(x)



string වර්ගය

>>> 3+'3'  හි පිළිතුර කුමක් වේද ?

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    3+'3'
TypeError: unsupported operand type(s) for +: 'int' and 'str'
දත්ත වර්ග 2 ක් නිසා මෙම දෝෂය ලැබේ.
------------------------------------------------------------------
>>> '=' + 10   හි පිළිතුර කුමක් වේද ?
දත්ත වර්ග 2 ක් නිසා පෙර සඳහන්දෝෂයම ලැබේ.
------------------------------------------------------------------
එහෙත් >>> '= ' * 10 හි පිළිතුර ලෙස  '==========' ලැබේ.

------------------------------------------------------------------
 >>> "2020 " + 'is good for you'  හි පිළිතුර කුමක් වේද ?
අක්ෂර සමග අක්ෂර එකතු කිරීමේ දී ඒවා එකට ලියා දක්වයි.
එනම් '2020 is good for you' ලෙස පිළිතුර ලැබේ. 
------------------------------------------------------------------

“hello how are you” යනු string වර්ගයේ දත්තයකට උදාහරණයකි. 
       String එකක අඩංගු සෑම සං‍කේතයක්ම අංකයකින් හැදින්විය හැකිය:
      උදාහරණය        name = “sara.crc"      නම්

     
index
0
1
2
3
4
5
6
7
character
s
a
r
a
.
c
r
c

String එකක තනි සංකේතයක් වෙනම ලබා ගැනීම

>>>name[0] මගින් "s" යන අගය ලැබේ.
       
         variableName [ index ]


String properties
name = "sarath Bogahapitiya"      නම්
length = len(name)         
big_name = str.upper(name)

print (big_name, "has", length, "characters")

Output:                SARATH BOGAHAPITIYA  has 18 characters


Integer දත්ත වර්ගය

සකසමින් පවතී.....

9.4 ක්‍රමලේඛනය කිරීමේ විවිධ සුසමාදර්ශ




9.4 ක්‍රමලේඛනය කිරීමේ විවිධ සුසමාදර්ශ


Low Level Language

High Level Language

1st Generation

2nd Generation

3rd Generation

4th Generation

5th Generation

Computer Language


පහළ මට්ටමේ භාෂා

පළමු සහ දෙවන පරම්පරා භාෂා පහල මට්ටමේ භාෂා ලෙස සැලකේ. මේවා පරිගණක යන්ත්‍ර මත යැපෙන භාෂාවන්වේ. මෙම භාෂාවන් දෘඩාංගයට ආසන්නව පවතී. වැඩසටහනේ ක්‍රමලේඛකයාට වැඩ සටහන් ලිවීමට දෘඪාංග දැනුම තිබිය යුතුය. ඵලදායිතාවය අඩුය.

උසස මට්ටමේ  භාෂා


 3GL, 4GL සහ 5GL ඉහළ මට්ටමේ භාෂාවන් ලෙස සැලකේ.
 යන්ත්‍රයෙන් ස්වාධීන භාෂාවන්ය
 ලිවීම හා වෙනස් කිරීම පහසුය
 ක්‍රමලේඛය ලිවීම සඳහා වැඩසටහන්කරුට දෘඩාංග පිළිබඳ දැනුම අවශ්‍ය නොවේ
 ඵලදායිතාවය ඉහළය.
 වැඩසටහන් ලිවීම සඳහා ගත වන කාලය අඩුය.
 මෙම ඉහල මට්ටමේ කේත යාන්ත්‍රික භාෂාවට පරිවර්තනය කිරීමට පරිවර්තකයන් භාවිතා කළ යුතුය

පළමු පරම්පරාව - යන්ත්‍ර භාෂාව


• යන්ත්‍ර කේතය ද්විමය සංඛ්‍යා භාෂාවෙන් සමන්විත වේ.
• එය 1 හා 0 න් සමන්විත වේ.
• යන්ත්‍රය මත සෘජුවම ක්‍රියාත්මක කළ හැක.
• පරිවර්තකයන් භාවිතා නොකරන බැවින් ක්‍රියාත්මක කිරීම වඩාත් වේගවත්වේ.  
·         වැඩසටහන් ලිවීම හා වෙනස් කිරීම ඉතා අපහසුය.
• පරිගණක ආකෘතියට අනුව පරිගණක භාෂා විධික්‍රම වෙනස් වේ. යන්ත්‍ර භාෂා යන්ත්‍රය මත යැපෙන භාෂාවකි.
 • මේවා පහළ මට්ටමේ භාෂා ලෙස හැඳින්වේ.

දෙවන පරම්පරාවේ පරිගණක භාෂා


0 හා1 යොදාගෙන පරිගණක වැඩසටහන් සකස් කිරීම සංකීර්ණ කාර්යයක් වූ බැවින් එය සරල කර ගැනීමට අවශ්‍ය විය. පරිගණකයට උපදෙස් ලිවීම සඳහා සරල  වචන  යොදාගෙන දෙවන පරම්පරාවේ භාෂා නිර්මාණය විය. මෙහිදී ඉංග්‍රීසි වචන වලින්  සමන්විතවූ කේත යන්ත්‍රයට තේරුම් ගත හැකි සේ පරිවර්ථකයක් නිර්මාණය කළ යුතු වූ අතර එය  assembly language නමින් හැඳින්වීය. පරිවර්ථකය assembler නම් විය. යම් සරල කාර්යයක් සිදු කිරීම සඳහා  ඇසෙම්බ්ලි භාෂාවෙන් පේලි රාශියක් ලිවීමට සිදු විය

තෙවන පරම්පරාවේ පරිගණක භාෂා


දෙවන පරම්පරාවේ ඇසෙම්බ්ලි භාෂාව මගින් උපදේශයක් ලබා දීමේ අපහසුතා මගහැරවීම මෙම පරම්පරාවේ අරමුණ විය.
  තෙවන පරම්පරාවේ භාෂා වල ලක්ෂණ
·         එක කේතයක් තුළ උපදේශන කිහිපයක් සිදු කිරීමේ හැකියාව අඩංගු විය.
·         එක් පරිගණකයක සකස් කරන පරිගණක වැඩසටහනක් තවත් පරිගනකයක් තුල භාවිතා කිරීමට හැකියාව
·         මෙම මට්ටමේ භාෂාවලින් ලියන ලද උපදෙස් යන්ත්‍ර භාෂාවට හැරවීම සඳහා සම්පාදක සහ ර්ථ වින්‍යාසය යනුවෙන් ආකාර දෙකක හැරවීමේ මෘදුකාංග යොදා ගන්නා ලදී


4 වන මට්ටම පරම්පරාවේ පරිගණක භාෂා


වැඩසටහන් සකස් කිරීමට ගතවන කාලය සහ දැරීමට සිදුවන මහන්සිය අඩු කරගැනීමට හැකියාවක් ලබා ගැනීමේ මූලික අරමුණ ඇතිව හතරවන පරම්පරාව දියුණු කරන ලදී.  කලින් සකස් කරගත් ක්‍රියාදාම තම ගැටළු විසඳීමට යොදා ගැනීමට හැකි වීම මෙහි තිබූ ප්‍රධාන වාසියකි.  ඉතා කෙටිකලක් තුළ පරිගණක වැඩසටහන් නිර්මාණය කිරීමත් එම භාෂාව ඉගෙන ගැනීමට පහසු වීමත් තවත්  ලක්ෂණයක් විය.


ක්‍රමලේඛන සුසමාදර්ශ

·         විධානාත්මක භාෂා  imparative languages
·         ප්‍රකාශාත්මක  භාෂා declarative languages
·         වස්තු නැඹුරු භාෂා  object oriental languages

විධානාත්මක භාෂා inductive languages


ගැටළුවක් විසදන ආකාරය පියවර වශයෙන් පැවසීම විධානාත්මක භාෂාව ලක්ෂණයකි එනම් ගැටළු විසඳිය යුතු ආකාරය කෙසේ ද යන්න උපදෙස් මාලාව තුළ ඒ ආකාරයෙන් ම අන්තර්ගත වීමයි. ගැටළුවට අදාල උපදෙස් ක්‍රියාත්මක විය යුතු අනුපිළිවෙළ පාලනය කිරීමට  හැකියාව ලැබුනි. C ,C++ , java, python ආදී භාෂා මේ සඳහා උදාහරණ වේ

ප්‍රකාශනාත්මක භාෂා declarative languages


යම් කාර්යයක් සිදු කිරීමේ අනුපිළිවෙල ලබා දීම වෙනුවට සිදු විය යුත්තේ කුමක්ද යන්න පැවසීම මෙම භාෂාවලින් සිදු විය. SQL සහ Prolog යනු මෙම ආකාරයට උදාහරණ වේ.

වස්තු නැඹුරු භාෂා object oriented language


ගැටළුවේ පවතින විවිධ දෑ වස්තූන් ලෙස වෙන් කර ගනිමින් ඒවා යේ දත්ත සහ ක්‍රියාවන් මත පදනම්ව ක්‍රමලේඛනය සිදු කිරීම මෙහිදී සිදු කරයි.


ක්‍රමලේඛ පරිවර්තනය කිරීමේ අවශ්‍යතාවය

යන්ත්‍ර භාෂාවෙන් පරිගණකය ට උපදෙස් ලබාදීම සංකීර්ණ කාර්යයකි. එහෙත් පරිගණකයට තේරුම් ගත හැක්කේ එවැනි භාෂාවක් න් උපදෙස් ලබා දුන හොත් පමණි. මේනිසා  ඉහළ මට්ටමේ පරිගණක භාෂාවකින්  නිර්මාණය කර ඇති  උපදෙස් සමූහයක් යන්ත්‍ර භාෂාවෙන් ලියන ලද උපදෙස් සමූහයක් බවට හැරවීම සිදු කළ යුතුයි.
මෙසේ පරිවර්තන වැඩසටහන්  වර්ග දෙකක්  අතර ඒවා අර්ථ වින්‍යසක සහ සම්පාදක ලෙස හැඳින්වේ

පරිගණකයට උපදෙස් ලබා දිය යුත්තේ කුමන භාෂාවකින්ද


  උපදෙස් ලබා දිය යුත්තේ විදුලියේ ස්වරෑප 2 ඇසුරිනි (on ,off) මෙම  on සහ Off යන්ත්‍ර භාෂාව ලෙස ( machine Language) හැදින්වේ. මෙම භාෂාව හැසිරවීමේ පහසුව සදහා 1 හා 0 ලෙස භාවිතා කරනු ලබයි. (On ,Off)  එනිසා 00110010 00110010 යන්න මගින් යන්ත්‍රය සදහා විධානයක් (machine code) දැක්විය හැකිය. මේවා මධ්‍ය සැකසුම් ඒකකයට සෘජුවම තේරුම් ගත හැකි විධාන (Machine code) සමූහයක් වන නමුත්   මිනිසාට පහසුවෙන් හැසිරවීමට නොහැකිය. මෙම යන්ත්‍ර කේත භාවිතා කර පරිගණකයට උපදෙස් ලිවීම අපහසු හෙයින් ඉගෙන ගැනීම ත් භාවිතා කිරීමත් පහසු වන ආකාරයට සැකසූ ඉහල මට්ටමේ පරිගණක භාෂා නිර්මාණය කර ඇත මේවා  high level computer languages ලෙස හැඳින්වේ.

ප්‍රභව ක්‍රමලේඛ (Source program/source code)


පරිගණක ක්‍රමලේඛ භාෂාවක් භාවිතා කර ලියන ලද උපදෙස් මාලාවක්  ප්‍රභව ක්‍රමලේඛය ක් ලෙස හඳුන්වයි. ප්‍රභව ක්‍රමලේඛය පරිගණකය තුල සෘජු ව ම  ක්‍රියාත්මක කල නොහැක.  යම් ගැටළුව ක් විසඳීමේ දී  මිනිසාට වඩාත් පහසු විචල්‍ය නාම භාවිතා කරමින් ඉහල මට්ටමේ පරිගණක භාෂා භාවිතා කර මෙම ප්‍රභව ක්‍රමලේඛය  ලියනු ලැබේ.


විෂය ක්‍රමලේඛ (Object programs)


ඉහල මට්ටමේ පරිගණ භාෂාවක් භාවිතා කර මිනිසාට පහසුවෙන් තේරුම් ගැනීමට හැකිවන සේ ලියු ප්‍රභව ක්‍රමලේඛය එක් වරම පරිගණකයට තේරුම් ගත නොහැක. එම භාෂාව මගින් සපයන පහසුකම් භාවිතයෙන්ම එම ප්‍රභව කේතය පරිගණකය තුළ ධාවනය කිරීම සිදු කළ හැකිය. එනම් අදාල පරිගණක භාෂාව විසින්ම ප්‍රභව ක්‍රමලේඛය යන්ත්‍රයට හදුනාගත හැකි උපදෙස් මාලාවක් බවට පරිවර්තනය කරනු ලබයි. එසේ පරිවර්ථනය කරන ලද උපදෙස් මාලාව විෂය ක්‍රමලේඛය ලෙස හඳුන්වයි. විෂය ක්‍රමලේඛය තුළ අඩංගු වන්නේ යන්ත්‍ර කේත (machine codes) වන බැවින් ඒවා මිනිසා ට තේරුම් ගත නොහැක.

ක්‍රමලේඛ පරිවර්තකයන් (program translators)


ප්‍රභව ක්‍රමලේඛය, විෂය ක්‍රමලේඛය බවට පරිවර්තනය කිරීම සඳහා පරිවර්තක වැඩසටහන් යොදා ගත යුතුය මේවා ක්‍රමලේඛ පරිවර්තකයන් (program translators) ලෙස හ ඳුන්වයි.
පරිවර්තක වැඩසටහන් ප්‍රධාන ආකාර 2 කි.
 1 අර්ථ වින්‍යාසක (Interpreters)  2 සම්පාදක ( compilers )

1 අර්ථ වින්‍යාසක (Interpreters)  






පරිවර්ථක මෘදුකාංගයකි. මෙය ක්‍රියාත්මක වීමේදී ඉහල මට්ටමේ පරිගණක භාෂාවෙන් ලියන ලද උපදෙස් සමූහය වරකට එක් පේලියක් බැගින් යන්ත්‍ර භාෂාවට (patterns of bits)හරවයි. මෙහිදී සියළුම ප්‍රභව කේතයන් එකවර යන්ත්‍ර භාෂාවට පරිවර්තනය කිරීමක් සිදු නොවේ. Interpreter මගින් විෂය  ක්‍රමලේඛයක් (object Program) සකස් කරන්නේ නැත. Interpreter විසින් සෘජුවම එක් එක් ප්‍රභව ක්‍රමලේඛ වගන්තිය බැගින් යන්ත්‍ර භාෂාවට හැරවීම හෝ අතරමැදි කේත සමූහයකට හරවා එම අතරමැදි කේත වඩාත් කාර්යක්ෂම ලෙස යන්ත්‍රභාෂාවට හැරවීම සිදු කරයි.
Interpreter භාවිතා කර න භාෂා සඳහා උදාහරණ
Perl, Python, MATLAB,  Ruby   Smalltalk, BASIC, Java
ප්‍රභව කේත සෘජුව ක්‍රියාත්මක කරන Interpreters වලට අමතරව  ප්‍රභව කේත අතර මැදි කේත බවට හරවන interpreters ද තිබේ.

අර්ථ වින්‍යාසක වල පවත්නා වාසි හා අවාසි
ක්‍රියාත්මක වන අවස්ථාවේදී  දෝෂ සහිත උපදේශනයන් අඩංගු කර ඇති වගන්තිවල ධාවනයවීම නැවතීම නිසා දෝෂ සොයා ගැනීම පහසු වේ.
 ප්‍රභව කේතයක් යන්ත්‍ර භාෂාවට පරිවර්තනය කරනු ලබන්නේ පේලියෙන් පේලිය නිසා වැඩි කාලයක් ගත වේ .

සම්පාදක(Compilers )


මෙයද පරිවර්තක මෘදුකාංගයක් වන අතර ඉහල මට්ටමේ පරිගණක භාෂාවක් භාවිතා කර ලියා ඇති උපදෙස් මාලාවක්  එක වරම යන්ත්‍ර භාෂාවට හරවයි.  සම්පාදකයන් මගින් කේතනය යන්ත්‍ර භාෂාවට පරිවර්තනය කිරීමේ දී අදාල කේතයන් සියල්ල කාරක රීති වලට අනුකූලව පවතින්නේ ද යන්න එකිනෙක පරීක්ෂා කර එසේ නොමැති නම් සියලු කේතය එකවර යන්ත්‍ර භාෂාවට පරිවර්තනය කර යම් ගොනුවක් සකසා ගනී.  පසුව ක්‍රියාත්මක කල හැකිය.
ලියන ලද කේත සමූහයක් Compile කිරීමේදී එම කේත සමූහයේ ව්‍යාකරණ දෝෂ (syntax errors ) තිබේ නම් ඒවා පෙන්නුම් කරයි. මේවා compile time errors ලෙස හඳුන්වයි.
සම්පාදකය මගින් Executable program එකක් සැකසීම සිදු කරන අතර Interpreter මගින් සිදු කරන කාර්යයට වඩා වේගවත්ව compiler මගින් සකස් කරන Executable program එක ක්‍රියාත්මක වේ. එහෙත් compile කරන ලද කේතයක් එම නිර්මාණ ආකෘතිය තිබෙන පරිගණකයක පමණක් ධාවනය කළ හැකිය.
අවසානයේ දෝෂ රහිත source program එක compile  කිරීමෙන් අනතුරුව ඕනෑම මොහොතක ක්‍රියාත්මක කළ හැකි executable file එකක් ලැබේ.
Mark 1 පරිගණකය සදහා Grace Hopper මහත්මිය විසින් ලොව ප්‍රථම සම්පාදක වැඩසටහන ලියන ලදී. මේ මගින්   ඉංග්‍රීසි භාෂා‍වේ වචන  වලින් සමන්විත පරිගණක භාෂාවක්  පරිගණක යන්ත්‍ර භාෂාවකට හැරවීම සිදු කළ හැකිවිය . එය   COBOL ලෙස නම් කෙරිණ.


Byte code සහ Binary code යනු මොනවාද


සාමාන්‍යයෙන් Binary code යනුවෙන් හැඳින්වෙන්නේ  පරිගණකයට ක්‍රියාත්මක (Execute)කළ හැකි දත්ත විශේෂය වන අතර Byte code යනුවෙන් හැඳින්වෙන කේත ගොනුව එකවරම පරිගණකයට ක්‍රියාත්මක කළ නොහැකිය .අදාල පරිගණක භාෂාව මගින් සකස් කරන virtual machine මගින් එම කේත ගොනුව ක්‍රියාත්මක කළ හැකිය. එසේම ඕනෑම පරිගණක වර්ගයක්  මත ඉහත කී virtual machine ධාවනය කළ හැකි හෙයින් එක් byte code ගොනුවක් සැකසීම මගින් එය සෑම පරිගණකයකම ධාවනය කිරීමට හැකියාව ලැබේ.
පහත රූපයේ දැක්වෙන්නේ Byte code එකක ක්‍රියාකාරිත්වය Java පරිගණක භාෂාව මගින් පැහැදිලි කරන අයුරුය. මෙහිදී JVM- Java Virtual Machine මගින් Byte Code ගොනුව අදාල පරිගණකය මත ක්‍රියාත්මක කළ හැකි යන්ත්‍ර කේත සමූහයක් බවට හරවයි.



Assembler

මෙයද පරිවර්තක මෘදුකාංගයකි.
ඇසෙම්බ්ලි භාෂාව භාවිතා කර පරිගණකයට ලියන ලද උපදෙස් මාලාවක් යන්ත්‍ර භාෂාවට හරවයි.
  මෙම හැරවීමේ ක්‍රියාව සිදු කරනු ලබන්නේ පරිගණකයේ අන්තර්ගත කර තිබෙන ඇසෙම්බ්ලි නම් පරිවර්තකය මගිනි
සන්ධාරක (Linkers)


සම්පාදකයක් විසින් සංකීර්ණ පරිගණක වැඩසටහනක් යන්ත්‍ර භාෂාවට හැරවීමේදී එය  මොඩියුල ගණනාවකට වෙන්කරයි. සම්පාදකපරිවර්තන වැඩසටහන මගින් මේවා පරිගණකයට තේරුම් ගත හැකි ලෙස වෙන වෙනම  ගොනු කිහිපයකින් පරිවර්තනය කරයි. නමුත් සම්පූර්ණ වැඩසටහන ක්‍රියාත්මක වන අවස්ථාවේදී ගොනු සියල්ල එකට සම්බන්ධ කිරීමට අවශ්‍ය වේ . මෙය සිදු කරනු ලබන්නේ සන්ධාරක මගිනි.්‍











Blog Archive

Memory Locatıons and Addresses (Week 3) - ppt download

Memory Locatıons and Addresses (Week 3) - ppt download : Memory Locations and addresses We will first consider how the memory of a computer...

Total Pageviews

Followers