Skip to main content

Proposal to Reform the United Nations

Proposal to Reform the United Nations     Preamble It is obvious that the current United Nations is not democratic and fair because it is effectively controlled by the five States which have the veto power.   Even to amend it to become a better democratic global institution is impossible because the Security Council stops such process.   This situation must be stopped at any cost. The vast majority of the Member states are deprived of their equitable place and dignity in this present system. Therefore, they must be prepared to be brave and smart enough to re-form a new United Nations, if the existing system is not willing to be reformed in better and democratic way.     1.      A new UN Charter should be adopted based on the current Charter with amendments to include the proposed changes herewith.     2.      The functional and administrative organizational hierarchy should be as follows.   3.      The General Assembly (UNGA) shall be made the apex body of the UN, and all other arms/of

c හා c++ ප්‍රෝග්‍රැමිං - 8


ප්‍රෝග්‍රෑම් එකක් යනු දත්ත මත යම් යම් කර්මයන් සිදු කිරීම බව ඔබ දැන් දන්නවා. බහුලවම භාවිතා වන කර්මයන් තමයි එකතු කිරීම, බෙදීම ආදී ගණිත කර්මයන්. දැන් අපි බලමු කොහොමද ඒවා සිදු කරන්නේ කියා. ඔබ සාමාන්‍යයෙන් "එකතු කිරීම" නම් ගණිත කර්මය සිදු කරන්නේ දත්තයන් දෙකක් සමගයි. එය "x + y” වැනි ක්‍රමයකට නේද සංඛේතාත්මකවත් කෙටියෙනුත් නිවැරදිවත් ලියන්නේ? “අඩු කිරීම" නම් කර්මය "a – b” ආකාරයටනෙ ලියන්නේ. ඇත්තටම සී හිදිත් අප දත්තයන් සමග ගණිත කර්මයන් සිදු කරන විට, එවැනිම +, - වැනි සංඛේතමයි භාවිතා කරන්නේ. මෙවැනි +, / වැනි ගණිත කර්ම සඳහා යොදන සංඛේත ගණිත කාරක (mathematical operators) ලෙස හැඳින්වෙනවා. පහත දැක්වෙන්නේ සී හිදී යොදා ගන්නා ගණිත කර්මයි.

කාරකය
තේරුම/කර්මය
උදාහරණය
+
එකතු කිරීම
intVar1 + intVar2
-
අඩු කිරීම
intVar3 – intVar4
*
ගුණ කිරීම
intVar5 * intVar6
/
බෙදීම
intVar7 / intVar8
%
මොඩ්‍යුලස්
intVar9 % intVar10

ඉහත වගුවේ මුල් කර්ම 4 ගැන නම් ඔබට කිසිදු ගැටලුවක් නැති වුවත්, සමහරෙකුට මොඩ්‍යුලස් කියන ගණිත කර්මය ගැන වැටහීමක් නැතිව ඇති. මොඩ්‍යුලස් ගණිත කර්මයේ තේරුම උදාහරණයක් ඇසුරින්ම තේරුම් ගමු. A % B යන්නෙන් කියන්නේ A අගය B අගයෙන් බෙදූ විට ඉතිරි වන අගය ලබා දෙන ලෙසයි. ඒ අනුව A = 5 හා B = 2 නම්, A % B යන්නෙහි පිළිතුර වනුයේ 1යි (මොකද, 5 යන අගය 2න් බෙදූ විට 1ක් ඉතිරි වන නිසා). එලෙසම A = 10, B = 5 වූවා නම්, A % B = 0 වනු ඇති (මොකද 10 යන අගය 5න් බෙදූ විට ඉතිරි අගය 0 නිසා).

ඉහත ආකාරයට "එකතු කිරීම" සඳහා + භාවිතා වූවත්, ඊට අමතරව එම සංඛේතයම යොදා ගන්නවා තවත් රාජකාරි සඳහා. ඉන් ප්‍රධානම වෙනත් රාජකාරියක් නම්, යම් සංඛ්‍යාවක් ධන සංඛ්‍යාවක් කියා ලිවීමයි. උදාහරණයක් ලෙස, int var1 = +345 ලෙස ලියූ විට, ඉන් කියන්නේ ධන 345 යන සංඛ්‍යාව var1 නම් වේරියබල් එකේ ගබඩා කරන ලෙසයි. එහෙත් ප්‍රායෝගිකව අප ගණිතයේදීත් අමුතුවෙන් + ලකුණ සංඛ්‍යා ඉදිරියෙන් නොදමා නිකංම සංඛ්‍යාව ලියනවානේ; එවිටද එය ධන සංඛ්‍යාවක් ලෙසයි සැලකෙන්නේ. ඉතිං සී හිදිත් එලෙසමයි. ඔබට කැමති නම් සංඛ්‍යාවක් ඉදිරියෙන් + යොදා එය ධන සංඛ්‍යාවක් කියා දැක්විය හැකියි (+ නොදැම්මත් එය කොහොමත් ධන සංඛ්‍යාවක් ලෙස සැලකෙනවා). එලෙසම - යන්න සංඛ්‍යාවක් ඉදිරියෙන් දැමූ විට එය - සංඛ්‍යාවක් ලෙස දක්වා සිටිනවා (සාමාන්‍ය ගණිතයේදී මෙන්ම). ඒ අනුව "අඩු කිරීම" යන්නට අමතරව ඍණ සංඛ්‍යා දැක්වීමේ රාජකාරියත් - ට තිබෙනවා නේද?

