# Native Code > برنامه نویسی با C > برنامه نویسی با زبان C و ++C > مبتدی: چاپ ستاره به صورت لوزی

## smemamian

سلام
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

سلام.
ببین الان واضح تر شد یا نه :

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

ممنونم ولی خروجی نامرتب شد *.*

----------


## shahmohammadi

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

----------


## Ananas

> ممنونم ولی خروجی نامرتب شد *.*


ببخشید، الان درست شد: (خط آخر باید میرفت بیرون از حلقه ی اول)

    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

با سلام این کد رو اجرا کنید عدد مورد نظر رو وارد کنید و اینتر بزنید واستون با ستاره لوزی درست میکنه.
# 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

> سلام
> 2 سوال در این برنامه داشتم*:*
> 1- for خط اول و خط سوم چیو مشخص می کنن *؟*
> 2- دو if در در خط چهار و پنج کارش چیه *؟*
> 
> 
> for (int i=0; i<=10; i++)
>    {
>        for (int j=0 ; j<=10; j++)
> ...


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

----------


## mohammad4545

> با سلام این کد رو اجرا کنید عدد مورد نظر رو وارد کنید و اینتر بزنید واستون با ستاره لوزی درست میکنه.
> # 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;
> ...


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

----------

