May 7, 2021

TechXlk

All About Technology

ආදාන ප්‍රතිදාන(I/O) ලබා ගැනීම|TechXlk C Tutorials – 05

input output c tutorial 5 _techxlk_

අපි මේ කොටසෙන් ,පරිශිලකයාගෙන් අදානයක් ලබාගැනීමට scanf( ) ශ්‍රිතය භාවිතා කරන ආකාරයත්,පරිශීලකයාට ප්‍රතිදානය පෙන්වීමට printf( ) ශ්‍රිතය භාවිතා කරන ආකාරය ඉගෙනගනිමු.

ප්‍රතිදානයන් ලබාදෙන ආකාරය.

මෙහිදී පරිශීලකයාට ප්‍රතිදනයක් ලබාදීමට printf( ) යන පෙර අර්ථ දක්වන ලද ශ්‍රිතය භාවිතා කරයි.උදාහරණයක් වශයෙන්,

printf("c programming");

මෙහි ප්‍රතිදානය පහත පරිදි වේ.

01

තව පොඩි උදාහරණ ටිකක් පෙන්වන්න තියෙනවා ඊට කලින් තව පොඩි දෙයක් කියල දෙන්න ඕනි.මේ කොටස කලින් කියල දුන්නම අනිත් උදාහරණ තේරුම් ගන්න ලේසි වෙයි.

C හි භාවිතා වන ආකෘති පිරිවිතර(Format Specifiers)

C වලදී ගොඩක් වෙලාවට භාවිතා වෙන Format Specifiers කීපයක් පහතින් පෙන්වන්නම්,

02

මේක නිකන් බැලුවටනම් තේරෙන එකක් නෑ .මම කලින් කිව්වා වගේ දැන් දෙන්න යන උදාහරණ ටික කරගෙන යද්දී මේ මොකක්ද කියල හොද අවබෝදයක් ලැබෙයි.

උදාහරණ 02: int වර්ගයේ දත්ත ප්‍රතිදානය.

int num=5;
printf("number is %d",num);

මෙහි ප්‍රතිදානය,

03

මෙහි %d කියල කියන්නේ මම කලින් කොටෙසේ කියල දුන්න Format Specifier එකක්.int වර්ගයට අයිති වෙන සංඛ්‍යා ප්‍රතිදානය කරන්න තමයි මේක භාවිතා කරන්නේ.

මේකේ ප්‍රතිදානය දිහා බැලුවම අපිට පේනවා ඒ ප්‍රතිදානය ඇතුලේ %d කියන කොටස ඇතුලත් වෙන්නේ නෑ කියල,එකට හේතුව තමයි මේ %d කියන කොටස, int වර්ගයට අයත් num කියන variable එකට දීල තියෙන අගයෙන් ප්‍රතිස්ථාපනය වී තිබීම .දැන් ඔයාලට තේරෙනවා ඇති මොකටද මේ Format Specifiers භාවිතා වෙනෙන් කියල.

උදාහරණ 03: float හා double වර්ගයේ දත්ත ප්‍රතිදානය.

float num1=10.5;
double num2=11.2;

printf("num1 is %f\n",num1);
printf("num2 is %lf\n",num2);

මෙහි ප්‍රතිදානය,

04

float වර්ගයේ දත්ත ප්‍රතිදානයට %f ද ,double වර්ගයේ දත්ත ප්‍රතිදානයට %lf යන Format Specifiers භාවිතා වේ.

උදාහරණ 04: අකුරු (char) වර්ගයේ දත්ත ප්‍රතිදානය.

char letter='a';
printf("letter is %c",letter);

මෙහි ප්‍රතිදානය,

05

char වර්ගයට අයත් දත්ත ප්‍රතිදානයට %c යන්න භාවිතා කරයි.

C හි ආදානයන් ලබාගන්නා ආකාරය.

මෙහිදී පරිශීලක ආදනයන් ලබා ගැනීමට scanf( ) යන පෙර අර්ථ දක්වන ලද ශ්‍රිතය භාවිතා කරයි.

උදාහරණ 05: int වර්ගයේ දත්ත ආදානය කිරීම.

int number;
printf("enter a number: ");
scanf("%d",&number);

printf("entered number is %d",number);

මෙම කේත ඛණ්ඩය ක්‍රියාත්මක කල විට පහත පරිදි ප්‍රතිදානය ලැබේ.

06

float, double ,char වගේ දත්ත වර්ග ආදානය කරන්නෙත් මේ වගේම තමයි.පොඩි වෙනසකට තියෙන්නේ int වලදී ගත්ත %d කියන format specifier එක වෙනුවට,

float වලදී %f ලෙසද ,

double වලදී %If ලෙසද,

char දත්ත වර්ගයේදී %c ලෙසද යොදාගත යුතු වේ.

උදාහරණ 06: අගයන් කීපයක් ආදානයන් ලෙස ලබා ගැනීම.