කොම්පියුටර්වලදී අපට ගුණ කිරීම සඳහා x හමු වන්නේ නැත. ඒ වෙනුවට හැමවිටම භාවිතා කෙරෙන්නේ * යන්නයි (එය "තරු ලකුණ" හෙවත් asterisk ලෙස හැඳින්වෙනවා). සී වල පමණක් නොව, පරිගණක ක්ෂේත්‍රයේ හැමතැනම ගුණ කිරීම හඟවන්නේ * මඟිනි.

බෙදීම ගැනත් යමක් කිව යුතුමයි. / වලින් සංඛේතවත් කරන බෙදීම යන ගණිත කර්මය සිදු කරන කාරකය ඇත්තටම දෙයාකාරයකින් ක්‍රියා කරනවා. / ට දෙපස ඇත්තේ නිඛිල වර්ගයේ දත්තයන් දෙකක් නම් (එනම්, int, short, long, char යන දත්ත වර්ගයෙන් යුත් දත්ත දෙකක් නම්), එවිට / සිදු කරන්නේ "නිඛිල බෙදීම" (integer division) යන කර්මයයි. එහිදී / ට වම් අත පැත්තේ ඇති අගය / ට දකුණත පැත්තේ ඇති අගයෙන් බෙදන්නේ උපරිම පූර්ණ සංඛ්‍යාව ලැබෙන පරිදිය. උදාහරණයක් ලෙස, 5 / 2 = 2 වේ. ඊට හේතුව 5 යන්න 2න් බෙදූ විට 2ක් ලැබී 1ක් ඉතිරි වන අතර, එම ඉතිරි වන ගණන හෙවත් දශම කොටස නොසලකා හරී (බෙදීමෙන් පසු ලැබෙන පිළිතුරෙහි පූර්ණ සංඛ්‍යා කොටස පමණක් සලකන නිසා). එලෙසම 23/5 = 4 වේ (මොකද 23 ට පහේ ඒවා 4ක් ඇති අතර, 3ක් ඉතිරි වේ; එම ඉතිරිය නොසලකා හැරේ). එහෙත් / ට දෙපසින් ඇති දත්තයන් දෙකෙන් එකක් හෝ දෙකම දශම සංඛ්‍යා දැක්විය හැකි දත්ත වර්ගයට අයත් නම් (එනම් float හෝ double) සාමාන්‍ය පරිදි එම බෙදීම දශමස්ථාන සහිතවම සුලු කරයි. මේ සියලු කරුණු පහත උදාහරණය ඇසුරින් අත්හදා බලන්න.

#include <stdio.h>

int main()
{

int num1, num2, sum; /* number1 and number2 */
float num3, num4; /* number3 and number4 */

/* addition of 2 integers */
printf("Enter two integer numbers for addition:\n");
scanf("%d\n%d",&num1,&num2);
sum = num1 + num2;
printf("The addition of number1 and number2 is %d \n", sum);

/* addition of 2 decimal (floating point) numbers */
printf("Enter two decimal numbers for addition:\n");
scanf("%f\n%f", &num3, &num4);
printf("The addition of number3 and number4 is %f \n", num3+num4);

/* addition of an integer number and a decimal number */
printf("Enter first an integer number, followed by a decimal number for addition\n");
scanf("%d\n%f", &num1,&num3);
printf("The addition of number1 and number3 is %f \n", num1+num3);

/* subtraction of 2 integers and 2 decimals at once */
printf("Enter a pair of integers first, and a pair of decimals next for subtraction\n");
scanf("%d\n%d\n%f\n%f", &num1, &num2, &num3, &num4);
printf("The subtraction of first pair is: %d \nThe subtraction of second pair is: %f\n", num1 - num2, num3-num4);

/* multiplication of 2 integers and 2 decimals at once */
printf("Enter a pair of integers first, and a pair of decimals next for multiplication\n");
scanf("%d\n%d\n%f\n%f", &num1, &num2, &num3, &num4);
printf("The multiplication of first pair is: %d \nThe multiplication of second pair is: %f\n", num1 * num2, num3*num4);
printf("The multiplication an integer (number1) and a decimal (number3) is: %f\n", num1*num3);
/* division of 2 integers and 2 decimal at once */
printf("Enter a pair of integers first, and a pair of decimals next for multiplication\n");
scanf("%d\n%d\n%f\n%f", &num1, &num2, &num3, &num4);
printf("The integer division of first pair is: %d \nThe division of second pair is: %f \nThe division of an integer (number1) and a decimal (number3) is: %f\n", num1 / num2, num3/num4, num1/num3);

/* modulus operation of 2 integers */
printf("Enter two integers for modulus operation\n");
scanf("%d\n%d", &num1, &num2);
printf("The modululs of number1 and number2 is: %d\n",num1 % num2);


return(0);

}

