What Is C++? {C++ යනු කුමක්ද?} lesson 1

speg

Member
Dec 13, 2007
876
110
0
gedhara ennada?
What Is C++? {C++ යනු කුමක්ද?} lesson 1

What Is C++? {C++ යනු කුමක්ද?}​


c++ from the ground up (මුල සිට)


C++ ගැන කතාකරන්න ඉස්සෙල්ලා Computers හදලතියෙන්නෙ මොකටද කියල කියන්න ඕන. :yes:


මම දන්න විදිහට Computers හදලතියෙන්නෙ ලොකු තොරතුරු [ information ] ප්‍රමානයක් ඉක්මනින් හා නිවරදි විදිහට හසුරවන්න හා වෙනස්කරන්න. නමුත් Computer එකට කාගෙන්වත් උපදෙස් නැතුව කිසිම දෙයක් කරන්න බෑ.
:no::no: :baffled:

Computer එක හසුරවන්න පුල්වන් උපදෙස් මාලාවකට තමයි computer program එකක් කියන්නෙ. :D

ඔන්න දැන් තමයි මම ගේමට බහින්න යන්නෙ
:D:yes::rolleyes:

C++ යනු කුමක්ද? :confused:

C++ කියන්නෙ computer එකට තේරෙන විදිහට උපදෙස් මාලාවක් [program] ලියන්න පුලුවන් බාශාවක් (මොකාට උනත් තේරෙන බාශාවකින් කියන්න එපැයි :rofl::P). හැබැයි C++ වලින් ලියන උපදෙස් මාලා එකපාරම computer එකට තේරෙන්නෙනෑ :no::no:. මොකද අපි පොඩිකාලෙ අහල තියන විදිහට computer එකට තේරෙන්නෙ binary [1,0] විතරයි. පොඩිකාලෙ එහෙම උනාට දැන් computer එකට තව තව භාශා තේරෙනව :P:rolleyes::D :yes:. ඒවට තමයි Machine languages කියන්නේ. :yes:

මම හිතන විදිහට මෙතන ඉන්න වැඩිදෙනෙක් use කරන්නෙ Intel processors තියන computers.:rolleyes: තව ටිකක් බරපතල විදිහට කිව්වොත් Intel Architecture 32-bit (i386, x86-32, x86 කියල කියන්නෙත් මේකම තමයි :shocked:) processors තියන computers. අපි දැන් use කරන computers වලට තේරෙන බාශාව තමයි x86 machine language කියන්නෙ. :yes::D


මේ තියෙන්නෙ 32-bit x86 machine code එක use කරල n වෙනි Fibonacci number එක හොයාගන්න ලියපු පොඩි program එකක code එකක් :confused:

(Fibonacci number කියන්නෙ 0,1,1,2,3,5,8,13,21,34 ............ පිලිවෙලට තියන ඉලක්කම් වලට) :nerd:

Code:
8B542408 83FA0077 06B80000 0000C383
FA027706 B8010000 00C353BB 01000000
B9010000 008D0419 83FA0376 078BD98B
C84AEBF1 5BC3

:shocked::shocked::shocked:
:angry: :no::no:

ඕක කෙලින්ම අපේ computer එකට තේරෙනව නමුත් අපිට තේරෙන්නෙනෑ. :rolleyes:
ඔය වගේ code අපිට තේරුම්ගන්න අමාරු හින්ද තමයි c++ , java , c ,assembly වගේ භාශා(programming languages) හදල තියෙන්නෙ. :D


මේ තියෙන්නෙ assembly language එක use කරල n වෙනි Fibonacci number එක හොයාගන්න ලියපු පොඩි program එකක code එකක්
Code:
fib:
    mov edx, [esp+8]
    cmp edx, 0
    ja @f
    mov eax, 0
    ret
    
    @@:
    cmp edx, 2
    ja @f
    mov eax, 1
    ret
    
    @@:
    push ebx
    mov ebx, 1
    mov ecx, 1
    
    @@:
        lea eax, [ebx+ecx]
        cmp edx, 3
        jbe @f
        mov ebx, ecx
        mov ecx, eax
        dec edx
    jmp @b
    
    @@:
    pop ebx
    ret

:rolleyes::rolleyes:

ඕක කෙලින්ම අපේ computer එකට තේරෙන්නෙනෑ නමුත් මට නම් ට්කක් තේරෙන්ව.:P
මේක computer එකට තේරෙන්න නම් 32-bit x86 machine code එකක් විදිහට පරිවර්තනය කරන්න ඕන. ඔය වැඩේට තමයි Assembler කියන program එක use කරන්නෙ. ඔය n වෙනි Fibonacci number එක හොයාගන්න ලියපු assembly code එක ලියල තියෙන්නෙ MASM (Microsoft Macro Assembler) කියන, assembly code එකක් 32-bit x86 code වලට පරිවර්තනය කරන්න පුලුවන් Assembler එකට ගැලපෙන විදිහට.


