برنامه ای که n را بگیرد و به تعداد n سطر خروجی زیر را نشان دهد :
مثلا برای n=1
1
برای n=2
1
131
1
برای n=3
1
131
13531
131
1
برای n=4
1
131
13531
1357531
13531
131
1
برای n=5
1
131
13531
1357531
135797531
1357531
13531
131
1
و الی آخر ...
Printable View
برنامه ای که n را بگیرد و به تعداد n سطر خروجی زیر را نشان دهد :
مثلا برای n=1
1
برای n=2
1
131
1
برای n=3
1
131
13531
131
1
برای n=4
1
131
13531
1357531
13531
131
1
برای n=5
1
131
13531
1357531
135797531
1357531
13531
131
1
و الی آخر ...
:20:منتظر جوابم ، :46:
برای اینجور برنامه ها میتونید مقدار نقاط رو به صورتی تابعی از مکانشون بدست بیارید و از تابع gotoxy استفاده کنید.
مثلا برای حالت n=5 اگر در نظر بگیرید, اگر مختصات نقطه وسط (5,5) باشه, مقدار هر نقطه به مختصات x,y برابره با:
برنامه اش در حالت کلی به این شکل میشه:کد:9-2*(abs(x-5)+abs(y-5))
کد:#include<iostream.h>
#include<conio.h>
#include<math.h>
void main()
{
int i,j,z,n;
cout<<"Please enter n:\n";
cin>>n;
clrscr();
for(i=0;i<100;i++){
for(j=0;j<100;j++){
gotoxy(i,j);
z=(2*n-1)-2*(abs(i-n)+abs(j-n));
if(z>0)
cout<<z;
}
}
}
دستت درد نکنه واقعا که کارت درسته
میشه بدون استفاده از math.h این برنامه رو بنویسی (منظورم همون تابع gotoxy )
خیلی ممنون
بدون gotoxy خیلی سخت میشه, متاسفانه الان وقتش رو ندارم روش کار کنم.
(احتمالا باید برای هر نقطه دو تا حلقه for نوشت که یکی به تعداد j اون نقطه space بزنه و یکی به تعداد i اون نقطه n\ وارد کنه یا چیزی مشابه این.)
در ضمن gotoxy مربوط به conio.h میشه و math.h رو برای قدرمطلق (abs) آوردم.
آره دقیقآ همینو می خوام اگه لطفشو بکنی خیلی ممنونت می شم :10:نقل قول:
اینم بدون gotoxy . ولی این ادبیات پست دوم اصلا جالب نیست ها .
کد:#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
for( int i = 1; i <= n; i++ )
{
for( int j = 0; j < n - i; j++ )
cout << ' ';
int index = 1;
for( int j = 0; j < i; j++ )
{
cout << index;
index += 2;
}
index -= 4;
while( index >= 1 )
{
cout << index;
index -= 2;
}
cout << endl;
}
for( int i = n - 1; i > 0; i-- )
{
for( int j = 0; j < n - i; j++ )
cout << ' ';
int index = 1;
for( int j = 0; j < i; j++ )
{
cout << index;
index += 2;
}
index -= 4;
while( index >= 1 )
{
cout << index;
index -= 2;
}
cout << endl;
}
return 0;
}
برو حال کن که جواب سوالتو گرفتی
ایول داداش دمت گرم کارم رو راه انداختی یه دنیا ازت ممنون:40:نقل قول:
بابت ادبیات پست دوم هم شرمندم چون واقعا کارم عجله ای بود
البته اگه از setw استفاده کنین خروجی تون به ازای اعداد دو رقمی قشنگ تر هم دیده می شه :
کد:#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int n;
cin >> n;
for( int i = 1; i <= n; i++ )
{
for( int j = 0; j < n - i; j++ )
cout << setw( 3 ) << ' ';
int index = 1;
for( int j = 0; j < i; j++ )
{
cout << setw( 3 ) << index;
index += 2;
}
index -= 4;
while( index >= 1 )
{
cout << setw( 3 ) << index;
index -= 2;
}
cout << endl;
}
for( int i = n - 1; i > 0; i-- )
{
for( int j = 0; j < n - i; j++ )
cout << setw( 3 ) << ' ';
int index = 1;
for( int j = 0; j < i; j++ )
{
cout << setw( 3 ) << index;
index += 2;
}
index -= 4;
while( index >= 1 )
{
cout << setw( 3 ) << index;
index -= 2;
}
cout << endl;
}
return 0;
}