ඇත්තටම යම් පොදු ලක්ෂණයක් මෙහිදී ඔබට පැහැදිලි විය යුතුයි. එනම්, පූර්ණ සංඛ්‍යා හෙවත් නිඛිල සංඛ්‍යාවක් සමග දශම සංඛ්‍යාවක් යම් ගණිත කර්මයකට ලක් කළ විට ලැබෙන පිළිතුරේ දත්ත වර්ගය වන්නේද double යන (දශම සංඛ්‍යා දැක්විය හැකි) දත්ත වර්ගයයි. ඒ කියන්නේ දශම සංඛ්‍යාවක් පිළිතුරු ලෙස ලැබෙන ගණිත කර්මයකදී, එම පිළිතුර ගබඩා කළ යුතු නම්, double යන වේරියබල් එකක එය ගබඩා කළ යුතුයි. උදාහරණයක් බලමු. බලන්න පහත කෝඩිංවලදී සෑම ගණිත කර්මයකම දශම සංඛ්‍යා නිරූපණය කළ හැකි (float හෝ double) දත්ත වර්ගයක් ඇති අතර, එම ගණිත කර්මයන්ගේ පිළිතුර num4 යන double වර්ගයේ වේරියබල් එකකයි ගබඩා කරන්නේ.

int num1, num2;
float num3;
double num4;

num1 = 10;
num2= 20;
num3=5.5;

num4 = num1 + num3;
num4 = num2 * num3;
num4 = num1/num3;

+, * ආදී කාරක කිහිපයකින් යුතු සංයුක්ත ගණිත ප්‍රකාශයක් වුවද ලිවිය හැකියි. පහත දැක්වෙන්නේ එවැනි සරල ගණිත ප්‍රකාශ කිහිපයකි (තද අකුරින් දක්වා තිබෙන්නේ).

float mass = 5, length, width, height, volume, density, surfaceArea;
length = width = height = 2;
volume = height * width * length;
density = mass/volume;
/* or density = mass/(height * width * length) */
surfaceArea = 6 * length * width;

ඔබ දන්නවා සාමාන්‍ය ගණිතයේදී වුවද මෙවැනි කාරක කිහිපයකින් යුතුව සංයුක්ත ගණිත ප්‍රකාශ ලියන විට, ඒවා විසඳන ක්‍රමයක් තිබෙනවා. උදාහරණයක් ලෙස, 4 + 2 * 5 ලෙස දී ඇති ප්‍රකාශය සුලු කරන්නේ කෙසේද? පළමුව 4 හා 2 එකතු කර ඉන්පසු එය 5න් ගුණ කරනවාද, නැතහොත් 2 හා 5 එකිනෙකට ගුණ කර එය 4ට එකතු කරනවාද? ඔබට දැන් මතක් වෙනවා ඇති "වන්බෙගුඑඅ" වැනි කෙටි ක්‍රමයක් පාසල් කාලයේදී ඉගෙන ගත්තා මෙවැනි ගණිත ප්‍රකාශ සුලු කිරීමට යොදා ගත්. ඒ අනුව පළමුව වරහන් තිබේ නම් වරහන් තුල තිබෙන කොටස සුලු කළ යුතුය. දෙවැනියට ගුණකිරීම් හා බෙදීම් සිදු කළ යුතුයි. ඉන්පසුව එකතු කිරීම් හා අඩු කිරීම් සිදු කළ යුතුයි. එම රීතිය precedence rule ලෙසයි හැඳින්වෙන්නේ. ඇත්තටම මෙම ප්‍රිසීඩන්ස් රීතිය එලෙසම සී වලත් වලංගු වේ (ප්‍රිසීඩන්ස් යන ඉංග්‍රීසි වචනයේ තේරුම අනුපිලිවෙල හෙවත් ප්‍රමුඛතා පිලිවෙල යන්නයි). ඒ අනුව පහත ප්‍රකාශය සුලු කළ විට ලැබෙන පිළිතුර කුමක්ද?

Short var1 = 2, var2 = 10, var3 = 2, var4 = 1, var5 = 3, var6 = 10, Result;
Result = var1 + var2 – var3 / (var4 – var5) * var6;

