وبلاگ سید جلال سیدیزدی

تمرین دوم

سه شنبه, ۲۹ بهمن ۱۳۹۲، ۱۰:۱۴ ب.ظ


دوستان سلام


تمرین دوم به قرار زیر است:

متدی با نام sunSet (به معنای غروب آفتاب) به تمرین اول اضافه کنید که با اجرای آن خورشید به سمت پایین رفته و بعد در مرز زمین قرار گیرد و آنگاه رنگ آن قرمز شود.


برای این کار به چگونگی نوشته شدن متد های موجود در پروژه توجه کنید.

همیشه قبل از نوشتن یک متد باید به سوال های زیر پاسخ دهید.

  • کار متد چیست؟ (انتخاب نام مناسب برای متد)
  • متد باید چه چیزی را به برنامه ای که آن را فرا می خواند برگرداند؟ (نوع متد یا به عبارت دیگر نوع مقدار برگشتی)
  • چه اطلاعات اضافی باید به متد داد؟ (تعداد و نوع پارامترها)
  • این متد مربوط به کدام شی است؟ (اضافه کردن آن به کلاس مناسب)

تاریخ ارسال: جمعه دوم اسفند 92 ساعت 20

آخرین مهلت ارسال با تاخیر: شنبه سوم اسفند 92 ساعت 20


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

موفق باشید.


  • ۹۲/۱۱/۲۹

نظرات  (۱۹)

سلام استاد، من و دو نفر از دوستانم (تا جایی که من اطلاع دارم) پنج شنبه ها ساعت 9 تا 11 کلاس Acm داریم. اگه میشه لطفی کنید و ساعت کلاس را به 10:30 تا 12:30 تغییر بدید و یا هر ساعت یا روز دیگری که به نظر شما بهتر است.
پاسخ:
سلام

این هفته که قرار شد کلاس جبرانی نباشه، برای هفته بعد سر کلاس تصمیم می گیریم.

موفق باشید.

سلام استاد.خسته نباشید

لطفا اگر امکان دارد جلسه پنجشنبه آینده را به روز یکشنبه منتقل کنید.

من پنجشنبه باید به خانه برگردم.

با تشکر از توجه شما

پاسخ:
سلام ممنون

اگر کلاس خالی موجود باشه و هیچ کدام از دانشجویان کلاس نداشته باشند، از نظر من اشکال نداره.

پی گیری این دو قضیه با شما.

موفق باشید.


سلام استاد خسته نباشید
data type ها انواع متغیر ها بودن حالا انواع data type چین؟
پاسخ:
سلام

دو دسته اند:

نوع های ابتدایی (primitive types)
نوع های شی/کلاس (object types)

به پیوست B کتاب مراجعه کنید.

موفق باشید.

مهلت فرستادن تمرین که تموم شد! حالا میگید چطور میشه از همون sun تو متد بعدی استفاده کرد؟ نمیدونم چطور باید دسترسی بهش پیدا کنم...؟!
پاسخ:
سلام

به راحتی!
فیلد ها در سرتاسر کلاس قابل دسترسی اند.

