🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۴ دانشجوی سون‌لرن
درخواست توضیح بیشتر
جامعه هوش مصنوعی ایجاد شده در ۳۰ مرداد ۱۴۰۲

با سلام

ببخشید من برای سوال دوربین، قسمت بعد از else که برای کاراکتر ">" نوشته شده را متوجه نمیشم. یک قسمت هم استاد گفتند که به جای اینکه ماشین حرکت کند، دوربین حرکت میکند و برای همین برای حرکت به سمت چپ از else و عبارت count_photos += cameras استفاده کردند. میشه لطفا بیشتر توضیح بدید

سلام،

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

محسن موحد ۳۰ مرداد ۱۴۰۲، ۱۵:۵۲

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

79e5-Untitled.png

مهشید معروف خانی ۳۱ مرداد ۱۴۰۲، ۰۷:۲۱

لطفا راهنمایی میکنید؟

مهشید معروف خانی ۰۱ شهریور ۱۴۰۲، ۱۶:۴۷

برای اینکه بهتر متوجه الگوریتم شوید باید روی کاغذ پیاده کنید.

فرض:

>>>.>.<

RIGHT:

برای اینکه از ماشین‌های right عکس برداری شود مقادیر right هر چنتا که باشند با هم جمع میشوند و قبل از dot اتفاق می‌افتند. فرضاً قبل از dot سه عدد right داشته ایم، right = 3 میشود و به اولین نقطه ای که میرسد، عکس‌ها باید مقدارش 3 تا شود. در ادامه اگر dot دیگری بیاید مجدد همین روال تکرار میشود و تعداد تصاویر میشود 6 تا چون دوربین جدید مجدداً از سه عدد right عکس میگیرد. اما فرض کنیم که بعد از اولین dot که تعداد عکس‌ها شد 3 تا و right = 3 بود، بعد از dot مجدداً یک right بیاید و بعد از آن یک dot بیاید. این جابجایی dot‌ها منظور این حالت است که جدای ازینکه از از این right جدید باید عکس گرفته شود، 3 عدد right از قبل هم عکس گرفته میشود. پس از قبل right=3 بود الان right=4 میشود و بعد به dot میرسد و تعداد تصاویر قبلی که 3 تا بود + 4 تای جدید میشود و میشود 7 عکس.

موضوع right همین بود.

LEFT:

اما عمل دیگری که در قسمت dot انجام میشود، نگه داشتن مقدار dot‌ها است با نام متغیر camera.

علت موضوع اینست که اگر دوربینی بخواهد از ماشین‌های left عکسی بگیرد پس ابتدا دوربین است و بعد left. چون اگر ابتدا left باشد و بعد دوربین، اگر روی کاغذ رسم کنید میبینید left از دوربین دور میشود و پشتش به دوربین خواهد بود. پس برای شمارش تصاویر ماشین هایی که به left میروند، ابتدا دوربین است و بعد left.

همین موضوع کافیست که مجموع dot ها(دوربین‌ها یا camera)‌ها را داشته باشیم.

هر وقت left اتفاق بیوفتد، مقدار camera‌ها به تصاویر اضافه میشود.

پس با توجه به توضیحاتی که در قسمت right اتفاق افتاد، مقدار camera=2 خواهد بود.

در انتها به یک left میرسیم که اینجا تعداد عکس‌ها که 7 تا بود با تعداد camera=2 میشود و تعداد عکس‌ها میشود = 9


بهترین پاسخ
محسن موحد ۰۱ شهریور ۱۴۰۲، ۲۲:۲۱