වන්බෙගුඑඅ රීතිය අනුව පළමුව වරහන් තුළ තිබෙන ප්‍රකාශය සුලු වේ; එවිට var4 – var5 යනු 1 – 3 නිසා -2 ලැබේ. ඉන්පසුව ගුණ කිරීම් හා බෙදීම් සුලු කළ යුතුයි. මෙහිදී පළමුව ගුණ කරනවාද බෙදනවාද යන්න වැදගත් නැත. ඒ කියන්නේ ගුණ කිරීම හා බෙදීම යන කර්මයන් දෙකම එකම මට්ටමින් සැලකේ. එහෙත් මෙහිදී පළමුව සුලු කළ යුත්තේ කුමක්දැයි තීරණය වන්නේ ගණිත ප්‍රකාශයේ වමේ සිට දකුණට යන විට එම කාරකයන් හමු වෙන පිළිවෙලයි. ඒ අනුව ඉහත උදාහරණයේදී පළමුව හමුවන්නේ / යි. ඒ අනුව var3/(var4 – var5) යන්න සුලු කළ යුතුයිනෙ (වරහන් සහිත විට එම මුලු වරහනම තනි ඒකකයක් වශයෙන් ගණිතයේදී සලකන බව ඔබ දන්නවා). දැනටමත් වරහන සුලු කර තිබෙන අතර එම අගයද ආදෙශ කළ විට 2/-2 යන බෙදීමයි සිදු කිරීමට තිබෙන්නේ. එම අගය -1 වේ. බෙදීම සිදු කළ පසු අපට ඊළඟට හමුවන්නේ ගුණ කිරීමයි. ඒ අනුව -1 * 10 නිසා, -10 ලැබේ. දැන් වරහන්, ගුණ කිරීම් හා බෙදීම් සියල්ල සිදු කර අවසන් අතර, එකතු කිරීම් හා අඩු කිරීම් සිදු කළ යුතුය. මෙහිදීද ඒ දෙක එකම මට්ටමේ සැලකෙන අතර, වමේ සිට දකුණට පැත්තට ඇති පිළිවෙල අනුව එම සුලු කිරීම් සිදු කළ යුතුය. එවිට, පළමුව var1 + var2 සුලු කරමු. එය 2 + 10 නිසා 12 ලෙස ලැබේ. මෙම 12 ඊට පිටුපසින් ඇති පදයෙන් අඩු කිරීමටයි තිබෙන්නේ. දැනටමත් var3/(var4 – var5) * var6 යන කොටස සම්පූර්ණයෙන්ම සුලු කර -10 යන අගය ලබා ගෙන ඇති නිසා, 12 - -10 ලෙස සුලු කිරීමට සිදු වේ. එවිට, 12 - (-10) = 12 + 10 = 22 ලෙස අවසන් පිළිතුර ලැබේ. ඒ අනුව Result යන වේරියබල් එකේ 22 යන අගය ගබඩා වේවි. (මේ සරල සිද්ධාන්ත ගැන තවමත් හරිහැටි දැනුමක් නැතිනම් කරුණාකර එම සරල කාරණා පළමුව ඉගෙන ගන්න; ගණිත දැනුමක් නැතිව ප්‍රෝග්‍රැමිං සිදු කළ නොහැකිය.)

ඔබ ඉහත කෝඩිංවල දුටුවා සේම, සී වලදී යම් ගණිත ප්‍රකාශයක් දෙපසට () යන වරහන් යෙදිය හැකියි. එවිට එම වරහන් තුල ඇති කොටස්වලට ඉබේම ප්‍රමුඛතාව ලැබෙන බව දැන් ඔබට වැටහෙනවා ඇති. ඒ කියන්නේ ගණිත ප්‍රකාශයක් තුල ඇති කොටස් සුලු වන අනුපිලිවෙල හෙවත් සුලුවන ප්‍රමුඛතාව වරහන් යොදා වෙනස් කළ හැකියි. පහත කෝඩිං බලන්න.

20 + 12 / 2 – 4

සුපුරුදු පරිදි වන්බෙගුඑඅ රීතිය යොදා සුලු කරන්න. එවිට එය පහත ආකාරයට සුලු වේවි.

20 + 12 / 2 – 4 → 20 + 6 – 4 → 26 – 4 = 22

එහෙත් ඔබට අවශ්‍ය නම් පළමුව 2-4 යන කොටස සුලු වීමට, එවිට ඔබට හැකියි එම කුඩා කොටස දෙපසට පහත ආකාරයට වරහනක් යොදන්න. එවිට එය සුලු වන ආකාරය නැවතත් වන්බෙගුඑඅ අනුව පහත ආකාරයට සිදු විය යුතුයි නේද?

20 + 12 / (2 – 4) → 20 + 12 / -220 + -614

