மாறிகள்
மாறிகள் என்பவை குறிப்பிட்ட தரவு இனங்களின் மதிப்புகளை தாங்கியுள்ள, பயனரால் பெயரிடப்பட்ட நினைவாக இடங்களை குறிக்கிறது. மாறிகள் என்பவை குறிப்பெயர்கள் ஆகும். எனவே, குறிப்பெயர்களுக்கு பெயரிட பயன்படும் விதிமுறைகளையே மாறிகளுக்கு பெயரிடவும் பயன்படுத்த வேண்டும். மாறிகள் பெயரிடப்பட்ட நினைவகங்களை குறிப்பிடுவதால் இவற்றுக்கு குறுயீட்டு மாறிகள் (Symbolic variables) என்று பெயர். R மற்றும் 1 என்ற இரண்டு மதிப்புகள் குறியீட்டு மாறிகளுடன் தொடர்புடையது.
• R- மதிப்பு நினைவகத்தில் சேமிக்கப்பட்டுள்ள தரவுகளைக் குறிக்கும்.
• L மதிப்பு தரவுகள் சேமிக்கப்பட்ட நினைவக முகவரியை குறிக்கும்.
நினைவக முகவரி என்பது பதினாறு நிலை (hexa decimal) எண்களாக உள்ளன என்பதை நினைவில் கொள்க.
மாறிகளின் அறிவிப்பு
அனைத்து மாறிகளும் அதன் நிரல் பயன்பாட்டிற்கு முன்னரே அறிவிக்கப்பட வேண்டும். மாறியின் பெயருடன் கூடிய தரவுவகைக்கு ஏற்ற நினைவக ஒதுக்கீடு பற்றி நிரல் பெயர்ப்பிக்கு தெரிவிப்பதே அறிவிப்பு ஆகும். எடுத்துக்காட்டாக, ஒரு மாறியை int வகையாக Dev C++ ல் அறிவித்தால் தொகுப்பான் 4 பைட் நினைவகத்தை ஒதுக்கும். எனவே அனைத்து மாறிகளும் சேமிக்கப்படவேண்டிய மதிப்பின் வகையோடு அறிவிக்கப்பட வேண்டும்.
ஒன்றுக்கு மேற்பட்ட மாறிகளின் அறிவிப்பு
ஒன்றுக்கு மேற்பட்ட ஒரே வகை மாறியை ஒரே கூற்றில் அறிவிக்க முடியும். அக்கூற்றிலுள்ள ஒவ்வொரு மாறியையும் தனித்தனியே குறிக்க காற்புள்ளி (,) பயன்படுத்தப்பட வேண்டும்.
கட்டளை அமைப்பு:
<data type> <varl>, <var2>, <var3> ...... <var_n>;
எடுத்துக்காட்டு : int num1, num2, sum;
மேலே உள்ள கூற்றில் மூன்று முழு எண் வகை மாறிகள் உள்ளன. அதாவது, num1, num2 மற்றும் sum என்ற மாறிகளில் முழு எண் மதிப்புகளை மட்டுமே இருத்த முடியும். இந்த மாறிகளில் மிதப்புப் புள்ளி (தசம மதிப்புகளை சேமிக்க முற்பட்டால் முழு எண் மதிப்பை மட்டுமே நினைவகத்தில் இருத்தப்படும். மதிப்புப் புள்ளி பகுதி ஒதுக்கப்பட்டு விடும். மேலே கூறப்பட்ட அறிவிப்பில் C++ தொகுப்பானானது ஒவ்வொரு மாறிக்கும் 4 பைட்டு நினைவக இடத்தை ஒதுக்கும் (4 நினைவக பெட்டிகள்)
ஒரு மாறி, தொடக்க மதிப்பு ஏதுமின்றி அறிவிக்கப்பட்டால், அதற்கு ஒதுக்கப்பட்ட நினைவகத்தில் அறியப்படாத மதிப்புகள் இருத்தப்பட்டுவிடும். இவற்றை குப்பை மதிப்புகள் (Junk அல்லது Garbage) என்று பெயர்.
#include <iostream>
using namespace std;
int main()
{
int num1, num2, sum;
cout << num1 << endl;
cout << num2 << endl;
cout << num1 + num2;
}
மேலே கொடுக்கப்பட்டுள்ள நிரலில் num1, num2 மாறிகளுக்கு அறியப்படாத மதிப்புகள் நினைவகத்தில் இருத்தப்படும். எனவே cout<< num1+num2; வில் அறியப்படாத குப்பை மதிப்புக்களின் கூட்டுத்தொகை விடையாக கிடைக்கும்.
மாறியின் தொடக்க மதிப்பிருத்தல்:
மாறி அல்லது மாறிகள் அறிவிக்கப்படும் போதே அதற்கு தொடக்க மதிப்பு வழங்குதலை தொடக்க மதிப்பிருத்தல்" என்று அழைக்கப்படுகிறது.
எடுத்துக்காட்டுகள்:
int num = 100;
float pi = 3.14;
double price = 231.45;
மேலே num, pi மற்றும் price என்ற மாறிகள் அறிவிப்பின் போதே தொடக்க மதிப்பு இருத்தப்பட்டுள்ளன. நிரலின் இயக்கத்தின் போது இந்த மாறிகளின் தொடக்க மதிப்பை மாற்றிக் கொள்ளலாம்.
எடுத்துக்காட்டு 9.6 உருளையின் வளைந்த மேற்பரப்பை கண்டறியும் நிரல் (CSA = 2 pi rh)
#include <iostream>
using namespace std;
int main()
{
float pi = 3.14, radius, height, CSA;
cout << "\n Curved Surface Area of a cylinder";
cout << "\n Enter Radius (in cm): ";
cin >> radius;
cout << "\n Enter Height (in cm): ";
cin >> height;
CSA = (2*pi*radius)*height;
system("cls");
cout << "\n Radius: " << radius <<"cm";
cout << "\n Height: " << height << "cm";
cout << "\n Curved Surface Area of a Cylinder is " << CSA <<" sq. cm.";
}
வெளியீடு:
Curved Surface Area of a cylinder
Enter Radius (in cm): 7
Enter Height (in cm): 20
Radius: 7cm
Height: 20cm
Curved Surface Area of a Cylinder is 879.2 sq. cm.
ஒரே வகையுள்ள மாறிகளுக்கு ஒரே கூற்றில் தொடக்க மதிப்பிருத்த முடியும்.
எடுத்துக்காட்டு:
int x1 = -1, x2 = 1, x3, n;
இயங்கு நிலை தொடக்க மதிப்பிருத்தல்
நிரலின் இயக்கத்தின் போது ஒரு மாறிக்கு தொடக்க மதிப்பு இருத்த முடியும். இதுவே “இயங்குநிலை தொடக்க மதிப்பிருத்தல்" எனப்படும்.
எடுத்துக்காட்டு
int numl, num2, sum;
sum = num1 + num2;
மேற்கண்ட இரண்டு கூற்றுகளும் ஒரே கூற்றாக பின்வருமாறு இணைக்கப்பட்டுள்ளது.:
int sum = num1+num2;
இயக்கத்தின் போது அறியப்பட்ட num1 மற்றும் num 2. மதிப்புகளை பயன்படுத்தி sum க்கு தொடக்க மதிப்பு கருத்தப்படுகிறது.
எடுத்துக்காட்டு 9.7இயங்கு நிலை தொடக்க மதிப்பிருத்தலை விளக்கும் C++ நிரல்
#include <iostream>
using namespace std;
int main()
{
int num1, num2;
cout << "\n Enter number 1: ";
cin >> num1;
cout << "\n Enter number 2: ";
cin >> num2;
int sum = num1 + num2; // Dynamic initialization
cout << "\n Average: " << sum /2;
}
வெளியீடு:
Enter number 1: 78
Enter number 2: 65
Average: 71
மேலே கொடுக்கப்பட்ட நிரலில் num1 மற்றும் num2 மாறிகளுக்க மதிப்புகளை பெற்ற பின் sum என்ற மாறி அறிவிக்கப்பட்டு இந்த இரண்டு மாறிகளின் கூட்டுத் தொகை மதிப்பிருத்தப்படுகிறது பிறகு அது இரண்டால் வகுக்கப்பட்டு வெளியீடு காட்டப்படுகிறது.
எடுத்துக்காட்டு 9.8 அரைவட்டத்தின் சுற்றளவு மற்றும் பரப்பை கண்டறியும் C++ நிரல்
#include <iostream>
using namespace std;
int main()
{
int radius;
float pi = 3.14;
cout << "\n Enter Radius (in cm): ";
cin >> radius;
float perimeter = (pi+2)*radius; // dynamic initialization
float area = (pi*radius*radius)/2; // dynamic initialization
cout << "\n Perimeter of the semicircle is " << perimeter << " cm";
cout << "\n Area of the semicircle is " << area << " sq.cm";
}
வெளியீடு:
Enter Radius (in cm): 14
Perimeter of the semicircle is 71.96 cm
Area of the semicircle is 307.72 sq.cm
அணுகுநிலை பண்புணர்த்தி const;
மாறிலியை அறிவிப்பதற்கான சிறப்பு சொல் const ஆகும். const சிறப்பு சொல் மாறியின் அணுகுநிலையை மாற்றுகிறது அல்லது முறைப்படுத்துகிறது. எனவே இது அணுகுநிலை பண்புணர்த்தி எனவும் அழைக்கப்படுகிறது.
எடுத்துக்காட்டு:
int num = 100;
மேலே உள்ள கூற்று num1 என்ற மாறியை 100 என்ற தொடக்க மதிப்போடு அறிவிக்கிறது. எனினும் இயக்கத்தின் போது num ன் மதிப்பு மாற்றப்படலாம். மேலே உள்ள கூற்றை, const int num=100; என மாற்றும் போது, மாறி num என்பது மாறிலியாகிறது. அதனுடையமதிப்பு இந்த நிரல் முழுவதும் 100 என இருக்கும், இயக்கத்தின் போது மாறாது.
#include <iostream>
using namespace std;
int main()
{
const int num=100;
cout << "\n Value of num is = " << num;
num = num + 1; // Trying to increment the constant
cout << "\n Value of num after increment " << num;
}
மேலே கொடுக்கப்பட்டுள்ள நிரல் Dev C++ ல் இயங்கும் போது "assignment of read only memory num" என்ற பிழை செய்தியும், Turbo C++ ல் நிரல் பெயர்ப்பியில் இயங்கும் போது, "Cannot modify the const object” மற்றும் என்ற பிழை செய்தியும் காட்டப்படும்.
குறிப்புகள் (References):
முன்னரே, வரையறுக்கப்பட்ட மாறிகளுக்கு ஒரு மறுபெயரை குறிப்புகள் வழங்குகின்றன. குறிப்புகளின் அறிவிப்பு மாறியின் அடிப்படை தரவினத்துடன் & குறியீட்டையும் கொண்டிருக்கும். குறிப்பு மாறியின் பெயரானது ஏற்கனவே அறிவிக்கப்பட்ட மாறியின் மதிப்பை எடுத்துக் கொள்ளும்.
கட்டளை அமைப்பு:
<type> <& reference_variable> = <original_variable>
எடுத்துக்காட்டு 9.9 குறிப்பு மாறிகளை அறிவிக்கும் C++ நிரல்
#include <iostream>
using namespace std;
int main()
{
int num;
int &temp = num; //declaration of a reference variable temp
num = 100;
cout << "\n The value of num = " << num;
cout << "\n The value of temp = " << temp;
}
வெளியீடு:
The value of num = 100
The value of temp = 100