பாய்வுக் கட்டுப்பாடு | கணினி அறிவியல் - பின்வரும் கேள்விகளுக்கு பதில் அளிக்கவும் | 11th Computer Science : Chapter 10 : Flow of Control
C++ ஓர் அறிமுகம்
பாய்வுக் கட்டுப்பாடு
மதிப்பீடு
பகுதி - ஆ
குறு வினாக்கள்
1. வெற்றுக்கூற்று மற்றும் கூட்டுக்கூற்று
என்றால் என்ன?
விடை:
வெற்று கூற்று : அரைப்புள்ளியை மட்டுமே கொண்டிருக்கும் கூற்றை "வெற்று அல்லது வெறுமைக்
கூற்று" எனப்படும்.
கூட்டுக் கூற்று : C++ கூற்றுகளின் தொகுப்பினை நெளிவு அடைப்புக்குறிகளுக்குள் உள்ளடக்க அனுமதிக்கிறது. இந்த கூற்றுகளின் தொகுப்பினை கலவை
கூற்று அல்லது தொகுதி என்கிறோம்.
2. தேர்ந்தெடுப்புக் கூற்றுகள் என்றால்
என்ன? அதன் வகைகளை எழுதுக.
விடை:
நிபந்தனை அடிப்படையில் நிறைவேற்றப்படும் கூற்றுகள்
தேர்ந்தெடுப்பு கூற்றுகள் எனப்படும். அதன் வகைகள்
(i) if கூற்று
(ii) if-else கூற்று
(iii) nested-if கூற்று
(iv) switch-case கூற்று
3. பின்வரும் நிரலில் உள்ள பிழைகளை
சரி செய்க.
if (x=1)
p = 100;
else
p = 10;
விடை:
if (x == 1)
p = 100;
else
p=10;
4. பின்வரும் நிரலின் வெளியீடு என்ன?
int year;
cin >> year;
if (year % 100 == 0)
if ( year % 400 == 0)
cout << "Leap";
else
cout << "Not Leap
year";
If the input given is (i) 2000 (ii) 2003 (iii)
2010?
விடை:
(i) leap year
(ii) Not Leap year
(iii) Not Leap year.
5. பின்வரும் நிரலில் உள்ள பிழைகளை
சரிசெய்க:
for (int i=2; i<=10; i+=2)
cout<<1;
விடை: 2 4 6 8 10.
6. 21 முதல்
30 வரை தொடர்ச்சியாக எண்களை அச்சிடுவதற்கான
for மடக்கை எழுதுக.
விடை:
for (i= 21; i < = 30; i ++)
cout << i;
7. 2, 4, 6, 8 ........ 20 என்ற தொடர்
வரிசையை அச்சிடுவதற்கான while மடக்கை
எழுதுக.
விடை:
int i = 2;
while (i < = 20)
{
cout << i;
i = i + 2;
}
8. if கூற்றுடன்,
?: மும்ம செயற்குறியை ஒப்பிடுக.
விடை:
if கூற்று - பல கூற்றுகள் கொண்டிருக்கும்.
(எ.கா.)
if (P = = 10)
{
P=100;
}
else
P = 10;
?: மும்ம செயற்குறி - ஒரே ஒரு கூற்றினை மட்டும் கொண்டிருக்கும்
if - else-க்கு மாற்றாக பயன்படும்.
எ.கா.
(P==10)? P = 100;
P=10;
பகுதி - இ
சிறு வினாக்கள்
1. பின்வரும்
if - else கூற்றுக்கு நிகரான நிபந்தனை கூற்றாக மாற்றுக:
if (x>=10)
a=m + 5;
else
a=m;
விடை:
a = (x > = 10)? m + 5 : m;
2. பின்வரும் நிரல் கூற்றுகள் சரியாக
இயங்கும் வகையில் அவற்றை மாற்றி எழுதுக.
v = 5;
do;
{
total + = v;
cout << total;
while v <= 10
விடை:
int v = 5;
Do
{
total += v;
cout<<total;
v=v+1;
} while (v<=10);
3. கொடுக்கப்பட்ட எண்ணின் பெருக்கல்
வாய்ப்பாட்டை அச்சிடும் C++ நிரல்
ஒன்றை எழுதுக.
விடை:
#include<iostream>
using namespace std;
int main()
{
int num;
cout<<"Enter Number To Find
Multiplication table";
cin>>num;
for(int a=1;a<=10;a++)
{
cout<<num<<" * "<<a<<"="<<num*a<<endl;
}
return 0;
}
4. switch கூற்றின் கட்டளை தொடரை எழுதி
அதன் பயன்களை பட்டியலிடுக.
விடை:
switch கூற்று என்பது ஒரு பல வழி கிளைப்பிரிப்பு கூற்றாகும். இது கோவையின் மதிப்பின் அடிப்படையில்
பல்வேறு நிரல் பகுதிகளுக்கு கட்டுப்பாட்டை எடுத்துச் செல்வதற்கு எளிதாக வகை செய்கிறது. switch கூற்று ஒன்றுக்கும்
மேற்ப்பட்ட ifelse கூற்றுகளுக்கு மாற்றாக அமைந்துள்ளது.
switch கூற்றின் கட்டளை அமைப்பு;
switch (கோவை)
{
case constant1:
கூற்று (s);
break;
case constant2:
கூற்று (s);
break;
:
:
default:
கூற்று (s);
}
5. பின்வரும் எண் தொடரை அச்சிடுவதற்கான
நிரல்களை எழுதுக.
(a) 1 4 7 10...... 40
விடை:
#include<iostream>
int main()
{
for (int i = 1; i < = 40; i + = 3)
cout<<i<<endl;
}
getch();
}
பகுதி - ஈ
பெரு வினாக்கள்
1. கட்டுப்பாட்டு கூற்றுகளை பொருத்தமான
எடுத்துக்காட்டுடன் விளக்குக.
விடை: கட்டுப்பாட்டு கூற்றுகள், கட்டளைகளின் பாய்வு வரிசை முறையை மாற்றி அமைக்கும். ஒரு நிரலிலுள்ள கூற்றுகள் ஒன்றன்
பின் ஒன்றாய் வரிசைமுறையில் நிறைவேற்றப்பட்டால், இந்த பாய்வை வரிசைமுறைப் பாய்வு
என்கிறோம். சில சூழ்நிலைகளில், கிளை பிரித்தல், மடக்கு, தாவுதல் மற்றும் செயற்கூறு அழைப்பு போன்ற கூற்றுகள் பாய்வின் ஓட்டத்தை மாற்றியமைக்கும். இந்த செயல்முறையை பாய்வுக் கட்டுப்பாடு (Control Flow) என்கிறோம்.
(i) வரிசைமுறை கூற்று : வரிசை முறை கூற்றுகள் என்பது மேலிருந்து
கீழாக ஒன்றன் பின் ஒன்றாக நிறைவேற்றப்படும் கூற்றுகளாகும். இத்தகைய கூற்றுகள் பாய்வு ஓட்டத்தை
மாற்றி அமைக்காது. இவை எப்பொழுதும் அரைப்புள்ளியுடன் (;) முற்றுப்பெறுகிறது.
(ii) தேர்ந்தெடுப்புக்கூற்று: நிபந்தனை அடிப்படையில் நிறைவேற்றப்படும்
கூற்றுகள் தேர்ந்தெடுப்பு கூற்றுகள் எனப்படும். கொடுக்கப்பட்ட நிபந்தனை சரி எனில்
சரி கட்டளைத் தொகுதி (கூற்றுகளின் தொகுப்பு) இயக்கப்படும், இல்லையெனில் தவறு கட்டளைத்தொகுதி இயக்கப்படும். நிறைவேற்றப்பட வேண்டிய கூற்றுகளின்
தொகுப்பை தீர்மானிக்க உதவுவதால், இக்கூற்றினை தீர்மானிப்புக் கூற்று அல்லது தேர்ந்தெடுப்பு கூற்று எனலாம்.
(iii) மடக்குக் கூற்று : மடக்குக் கூற்று என்பது ஒரு கட்டளைத்
தொகுதியை நிபந்தனை அடிப்படையில் மீண்டும் மீண்டும் செயல்படுத்தும். கொடுக்கப்பட்ட நிபந்தனை சரி என
இருக்கும் வரை, கட்டளைத் தொகுதி மீண்டும் மீண்டும் நிறைவேற்றப்படும். நிபந்தனை தவறாகும் போது தொடர்ந்து
இயக்கப்படுவது நிறுத்தப்படுகிறது. இதனை மடக்குக் கூற்று அல்லது பன்முறைச் செயல் கூற்று என்கிறோம்.
2. நுழைவு சோதிப்பு மடக்கு என்றால்
என்ன? ஏதேனும் ஒரு நுழைவு சோதிப்பு மடக்கை பொருத்தமான
எடுத்துக்காட்டுடன் விளக்குக.
விடை: நிபந்தனை கோவை மடக்கினுள் நுழையும் முன் சோதிக்கப்படும் மடக்கு நுழைவு
சோதிப்பு மடக்கு எனப்படும்.
while மடக்கு : while மடக்கும் ஒரு கட்டுப்பாடு
பாய்வு கூற்றாகும். இது ஒரு மடக்கினை கொடுக்கப்பட்ட நிபந்தனை சரியாக இருக்கும் வரை, மீண்டும் மீண்டும் இயக்கும். while மடக்கு ஒரு நுழைவு
சோதனை மடக்காகும். இதில் சோதிப்பு கோவை முதலில் மதிப்பீடு செய்யப்பட்ட பின்னரே மடக்கினுள்
உள்ளே நுழையும்.
while மடக்கின் கட்டளை அமைப்பு :
while (நிபந்தனை சோதிப்புக் கோவை)
{
மடக்கின் உடற்பகுதி;
}
கூற்று - x;
while மடக்கில், நிபந்தனை சோதிப்பு கோவை மதிப்பீடு செய்யப்பட்டு அதன் முடிவு சரி என
வந்தால், மடக்கின் உடற்பகுதி இயக்கப்பட்டு மீண்டும் while மடக்கிற்கு கட்டுப்பாடு
அனுப்பி வைக்கப்படும்.
நிபந்தனை சோதிப்பு கோவை முடிவு தவறு என வரும்போது, பாய்வுக் கட்டுப்பாடு கூற்று –x அனுப்பி வைக்கப்படும்.
எடுத்துக்காட்டு :
#include<iostream>
using namespace std;
int main ()
{
int i=1, sum=0;
while(i<=10)
}
sum=sum+i;
i++;
}
cout<<"The sum of 1 to 10
is"<<sum;
return 0;
}
வெளியீடு :
The sum of 1 to 10 is 55
3. LCM மற்றும்
GDC போன்றவற்றை கணக்கிடுவதற்கான நிரல்களை எழுதுக.
விடை:
நிரல் :
#include<iostream.h>
using namespace std;
int main()
{
int nl,n2, a, b, gcd, lcm;
cout<<"Enter two
numbers"<<endl;
cin>>nl>>n2;
a=n1;
b=n2;
while (n1 !=n2)
{
if (n1>n2)
n1 = n1 - n2;
else
n2 = n2 - n1;
}
gcd = n1;
cout << "GCD=" <<gcd;
lcm = (a * b) / gcd;
cout <<"LCM =" << lcm;
}
4. கீழ்காணும் எண் தொடர்களை கணக்கிடுவதற்கான
நிரல்களை எழுதுக.
(a) x- x2/2! + x3/3! - x4/4!
+ x5/5! - x6/6!
(b) x+ x2/2 + x3/3 +....+ xn/n
விடை:
(a) நிரல்:
[/To find the sum of the series
#include<iostream.h>
#include<math.h>
int main()
{
int i, x, s1=0, s2=0, j;
cout<<"Enter the value of
x"<<endl;
cin>>x;
for (i = 1; i<=5; i+=2)
{
int f = 1;
for (j=1; j<=i; j++)
f=f*j;
s1 = s1+(Math.pow(x, i) / f);
}
for (i=2; i<=6; i+=2)
{
int f= 1;
for (j= 1; j<=i; j ++)
f=f*j;
s2 = s2+(Math.pow(x, i)/ f)
}
cout <<"sum of series
="<<(s1-s2);
return 0;
}
(b) நிரல்:
#include<iostream.h>
#include<math.h>
int main ( )
{
int i, x, n, s = 0;
cout<<"Enter the value of
x"<<endl;
cin>>x;
cout<<"Enter number of
terms"<<endl;
cin>>n;
for(i= 1; i<=n; i++)
s = s + (pow(x,i)/i);
cout<<"The Sum="<<s;
return 0;
}
5. கொடுக்கப்பட்ட எண் தொடரின் கூட்டுத்
தொகையை கணக்கிடும் நிரல் ஒன்றை எழுதுக.
S = 1 + x + x2 +..... + xn
விடை:
நிரல்:
#include<iostream.h>
#include<math.h>
int main ( )
{
int x, n, i, s=0;
cout<<"Enter the value of
x"<<endl;
cin>>x;
cout<<"Enter the number of
terms"<<endl;
cin>>n;
for(i=0; i<=n; i++)
s=s+(pow(x,i);
cout<<"The Sum="<<s;
return 0;
}
செய்முறைப் பயிற்சி
கீழ்க்காணும் சிக்கல்களை தீர்க்கும் C++ நிரல்களை எழுதுக.
1. வெப்பநிலை அளவு மாற்ற நிரல்:
கொடுக்கப்படும் வெப்பநிலை அளவை,
பயனரின் விருப்பத்திற்கு ஏற்ப ஃபாரன்ஹீட்டிலிருந்து
செல்ஷியஸ்-க்கும்;
செல்ஷியஸிலிருந்து ஃபாரன்ஹீட்டுக்கும்
மாற்றம் செய்யும் C++ நிரல்
ஒன்றை எழுதுக.
விடை:
#include<iostream>
using namespace std;
int main ()
{
int a;
cout<<"l. For
Celsius to Fahrenheit.\n";
cout<<"2. For
Fahrenheit To Celsius. \n";
cout<<"3. For
Exit\n\n";
cout<<"Enter Your
Choice\n";
switch(a)
{
double cel, feh;
case 1: cout<<"Enter
The Temperature in Celsiush\n"; cin>>cel;
feh = (cel*9/5)+32;
cout<<"\nTemperature
in Fahrenheit is = "<<feh;
break;
case 2:
cout<<"Enter The Temperature in Fahrenheit\n|; cin>>feh
cel = (feh−32)*5/9;
cout<<"\nTemperature
in Celsius is = "<<cel;
break;
case 3: exit (0);
default:cout<<"\nEnter
The Right Choice\n";
break;
}
return 0;
}
2. பயனரிடம்,
இரண்டு எண்களையும்,
ஒரு செயற்குறியையும் உள்ளீடாகப் பெற வேண்டும்.
பெறப்பட்ட செயற்குறியை அடிப்படையாகக் கொண்டு,
கூட்டல், கழித்தல்,
பெருக்கல் அல்லது வகுத்தல் கணக்கீட்டை கொடுக்கப்பட்ட
இரண்டு எண்களின் மீது செய்து வெளியீட்டை காட்டும் C++ நிரல்
ஒன்றை எழுதுக.
விடை:
#include<iostream>
using namespace std;
int main ( )
{
char op;
float numl, num2;
cout<<"Enter
operator either + or − or * or/:";
cin>>op;
cout<<"Enter two
operands:";
cin>>num 1 >>num2;
switch(op)
{
Case '+':
cout<<numl+num2;
break;
case '−':
count<<num 1 − num2;
break;
case '*':
cout<<numl *num2;
break;
case '/':
cout<<numl/num2;
break;
default:
//if the operator is other
than +,−,* or/, error message is shown cout<<"Error! operator is not
correct"
break;
}
return 0;
}
வெளியீடு:
Enter operator either + or −
or * or divide;-
Enter two operands:
3.4
8.4
3.4−8.4 = 5.0
3. C++ குறியுருத் தொகுதியிலுள்ள
ஏதேனும் ஒரு குறியுருவை உள்ளீடாகப் பெற வேண்டும். பெறப்பட்ட
குறியுரு எழுத்து, எண்
அல்லது சிறப்புக் குறியுரு இவற்றில் எது என்பதைக் காட்டும்
C++ நிரல் ஒன்றை எழுதுக.
விடை:
#include<iostream>
using namespace std;
int main ()
{
char ch;
cout<<"Enter any
character:";
ch=getchar();
if (isalpha (ch))
cout<<"
Alphabet";
else if (isdigit(ch))
cout<<"Number";
else
cout<<"Special
Character";
return 0;
}
4. கொடுக்கப்படும் குறியுரு ஆங்கில
பெரிய எழுத்தா, சிறிய எழுத்தா,
எண்ணா அல்லது வேறு ஏதேனும் குறியுருவா என்பதை
ASCII மதிப்புகளைக் கொண்டு கண்டறியும்
C++ நிரல் ஒன்றை எழுதுக.
ASCII மதிப்புகள் கீழே கொடுக்கப்பட்டுள்ளது.
குறியுருக்கள் : ASCII
மதிப்புகள்
'0' - '9' : 48 - 57
'A'-'Z' : 65
- 90
'a' -'z'
: 97 - 122
மற்ற குறியுருக்கள் 0-
255 மேலே குறிப்பிடப்பட்டுள்ள மதிப்புகள் நீங்கலாக
விடை:
#include<iostream>
using namespace std;
int main()
{
char ch;
cout<< "Enter a
character"<<endl;
cin>>ch;
if ((ch>=65 & & ch
<=90)
cout << "Alphabet:
upper case";
else if ((ch>= 97
&& ch <= 122))
cout <<"Alphabet:
Lower case";
else if (ch>= 48&&
ch<=57)
cout <<"Digt";
else
cout<<"Special
Character";
return 0;
}
5. ஒரு முழு
எண்ணின் தொடர் பெருக்கலை (Factorial) கணக்கிடும்
C++ நிரல் ஒன்றை எழுதுக.
விடை:
#include<iostream>
using namespace std;
int main ()
{
int n, i, f = 1;
cout<<"Enter a
number"<<endl;
cin>>n;
for (i =1; i<=n; i++)
f=f*i;
cout<<"Factorial of
a given number =" <<f<<endl;
return 0;
}
6. 1 2 4 8 16 32 64 128 என்ற எண்
தொடரை அச்சிடும் C++ நிரல்
ஒன்றை எழுதுக.
விடை:
#include<iostream>
#include<math.h>
using namespace std;
int main ()
{
for (i=0; i<8; i ++)
cout<<pow(2,i)<<"t";
return 0;
}
7. கொடுக்கப்படும் ஒரு எண்ணின் வகுக்கும்
எண்ணை கண்டறியும் C++ நிரல்
ஒன்றை எழுதுக.
விடை:
#include<iostream>
using namespace std;
int main ()
{
int n, i;
cout<<"Enter a
number"<<endl;
cin>>n;
for (i=i;i<=n; i++)
{
if(n%i== 0)
cout<<i<<"\t";
}
return 0;
}
8. ஃபிபோனாசி எண் வரிசை
(0 1 1 2 3 5 8....) கண்டறியும்
C++ நிரல் ஒன்றை எழுதுக.
விடை:
#include<iostream>
using namespace std;
int main ()
{
int n, i, a = 0, b = 1
cout<<"Enter number
of terms"<<end1;
cin>>n;
cout<*Fibonacci
series"<<endl;
cout<<a<<"\t"<<b;
for(i=3;i<=n; i ++)
{
c=a+b;
cout<<c<<"\t";
a =b;
b=c;
}
return 0 ;
}
9. பின்னலான மடக்குகளைப் பயன்படுத்தி,
பின்வரும் வடிவங்களை அச்சிடுவதற்கான
C++ நிரல் ஒன்றை எழுதுக.
விடை:
(a) #include<isotream>
using namespace std;
int main ()
{
for(int i = 1; i < = 5;
i++)
{
for(int j =5; j >= i;. j −
−)
{
cout<<j"\t";
}
cout<<'n';
}
return 0 ;
{
(b) #include<iostream>
using namespace std;
int main ( )
{
int n = 65, rows;
cout<<"Enter
number' of rows: "; cin>>rows;
for (int i = 65;
i<=(65+rows−l); i++)
}
for(int j = 65; j<=i; j++)
{
cout<<(char)j>>"\t";
}
return 0;
}
(c) #include<iostream>
using namespace std;
int main ()
{
int space, rows;
cout<<"Enter number
of rows:";
cin>> rows;
for (int i = rows, k =0 ; i >
= 1; i − − )
{
for (space = rows −i; space
>=1; − − space)
{
cout<<" " ;
}
While(k ! = 2*i − 1)
{
Cout << “*”;
}
Cout<<end1;
}
10. கொடுக்கப்பட்ட ஒரு எண்ணின் வர்க்க
மூலம், பகு எண்ணா
? இல்லையா எனக் காணும்
C++ நிரல் ஒன்றை எழுதுக.
விடை:
#include<iostream>
#include<math.h>
using namespace std;
int main ()
{
tint n, i, m,c ;
cout<<"Enter a
number"<<end1;
cin>>n;
m=sqrt(n);
for (i=l;l<m; i++)
{
if(m%i== 0)
c++;
}
if(c==2)
cout<<"The square
root of a given number is prime"<<end1;
else
cout<<“The square root
of a given number is not prime"<<endl;
}