ඒ අනුව සාමාන්‍ය ගණිත ප්‍රකාශ සුලු කිරීමේදීත් සී ප්‍රෝග්‍රෑම් සෑදීමේදීත් වරහන්වල එම ප්‍රබල හැකියාව හා හැසිරීම ගැන සැලකිලිමත් වන්න.

පසුවට ඔබ ඉගෙන ගනීවි ප්‍රෝග්‍රැමිංවල නිතරම යම් වේරියබල් එකක් 1 බැගින් වැඩි කිරීමට අවශ්‍ය වෙනවා. උදාහරණයක් ලෙස, count යන නමින් වේරියබල් එකක් ඇති විට, එහි අගය වරකට 1 බැගින් වැඩි කරගෙන යෑමට අවශ්‍ය වෙනවා. දැනට count වේරියබල් එකේ ගබඩා වී තිබෙන අගය 0 නම්, ඊළඟට ඊට 1ක් එකතු වේ. එවිට එහි නව අගය 0+1 = 1 වේ. ඊළඟට එය නැවතත් 1කින් වැඩි වී 1+1 = 2 බවට පත් වේ. මේ ආකාරයට ක්‍රමයෙන් 3, 4, 5, 6, ආදී ලෙස එකින් එක වැඩි වේ. මෙලෙස 1න් එක වැඩි වෙන විචල්‍යන්ට counter හෝ counter variable යන නම භාවිතා වේ. කොහොමද කවුන්ටර් වේරියබල් එකක් සාදා ගන්නේ? එය පහසුය. කරන්නට තිබෙන්නේ දැනට තිබෙන අගයට 1ක් එකතු කර ගන්නා ලෙස ස්ටේට්මන්ට් එකක් සෑදීමයි.

short count = 0;
……..
count = count + 1;

සාමාන්‍යයෙන් කවුන්ටර් වේරියබල් එකක් 0 අගටය ඉන්ෂියලයිස් කරනවා (මොකද ගණන් කිරීමක් සාමාන්‍යයෙන් ආරම්භ කරන්නේ 0 සිටනෙ). එහෙත් කුමක් හෝ හේතුවක් නිසා ගණන් කිරීම 10, 102 වැනි කුමක් හෝ මුල් අගයක සිට ආරම්භ කිරීමට අවශ්‍ය නම්, 0 වෙනුවට එම අගය ආදේශ කරගන්න (short count = 100). තවද, එකින් එක එකතු කරන්නේ නැතිව 2න් 2 හෝ 10න් 10 හෝ වෙනත් අගයකින් වැඩිවීගෙන යෑමට අවශ්‍ය නම්, 1 වෙනුවට එම තමන් කැමති අගය වුවද ලිවිය හැකියි. ඒ අනුව, count = count + 10 යන කවුන්ටර් ප්‍රකාශයෙන් කියන්නේ අගය 10න් 10ට වැඩිකරගෙන යන ලෙසයි.

ඇත්තටම ඉහත count = count + 1 හෝ count = count + 5 වැනි ප්‍රකාශවල ඇති + වෙනුවට වෙනත් ගණිත කාරකයක්ද ලිවිය හැකියි අවශ්‍ය නම්. + ට අමතරව නිතරම අවශ්‍ය කරන කාරකයක් තමයි - යන කාරකය. + මඟින් කවුන්ටරයේ අගය ක්‍රමයෙන් ඉහල දමන අතර, - මඟින් එහි අගය ක්‍රමයෙන් පහල දමනවා. (කවුන්ටරයක් වුණාම අගය ඉහල දැමීමට මෙන්ම පහල දැමීමටත් අවශ්‍ය කෙරෙනවා.)

count = count – 1;
count = count – 2;

ඊට අමතරව var1 = var1 * 2 හෝ var1 = var1/10 වැනි ප්‍රකාශත් ලිවිය හැකි බව වැටහෙනවානේ. +, -, *, /, % යන කාරක උපයෝගී කොටගෙන සාදනු ලබන ඉහත ප්‍රකාශ ලිවිය හැකි කෙටි ක්‍රමයක්ද සී වල හඳුන්වා දී තිබෙනවා. එම ක්‍රමය පහසුවෙන් අවබෝධ වනු පිණිස මා ඒවා සියල්ල පහත දක්වනවා. මෙහිදී අදාල කාරකය හා = යන සලකුණ සමග කැටි කොට දක්වනවා. මෙවිට, +=, -=, *= යන කාරක compound assignment operator ලෙස හැඳින්වෙනවා.

count = count + 1 → count += 1
count = count – 2 → count -= 2
count = count * 3 → count *= 3
count = count / 5 → count /= 5
count = count % 11 → count %= 11

