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

تمرین شانزدهم

پنجشنبه, ۴ ارديبهشت ۱۳۹۳، ۰۳:۴۷ ب.ظ

سلام دوستان

تمرین شانزدهم به این قرار است که در پروژه ی zuul-with-enums-v2 از فصل ششم ابتدا تعدادی اتاق جدید به پروژه اضافه کنید که بعضی در طبقه ی هم کف، برخی در طبقه ی اول و تعدادی در زیر زمین باشند. سپس امکانات زیر را به پروژه اضافه کنید.

  1. اضافه کردن جهت های up و down به ترتیب برای رفتن به طبقه ی بالا و پایین.
  2. اضافه کردن دستور back برای رفتن به اتاقی که اخیراً از آن بیرون آمده ایم. توجه کنید که این دستور را می توانیم چند بار پشت سر هم صادر کنیم.

نکته:

    • همانطور که سر کلاس گفته شد برای قسمت دوم باید از کلاس Stack استفاده کنید.
    • توجه کنید که اگر با دستورات back به جای اول برگشتیم (یا در ابتدا که هنوز وارد هیچ اتاقی نشده ایم،) اگر کاربر دستور back را وارد کند برنامه باید پیغام مناسب بدهد.


      تاریخ ارسال: یکشنبه 7 اردیبهشت ساعت 21 دوشنبه 8 اردیبهشت ساعت 21

      با تاخیر: دوشنبه 8 اردیبهشت ساعت 9 سه شنبه 9 اردیبهشت ساعت 9


      موفق باشید

      • ۹۳/۰۲/۰۴

      نظرات  (۳)

      استاد اگه بعد از اینکه با دستورات back به جای اول بر گشتیم باز هم کاربر back  بزند چه اشکالی داره خوب دو باره بر می گرده خونه قبلی که بوده مثلا اگه به ترتیب از 3 و 2 به  1 برسه و بعد back بزنه خوب دو باره می ره خونه 2 .
      پاسخ:
      سلام
      این back تقریباً شبیه undo کردن در ویرایشگر و یا زدن دکمه back در مرورگر است.
      در مرورگر شما چند لینک رو پشت سر هم باز کنید و بعد چند بار back رو بزنید به جای اول بر می گردید و دیگر نمی توان back کرد.
      ایده شما رو می شه با اضافه کردن دستور forward کامل کرد. بهش فکر کنید.
      موفق باشید.
      سلام استاد
      خسته نباشید.
      میشه یه راهنمایی کنید.
      من تونستم از کلاس Stack به خوبی استفاده کنم ولی یه مشکلی برام پیش اومده.
      وقتی back رو میزنم اول همون اتاقی که داخلش هستم رو مینویسه بعد درست میشه و یکی یکی به عقب بر میگرده.
      ولی هر کاری کردم نتونستم اون اولین بارش رو حذف کنم.
      میشه کمک کنید.
      پاسخ:
      سلام، ممنون
      اینجاست که باید از دیباگر استفاده کنید.
      از ابتدا با دیباگر بررسیش کن ببین چه اتفاقاتی می افته.
      موفق باشید.

      سلام استاد
      ببخشید میشه درمورد متد های Stack یه توضیحی بدید.
      ممنون میشم.
      من متوجه نشدم.
      پاسخ:

      سلام

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

      حال متدها:
      empty: چک می کند آیا پشته خالی است یا نه.
      pop: داده ی بالای پشته را بر می گرداند و آن را از پشته حذف می کند.
      push: داده ای را که به صورت پارامتر می گیرد در بالای پشته قرار می دهد.
      peek: داده ی بالای پشته را بر می گرداند بدون اینکه آن را از پشته حذف کند.
      search: برای جستجو در پشته استفاده می شود.

      برای اکثر کاربردها معمولا سه متد اول در لیست بالا کفایت می کند.

      مثال:

      Stack<String> stack = new Stack<>();

      stack.push("Ali");
      stack.push("Reza");
      stack.push("Hassan");

      while(!stack.empty()){
      System.out.println(stack.pop());
      }

      خروجی:

      Hassan
      Reza
      Ali

      موفق باشید.

      ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
      شما میتوانید از این تگهای html استفاده کنید:
      <b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
      تجدید کد امنیتی