<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Mohammad_Amin</title>
        <link>https://virgool.io/feed/@mhmdamyjl12</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-16 18:01:43</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/3152872/avatar/avatar.png?height=120&amp;width=120</url>
            <title>Mohammad_Amin</title>
            <link>https://virgool.io/@mhmdamyjl12</link>
        </image>

                    <item>
                <title>الگوریتم و فلوچارت</title>
                <link>https://virgool.io/codenevis/%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85-%D9%88-%D9%81%D9%84%D9%88%DA%86%D8%A7%D8%B1%D8%AA-ob6rnzoaxx3f</link>
                <description>امروز می خواهیم با هم درباره ی اینکه الگوریتم و فلوچارت چیست صحبت کنیم.این دو مفهوم مفاهیم بسیار کاربردی و مهم در دنیای برنامه نویسی هستند, همانطور که می دانید در برنامه نویسی ما نیاز داریم تا در مواجه با مسائل گوناگونی که در سر راه توسعه یک وبسایت یا اپلیکیشن یا ... می آید بهترین روش را انتخاب و سپس پیاده سازی کنیم. نکته ای که مهمه اینه که ما مُختاریم تا هر روشی را برای حل مسئله مد نظرمون پیاده سازی کنیم اما مسئله ای که خیلی مهمه اینه که آیا این روشی که من برای حل مسئله انتخاب کردم بهترین روش هست؟ یعنی ممکنه این روشی که من پیاده سازی کردم من رو خیلی عالی به جواب مد نظرم برسونه اما این لزوما به این معنی نیست که تو بهترین روش را برای حل مسئله ات انتخاب کردی. زمانی تو می تونی بگی من بهترین روش را برای حل انتخاب کردم که روش ات یه سری ویژگی ها را داشته باشد مثلا از نظر زمان روش ما باید با سرعت قابل قبولی ما را به جواب برسونه تا زمان خیلی کمی کاربر منتظر بمونه.الگوریتم و فلوچارت باعث می شوند ما در مواجه با مسائل جدید بهترین عملکرد را داشته باشیم و بهترین روش را برای رسیدن به هدف مدنظرمون انتخاب کنیم.همانطور که احتمالا تا الان حدس زدید الگوریتم روش حل به ترتیب و پشت سرهم یه مسئله است یعنی پشت سر هم اجراشدن و همچنین به ترتیب اجرا شدن مراحل یه مسئله باعث میشه تا ما به هدف مون که همون جواب مسئله هست برسیم. الگوریتم ویژگی های خیلی مهمی داره که حتما به اونها توجه کنید.الگوریتم محدود است یعنی از یه جا شروع می شود و به یه جا ختم می شود. ترتیب در الگوریتم بسیار مهم است یعنی تمام مراحل باید گام به گام, به ترتیب و پشت سر هم اجرا بشوند تا ما بتونیم به جواب برسیم.هدف الگوریتم باید مشخص باشد یعنی اینکه از خودمون بپرسیم هدف از اجرای این الگوریتم چیست؟ قراره به چی برسیم؟تمام مراحل اجرای الگوریتم باید مشخص باشد(مبهم نباشد) شاید بپرسید چرا؟ چون اگر الگوریتم مبهم و غیرقابل درک باشد کامپیوتر نمی تواند آن را اجرا کند چون وقتی ما با کامپیوتر سر و کار داریم همه چیز را باید براش مشخص کنیم و توضیح بدهیم تا بفهمه و بعد بتونه اجرا کنه در غیر اینصورت کامپیوتر نمی تونه از خودش کاری انجام بده و الگوریتم ما اجرا نخواهد شد.what is algorithm?حالا بیاید با هم مثال بزنیم, فرض کنید شما می خواید به دوست تون پیام بفرستید. حالا الگوریتم پیام فرستادن به دوست تون چیه؟ گوشی خودتو برمی داریدبه یکی از پیامرسان ها می رویدپیام مدنظر خودتونو می نویسیدروی دکمه ارسال کلیک می کنید تا پیام ارسال بشهچیزی که ما الان نوشتیم یه الگوریتم ساده در دنیای واقعی بود همانطور که نگاه می کنید الگوریتم ما تمام ویژگی هایی که بالاتر براتون ذکر کردم را داره یعنی ترتیب داره و تمام مراحل گام به گام اجرا می شوند یا به عبارتی شما در ابتدا ، کار اول را انجام می دی بعد می ری کار دوم و هیچ وقت نمی تونی اول به یکی از پیامرسان ها بری در صورتی که هنوز گوشی رو بر نداشتی چجوری میشه واقعا؟!همچنین همانطور که می بینید الگوریتم ما شروع و پایان داره(محدود هست از 1 شروع شده و به 4 ختم شده).الگوریتمی که نوشتیم هدف داره هدف در اینجا چیه؟ اینکه پیام بفرستیم به دوستمون.الگوریتمی که نوشتیم همه چیزش واضح و روشن هست(مبهم نیست).نکته: واژه الگوریتم اولین بار توسط دانشمند بزرگ ایرانی محمدبن خوارزمی(پدر جبر) مطرح شد که اکنون این واژه در کل جهان استفاده میشه. محمدبن موسی خوارزمیفلوچارتبعد از الگوریتم می رسیم به یک مفهوم دیگر تحت عنوان flowchart یا روندنما ، همانطور که از نام فارسی این کلمه یعنی روندنما پیدا است flowchart نمایش بصری روند اجرای الگوریتم ما است یعنی ما با استفاده از یکسری نمادها(symbols) می آییم و نمایش بصری از روند اجرای الگوریتم مون را طراحی می کنیم. در فلوچارت هر نماد یه معنی خاصی دارد, برای مثال در فلوچارت بیضی نماد شروع و پایان است یا از لوزی برای شرط ها(conditions) استفاده می شود یا مثلا مستطیل برای دستورات(process) هست و متوازی الاضلاع برای ورودی و خروجی است.تصویر زیر یه نمونه فلوچارت را به نمایش گذاشته است که با همان نمادهایی که گفتیم می بینیم که فلوچارتی رسم شده و تا زمانی که c کوچکتر مساوی 5 است ، ورودی کاربر همون در اینجا(a) را در خروجی نمایش می دهد و اگر c بزرگتر از 5 شد الگوریتم پایان می یابد(stop می شود).flowchart example</description>
                <category>Mohammad_Amin</category>
                <author>Mohammad_Amin</author>
                <pubDate>Sat, 09 Mar 2024 17:29:21 +0330</pubDate>
            </item>
                    <item>
                <title>پکیج intl در فلاتر</title>
                <link>https://virgool.io/@mhmdamyjl12/%D9%BE%DA%A9%DB%8C%D8%AC-intl-%D8%AF%D8%B1-%D9%81%D9%84%D8%A7%D8%AA%D8%B1-chh00lqkhvxh</link>
                <description>ابتدا براي مشاهده مطالب و نصب اين پکيج مي تونيد به pub.dev که package manager فلاتر هست مراجعه کنيد و پکيج intl را نصب و با توجه به مراحل زير از اين پکيج استفاده کنيد.پکيج intl ابزاري است که مي تونه کارهاي مختلفي براي ما انجام بده چند نمونه از اين کارها رو در زير براي شما ليست مي کنم: فرمت بندي اعداد و تاريخ(در اين مقاله مفصل در موردش توضیح می دهیم.)بين المللي سازي يا همون internationalization(چند زبانه سازي اپليکيشن هامون مثلا برنامه مون هم انگلیسی پشتیبانی کنه هم فارسی یعنی در این مثال برنامه ما دو زبانه است.)بومي سازي يا همون localizationفرمت بندی تاریخفرمت بندی اعداد و تاریخ رو در این مقاله براتون شرح می دم که در ابتدای کار می ریم سراغ فرمت بندی تاریخ و سپس فرمت بندی اعداد رو با هم بررسی می کنیم.براي مثال ما يک برنامه اي داريم که قراره در مارکت هاي ايراني منتشر بشه و کاربران ايراني اون رو نصب و استفاده کنن حالا شما به عنوان توسعه دهنده در جايي از برنامه نياز مي بيني که از اعداد به فرمت فارسي استفاده کني نه انگليسي يعني مثلا ۱۲ باشه نه 12 اينطوري, پس براي اين موضوع از راهي که در پايين توضيح مي دهم پيش مي رويم اين روش چيزي به فُرم ۱۷:۳۴:۰۹ ۱۳_۰۲_۱۴۰۳ به ما تحویل می ده که اگر دقت کنید تمام اعدادی که به ما داده از قبیل(ثانیه:دقیقه:ساعت  روز_ماه_سال) هستند که همه آنها با فرمت اعداد فارسی نشان داده شده اند.DateTime now = DateTime.now();