මා පෙරත් පැවසූ ලෙසම කවුන්ටර් වේරියබල් අපට නිතරම ප්‍රෝග්‍රැමිංවල අවශ්‍ය කරනවා. ඉතිං කවුන්ටර් සඳහාම සී භාෂාවේ වෙනම ඔපරේටර් දෙකක් හඳුන්වා දී තිබෙනවා (එක් ඔපරේටරයකින් කවුන්ටරයේ අගය ඉහල දමන අතර, අනෙකෙන් කවුන්ටරයේ අගය පහත දමනවා). එම ඔපරේටර් දෙක වන්නේ ++ හා - - යන්නයි (ධන ලකුණු දෙකක් හා ඍණ ලකුණු දෙකක්). යම් වේරියබල් එකකට පසුව හෝ පෙර (හිස් තැන් නොතබා) මෙම ඔපරේටර් එකක් යොදන්නටයි තිබෙන්නේ.

count++ යනු count = count +1 හෙවත් count += 1 යන්නයි. එයම ++count ලෙසත් ලිවිය හැකියි. මෙයින් කවුන්ටරයේ අගය එකින් එක වැඩි කරන නිසා, ඊට increment operator (increment යන්නෙහි තේරුම "ක්‍රමයෙන් අගය ඉහල යනවා" යන්නයි) ලෙස හැඳින්වෙනවා.

count-- යනු count = count -1 හෙවත් count -= 1 යන්නයි. එයම --count ලෙසත් ලිවිය හැකියි. මෙයින් කවුන්ටරයේ අගය එකින් එක අඩු කරන නිසා, ඊට decrement operator (decrement යනු "කමයෙන් අගය අඩු වෙනවා" යන්නයි) ලෙස හැඳින්වෙනවා.

වේරියබල් එකට පසුව ++ හෝ - - යොදන විට, දළ වශයෙන් එහි වෙනසක් නැතත්, ඇත්තෙන්ම එහි සියුම් වෙනසක් තිබෙනවා (එම වෙනස ඉදිරියේදී සුදුසු අවස්ථාවේදී පෙන්වා දෙන්නම්). ++var1 හෝ - -var2 වැනි ආකාරයට ඉදිරියට ඔපරේටරය දමන විට, ඊට prefix increment operator (pre-increment operator) හෝ prefix decrement operator (pre-decrement operator) ලෙස කියන අතර, var3++ හෝ var4-- වැනි ආකාරයට පසුපසට දමන විට, ඊට postfix operator (post-increment operator හෝ post-decrement operator) කියා කියනවා.

මී ළඟට අප ඉගෙන ගන්නට යන්නේ ප්‍රෝග්‍රැමිංවල ඉතාම වැදගත් මාතෘකාවක් වන ෆන්ක්ෂන් ගැනයි. ෆන්ක්ෂන් ගැන ඉගෙන ගත් පසුව සෑම සී ප්‍රෝග්‍රෑම් එකකම දක්නට ලැබෙන main() ගැනත් අපට හොඳින් වටහ ගත හැකියි.

Comments

Popular posts from this blog

දන්නා සිංහලෙන් ඉංග්‍රිසි ඉගෙන ගනිමු - පාඩම 1

මෙම පොත (පාඩම් මාලාව) පරිශීලනය කිරීමට ඔබට එදිනෙදා සිංහල භාෂාව භාවිතා කිරීමේ හැකියාව හා සාමාන්‍ය බුද්ධිය පමණක් තිබීම අවම සුදුසුකම ලෙස මා සලකනවා.  තවද, ඇසෙන පරිදි ඉංග්‍රීසි අකුරින් ලිවීමට හැකිවීම හා ඉංග්‍රීසියෙන් ලියා ඇති දෙයක් කියවීමට හැකි නම්, ඔබට මෙතැන් සිට මෙම පාඩම් මාලාව කියවා ඉගෙන ගත හැකිය.  ඔබට එසේ ඉංග්‍රීසි කියවීම හා ලිවීම ගැන දැනීමක් දැනටමත් නොමැත්තේ නම්, කරුණාකර මෙ‍ම පොතෙහි “අතිරේකය - 1 ”  බලා පළමුව එම හැකියාව ඇති කරගන්න.  තවද, හැකි පමණ ඉංග්‍රීසි වචනද පාඩම් කරගන්න. ඔබ හිතවතෙකුගේ නිවසකට හෝ වෙනත් පිටස්තර තැනකට යන විටෙක හැසිරෙන්නේ ඔබට අවශ්‍ය විදියටම නෙමේ නේද?  එනම්, පිට නිවසකට ගිය විට අහවල් පුටුව තිබෙන තැන හරි නැහැ, අහවල් එක මෙහෙම තිබෙන්නට ඕනෑ ආදී ලෙස ඔවුනට පවසන්නේ නැහැ, මොකද අප සිටින්නේ අනුන්ගේ තැනක නිසා.  එලෙසම, ඉංග්‍රීසි භාෂාව යනු සිංහල නොවේ.  ඔබ කැමැති වුවත් නැතත් ඉංග්‍රීසි ඉගෙනීමේදීද අප ඉංග්‍රීසි ව්‍යාකරණ රීති හා රටා එපරිද්දෙන්ම උගත යුතුය.  එනම්, සෑම සිංහල වගන්ති රටාවක්ම ඉංග්‍රීසියට ඔබ්බන්නට නොව, ඉංග්‍රීසියේ ඇති රටා ඔබ දන්නා සිංහල භාෂාව තුළින් ඉගෙනීමට උත්සහ කළ යුතුය. 

