متن خبر

نحوه چاپ عناصر آرایه به ترتیب معین با یا بدون تابع

نحوه چاپ عناصر آرایه به ترتیب معین با یا بدون تابع

اخبارنحوه چاپ عناصر آرایه به ترتیب معین با یا بدون تابع
شناسهٔ خبر: 267553 -




خبرکاو:

اگر در حال یادگیری حل مسائل با استفاده از یک زبان برنامه نویسی هستید، احتمالاً با مشکل چاپ عناصر آرایه به ترتیب معین یا به ترتیب معکوس مواجه شده اید.

همچنین ممکن است لازم باشد این کار را با استفاده از یک تابع تعریف شده توسط کاربر یا عدم استفاده از هیچ تابعی انجام دهید.

اگر این مشکل به نوعی برای شما پیچیده به نظر می رسد، پس نگران نباشید! من برای کمک به شما آمده ام. پس ، بیایید به سرعت به این سؤال بپردازیم و ببینیم چگونه کار می کند.

🎥 اگر شما هم از آن دسته افرادی هستید که دوست دارید یک ویدیو را نیز دنبال کنید، من یک ویدیو نیز برای شما ایجاد کرده ام:

سوال را درک کنید - سپس شروع به حل کنید

برای حل هر نوع مشکلی، اولین کاری که باید انجام دهید این است که ابتدا سوال را درک کنید. نه تنها این، شما همچنین باید به تمام دستورالعمل ها از جمله معیارهای مورد نیاز برای حل آن مشکل توجه کنید.

اگر سوال شما از شما می خواهد که از بازگشت استفاده کنید، این تکنیکی است که شما استفاده می کنید. اگر سوال شما از شما بخواهد که از هیچ عملکرد ویژه داخلی استفاده نکنید، از آنها اجتناب خواهید کرد.

برای این مقاله، من فقط از یک سوال اما با دو معیار متفاوت استفاده خواهم کرد. من این روند را طی می کنم تا به شما کمک کنم بفهمید که از ابتدا برای حل مشکل چه کاری باید انجام دهید.

این سؤال با معیارهای آن است:

یک آرایه عدد صحیح ایجاد کنید. عناصر آرایه را به عنوان ورودی از کاربر بگیرید و تمام عناصر آرایه را به ترتیب داده شده و بعداً به ترتیب معکوس چاپ کنید. شما نمی توانید از هیچ تابع تعریف شده توسط کاربر استفاده کنید.

بسیار خوب، اکنون که سؤال خود را داریم، مطمئن شوید که آن را به طور کامل خوانده اید. اگر یک بار خواندن آن در ذهن شما روشن نمی شود، آن را دو یا سه بار یا حتی بیشتر بخوانید.

سپس معیارهای داده شده را نیز با دقت تحلیل کنید. این سوال به شما می گوید که نمی توانید از هیچ تابع تعریف شده توسط کاربر استفاده کنید. این بدان معناست که شما نمی توانید هیچ نوع تابعی که به صورت دستی توسط کاربر تعریف شده است مانند myFunction() و غیره را در کد خود اضافه کنید.

برای این مقاله از زبان برنامه نویسی C++ استفاده خواهم کرد. اما اگر بتوانید مفهوم اصلی را درک کنید، می توانید از هر زبان برنامه نویسی دیگری برای حل این مشکل استفاده کنید. پس از حل مشکل، مطمئن شوید که راه حل خود را به این مخزن GitHub اضافه کنید.

همچنین، اگر می‌خواهید با استفاده از زبان‌های برنامه‌نویسی مشکلاتی را حل کنید، حتماً لیست پخش یوتیوب من را که در آن مشکلات را با استفاده از زبان برنامه‌نویسی حل می‌کنم، تحلیل کنید.

چگونه مشکل را حل کنیم

در C/C++، اگر یک آرایه را بدون مقداردهی اولیه اعلام کنید، باید اندازه آرایه را نیز مشخص کنید.

وقتی آرایه را با اندازه آرایه اعلام می کنید، به طور خودکار فضای لازم را در حافظه برای کل آرایه می گیرد. پس ، اگر آرایه‌ای بزرگ‌تر از آنچه واقعاً نیاز دارید بگیرید، حافظه را هدر خواهید داد، زیرا فضای کامل حافظه را برای آرایه کامل اشغال می‌کند، چه از همه ایندکس‌ها استفاده کنید یا نه.

پس ابتدا از کاربر می‌خواهیم اندازه آرایه را وارد کند (چند عدد را می‌خواهند پردازش کنیم). سپس آرایه ای را با اندازه آرایه داده شده ایجاد می کنیم. به این ترتیب، ما می توانیم از هدر رفتن حافظه غیر ضروری صرفه جویی کنیم.

خوب، از آنجایی که کامپیوترهای امروزی قدرتمندتر هستند، احتمالاً هیچ تفاوتی در هدر رفتن حافظه مشاهده نخواهید کرد، زیرا بسیار ناچیز خواهد بود. اما به من اعتماد کنید، شما باید بدانید که چگونه حافظه خود را ذخیره کنید، زیرا این یکی از بزرگترین نگرانی ها در دنیای امروز است. همچنین، هرگز نمی دانید که این دانش چه زمانی به شما کمک خواهد کرد، درست است؟

 cout << "Enter the array size: "; int arraySize; cin >> arraySize; int arr[arraySize];

خب پس از اعلام آرایه، عناصر آرایه را از کاربر می گیریم. ما به سادگی می توانیم از یک حلقه for() برای آن استفاده کنیم.

 cout << "Enter the array elements " << endl; for (int i = 0; i < arraySize; i++) { cin >> arr[i]; }