initializeDateFormatting( &#039; fa &#039; , null );
String formattedDatePersian = DateFormat( &#039; yyyy_MM_dd HH:mm:ss &#039; , &#039; fa_IR &#039; ).format(now);
print(formattedDatePersian);ابتدا اومديم از کلاسي به نام DateTime نمونه سازي کرديم که اين خط زمان و تاریخ فعلي شما رو مي دهد(مثلا موقعی شما این کد را اجرا می کنید ممکنه ساعت و تاریخ ۱۵:۳۴:۰۹ ۱۴-۰۲-۲۰۲۴ به این شکل باشه) و اومديم در متغير now ذخيره اش کرديم. بعد ، از initializeDateFormatting استفاده کردیم که برای مقداردهی کردن قالب بندی تاریخ هست که در پارامتر اول&quot;fa&quot; فارسی و در پارامتر دوم مقدار null را دادیم. بعد يه متغير ساختيم به نام formattedDatePersina که اين دفعه اومديم نمونه اي از کلاس DateFormat با دو پارامتر هاي ورودي ساختيم و در متغير formattedDatePersian ذخيره کرديم. حالا شايد بپرسيد اون پارامتر هاي ورودي چي هستن؟ الان مي گم بهتونپارامتر اول: &quot; yyyy_MM_dd HH:mm:ss &quot; که معادل &quot; year_month_day hour:minute:second &quot; است يا فارسي اش ميشه &quot; ثانيه:دقيقه: ساعت روز_ماه_سال &quot; یعنی دارم بهش می گم تاریخ رو می خوای به من بدی دمت هم گرم اما با این فرمت که من بهت می گم به من تحویل بده یعنی سال و ماه و روز و ساعت و دقیقه و ثانیه را می خواهم که به من تحویل بدی حالا سوال؟چرا توي کد چهار تا y کنار هم هستند ، 2 تا M کنار هم هستن, 2 تا d و 2 تا H و ....چون وقتی اومدم چهار تا yyyy  را کنار هم قرار دادم یعنی عدد سال رو 4 رقمی به من بده یعنی اگر الان سال ۱۴۰۳ هست همین طور چهار رقمی تحویل بده اگر مثلا می آمدم و 2 تا y کنار هم قرار می دادم عدد سال رو هم اینطوری ۰۳ تحویل ام می داد و بقیه هم به همین شکل هست حالا شما به من بگید چرا دو MM کنار هم گذاشته؟ باریکلا چون می گه عدد ماه(month) رو دورقمی به من بده مثلا ۰۲ (اردیبهشت) بقیه هم دقیقا به همین شکل هست.مثالی برای فرمت بندی تاریخ در فلاتردر تصویر بالا نمونه کدی برای فرمت بندی تاریخ همراه با خروجی قرار داده شده است که می توانید مشاهده کنید.قطعه کد همین تصویر را داخل گیت هاب گذاشته شده می تونید استفاده کنید.https://github.com/mohammadamin2327/format-date-and-number-.gitفرمت بندی اعداددر بالا اومدیم و مفصل درباره ی فرمت بندی تاریخ صحبت کردیم و الان وقتشه بریم سر فرمت بندی اعداد که خیلی مهم و کاربردی و پراستفاده هست.مثلا شما در برنامه تون اعدادی با رقم های زیادی داری مثلا 1000000000 این عدد الان چنده؟ یک میلیارد هست ، اما شاید شما به اشتباهی گفتی یک میلیون و شاید چیزهای دیگه البته حق هم داری سخته خوندن این عدد با 9 تا صفر حالا اگه اینطوری باشه چی؟ 1,000,000,000 چقدر خوندنش راحت تر شد ، چون اومدم 3تا 3تا با ممیز جدا کردم تا خوندنش راحت بشه. حالا همین کار رو می خوایم تو برنامه مون انجام بدیم تا کاربر راحت تر بتونه قیمت ها رو بخونه و اینطوری کاربر هنگام استفاده از برنامه حس خوبی داره.روش انجام اش تو فلاتر چیه؟double number = 1000000000;
NumberFormat formatter = NumberFormat( &#039; #,### &#039; ,&#039; en_US &#039; );
String formattedNumber = formatter.format(number);
print(formattedNumber);ابتدا یه متغیر تعریف کردیم عدد یک میلیارد را داخل اش ذخیره کردم بعد در خط بعدی از کلاس NumberFormat یه نمونه ساختم و دو پارامتر ورودی بهش دادم.پارامتر اول: &quot; ###,# &quot; که داره میگه سه رقم سه رقم ارقام را جدا کن بیا تا آخر(اینجا با علامت # اومدم دارم فرمت اش رو مشخص می کنم این علامت # می تونه هر عددی جاش بشینه من با اون کار ندارم چیزی که برام مهمه اینه که سه رقم سه رقم جدا کنه تا کاربر هنگام استفاده از برنامه حس بهتری تجربه کند.)نکته : اینطوری هم می تونی فرمت بندی کنی , بیای و به جای # از 0 استفاده کنی &quot; 0,000 &quot; فرقش چیه؟اگر جای 0 از # استفاده کنی جای 0 می تونه هر عددی بشینه مثلا 1 یا 2 یا 3 یا .... حتی عدد 0 هم می تونه جای آن بشیند. اما اگر از علامت # استفاده کنیم باز هم هر عددی می تونه جای # بشینه مثل 1 یا 2 یا 3 یا .... اما فرقش اینجاست اگر جای # عدد 0 بشینه حذف می شود.مثالی از فرمت بندی اعداد در فلاتردر تصویر بالا نمونه کدی برای فرمت بندی اعداد همراه با خروجی قرار داده شده است که می توانید مشاهده کنید.قطعه کد همین تصویر را داخل گیت هاب گذاشته شده می تونید استفاده کنید. https://github.com/mohammadamin2327/format-date-and-number-.git</description>
                <category>Mohammad_Amin</category>
                <author>Mohammad_Amin</author>
                <pubDate>Sat, 09 Mar 2024 00:15:46 +0330</pubDate>
            </item>
                    <item>
                <title>سرور چیست؟</title>
                <link>https://virgool.io/@mhmdamyjl12/%D8%B3%D8%B1%D9%88%D8%B1-%DA%86%DB%8C%D8%B3%D8%AA-xha6nbeiwhnx</link>
                <description>تو این مطلب می خواهم درباره ی سرور با شما صحبت کنم. همانطور که الان توی موبایل یا کامپیوتر و یا لپ تاپ و... دارید این مطلب رو می خونید به این نکته توجه دارید که در هر وسیله دیجیتالی که دارید استفاده می کنید یه سری دیتا یا همون اطلاعات ذخیره کردید مثلا توی موبایل تون موسیقی و ویدیو و ... ذخیره دارید و هر موقع دوست داشتید از این محتواهای داخل موبایل تون یا لپ تاپ تون و... استفاده خواهید کرد, اما یه سوال؟ اگر موبایلتون یا لپ تاپ یا کامپیوتر شما 24 ساعت شبانه روز روشن باشه چه اتفاقی براش می افته؟ قطعا یا می سوزه یا یه مشکل جدی پیدا می کنه پس اینجاست که سرور ها به ما کمک می کنن , البته بهتون بگم سرور ها کاربرد عمومی ندارن که بریم و سرور بخریم در ادامه کاربرد هاش رو توضیح می دم که مثلا برای طراحی سایت و اپلیکیشن های موبایل و...کاربرد دارند. سرور ها کامپیوتر هایی هستن که 24 ساعته روشن هستند و به کاربران در هر ساعت شبانه روز که باشه سرویس هایی ارائه می دهند. پس کامپیوتر ما هم یه جورایی سرور هست اما تفاوت هایی هم دارن مثل همون 24 ساعت روشن بودن و یا تفاوت دیگه اینکه چون سرور قراره 24 ساعت روشن باشه و به کاربران زیادی سرویس ارائه بدهد پس طبیعتا قطعات سخت افزاری خیلی قدرتمندتری نسبت به کامپیوترها و لپ تاپ های معمولی ما داره.و همانطور که گفتم مثل موبایل که ما توش کلی محتوا از قبیل موسیقی و ویدیو و فایل و .... داریم توی سرور ها هم ما می تونیم و بیایم محتواهای خودمون را ذخیرسازی کنیم مثل فضای ابری(cloud storage) که امروزه به دلیل اینکه ما با داده های خیلی بزرگ یا اصطلاحا Big Data سر و کار داریم توسط سازمان ها و افراد مورد استفاده قرار می گیرند.Severاما کاربرد دیگه سرور ها در توسعه وبسایت ها و اپلیکیشن ها است. به این صورت که ما می آییم و دیتا(Data) های مورد نیاز سایت یا اپلیکیشن مون از قبیل ویدیو و هر محتوای دیگه ای را داخل سرور ها ذخیره سازی می کنیم و هر موقع که نیاز به استفاده از این دیتاها بود با اون زبان برنامه نویسی یا فریم ورک مد نظر به سرور درخواست می زنیم و ازش می خوایم تا دیتا هایی که داخلش ذخیره سازی کرده بودیم را به ما برگردونه تا ما بتونیم در سایت و یا اپلیکیشن مون از اون دیتاها استفاده کنیم و اطلاعات مورد نیاز را به کاربر نشون بدیم. حالا یه سوال چرا اومدیم اطلاعات یا همون دیتا هامون رو روی سرور ذخیره سازی کردیم؟ احتمالا دیگه تا اینجای کار جواب شو می دونید.دلیلش اینه که ما همانطور که گفتیم به یه چیزی نیاز داریم که 24 ساعته بتونه به درخواست های کاربران رسیدگی کنه مثلا یه کاربری ممکنه ساعت 3 بامداد بخواد از اپلیکیشن من استفاده کنه با توجه به اینکه من دیتا های اپلیکیشن مون را داخل سرور گذاشتم هیچ مشکلی پیش نمیاد ، کاربر به راحتی از برنامه استفاده می کنه. و همچنین ما نمی تونیم بیایم این کار رو با کامپیوتر یا لپ تاپ خودمون انجام بدیم چون اولا قدرت کافی رو نداره دوماً ممکنه کامپیوتر یا لپ تاپ ما اصلا ظرفیت پذیرش اون حجم عظیم اطلاعات و Data را نداشته باشه مثلا من اطلاعاتی که در برنامه ام قراره استفاده بشه 5GB هست در صورتی که مثلا کامپیوتر ما 8GB رم دارد پس واضح هست که اگر از 8GB رم بخواهیم 5GB شو هم اختصاص بدیم به رسیدگی به درخواست 24 ساعته کاربران در حال استفاده از وبسایت یا اپلیکیشن مون دیگه اصلا حافظه ای برای کارهای شخصی خودمون باقی نمی مونه پس به همین دلایل هست که می ریم و سرور یا هاست خریداری می کنیم تا با خیال راحت اطلاعات مون ذخیره سازی بشه(چون سرورها خیلی گرون هستند موسسه ها و شرکت های ارائه دهنده سرور میان و اون سرورهایی که دارن رو به قسمت های کوچکی تقسیم می کنن و مثلا ما یه قسمت کوچک شو می خریم که میگیم هاست خریداری کردیم که خیلی ارزون تر از خرید سرور هست).در ضمن سرور ها امنیت بالایی دارن چون باید از دیتاهای مهم ما محافظت کنن و همچنین سرعت خیلی بالایی دارن چون در هر ثانیه باید به درخواست های زیادی که از طرف کاربران به سمت شون می یاد پاسخ بدن.و این نکته را هم بهتون بگم که معمولا سرور ها هر چند وقت یه بار از اطلاعات درونش Backup(پشتیبان گیری) گرفته می شه تا اگر یه وقت برق رفت یا سرور دچار ایراد یا اشکالی شد اطلاعات درونش کمترین آسیب ممکن رو ببینه.Data Centerتصویر بالا یک Data Center یا همون مرکز داده را نشان می دهد ، همانطور که در تصویر می بینید این مکان جایی است که تعداد زیادی سرور را کنار هم قرار می دهند تا بتوانند به مشتریان موسسه خود سرویس های مختلفی ارائه بدهند و همچنین تجربه خوبی برای کاربران و مشتریان خود در سر تا سر جهان بسازند. و ما هم از همین شرکت ها و موسسه ها می رویم هاست یا سرور برای وبسایت یا اپلیکیشن مون خریداری می کنیم که در اینترنت سایت های فروش هاست وجود دارند و خیلی راحت می تونیم هاست و سرور خریداری کنیم و برای ذخیره سازی دیتاهای مورد نیازمون از اونها استفاده کنیم.</description>
                <category>Mohammad_Amin</category>
                <author>Mohammad_Amin</author>
                <pubDate>Fri, 08 Mar 2024 15:56:26 +0330</pubDate>
            </item>
            </channel>
</rss>