අපිට තේරුම්ගන්න පුලුවන් වෙන්න කියල හදපු assembly language එකෙනුත් අපිට ලොකු උදව්වක් නෑකියල ඔයාලට හිතෙනව ඇති. :confused::rofl::dull:


මේ තියෙන්නෙ c++ language එක use කරල n වෙනි Fibonacci number එක හොයාගන්න ලියපු පොඩි program එකක code එකක්.


Code:
#include <iostream.h>
int main()
{
	int n, x, y, fibonacci;
           fibonacci = 0;
            n = 15; 	
	for(int i = 0; i <= n; i++)
          {
           cout<<fibonacci;

           fibonacci = x + y; 
	x = y;
	y = fibonacci; 
	}
return 0;
}

:love:
:D:yes:

මේකනම් මට හොදට තේරෙනව. :yes::yes::D

මේක කෙලින්ම අපේ computer එකට තේරෙන්නෙනෑ කියල ඔයාල දන්නවනෙ. හැබයි මම හිතන විදිහට C++ code එකක් computer එකට තේරෙන විදිහට පරිවර්තනය කරන හැටි තාම ඔයාල දන්නෙ නෑ. :no: :P
C++ code එකක් computer එකට තේරෙන විදිහට පරිවර්තනය කරන්නෙ Compiler කියල හදුන්වන program එකකින්. C++ Compiler එකෙන් වෙන්නෙ C++ code එකක් machine code එකක් විදිහට පරිවර්තනය වෙනෙඑක. C++ වලින් ලියන programs use කරන්න පෙර machine code එකක් විදිහට පරිවර්තනය කරන නිසා Compiled language එකක් කියලත් හදුන්වනවා. :yes::yes:

මම හිතන්නෙ මුලින් දීපු assembly code එකට වඩා C++ code එක ඔයාලට ටිකක් හරි තේරෙනව අති. :yes::yes:
C++ code විතරක් නෙමෙයි java , c වගේ language use කරල ලියන code උනත් assembly code එකට වඩා ලේසියෙන් අපිට තේරුම්ගන්න පුලුවන්. ඒ නිසා තමයි programming languages ප්රදානවශයෙන් high-level programming languages සහ low-level programming languages කියල දෙකකට බෙදලතියෙන්නෙ.
C , Java , C++ high-level programming languages වලට අයිතිවෙන්නෙ. assembly අයිතිවෙන්නෙ low-level programming languages වලට. :yes::yes:

දැනට C++ වල හැදින්වීම ඇති :rolleyes:. කෙටියෙන් කියනවනම් C++ high-level Compiled programming language එකක්. :yes::D

:baffled: තව එකක් කියන්න බැරිවුනා C++ මුලින්ම හදල තියෙන්නෙ 1980 වෙදි Bjarne Stroustrup කියල කෙනෙක් C වල වැඩිදියුනුකරපු programming language එකක් විදිහට. මුල්ම නම වෙලා තියෙන්නෙ
"C with Classes". :yes:

අදට මෙච්චරයි, මේකනම් මට හොදට තේරෙනව කියල මම C++ code එකට යටින් දැම්මට ඔයාලට
ඒක තාම නොතේරෙන්න පුලුවන් ඒත් C++ පාඩම තව ටිකදවසක් කරගෙන යද්දි අනිවා ඒක තේරෙනව. :cool::cool:;)


අදහස් ගැටලු හා යෝජනා පෝස්ට් කරන්න අමතක කරන්න එපා

:yes::yes::yes::yes:
 
Last edited:

thilankat

Member
Sep 18, 2006
1,118
8
0
very very usefull machan...ubata hithenne nedda me lessons tika PDF karala download karaganna puluwan widiyata danna..mokada api log wenne ofc1n ne machan.....
do something...
 

rajitha_ks

Well-known member
  • Jan 13, 2009
    8,856
    1,305
    113
    thanks bro.. keep it up :)

    "You must spread some Reputation around before giving it to speg again" (i think i have already given you rep for ur previous post..that's why i'm being denied by the system from giving you rep again :()
     

    CIMA

    Member
    Oct 12, 2006
    7
    0
    0
    Nice Work

    Machang, U better Start a blog for this lesson... it'll be really worth..

    :D:yes:
     

    nlasasatha

    Well-known member
  • Sep 2, 2009
    3,799
    1,581
    113
    Tsukuba
    --------------------Configuration: mingw2.95 - CUI Debug, Builder Type: MinGW (Old)--------------------

    Checking file dependency...
    Compiling C:\Documents and Settings\Max99\My Documents\C-Free\Temp\Untitled1.cpp...
    [Error] C:\Documents and Settings\Max99\My Documents\C-Free\Temp\Untitled1.cpp:10: `Fibonacci' undeclared (first use this function)
    [Error] C:\Documents and Settings\Max99\My Documents\C-Free\Temp\Untitled1.cpp:10: (Each undeclared identifier is reported only once
    [Error] C:\Documents and Settings\Max99\My Documents\C-Free\Temp\Untitled1.cpp:10: for each function it appears in.)

    Complete Make Untitled1: 3 error(s), 0 warning(s)