Sunday, March 23, 2014

C Programming Basics - Lesson 5 - Arrays (Single-Dimensional Array)

முன்பு பாடங்களில் data types பற்றி பார்த்தோம். அதாவது int, float, char போன்றவை. இவை அனைத்தும் ஒரு நேரத்தில் ஒரு மதிப்பு மட்டுமே கொடுக்க முடியும். உதாரணமாக...

int a=10; எனும் பொது a இன் மதிப்பு 10 ஆகிறது. இப்போலுது a க்கு ஒரு மதிப்பு மட்டுமே உள்ளது. ஒரே variable பெயரில் பல மதிப்பு கொடுக்க வேண்டும் என்றால் அதற்கு array பயன்படுகிறது.

array மூன்று வகைப்படும்

1. Single-Dimensional Array
2. Two-Dimensional Array
3. Multidimensional Array

இன்று Single Dimensional Array ஐ பற்றி மட்டும் பார்ப்போம். மற்றதை அடுத்த வகுப்பில் பார்க்கலாம்.

Single Dimensional Array

இப்போது பாருங்கள்... int a[5]; a க்கு ஐந்து மதிப்பு கொடுக்கலாம்.. எப்படி என்றால்.. a[0]=10, a[1]=20, a[2]=30, a[3]=40, a[4]=50. எப்பவுமே array value 0 வில் இருந்து தொடங்க வேண்டும். எனவே array இன் மதிப்பு 5 ஆக இருக்கும்போது 0 வில் இருந்து தொடங்கி 4 வரை கொடுக்க வேண்டும். இதுபோல்தான் மற்ற array களுக்கும்.

இந்த Single Dimensional Array ப்ரோக்ராம்ல எப்படி உபயோகப்படுகிறது என்று பார்ப்போம்

உதாரணமாக, 5 நம்பர்களை input ஆக கொடுத்து அதை display செய்யப்போகிறோம். அது எப்படி என்று பார்ப்போம்..

#include <stdio.h>
#include <conio.h>
void main()
{
int i,a[5];
printf("Enter 5 numbers");
for (i=0;i<5;i++)
{
scanf ("%d", &a[i]);
}
printf("\n The output is");
for (i=0;i<5;i++)
{
printf ("%d", a[i]);
}
}

மேற்கண்ட ப்ரோக்ராம் இல் இரண்டு for லூப் பயன்படுத்தப்பட்டுள்ளது. முதல் for லூப் 5 values ஐ கொடுக்கவும் இரண்டாவது for லூப் அதை display செய்யவும் பயன்படுகிறது. a[i] என்று கொடுக்கும்போது ஒவ்வொரு தடவையும் i இன் மதிப்பு 0 இல் இருந்து தொடங்கி 4 வரை increment ஆகிறது. பின்னர் நாம் கொடுத்த மதிப்பு output ஆக இரண்டாவது for லூப் மூலம் display செய்கிறது. இதன் output இவ்வாறு இருக்கும்.

Enter 5 number 10 20 30 40 50
The output is 10 20 30 40 50




Sunday, March 2, 2014

C Programming Basics - Lesson 4 - for, while and do-while loop

C Programming Basics - Lesson 4 - for, while and do-while loop

சில சமயங்களில் ஒரு statement பல தடவை பயன்படுத்த வேண்டியது வரும். அதற்கு நாம் திரும்ப திரும்ப அந்த statement டைப் செய்வதால் நம்முடைய நேரமும், அந்த ப்ரோக்ராம்க்கு எடுத்துக் கொள்ளும் காலமும்தான் அதிகரிக்கும். இதை தவிர்க்கவே ப்ரோக்ராம்ல் லூப் என்ற ஓன்று  பயன்படுத்தப்படுகிறது.

ஒவ்வொரு லூப்பிலும் மூன்று பகுதிகள் உள்ளது. 1. Initialization 2. Test Condition 3. Increment and Decrements.  Initialization என்பது முதலில் ஒரு value கொடுத்து இதில் இருந்து தொடங்க வேண்டும் என்பது.  Test Condition என்பது இந்த கண்டிஷன்க்கு உள்ளே அந்த லூப்பில் உள்ள statement செயல்படுத்த வேண்டும் என்பது. அடுத்து Increment and Decrements என்பது ஒவ்வொன்றாக செயல்பட.. அதாவது value ஒவ்வொன்றாக கூட்டிக் கொண்டு போக.. 1 லிருந்து 10 வரை என்றால். முதலில் 1, பின்னர் 2..பின்னர் 3 என்று அல்லது value கழித்துக் கொண்டு போக 10 லிருந்து 1 வரை என்றால் முதலில் 10, பின்னர் 9, பின்னர் 8 என்பதாகும்
லூப் மொத்தம் மூன்று வகை..

1. For loop
2. While loop
3. Do-While loop

உதாரணமாக, 1-ல் இருந்து 10 வரை காட்டுவதற்கு ப்ரோக்ராம் செய்ய வேண்டும் என்று வைத்துக் கொள்வோம். அதற்கு தனி தனியாக ஓன்று இரண்டு என்று காட்ட தேவையில்லை. ஒரே லூப்பின் மூலம் காட்ட முடியும்.

1. For loop

for (i=1;i<=10;i++)
{
printf("%d",i);
}

I=1 இப்பொழுது i இன் மதிப்பு 1. எனவே லூப் 1 இல் இருந்து துவங்குகிறது..பின்னர்.. i<=10 அதாவது i இன் மதிப்பு 10 வரும் வரை இந்த லூப் செயபடுத்த வேண்டும் என்பதாகும்.  i++  என்பது  i  இன் மதிப்பை 10 வரும் வரை ஒவ்வொன்றாக கூட்டிக் கொண்டு போக.. i ++ என்பது i +1 என்று சொல்லலாம். i இன் மதிப்புடன் ஒன்றை கூட்டு என்பது இதன் அர்த்தமாகும்.. printf("%d",i); இது i இன் மதிப்பு 10 வரும் வரை ஒவ்வொன்றாக செயல்படுத்தப்படுகிறது.. இதன் output 1 2 3 4 5 6 7 8 9 10 என்று இருக்கும். இதேபோல் தான் மற்ற லூப்களும். Initialization, Test Condition, Increment and Decrements.  ஒவ்வொரு லூபிலும் வெவ்வேறு இடங்களில் அதன் லூபின் வடிவத்திற்கேற்ப பயன்படுத்தப்படும்.

2. While loop

i=1;
while (i<=10)
{
printf("%d",i);
i++;
}


3. Do-While loop

i=1;
do
{
printf(%d",i);
i++;
} while (i<=10);

1 இல் இருந்து 10 வரை காட்டுவதற்கு for லூப்பை வைத்து ஒரு முழுமையான ப்ரோக்ராம்... மற்ற லூப்புகளை நீங்கள் செய்து பாருங்கள்..

#include<stdio.h>
#include <conio.h>
void main()
{
int I;
for (i=1;i<=10;i++)
{
printf("%d",i);
}
}


Output:
12345678910