int a;
float b;

printf("Enter integer and float number respectively:");
scanf("%d%f",&a,&b);

printf("you entered %d and %f",a,b);

මෙහි ප්‍රතිදානය පහත පරිදි වේ.

07

ඔන්න අපේ පාඩම් මාලාවේ මූලික කොටස් ටික ඉවරයි.මම කලින් කිව්ව විදියට මේ කරපු කොටස් ටික හොදට පුරුදු වෙන්නත් එක්ක පොඩි උදාහරණ ප්‍රශ්න ටිකක් කතා කරමු.

මම  ප්‍රශ්න ටිකක් දෙන්නන් ,මුලින්ම තනියෙන් කරලා බලන්න.ප්‍රශ්න ටිකට පස්සේ උත්තර ටික දාන්නම්.

01-පරිශීලක විසින් ඇතුලත් කරන ලද අගයන් දෙකක් එකතුකළ විට ,අඩුකළ විට ,ගුණකල විට ,බෙදූ විට පිළිතුරු ප්‍රතිදානය කිරීමට programme එකක් නිර්මාණය කරන්න.

02-පරිශීලක විසින් ඇතුලත් කරන ලද අකුරක ASCII අගය ලබා ගැනීමට programme එකක් සකස් කරන්න.

03-සිසුවෙකු ලබාගත් ලකුණු වල සාමාන්‍යය ගණනය කිරීමට අදාල ක්‍රමලේඛයක් සකස් කරන්න.

04-පරිශීලක ආදානය කරන අගයන් දෙකක් එකිනෙක මාරු කිරීමට(swap) කිරීමට ක්‍රමලේඛයක් සකසන්න.

05-පරිශීලක ආදානය කරන අගයක් තවත් අගයකින් බෙදුවිට අගයත්,බෙදූ විට ඉතිරි අගයත් ලබාගැනීමට ක්‍රමලේඛයක් සකසන්න.

ඔය ප්‍රශ්න ටික තනියම උත්සහ කරන්න.

මේ ටිකට උත්තර ටිකත් මම පහලින් දාන්නම්.

පිළිතුර-01-

#include <stdio.h>
int main ( ){
int num1 , num2 ; 
int total, remaider,multiply; 
float divide; 
printf("Enter two numbers"); 
scanf("%d%d",&numl,&num2) , 
total=num1+num2; 
remaider=numl-num2; 
multiply=numl*num2; 
divide=numl/(float)num2 ; 
printf ("total: %d\n",total);
printf ("remainder: %d\n",remainder); 
printf ("multiply: %d\n",multiply); 
printf ("divide: %f\n",divide);

}

පිළිතුර-02-

#include <stdio.h>
int main (){ 
char letter; 
printf("Enter a letter: ");  
scanf("%c",&letter);
printf("ASCII value for entered number: %d",letter);
return 0;
} 

පිළිතුර-03-

#include <stdio.h> 
int main (){ 
int com_marks,phy_marks,chem_marks; 
double avg ; 
printf ("enter marks for combined maths: "); 
scanf("%d",&com_marks); 
printf ("enter marks for physics: "); 
scanf("%d",&phy_marks);
printf ("enter marks for chemistry: "); 
scanf("%d",&chem_marks); 
avg=(com_marks+phy_marks+chem_marks) / 3.0; 
printf("Average marks: %.2f",avg);
} 

පිළිතුර-04-

#include <stdio.h>
int main ( ){ 
int number1,number2; 
int swap; 
printf("enter first number"); 
scanf( "%d",number1); 
printf("enter second number"); 
scanf( "%d",number2);

printf ("first number you entered: %d \n\n",number1); 
printf ("second number you entered: %d \n\n",number2);

swap=number1; 
number1=number2; 
number2=swap;

printf("first number you entered: %d\n",numberl); 
printf("second number you entered: %d\n",number2);

}

පිළිතුර-05-

#include <stdio.h>
int main (){ 
int num1,num2,remender; 
float divide; 
printf ("enter a number:");
scanf ("%d",%numl); 
printf ("number you want to divide by:");
scanf("%d",&num2); 
divide=numl/(float)num2; 
remender=numl*num2; 
printf("divide: %.2f\n",divide); 
printf("remainder: %d\n",remainder); 
}

ඔයාලගේ programme එක මේකම වෙන්න ඕනි නෑ.මිට වඩා  වෙනස් වෙන්න පුළුවන්.

ඔන්න එහෙනන් අපේ පාඩමේ මූලික කොටස මෙතනින් ඉවරයි.මේ කොටසෙන් කියල දුන්න ටිකයි කලින් කරපු ඒවයි හොදට බලාගන්න. ඊළගට අපිට තියෙන්නේ ගොඩක් ආස හිතෙන වගේම ගොඩක් වැදගත් කොටසක්.අපි එහෙනම් ඊලග post එකෙන් හමුවෙමු