PDA

View Full Version : مبتدی: چاپ ستاره به صورت لوزی



smemamian
شنبه 04 آذر 1391, 18:23 عصر
سلام
2 سوال در این برنامه داشتم:
1- for خط اول و خط سوم چیو مشخص می کنن ؟
2- دو if در در خط چهار و پنج کارش چیه ؟


for (int i=0; i<=10; i++)
{
for (int j=0 ; j<=10; j++)
if (i<=5)
if (j<5-i || j>5+i) cout << " " ;
else cout << "*" ;
else
if (j<i-5 || j>15-i) cout << " " ;
else cout << "*";
cout << "\n" ;
}

ممنونم

Ananas
شنبه 04 آذر 1391, 18:54 عصر
سلام.
ببین الان واضح تر شد یا نه :

for (int i = 0; i <= 10; i++)
{
for (int j = 0; j <= 10; j++)
{
if (i <= 5)
{
if (j < 5 - i || j > 5 + i)
{
cout << " ";
}
else
{
cout << "*";
}
}
else
{
if (j < i - 5 || j > 15 - i)
{
cout << " ";
}
else
{
cout << "*";
}
}
cout << "\n";
}
}

چند تا پرانتز اضافه شد و تو رفتگی ها مرتب شد.

smemamian
شنبه 04 آذر 1391, 19:02 عصر
ممنونم ولی خروجی نامرتب شد .

shahmohammadi
شنبه 04 آذر 1391, 19:07 عصر
سلام.
شكل رو يك مربع 10 در 10 كشيده به اين صورت كه در بعضي از خونه ها فاصله و در بعضي از خونه ها ستاره كشيده.
در هر صطر اول تعدادي فاصله بعد ستاره بعد تعدادي فاصله رسم مي شود.
for خط اول:
براي هز سطر از شكل اجرا مي شه.
for خط سوم:
در محل كاراكتر jام از سطر ‌i ام كاراكتر رو رسم مي كنه.(بستگي به شرط هاي داخلش)
شرط اول:
برنامه رو به دو قسمت مثلث بالا و مثلث پايين تقسيم مي كنه.
مثلث بالا:
شرط:
j<5-i: آيا در موقعيت اول در سطر هستيم(موقعيتي كه اول بايد ستاره كشيده شود).
j<=10: آيا در موقعيت سوم در سطر هستيم(موقعيتي كه فاصله هاي اول و ستاره كشيده شده و فاصله هاي دوم بايد كشيده شوند).
مثلث بالا:
شرط:
j<i-5: آيا در موقعيت اول در سطر هستيم(موقعيتي كه اول بايد ستاره كشيده شود).
j>15-i: آيا در موقعيت سوم در سطر هستيم(موقعيتي كه فاصله هاي اول و ستاره كشيده شده و فاصله هاي دوم بايد كشيده شوند).
با كمي تفكر و تامل مي شه هر كدوم از فرمول هاي ذكر شده رو درك كرد كه الان وقت شو ندارم.
موفق باشيد.

Ananas
شنبه 04 آذر 1391, 19:58 عصر
ممنونم ولی خروجی نامرتب شد .
ببخشید، الان درست شد: (خط آخر باید میرفت بیرون از حلقه ی اول)

for (int i = 0; i <= 10; i++)
{
for (int j = 0; j <= 10; j++)
{
if (i <= 5)
{
if (j < 5 - i || j > 5 + i)
{
cout << " ";
}
else
{
cout << "*";
}
}
else
{
if (j < i - 5 || j > 15 - i)
{
cout << " ";
}
else
{
cout << "*";
}
}
}
cout << "\n";
}

mahdi.rezaya
دوشنبه 28 اردیبهشت 1394, 11:33 صبح
با سلام این کد رو اجرا کنید عدد مورد نظر رو وارد کنید و اینتر بزنید واستون با ستاره لوزی درست میکنه.
# include <stdio.h>
# include <conio.h>
void main(void) {
int n,i,space;
clrscr();
printf("Enter the number: ");
scanf("%d",&i);
n=(i-1)/2;
while(n>0) {
printf("\n");
for(space=0;space<n;space++)
printf(" ");
for(space=0;space<i-n*2;space++)
printf("*");
n--;
}
printf("\n");
for(space=0;space<i;space++)
printf("*");
n=i-2;
while(n>0) {
printf("\n");
for(space=0;space<(i-n)/2;space++)
printf(" ");
for(space=0;space<n;space++)
printf("*");
n=n-2;
}
getch();
}

ahoo78
چهارشنبه 30 آبان 1397, 19:55 عصر
سلام
2 سوال در این برنامه داشتم:
1- for خط اول و خط سوم چیو مشخص می کنن ؟
2- دو if در در خط چهار و پنج کارش چیه ؟


for (int i=0; i<=10; i++)
{
for (int j=0 ; j<=10; j++)
if (i<=5)
if (j<5-i || j>5+i) cout << " " ;
else cout << "*" ;
else
if (j<i-5 || j>15-i) cout << " " ;
else cout << "*";
cout << "\n" ;
}

ممنونم
سلام ببخشید چطوری این برنامه رو بنویسیم که ستاره های وسط لوزی نمایش داده نشه و به صورت عمومی عددی رو دریافت کنه و براساس اون عدد شکل لوزی تغییر کنه؟
فوریه لطفا اگ میشه بهم کمک کنید

mohammad4545
چهارشنبه 05 تیر 1398, 19:26 عصر
با سلام این کد رو اجرا کنید عدد مورد نظر رو وارد کنید و اینتر بزنید واستون با ستاره لوزی درست میکنه.
# include <stdio.h>
# include <conio.h>
void main(void) {
int n,i,space;
clrscr();
printf("Enter the number: ");
scanf("%d",&i);
n=(i-1)/2;
while(n>0) {
printf("\n");
for(space=0;space<n;space++)
printf(" ");
for(space=0;space<i-n*2;space++)
printf("*");
n--;
}
printf("\n");
for(space=0;space<i;space++)
printf("*");
n=i-2;
while(n>0) {
printf("\n");
for(space=0;space<(i-n)/2;space++)
printf(" ");
for(space=0;space<n;space++)
printf("*");
n=n-2;
}
getch();
}


سلام برای رسم لوزی با قطر 2n+1 درزبان cچیکارباید کرد