وبلاگ آموزشی ثناالله خیری

ویژه علاقمندان علوم و مهندسی کامپیوتر

وبلاگ آموزشی ثناالله خیری

ویژه علاقمندان علوم و مهندسی کامپیوتر

وبلاگ آموزشی ثناالله خیری

اینجانب ثناالله خیری(ملقب به Sasan Ace)، موسس و مدیرعامل هلدینگ پاراتاپیک هستم
(شرکت صنایع فناوری آرکا بنیان نادین با شماره ثبت ۱۹۴۳۱)

💍متاهل و خوشبخت با💚همسر بزرگوارم که تمام زندگیمه💚

هدف اصلی محتوای این وبلاگ، ارائه محتوای تخصصی و کاملا اصیل در حوزه علوم و مهندسی کامپیوتر می باشد که همه مطالب حاصل تجربه شخصی و ساعت ها مطالعه، پژوهش و برنامه نویسی عملی، تالیف کتب و جزوات درسی و تدریس به صدها دانشجو در سراسر کشور بوده تا بار سنگین آموزش مهندسی کامپیوتر از دوش اساتید بزرگوار، همکاران و دانشجویان عزیز، اندکی کاسته شود،
و موانست با مفاهیم بغرنج ریاضی و کامپیوتری تسهیل شود.
لذا انتشار هر یک از مطالب این وبلاگ بدون پیوند به این وبلاگ و ذکر نام نویسنده(عمدا یا سهوا)،به دور از اخلاق کاری است.

برای بازدید از محتواهای بیشتر، میتوانید با آی دی sasanace@ در ❤️اینستا❤️ و 💙تلگرام💙 در ارتباط باشید.🙏

