Type-1 Type-2 1 1 1 2 2 1 1 2 3 3 2 1 1 2 3 4 4 3 2 1 1 2 3 4 5 5 4 3 2 1 Type-3 Type-4 1 2 3 4 5 5 4 3 2 1 1 2 3 4 4 3 2 1 1 2 3 3 2 1 1 2 2 1 1 1
Type-1
மேலே கொடுக்கப்பட்டுள்ள type-1-ஐ நன்கு கவனித்தால். n=5 அதாவது number of rows. முதல் row-வில் ஒரு column, இரண்டாவது row-வில் இரண்டு column, இதுபோன்று, ஒவ்வொரு row-விற்கும் இணையான columns-ஐ பெற்றுள்ளது. அதோடு ஒவ்வொரு number-ம் print செய்வதற்கு முன்பாக blank space print செய்யப்பட்டுள்ளது. Type-1-ஐ கீழ்க்கண்டவாறு கவனியுங்கள்.
s s s s 1 s s s 1 2 s s 1 2 3 s 1 2 3 4 1 2 3 4 5
இதில் s என்பது blank space-ஐ குறிக்கும். முதலில் numbers எவ்வாறு print செய்யவேண்டும் என்ற logic-ஐ கொடுத்துவிட்டால், அதற்க்கு முன்பாக blank space-க்கான logic-ஐ கொடுப்பது மிகவும் எளிதானது. இப்பொழுது number-ஐ print செய்ய இரண்டு for() loop பயன்படுத்தபடுகிறது. முதல் for() loop எதனை row வரவேண்டும் என்பதர்க்ககவும். இரண்டாவது for() loop ஒவ்வொரு row-விழும் எதனை column வரவேண்டும் என்பதர்க்ககவும் பயன்படுத்தபடுகிறது. ஆகையால் தான் column-ஐ print செய்யகூடிய for() loop எப்பொழுதும், முதல் for() loop-க்கு உள்ளே கொடுக்கபடவேண்டும்.
for(row=1;row<=n;row++){ for(col=1;col<=row;col++){ printf("%d ",col); } printf("\n"); }
row, 1-லிருந்து துவங்கி n-ல் முடியவேண்டும். அதேபோல் col, 1-லிருந்து துவங்கி row-ன் value என்னவோ அதில் தான் முடியவேண்டும். இவ்வாறு செய்யும்போதுதான் type-1-ல் உள்ளவாறு number print ஆகும்.
இப்பொழுது இந்த இரண்டு for() loop-களுக்கும் இடையில் blank space print செய்வதற்கான logic-ஐ கொடுத்துவிட்டால் நமக்கு தேவையான output கிடைத்துவிடும். இதில் முதல் row-ல் நான்கு space, இரண்டாவது row-ல் மூன்று space,மூன்றாவது row-ல் இரண்டு space,நான்காவது row-ல் ஒரு space, ஐந்தாவது row-ல் 0 space. ஆகவே space ஆனது row-ஐ பொருத்து குறைந்துகொண்டே வருகிறது.
இவ்வாறு print செய்ய for() loop-ஆனது 1-ல் துவங்கி (n-row)-ல் முடியவேண்டும். ஏனெனில் முதல் row-ல் நான்கு space வரவேண்டும். ie n=5 and row=1 so (5-1)=4, இதேபோல் இரண்டாவது row-ல் மூன்று space வரவேண்டும். ie n=5 and row=2 (5-2)=3, இதே போன்று ஒவ்வொரு row-விழும் இவ்வாறு print செய்துவிடும்.
for(row=1;row<=n;row++){ for(s=1;s<=(n-row);s++){ printf(" "); } for(col=1;col<=row;col++){ printf("%d ",col); } printf("\n"); }
Complete Program
#include<stdio.h>
#include<conio.h>
int main(){
int n,row,col,s;
printf("Enter how many rows you want: ");
scanf("%d",&n);
for(row=1;row<=n;row++){
for(s=1;s<=(n-row);s++){
printf(" ");
}
for(col=1;col<=row;col++){
printf("%d",col);
}
printf("\n");
}
return 0;
}
1 1 2 1 2 3 1 2 3 4 1 2 3 4 5
"col" variable print செய்வதற்கு பதிலாக "*" ஐ print செய்தால் கீழே உள்ள output கிடைத்துவிடும்
* * * * * * * * * * * * * * *
Type-2
Type-2ம் Type-1 program-ல் உள்ள அதே logic தான். ஆனால் col ஆனது 1-லிருந்து துவங்குவதற்கு பதிலாக row-ன் value-லிருந்து துவங்கி 1-ல் முடிக்கவேண்டும்.
Complete Program
#include<stdio.h>
#include<conio.h>
int main(){
int n,row,col,s;
printf("Enter how many rows you want: ");
scanf("%d",&n);
for(row=1;row<=n;row++){
for(s=1;s<=(n-row);s++){
printf(" ");
}
for(col=row;col>=1;col--){
printf("%d",col);
}
printf("\n");
}
return 0;
}
1 2 1 3 2 1 4 3 2 1 5 4 3 2 1
"col" variable print செய்வதற்கு பதிலாக "$" ஐ print செய்தால் கீழே உள்ள output கிடைத்துவிடும்
$ $ $ $ $ $ $ $ $ $ $ $ $ $ $
Type-3
Type-3ம் Type-1 program-ல் உள்ள அதே logic தான். ஆனால் row ஆனது 1-லிருந்து துவங்குவதற்கு பதிலாக n-லிருந்து துவங்கி 1-ல் முடிக்கவேண்டும். மற்றவையெல்லாம் தானாகவே மாற்றிக்கொள்ளும். ஏனெனில் மற்ற இரண்டு for() loop-களும் row-ன் value-ஐ வைத்துதான் செயல்படுகிறது. ஆகையால் row-ன் value மாறினாலே இவற்றின் value-களும் தானாக மாறிக்கொள்ளும்.
#include<stdio.h>
#include<conio.h>
int main(){
int n,row,col,s;
printf("Enter how many rows you want: ");
scanf("%d",&n);
for(row=n;row>=1;row--){
for(s=1;s<=(n-row);s++){
printf(" ");
}
for(col=1;col<=row;col++){
printf("%d",col);
}
printf("\n");
}
return 0;
}
1 2 3 4 5 1 2 3 4 1 2 3 1 2 1
"col" variable print செய்வதற்கு பதிலாக "*" ஐ print செய்தால் கீழே உள்ள output கிடைத்துவிடும்
* * * * * * * * * * * * * * *
Type-4
Type-4ம் Type-1 program-ல் உள்ள அதே logic தான். ஆனால் row ஆனது 1-லிருந்து துவங்குவதற்கு பதிலாக n-லிருந்து துவங்கி 1-ல் முடிக்கவேண்டும். அதேபோல் col ஆனது 1-லிருந்து துவங்குவதற்கு பதிலாக row-ன் value-லிருந்து துவங்கி 1-ல் முடிக்கவேண்டும்.
#include<stdio.h>
#include<conio.h>
int main(){
int n,row,col,s;
printf("Enter how many rows you want: ");
scanf("%d",&n);
for (row = n; row >=1; row--) {
for (s = 1; s <= (n - row); s++) {
printf(" ");
}
for (col = row; col >= 1; col--) {
printf("%d",col);
}
printf("\n");
}
return 0;
}
5 4 3 2 1 4 3 2 1 3 2 1 2 1 1
"col" variable print செய்வதற்கு பதிலாக "@" ஐ print செய்தால் கீழே உள்ள output கிடைத்துவிடும்
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @
Pgcomments
இது பற்றிய தங்களின் கருத்துகளை இங்கே பதிவிடுங்கள் . இது பயனுள்ளதாக விரும்பினால் மற்றவர்களுக்கும் இதை share செய்யுங்கள்.
Comments