කතාවක් කර පොරක් වන්න...

කෙනෙකුගේ ජීවිතය තුල අඩුම වශයෙන් එක් වතාවක් හෝ කතාවක් පිරිසක් ඉදිරියේ කර තිබෙනවාට කිසිදු සැකයක් නැත. පාසැලේදී බලෙන් හෝ යම් සංගම් සැසියක හෝ රැස්වීමක හෝ එම කතාව සමහරවිට සිදු කර ඇති. පාසලේදී කතා මඟ හැරීමට ටොයිලට් එකේ සැඟවුනු අවස්ථාද මට දැන් සිහිපත් වේ. එහෙත් එදා එසේ කතා මඟ හැරීම ගැන අපරාදේ එහෙම කළේ යැයි අද සිතේ. යහලුවන් ඉදිරියේ "පොර" වෙන්න තිබූ අවස්ථා මඟ හැරුණේ යැයි දුකක් සිතට නැඟේ. ඇත්තටම කතාවක් කිරීම "පොර" කමකි. දක්ෂ කතිකයන්ට සමාජයේ ඉහල වටිනාකමක් හිමි වේ. පාසැලේදී වේවා, මඟුලක් අවමඟුලක් හෝ වෙනත් ඕනෑම සමාජ අවස්ථාවකදී වේවා දේශපාලන වේදිකාව මත වේවා කතාවක් කිරීමේදී පිලිපැදිය යුත්තේ සරල පිලිවෙතකි. එහෙත් එම සරල පිලිවෙත තුල වුවද, තමන්ගේ අනන්‍යතාව රඳවන කතාවක් කිරීමට කාටත් හැකිය. පුද්ගලයාගෙන් පුද්ගලයා වෙනස් වේ. එම වෙනස ප්‍රසිද්ධ කතා (public speaking) තුලද පවත්වාගත හැකිය. මේ ගැන මට ලිපියක් ලියන්නට සිතුනේ මාගේ මිතුරෙකුට ප්‍රසිද්ධ කතාවක් කිරීමට අවශ්‍ය වී, ඒ ගැන මේ ළඟ දවසක අප පැයක් පමණ සිදු කළ සංවාදයක් නිසාය. මා ප්‍රසිද්ධ දේශකයකු නොවුණත් මේ විෂය සම්බන්දයෙන් පාසැල් කාලයේ සිටම පත

දන්නා සිංහලෙන් ඉංග්‍රිසි ඉගෙන ගනිමු - අතිරේකය 1

මූලික ඉංග්‍රීසි ලිවීම හා කියවීම ඉංග්‍රීසියෙන් ලියන්නේ හා ඉංග්‍රීසියෙන් ලියා ඇති දෙයක් කියවන්නේ කෙසේද?  ඉංග්‍රීසිය ඉගෙනීමට පෙර ඔබට මෙම හැකියාව තිබිය යුතුමය.  එය එතරම් අපහසු දෙයක්ද නොවේ.  ඔබේ උනන්දුව හොඳින් ‍තිබේ නම්, පැය කිහිපයකින් ඔබට මෙම හැකියාව ඇති කර ගත හැකිය.  මුල සිට පියවරෙන් පියවර එය උගන්වන්නම්.   මුලින්ම මිනිසා භාෂාවක් භාවිතා කළේ ශබ්දයෙන් පමණි.  එනම් ලිඛිත භාෂාව ඇති වූයේ පසු කාලයකදීය.  කටින් නිකුත් කරන ශබ්ද කනින් අසා ඔවුන් අදහස් උවමාරු කර ගත්තා.  පසුව ඔවුන්ට වුවමනා වුණා මෙම ශබ්ද කොලයක හෝ වෙනත් දෙයක සටහන් කර ගන්නට.  ඒ සඳහායි අකුරු නිර්මාණය කර ගත්තේ.  එම අකුරු නියෝජනය කරන්නේ ශබ්දයි .  මෙසේ මූලික අකුරු කිහිපයක් ඔවුන් එක එක භාෂාව සඳහා නිර්මාණය කර ගත්තා.  ඉංග්‍රීසියේදී මෙලෙස මූලික අකුරු 26ක් ඇත.   එය ඉංග්‍රීසි හෝඩිය ලෙස හැඳින් වෙනවා. අප ඉගෙන ගත යුත්තේ මෙම අකුරු මඟින් නියෝජනය කෙරෙන ශබ්ද මොනවාද යන්නයි.  එවිට ඔබට ඉංග්‍රීසි ලිවීමට හා කියවීමට හැකි වෙනවා.  ඊට පෙර අප අකුරු 26 දැනගත යුතුයි.  එම අකුරු 26 පහත දක්වා ඇත.  ඉංග්‍රීසියේදී සෑම අකුරක්ම “සිම්පල්” හා “කැපිටල්” ලෙස දෙයාකාර