تبلیغات
Blog.ir بلاگ، رسانه متخصصین و اهل قلم، استفاده آسان از امکانات وبلاگ نویسی حرفه‌ای، در محیطی نوین، امن و پایدار bayanbox.ir صندوق بیان - تجربه‌ای متفاوت در نشر و نگهداری فایل‌ها، ۳ گیگا بایت فضای پیشرفته رایگان Bayan.ir - بیان، پیشرو در فناوری‌های فضای مجازی ایران
طبقه بندی موضوعی
آخرین نظرات
نویسندگان
  • 👇👇👇👇👇
  • لینک دانلود 
    ☝☝☝☝☝





    با توجه به دو بعدی بودن حرکت روبات از جهت های چپ (L)    به جای غرب یا West  ، راست (R) به جای شرق یا East  ، بالا ((U به جای شمال یا North  ، پائین (D)  به جای جنوب یا South  استفاده شده است
  • برای زیبایی و تفهیم بهتر پسوند رتبه عددی (مانند st  در 1   و ...) از تابع rankpost  استفاده شده استکه عدد را گرفته و در خروجی پسوند ترتیبی مربوط به آن عدد را می دهد. این تابع برای نشان دادن این که مثلا چندمین داده را باید وارد کنیم مناسب است
  • تابع finalPositionX  مختصات فعلی روبات را همراه با دستور حرکت (راست، چپ ، بالا، پایین) گرفته  ومولفه افقی مختصات روبات را تغییر میدهد تا مختصات جدید را نشان دیم
  • تابع finalPositionY  مختصات فعلی روبات را همراه با دستور حرکت (راست، چپ، بالا، پایین) گرفته و مولفه عمودی مختصات روبات را  تغییر میدهد تا مختصات لجظه ای را نشان دهیم
  • تابع  gridBoundControl  محدوده صفحه مجاز و نیز مختصات لحظه ای روبات را گرفته و با مقایسه آن با کران های بالا و پایین در راستاهای قائم و افقی  تعیین میکند که آیا روبات داخل محدوده مجاز است (بر میگرداند true )  یا نه (بر میگرداند false )
  • تابع obstControl لیست شامل مختصات موانع، تعداد موانع و مختصات فعلی روبات را گرفته و اگر مولفه افقی لحظه ای روبات با هر یک از اندیس های زوج لیست مساوی شد و همزامن مولفه عمودی لحظه ای روبات با هر یک از اندیس های فرد لیست مساوی شد، آنگاه یعنی روبات به مانع برخورد کرده (برمیگرداند false ) و در غیر این صورت به مانع برخورد نشده و بر میگرداند true
  • در تابع main   ابتدا رنگ فونت و بک گراند صفحه بترتیب به زرد روشن(کدE ) و آبی (کد۱) تغییر یافته است (صرفا جهت جذابیت بیشتر برنامه برای کاربر)
  • محدوده های ناحیه مجاز حرکت یا همان کران ها از کاربر گرفته شده به همراه ساختارهای امنیتی  و کنترلی تا در هیچ راستای افقی یا قائم ، کران بالا از کران پایین کمتر نشود
  • مختصات نقطه شروع روبات از کاربر گرفته شده به همراه ساختار کنترل ورودی تا مطممئن شویم روبات شروع اش از ناحیه مجاز بوده است
  • سپس با چاپ عبارت How many obstacles exist?  کاربر باید تعداد موانع در ناحیه مجاز را وارد کند    و سپس مختصات آنها را در ادامه
  • بعد از **************** Start move commands with (begin) and exit with (end) *****************  باید دستورات جهت دهی  را به صورت مزبور (راست ، چپ  ، پایین و بالا) وارد کنیم
  • در صورت  برخورد با مانع پیام خطای Collision with barrier  نمایش داده میشود و درصورت خروج از محدوده مجاز پیام Out Of Grids Boundaries Error  
  • موقعیت لحظه ای تنها در صورت عدم برخورد به مانع و نیز حرکت در محدوده مجاز در صفحه    نمایش داده خواهد شد

   if (gridBoundControl(Lx, Ux, Ly, Uy, Xf, Yf) == true && obstControl(obstaclesOrdination, 2 * ObsN, Xf, Yf) == true)

         cout << "Current position = (" << Xf << ", " << Yf << ")";

 

 

  • هر بار حرکت مجاز که یک واحد میباشد یه واحد به کمیت مسافت می افزاید

If (gridBoundControl(Lx, Ux, Ly, Uy, Xf, Yf) == true )

             distance ++ ;

 

 

  • جابه جایی نیز طبق قانون فیثاغورس محاسبه خواهد ش

     displacement = sqrt(pow(Ox - Xf, 2) + pow(Oy - Yf, 2));

 

۰ نظر موافقین ۰ مخالفین ۰ 20 December 21 ، 08:59
Sasan Ace

چند توصیه مهم دورُف درباره زندگی!


پاول دورُف مدیر تلگرام به مناسبت تولدش گفت: در حالی که 37 ساله می شوم ، لیستی از 3 چیز کم ارزش و 7 چیز بیش از حد با ارزش در زندگی را جمع آوری کردم:

▪️چیزی که کمتر از ارزش آن ها صحبت می شود(بسیار ارزشمند):

1. بخوابید: خواب باعث تقویت ایمنی ، خلاقیت و بهزیستی روانی می شود.

2. طبیعت: طبیعت محیطی است که از نظر بیولوژیکی برای احساس خوب در آن طراحی شده ایم.

3. تنهایی: تنها بودن آزادی ایجاد پیشرفت های معنوی و فکری را می دهد.

▪️چیز هایی که بیش از حد با ارزش نشان داده می شوند:

1. شهرهای بزرگ: شهرهای بزرگ منابع آلودگی ، جنایت و سر و صدا هستند. دسترسی به منابع آنها خوب است ، اما توصیه می شود در خارج از مرزهای خود زندگی کنید.

2. رستوران ها: رستوران ها کندترین و کم کارآمدترین روش غذا خوردن را ارائه می دهند. آشپزی در خانه به رژیم های سالم تر و کنترل بیشتر روی مواد اولیه اجازه می دهد.

3. هوای گرم: آب و هوای آفتابی نه تنها یک نگرانی است ، بلکه خطر ابتلا به سرطان و پیری سریعتر را نیز به همراه دارد. برعکس ، دمای سرد ، روح ، بدن و ذهن را روشن می کند.

4. مُد: تلاش بی پایان برای مطابقت با روندهای همیشه در حال تغییر گران و غیر ضروری است. تمرکز بر لباس های راحت زندگی را ساده تر می کند و فضا را برای چیزهای مهم آزاد می کند.

5. املاک و مستغلات: خرید ملک اغلب انتخاب های فرد را محدود می کند و یک سرمایه گذاری مشکوک است. اجاره آزادی بیشتری برای جابجایی و کاوش در مکان های مختلف می دهد.

6- رسانه های اجتماعی جریان بی وقفه آشغال هایی که ذهن ما را از شبکه های اجتماعی به هم می ریزد شادی و خلاقیت ما را کاهش می دهد. قطع ارتباط با این خدمات اینترنتی بهترین کاری است که می توانیم در هر روز انجام دهیم.

7. مشاوره افراد مشهور: افراد مشهور غالباً در خارج از حوزه تخصص خود مشاوره های بی دلیل می دهند. برای همه موارد مهم در زندگی ، بهتر است به علم سخت و نظرات متخصصان اعتماد کنید.

۰ نظر موافقین ۱ مخالفین ۰ 16 October 21 ، 11:23
Sasan Ace

شاید یکی از مهم ترین و مشهور ترین مساله در جهان علوم و مهندسی کامپیوتر که دانشجویان مقاطع کارشناسی اولین بار با آن روبرو می شوند همین مساله برج های هانوی است که نخستین بار یک ریاضیدان فرانسوی به نام لوکاس آن را ابداع کرده و هانوی هم پایتخت کشور ویتنام است و اعتقاد بر این بود که اگر بتوان دیسک ها را از برج نخست به برج سوم (با کمک برج میانی) انتقال داد، دنیا به پایان می رسد(یه چرت و پرتی مثل اعتقاد قوم مایای احمق به عدد 2012 😂)

خب بریم سر اصل مطلب

آماده ؟؟

بزن بریم

ابتدا برای مشاهده تصویر برج ها و دیسک ها اینجا  کلیک کنید تا بهتر ادامه مطالب را دنبال کنین

هدف مساله : انتقال تمام دیسک های برج A به برج C با کمک برج میانی (‌‌‌B) ، به نحوی که در هیچ یک از مراحل انتقال، در هیچ یک از برج ها ، دیسک بزرگتر روی دیسک کوچک تر قرار نگیرد

شرط اولیه معما : دیسک ها در اول بازی ، از بالا به پایین بصورت صعودی (کوچک به بزرگ) مرتب شده اند.

معلومات معما : تعدا دیسک ها به علاوه نکات بالا

مجهول : تعداد و ترتیب انتقال دیسک ها بین برج ها

روش حل : 

1. فرض کنیم تنها یک دیسک داریم در ابتدا، خب معلوم است آن را از مبدا به مقصد منتقل میکنیم

2. حال اگر تعداد دیسک ها بیش از یک عدد باشند چه کار کنیم ؟

1.2. ابتدا پایین ترین دیسک را نادیده گرفته و سپس بالاترین را به برج وسط منتقل میکنیم (با کمک برج مقصد) یعنی زیر آن را نیز به مقصد منتقل میکنیم

2.2. گام قبلی را با دستور چاپ در صفحه نمایش به کاربر نشان می دهیم

3.2. دوباره چون یک دیسک از برج مبدا کم شده، باز هم یکی از آنها را نادیده میگیریم تا بتوان دیسک موجود در برج میانی را به مقصد برسانیم


به همین ترتیب ادامه میدهیم(بازگشتی با حذف دیسک ها از برج مبدا) تا فقط یک دیسک باقی بماند که تکلیف آن هم واضح است.



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


در کد زیر لازم به ذکر است که عبارت nDisk تعداد کل دیسک ها، start همان A یا هر نام دلخواه برای برج مبدا است

temp همان B یا هر نام دلخواه برای برج میانی است

finish همان C یا هر نام دلخواه برای برج مقصد است


void hanoi (int nDisk, char start, char temp, char finish)

{

  if (nDisk == 1)

  cout <<start <<" --> " <<finish <<endl;

  else

  {

  hanoi (nDisk - 1, start, finish, temp);

  cout <<start <<" --> " <<finish <<endl;

  hanoi (nDisk - 1, temp, start, finish);

  }

}

*******************************************************************
برای دانلود بازی معمای هانوی نیز لینک زیر منتظر کلیک و نیز نظرات دلگرم کننده شماست
*******************************************************************
                                 👇👇👇👇👇 

Download Release version 1.0 Hanoi Solver Bot  x64 bit

۱ نظر موافقین ۱ مخالفین ۰ 14 October 21 ، 18:36
Sasan Ace

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

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

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

در ادامه پست های اتی، شما را با چالشی لذت بخش و تاریخی به نام مسایل مشهوری همچون برج های هانوی، tick tack toe و n وزیر آشنا میکنیم

۰ نظر موافقین ۱ مخالفین ۰ 14 October 21 ، 02:52
Sasan Ace

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

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

برخی از سایت هایی که تا به حال برای دانلود ویدیو ها از یوتیوب خودم استفاده کردمو در زیر لیست کردم و لینکشو گذاشتم براتوون


سایت y2mate 

سایت ytmap3

وبسایت freemaker

۰ نظر موافقین ۱ مخالفین ۰ 16 September 21 ، 20:22
Sasan Ace

بازی موش در هزارتو یا rat in maze یک بازی فکری جالبه که شما قراره مسیر رسیدن موش از نقط شروع به پایان رو ترسیم کنین. در این بازی حالات گوناگونی میتونه رخ بده مثلا اصلا هیچ مسیری نباشه، تنها یک مسیر و حالت سوم اینکه بیش از یک مسیر باشه.

یادمون باشه اصلا قرار نیست کوتاه ترین مسیر رو  انتخاب کنیم و صرفا تمامی مسیر های ممکن فقط مد نطر مون هستش

در واقع در برنامه نویسی تابع find path ، ما ابتدا بررسی میکنیم که نقطه بعدی داخل محدوده هست یا نه و سپس نوبت میرسه به اینکه آیا این مسیر مسدود است یا خیر (در این برنامه مسدودی ها با علامت # نمایش داده شد) و یه بررسی سومی هم باید انجام شود که آیا نقطه جدید قبلا از آن عبور کردیم یا خیر (نقطه عبوری با علامت + مشخص میشه) که در صورت عبور کردن از آن باید دوبازه آن را به نقطه تبدیل کرد


در این بازی کنسولی ساده شما ابتدا ابعاد هزارتو یا ماتریس ‌maze را وارد کرده (تعداد سطر ها و ستون ها)، و سپس المان های ماتریس را با دقت به تعداد ستون ها وارد میکنیم

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

و سپس در صورت وجود مسیری برای رسیدن به مبدا، مسیرها یا مسیر مورد نظر با علامت + ، نمایش داده می شوند

==========👇👇👇👇👇👇👇👇👇=========
                          

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

==========☝☝☝☝☝☝☝☝☝☝=========

۰ نظر موافقین ۱ مخالفین ۰ 12 September 21 ، 23:40
Sasan Ace

در این پست قصد دارم یکی از دغدغه های مهم اهل مطالعه رو برطرف کنم اوونم تنها با ۱۵۰ خط کد ناقابل سی پلاس پلاس.

بلی این دغدغه همین مساله متداول ساعات مطالعه بالا اما دارای پیشرفت کم در دانشجویان و دانش آموزان است که البته من همچنین تجربه ای نداشتم چون اعتقاد دارم یا باید با تمام انرژی درس بخونم یا کلا استراحت کنم و یادم نمیاد که کلا در طول دوران تحصیلی بیش از ۸ یا ۷ ساعت درس خونده باشم چون معتقدم مطالعه پر انرژی بیش از ۸ ساعت فقط کیفیت یادگیری رو کم میکنه

ما میدونیم که چه من نوعی و چه بزرگان حیطه کامپیوتر تنها و تنها ۲۴ ساعت فرصت در طول یک روز دارند، لذا تنها تفاوت میتونه به نحوه و کیفیت انجام کارهامونه یعنی برنده کسی است که در همون بیست و چهار ساعت، کارهای بیشتری انجام بده یا به اصطلاح دانش فیزیک، دارای توان واقعی بیشتری داشته باشه

حالا این توان یا راندمان رو میشه بر حسب درصد بیان کرد که مثلا اگه راندمان شما در این اپلیکیشن بشه ۶۰ درصد یعنی به ازای ۱۰۰ واحد انرژی یا زمانی رو که مصرف میکنین فقط ۶۰ واحدشو در راستای تحقق اهداف تون صرف میشه

خب حالا بریم سراغ آشنایی UI یا همون رابط کاربری این اپلیکیشن  :

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

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

شامل ساعت مطالعه مورد انتظار و حجم مطالعه مورد انتظار 

گام دوم هم دقیقا مثل قبلیه با این تفاوت که به جای واژه موردانتطار واژه انجام شده رو قرار میدیم

میشه اینجوری : ساعت مطالعه انجام شده (همون عددی که در دفتر برنامه ریزی ثبت کردین) و حجم درسی مطالعه شده (تعداد باکس های مطالعاتی تیک زده شده)

و نهایتا این شما و این شعبده بازی خنده ما (منظورم لینک دانلودآرام

------------------👇👇👇👇👇 DOWNLOAD 👇👇👇👇👇----------------

               download efficiency meter app for windows 

بعد از دانلود این نرم افزار جا داره یکی از افسانه ای ترین جملات مرحوم استیو جابز اسطوره ای رو نقل قول کنم (البته اگر در حد نقل قول باشیم)


--------------------BECOMING PIRATE IS ALWAYS MORE FUN THAN JOINING NAVY-------------------
 

۰ نظر موافقین ۱ مخالفین ۰ 08 September 21 ، 17:11
Sasan Ace

در این کنسول اپلیکیشن شما ابتدا با توجه به شرایط و مقررات حساب کاربری ای که قراره درست کنید ابتدا تعیین میکنید رمز شما دارای چند کاراکتر باشد و در نهایت رمز شما جلوی علامت تساوی ظاهر میشود (تذکر : علامت مساوی اول جز رمز شما نیست)

====================

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

====================

۰ نظر موافقین ۰ مخالفین ۰ 13 August 21 ، 00:03
Sasan Ace

در این اپلیکیشن شما ابتدا به برنامه میگین که نمره از چنده بعدش تعداد دروس رو وارد میکنید و به همون تعداد به ترتیب نام درس، نمره نهایی و ضریب یا همون تعداد واحدشو میدین و در نهایت معدل کل تون رو بهتون نشون میده

این شما و اینم لینک زیرین خنده برای دانلود 

👇👇👇👇👇👇👇👇👇

--------------------------

Download GPA Meter

--------------------------

☝☝☝☝☝☝☝☝☝☝

۰ نظر موافقین ۱ مخالفین ۰ 11 August 21 ، 02:03
Sasan Ace

سلام و عرض ادب مجدد خدمت تمامی مخاطبان گرامی وبلاگ آموزشی ثنا الله خیری


در این پست قصد داریم شما رو با کنسول اپلیکیشنی ساده اما کاربردی بویژه برای دانش آموزان و دانشجویان آشنا کنیم

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

دقیقا هدف این کنسول اپلیکیشن هم رفع این خستگی است آرام 

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

و در گام سوم کلید y را برای حالت نمره منفی و کلید n را برای حالت بدون نمره منفی بفشارید

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

در نهایت علاوه بر اینکه نمره نهایی شما را بر حسب درصد بیان میکنیم، , وضعیت قبولی شما نیز تعیین میشود بدین صورت که اگر نمره شما برحسب درصد از پنجاه کمتر باشد fail می شوید و در غیر این صورت قبول میشین

خب حالا با ارائه لینک دانلود از گوگل درایوم امیدوارم که این برنامه نیز مورد قبول شما باشد و ما رو از نظرات تون بهره مند کنین

👇👇👇👇

------------
لینک دانلود

------------

☝☝☝☝☝

۱ نظر موافقین ۱ مخالفین ۰ 10 August 21 ، 19:39
Sasan Ace