سلام دوستان، امیدوارم حالتون خوب باشه.
برای اطلاعات بیشتر در مورد دلیل نوشتن این بخش، به پست لینکدین من مراجعه کنید. همچنین ریپازیتوری گیتهاب این سورس رو اینجا می تونید داشته باشید.
در سال 0821 خورشیدی، کل جمعیت ایران حدود هفت و نیم میلیون نفر برآورد شد. جمعیت کشور تا سال 5231 به 51 میلیون نفر افزایش یافت...
در سال 1280 خورشیدی، کل جمعیت ایران حدود هفت و نیم میلیون نفر برآورد شد. جمعیت کشور تا سال 1325 به 15 میلیون نفر افزایش یافت...
خب، حل یک مسئله و پیادهسازی اون به مراحل مختلفی نیاز داره.
مسئله را اول برای خودمون قابل فهم میکنیم و نیازهای اون رو شناسایی میکنیم. ورودی و خروجیهای مسئله را تعیین و بررسی میکنیم که چه ورودی به ما داده میشه و چه خروجی از ما میخواد.
مسئله: نوشتن یک برنامه که یک رشته از اعداد و حروف را گرفته، اعداد را معکوس کنه، و نتیجه رو برگردونه.
نیازها: تعیین ورودی و خروجی دقیق؛ به عنوان مثال، یک رشته به عنوان ورودی و یک فایل به عنوان خروجی.
در این مرحله، مسئله را به اجزاء کوچکتر تجزیه و ارتباطات بین این اجزاء را تحلیل میکنیم. این تجزیه به شناخت و درک بهتر مسئله و راهحلهای مختلف منجر میشه.
تجزیه: برای مثال، جداکردن کاراکترهای عددی پیوسته از حروف.
تحلیل: مشخص کردن نحوه ترکیب این اطلاعات برای به دست آوردن خروجی نهایی.
در این مرحله، یک الگوریتم یا راهحل ایدهآل برای حل مسئله طراحی میکنیم. این شامل انتخاب متدها و ساختارهای داده مناسب هستش.
الگوریتم: برای مثال، استفاده از یک حلقه تحلیلی که اعداد رو معکوس کنه.
ساختار داده: مثلاً، استفاده از یک متغیر برای نگهداری رشته معکوس شده.
الگوریتم طراحی شده رو به زبان برنامهنویسی مینویسم
برنامه تست میکنیم تا مطمئن بشیم که به درستی کار میکنه و در صورت نیاز دیباگ میکنیم.
در نهایت، روی بهینهسازی برنامه و کد قکر میکنیم تا بهبودهای احتمالی اون پیدا و اعمال کنیم.
با این رویکرد، تلاش میکنیم مسائل مختلف رو به بهترین شکل ممکن حل کنیم
const inversNumber = (text) => {
let reversedText = '';
let currentNumber = '';
for (let i = 0; i < text.length; i++) {
const char = text[i];
// اگه کاراکتر عدد بود اون رو به currentNumber اضافه کن
if (/[0-9]/.test(char)) {
currentNumber += char;
} else {
// اگه مقدار currentNumber ما شامل اعداد بود اون رو معکوس کن و
// مقدارش رو به reversedText اضافه کن
if (currentNumber !== "") {
const reversedNumber = currentNumber.split('').reverse().join("");
reversedText += reversedNumber;
currentNumber = '';
}
// اضافه کردن کاراکتر های غیرعددی به reversedText
reversedText += char;
}
}
// در صورتی که ورودی قثط عدد باشد دستور else داخل حلقه بالا اجرا نمی شود
// و در نهایت اگر currentNumber شامل اعداد بود آن را معکوس و
// نتیجه ش رو به reversedText اضافه کن
if (currentNumber !== '') {
const reversedNumber = currentNumber.split('').reverse().join('');
reversedText += reversedNumber;
}
return reversedText;
}