موفق باشید.
  • فائزه خسروی
  • استاد من برنامه رو براتون دیشب فرستادم الان که نگاه می کنم می بینیم وقتی زیپ شده خالی شده یعنی انگار عملا هیچ برنامه ای ننوشتم
    پاسخ:
    سلام

    تنها کاری که می شه کرد اینه که دوباره بفرستید و دفعات بعد بیشتر دقت کنید.

    موفق باشید.
    سلام استاد! چند تا سوال...
    1. فرض کنید توی همین تمرین ما توی کلاس picture دو تا متد داریم.یکی void draw و یکی void sunset !و توی متد اول یک دایره ایجاد کردیم و اونو قابل دیدن کردیم (خورشید) و توی متد دوم اون باید بیاد به سمت پایین. چطور باید دایره ای که توی متد اول ایجاد شده رو توی متد دوم ازش استفاده کرد و پایین آورد؟؟ اگه نشه از همون قبلی استفاده کرد خب پس باید یه دایره جدید دیگه ایجاد کرد که بیاد پایین!خب در اونصورت دایره قبلی که تو متد قبلی بوده همونجوری اون بالا میمونه و دومی غروب میکنه!
    2. چطور میشه بین visible و invisible کردن فاصله زمانی انداخت؟؟ مثلا بعد 5 ثانیه ناپدید بشه؟؟
    3. چطور میشه یک شی پشت شی دیگه ای قرار بگیره؟؟ مثلا فرض کنید بخوایم نصف خورشید بره پشت تپه!!
    پاسخ:
    سلام
    سوال اول خیلی سوال مهمیه!

    باید فقط یک خورشید داشته باشیم. در پروژه ی مربوطه نیز فقط یک sun وجود دارد.

    از منظر دیگر: کار sunSet فقط غروب خورشید است و بس؛ نه "ایجاد خورشید جدید(!)" و بعد غروب آن.

    پس باید در sunSet موجبات غروب خورشیدی که از قبل وجود داشته رو فراهم کنید.

    در ضمن نگران دسترسی نباشید به آن دسترسی دارید.

    سوال 2 فعلاً باشه تا بعد چون برای این کار  نیاز است از مفاهیم جدید استفاده شود (Exception)

    در مورد سوال سوم ترتیب رسم اشیاء رو بررسی کنید.

    موفق باشید.
    با سلام خدمت استاد گرامی
    استاد من متد رو به کلاس دایره اضافه کردم وبعد در متد draw() واقع در کلاس pictureاضافه کردم یعنی با اجرای متد drawغروب خورشید نیز اتفاق می افتد
    آیا همین کافی است؟یا باید یک متد جداگانه در کلاس picture اضافه کنم؟
    با تشکر
    پاسخ:
    سلام ممنون
    اول سوال و جواب های قبلی رو بخونید.
    همانطور که در پاسخ ها گفته شده غروب کردن برای دایره بی معنی است. پس اضافه کردن متدی به کلاس دایره برای غروب خورشید درست نیست.

    بعد از نمایش تصویر نباید خورشید غروب کند بلکه با فراخوانی متد sunSet باید این اتفاق بیفتد.

    موفق باشید.
    من از صبح دارم میفرستم. نمیرسه.آدرس ایمیل ap.java.hm@gmail.com مشکلی داره؟؟
    پاسخ:
    سلام

    آدرس رو اشتباه وارد کردید. دقت کنید آدرس ایمیل اینه:
    ap.java.hw

    مخفف
    advanced programming
    in java
    homework!

    موفق باشید.
    در عنوان فقط بنوسیم اصلاح شده..... و دیگه نام و شماره تمرین و...... رو ننویسیم؟

    پاسخ:
    سلام

    "اصلاح شده ی فلان تمرین" رو به موارد دیگر اضافه کنید.

    موفق باشید.
    استاد اگه یه پروژه رو ارسال کنیم بعد تا قبل از تمام شدن فرصت تحویل اصلاحاتی روش انجام بدیم و دوباره بفرستیم اون تمرین دومی که ارسال کردیم رو قبول می کنید؟
    پاسخ:
    سلام

    در قسمت موضوع ایمیل بنویسید "اصلاح شده فلان تمرین" تا لحاظ بشه.


    موفق باشید.
    سلام خسته نباشید
    استاد چه طور می شه کاری کرد که رنگ خورشید به تدریج تغییر کند و از زرد به قرمز تغییر کند؟
    پاسخ:
    سلام ممنون

    از آنجا که این پروژه ساده نوشته شده، همه رنگ ها در آن پیاده سازی نشده. پس فعلاً نمی توان کاری کرد.

    موفق باشید.
    سلام.اگر تمرین 2 رو با تاخیر بفرستیم (ساعت 20 فردا)، آیا از نمره آن کسر میشود؟
    پاسخ:
    سلام

    بله.

    موفق باشید.
    بخش‌هایی از این نظر که با * مشخص شده، توسط مدیر سایت حذف شده است
    استاد  **** ** *** *** اگر یک pictureدرست کنیم و اون رو نمایش بدیم باید غروب خورشید رو نمایش بده  یعنی بدون اینکه ما کاری کنیم  یا باید این دستور رو به sun بدیم بعد اون شروع کنه به غروب?
    پاسخ:
    سلام

    با اجرای متد sunSet باید خورشید غروب کند.

    موفق باشید.
    بخش‌هایی از این نظر که با * مشخص شده، توسط مدیر سایت حذف شده است
    سلام استاد
    من به این ترتیب عمل کردم متد sunsetرا در کلاسcircle اضافه کردم *** ** ** *** ***** ** *********  ***** **** ***** *** *************** ** ** ***** ****  **** **** *** ** ** ***** **** ******
    حالا 2 سوال داشتم :
    1-*** ** ***** ** ***** *** **** *** ** ******** *** ******** ***** **** ** **** **** **** *** ** ** **** **** **** ***** ** *** ************ **** ***** **** ****** **** ***  * ** ****** ** ****** **** **** *** **** **** *** ** *** ** *** ** ***** ******* ** **** ***** *** ***** *** ***** ** *** **** *** *** ** ****
    2-این غروب خورشید رو چه کار باید کنیم که هم زمان هم عمودی هم افقی حرکت کند تا طبیعی به نطر برسد؟ الان برای من اول افقی به سمت چپ حرکت می کند بعد عمودی تا به مرز تپه برسد؟
    با تشکر

    پاسخ:
    سلام

    یه سوال خیلی مهم: آیا دایره غروب می کند؟!!

    هر شی باید رفتاری مربوط به خودش را انجام دهد. شما وقتی کلاسی رو می خواهید بسازید باید ویژگی ها و رفتار اشیائی از اون کلاس را برایش پیاده سازی کنید. "دایره" که غروب نمی کند که براش متد غروب تعریف کرده اید.

    یه خرده بیشتر فکر کنید.

    در مورد سوال دوم فعلاً کاری لازم نیست انجام بدید. حرکت عمودی خورشید کافی است.


    موفق باشید.
    بخش‌هایی از این نظر که با * مشخص شده، توسط مدیر سایت حذف شده است
    استاد خسته نباشی
    میشه در رابطه با تمرین 1 تخفیف بدین
    چون اولین تمرین بود با نرم افزار مشکل داشتیم امکان ارسال وجود نداشت. ***** * ** ** ***** ** ***** * ***** ممنون
    پاسخ:
    سلام ممنون

    نکته: ارسال کردن تمرین 1 بهتر از ارسال نکردن آن است.
    پس انجام بدین و بفرستید.

    موفق باشید.
    بخش‌هایی از این نظر که با * مشخص شده، توسط مدیر سایت حذف شده است
    سلام،خسته نباشید
    ببخشید منظورتون اینه ** *** ****** ** *** ** ** **** ***** ** *** ******* **** ****** ** ********
    *** **** ******** **** ****** *** *** ***** ** **** ** *** * ** ******* ** ******* ** **** *** ******** ** ***** *****
    تشکر استاد
    پاسخ:
    سلام ممنون

    همان طور که گفته شد، در این تمرین شما نباید کلاس جدیدی ایجاد کنید بلکه باید ببینید این متد جدید مربوط به کدام کلاس است.
    بدین ترتیب محل اضافه کردن کد را یافته اید (یعنی کلاس مورد نظر).
    حال با توجه به کاری که متد باید انجام دهد، کد های مربوطه رو در متد بنویسید.

    اگر در مورد کدهای داخل متد مشکل داشتید شاید بد نباشه از امکان record method calls در BlueJ استفاده کنید. می توانید ابتدا در پروژه figure یک دایره (برای خورشید) بسازید و سپس به طور دستی غروب خورشید رو ایجاد کنید و دستورات نوشته شده در ترمینال را ببینید.

    یاد آوری: برای فعال کردن record method calls با Ctrl + T ترمینال را باز کنید و سپس در منوی Options ترمینال بر روی گزینه record method calls کلیک کنید.

    موفق باشید.
    بخش‌هایی از این نظر که با * مشخص شده، توسط مدیر سایت حذف شده است
    سلام استاد
    یعنی باید از ***  **** **** ******** استفاده کرد و *** *** ** ***** *** ******  ***** ** در یک متد دیگه (به نام sun set) قرار داد ؟
    پاسخ:
    سلام

    امتحان کنید!

    موفق باشید.
    یعنی یه کلاس دیگه به اسم sunSet به همون تمرین اول اضافه کنیم که همون شکل آدمک ها باشه و خورشید، فقط تفاوتش اینه که تو این یکی خورشید غروب میکنه و تغییر رنگ میده؟؟
    پاسخ:
    سلام

    اگر دقت کنید گفته شده یک متد جدید اضافه کنید نه یک کلاس جدید.
    غروب خورشید یک عمل است پس با یک متد پیاده سازی میشه.

    سوال: این متد رفتار کدام شی است؟

    پس کاری که باید بکنید این است که پروژه ی تمرین 1 رو که قبلاً نوشتین باز کنید و با کمی فکر ببینید که در کدام کلاس باید متد جدید sunSet رو اضافه کنید.

    موفق باشید.
    سلام استاد،وقت بخیر
    ببخشید اگر از طریق ایمیل هم ازتون سوال بپرسیم جواب میدین؟
    ممنون
    پاسخ:
    سلام ممنون

    خوبی این وبلاگ اینه که همه سوال و پاسخ رو می بینن و ممکنه سوال اونها قبلا مطرح شده باشد و اینطوری من فقط یک بار جواب میدم.
    پس لطفاً همین جا سوالتون رو مطرح کنید.

    موفق باشید