A Drop of the Programming Sea

یک قطره از دریای برنامه نویسی: وبلاگ امیرحسین مهدی‌نژاد، برنامه‌نویس، مدرس برنامه‌نویسی و دانشجوی مهندسی کامپیوتر

A Drop of the Programming Sea

یک قطره از دریای برنامه نویسی: وبلاگ امیرحسین مهدی‌نژاد، برنامه‌نویس، مدرس برنامه‌نویسی و دانشجوی مهندسی کامپیوتر

● Diamond shape

جمعه, ۲۳ فروردين ۱۳۹۲، ۰۴:۰۹ ب.ظ

از مسائل پر اهمّیت برای شروع برنامه نویسی می توان به چاپ کردن اشکال هندسی مختلف اشاره کرد که یکی از معروف ترین آنها شکل لوزی است، در اینجا می خواهیم با استفاده از کاراکتر * یک لوزی توپر چاپ کنیم.

 

input
5
output
      *
     ***
    *****
   *******
  *********
   *******
    *****
     ***
      *

کانال کامپیوتر در اسب | آموزش برنامه نویسی و الگوریتم ها

ورودی:

خط اول ورودی شامل یک عدد مثبت n از جنس integer است. برای درست نمایش دادن شکل لوزی در کنسول، بهتر است n عددی فرد و حداکثر 75 باشد

 

خروجی:

لوزی توپری به قطر 2n-1 به وسیله ی کاراکتر * چاپ کند.

 

// A Drop of the Programming Sea - adops.blog.ir

#include <iostream>
using namespace std;

int abs(int n)
{
    return (n<0)? n*-1 : n;
}

int main()
{
    int n, a=1;
    cin >> n;
    int count=n-1, k=n;
    for(int i=1; i<=2*n-1; i++)
    {
        for(int j=1; j<=2*n-1; j++)
            if(i>n)
            {
                if((j<=abs(k-1))||(j>2*count-1+abs(k-1)))
                    cout << ' ';
                else
                    cout << "*";
                if(j==2*n-1)
                    count--;
            }
            else
            {
                if((j<=(abs)(k-1))||(j>2*i-1+(abs(k-1))))
                    cout << ' ';
                else
                    cout << "*";
            }
        k--;
        cout << endl;
    }
    return 0;
}

نظرات  (۱۰)

سپاس ازتلاشتون،میشه لطف کنید دستور برنامه های زیر در جاوا رو هم بنویسید؟ممنون
nرا گرفته وتمام مقسوم علیه های آن را چاپ کند.
nرا گرفته وتمام اعداد اول 2تاnرا چاپ کند.
ان را گرفته ویک مثلث با قاعده وارتفاع ان=3راچاپ کند.
پاسخ:
ممنون، اگر مشکل نوشتن، داشتن الگوریتم باشه خودتون می تونید اینطوری بنویسید: 1) چاپ مقسوم علیه های n : باید توی یه حلقه تمام اعداد 1 تا n رو چک کنه و اگر باقیمانده ی n به اون اعداد 0 بود چاپشون کنه 2) اعداد اوّل 2 تا n : یه متغیر بولین (True یا False) داریم که اوّل True باشه و توی یه حلقه از اعداد 1 تا n اگر به هرکدام باقیمانده نداشت، False بشه و طبیعتا اگر اوّل باشه هیچوقت False نمیشه 3) برای چاپ کردن مثلث باید از کد همین لوزی که اینجا گذاشتیم استفاده کنی و فقط قسمت بالای لوزی رو چاپ کنی
سلام
خسته نباشید من سارا شرافتی دانشجوی ای تی هستم
استاد تکلیفی به ما داد مبنی بر چاپ لوزی ای که با اعداد درست شده
به همین علت کدهای ستاره که لوزی میسازند را میخونم
کد شما خیلی برام پیچیده بود
مثلا 2تا int داشت وif((j2*i-1+(abs(k-1)))) که اصلا نمیدونم چی کار کنم
کمک کنید
پاسخ:
احتمالا جواب سؤال شما اینجاست
سلام ممنون از برنامه هاتون
پاسخ:
سلام

خواهش می کنم، إن شاء الله بتونم بیشتر فعالیت داشته باشم تا شما بیشتر استفاده کنید
با سلام  وتشکر از شما میخواستم بدونم چجوری میشه با اعداد این کارو کرد؟؟

پاسخ:
سلام

کافیه به جای چاپ کردن کاراکتر ستاره، یه متغیر در نظر بگیریم که بعد از هر بار چاپ شدن مقدارش هم زیاد بشه
سلام 
میشه کد این برنامه لوزی تو خالی رو برام به ایمیلم بفرستید؟
پاسخ:
سلام، نه متأسفانه =)))

سلام میشه لطفابه این شکل دوری روبه زبان پایتون بزارید

یااینکه الگوریتم کامل بنویسید

پاسخ:
سلام دوست عزیز، اگر مبانی برنامه نویسی پایتون رو بلد باشید تبدیل این کد به پایتون کار سختی نیست

چه طور می شه به تعدادی که کاربر وارد می کنه لوزی کنار هم چاپ کرد؟

پاسخ:
همین کد رو داخل یک حلقه قرار بدید که به همون تعداد تکرار بشه

سلام میشه کد دولوزی رو برای پایتون بزارین

 

قسمت ران این کد مشکل داره

ران که میزنیم چیزی نمیاره مشکل از کجاس؟

پاسخ:
بعد از اجرا باید طبق نمونه، ورودی ها رو به برنامه بدید تا خروجی رو توی همون ابعادی که مد نظرتون هست ببینید

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

پاسخ:
سلام تعداد تکرار حلقه‌ی ردیف (حلقه‌ی بیرونی) باید عدد ثابت ۷ باشه دیگه نیازی نیست از کاربر بگیرید.

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی