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

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

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

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

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

اینجانب ثناالله خیری(ملقب به 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));