දෛශික (vectors) - 1

එදිනෙදා ජීවිතයේදිත් විද්‍යාවේදිත් අපට විවිධාකාරයේ අගයන් සමඟ කටයුතු කිරීමට සිදු වෙනවා . ඉන් සමහරක් නිකංම සංඛ්‍යාවකින් ප්‍රකාශ කළ හැකි අගයන්ය . අඹ ගෙඩි 4 ක් , ළමයි 6 දෙනෙක් ආදී ලෙස ඒවා ප්‍රකාශ කළ හැකියි . තවත් සමහර අවස්ථාවලදී නිකංම අගයකින් / සංඛ්‍යාවකින් පමණක් ප්‍රකාශ කළ නොහැකි දේවල් / රාශි (quantity) හමු වේ . මෙවිට “මීටර්” , “ තත්පර” , “ කිලෝග්‍රෑම්” වැනි යම් ඒකකයක් (unit) සමඟ එම අගයන් පැවසිය යුතුය ; නැතිනම් ප්‍රකාශ කරන අදහස නිශ්චිත නොවේ . උදාහරණයක් ලෙස , “ මං 5 කින් එන්නම්” යැයි කී විට , එම 5 යනු තත්පරද , පැයද , දවස්ද , අවුරුදුද ආදි ලෙස නිශ්චිත නොවේ . මේ දෙවර්ගයේම අගයන් අදිශ (scalar) ලෙස හැඳින්වේ . අදිශයක් හෙවත් අදිශ රාශියක් යනු විශාලත්වයක් පමණක් ඇති දිශාවක් නැති අගයන්ය . ඔබේ වයස කියන විට , “ උතුරට 24 යි , නැගෙනහිරට 16 යි” කියා කියන්නේ නැහැනෙ මොකද දිශාව යන සාධකය / කාරණය වයස නමැති රාශියට වැදගත්කමක් නැත . එහෙත් සමහර අවස්ථා තිබෙනවා අගයක් / විශාලත්වයක් (magnitude) මෙන්ම දිශාවක්ද (direction) පැවසීමට සිදු වන . මෙවැනි රාශි දෛශික (vector) ලෙස හැඳින්වේ . උදාහරණයක් ලෙස , ඔබ යම් “බලයක්

දැනගත යුතු ඉංග්‍රිසි වචන -1

ඉංග්‍රිසි බස ඉගැනීමේදී වචන කොපමණ උගත යුතුද, එම වචන මොනවාදැයි බොහෝ දෙනෙකුට මතුවන ගැටලුවක් වන අතර, බොහෝ දෙනා ඊට විවිධ පිලිතුරුද සපයා ඇත. මේ ගැන හොඳින් පරීක්ෂණය කර ඇමරිකානු ආයතනයක් විසින් වචන 5000ක ලැයිස්තුවක් ඉදිරිපත් කර ඇත. එම ලැයිස්තුව මා කෙටස් දෙකකට (දිගු වැඩි නිසා) සිංහල තේරුම්ද සහිතව ඉදිරිපත් කර ඇත. (මේවා සැකසුවත් සෝදුපත් බලා නැති නිසා සුලු සුලු දෝෂ සමහරවිට තිබිය හැකිය). පහත ලැයිස්තුවේ වචන 2500ක් ඇත.    Word    තේරුම        be    ඉන්නවා    and    හා    of    ගේ    in    තුල    to    ට    have    තියෙනවා    to    ට    it    ඒක, ඌ    I    මම    that    ... කියලා, ඒ/අර, ඒක/අරක    for    සඳහා    you    ඔබ, ඔබලා    he    ඔහු    with    සමඟ    on    මත    do    කරනවා, "මෙව්ව කරනවා"    say    කියනවා    this    මේ, මේක    they    උන්, ඒවා, ඒගොල්ලෝ    at    දෙස, අසල    but    නමුත්    we    අපි    his    ඔහුගේ    from    සිට, ගෙන්    not    නැහැ    by    විසින්, මඟින්    she    ඇය    or    හෝ, හෙවත්    as    විට, නිසා, වශයෙන්    what    මොකක්ද,