به این ترتیب می توانیم هر مقدار را از کاربر گرفته و به صورت متوالی در آرایه خود ذخیره کنیم. به خاطر داشته باشید که آرایه همیشه از شاخص 0 شروع می شود (المان اول در شاخص 0 است، عنصر دوم در شاخص 1 و غیره).

حال نوبت به چاپ تمام عناصر آرایه (مقداری که هر شاخص آرایه دارد) به ترتیب داده شده است. یعنی باید کل آرایه را به همان ترتیبی که از کاربر دریافت کردیم چاپ کنیم.

 // printing the array in the correct order cout << "Printing the array in the original order" << endl; for (int i = 0; i < arraySize; i++) { cout << arr[i] << " "; }

برای چاپ آرایه به ترتیب معکوس، می توانیم به سادگی آرایه را در جهت عقب چاپ کنیم. به این ترتیب، ابتدا آخرین مقدار نمایه شده از آرایه چاپ می شود. سپس دومین تا آخرین مقدار نمایه شده (از سمت راست آرایه) در موقعیت دوم چاپ می شود و به همین ترتیب.

 // printing the array in the reverse order cout << "\nPrinting the array in the reversed order" << endl; for (int i = arraySize - 1; i >= 0; i--) { cout << arr[i] << " "; }

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

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

 #include <bits/stdc++.h> using namespace std; int main() { cout << "Enter the array size: "; int arraySize; cin >> arraySize; int arr[arraySize]; cout << "Enter the array elements " << endl; for (int i = 0; i < arraySize; i++) { cin >> arr[i]; } // printing the array in the correct order cout << "Printing the array in the original order" << endl; for (int i = 0; i < arraySize; i++) { cout << arr[i] << " "; } // printing the array in the reverse order cout << "\nPrinting the array in the reversed order" << endl; for (int i = arraySize - 1; i >= 0; i--) { cout << arr[i] << " "; } }

در اینجا یک نمونه سوال و معیار دیگر وجود دارد:

یک آرایه عدد صحیح ایجاد کنید. عناصر آرایه را به عنوان ورودی از کاربر بگیرید و تمام عناصر آرایه را به ترتیب داده شده و بعداً به ترتیب معکوس چاپ کنید. برای چاپ آرایه به ترتیب معکوس باید از یک تابع تعریف شده توسط کاربر استفاده کنید.

حالا این بار معیارها تغییر کرده است. تنها تفاوت این است که در حال حاضر باید از یک تابع تعریف شده توسط کاربر استفاده کنیم.

اگر می توانید تکنیک قبلی و کد را درک کنید، احتمالاً قبلاً حدس زده اید که چگونه این مشکل را حل کنید. ما باید بخشی از کد را که آرایه را به ترتیب معکوس چاپ می کند به یک تابع جدید تعریف شده توسط کاربر تغییر دهیم. به سادگی انجام این کار مشکل ما را حل می کند.

به عنوان مثال، من قصد دارم تابع جدید تعریف شده توسط کاربر printReversely(int arr[], int arraySize) نامگذاری کنم. با پیروی از قراردادهای نامگذاری C++ (یا هر زبان برنامه نویسی که استفاده می کنید) می توانید آن را هر طور که می خواهید نام گذاری کنید.

من فقط فعلاً کل کد را به شما می دهم:

 #include <bits/stdc++.h> using namespace std; void printReversely(int arr[], int arraySize); int main() { cout << "Enter the array size: "; int arraySize; cin >> arraySize; int arr[arraySize]; cout << "Enter the array elements " << endl; for (int i = 0; i < arraySize; i++) { cin >> arr[i]; } // printing the array in the correct order cout << "Printing the array in the original order" << endl; for (int i = 0; i < arraySize; i++) { cout << arr[i] << " "; } // printing the array in the reverse order cout << "\nPrinting the array in the reversed order" << endl; printReversely(arr, arraySize); } void printReversely(int arr[], int arraySize) { for (int i = arraySize - 1; i >= 0; i--) { cout << arr[i] << " "; } }

در C/C++، اجرای کد همیشه از گوشه بالا سمت چپ شروع می شود.

همانطور که تابع printReversely(int arr[], int arraySize) را بعد از تابع main نوشتم، قسمت اعلان آن را قبل از تابع main() اضافه کردم. این به کامپایلر کمک می کند تا تشخیص دهد که آیا به تابع دسترسی دارد یا خیر. اگر این کار را انجام ندهید، یک خطا دریافت خواهید کرد.

اما اگر کل تابع printReversely(int arr[], int arraySize) را قبل از تابع main() بنویسید، لزوماً نیازی به اضافه کردن مجدد اعلان قبل از آن ندارید.

نتیجه

با تشکر از خواندن مقاله اگر می خواهید با من چت کنید، من همیشه در توییتر در دسترس هستم. همچنین، مطمئن شوید که من را در لینکدین برای مهارت‌های مرتبطم تأیید می‌کنید و اگر فکر می‌کنید که من شایسته آن هستم، توصیه‌ها را حفظ کنید.

اگر علاقه مند به منبع باز هستید، می توانید من را در GitHub نیز دنبال کنید!

اگر محتوای مرتبط با برنامه نویسی را دوست دارید، پس من دو کانال YouTube با نام تجاری دارم. یکی به زبان انگلیسی و دیگری به زبان بنگالی است. حتما هر دوی آنها را تحلیل کنید. اگر می خواهید از من حمایت کنید، می توانید برای من یک قهوه نیز بخرید (☕).

برای من یک قهوه بخر

متشکرم!

برچسب‌ها

ارسال نظر




تبليغات ايهنا تبليغات ايهنا

تمامی حقوق مادی و معنوی این سایت متعلق به خبرکاو است و استفاده از مطالب با ذکر منبع بلامانع است