نمایش نتایج 1 تا 10 از 10

نام تاپیک: stack (برگرداندن کد اسکی به جای کاراکتر)

  1. #1

    Unhappy stack (برگرداندن کد اسکی به جای کاراکتر)

    چرا وقتی یه رشته مثلن12*+رو توی یه استک میریزیم بد میخوایم از استک پاپ کنیم به جای هرکدوم از اینا کد اسکیشونو میده


  2. #2
    کاربر تازه وارد آواتار samirdev
    تاریخ عضویت
    تیر 1386
    محل زندگی
    GAC
    پست
    56

    نقل قول: stack-کمک

    فکر کنم شما باید از Generic Stack استفاده کنید. با این حال اگه کدتون را ببینم می توانم کمکتون کنم.

  3. #3

    نقل قول: stack-کمک

    نخوندیم.تو یه برنامه ماشین حساب این طوری استفاده شده که:
    user یه عبارت رو وارد میکنه اونو به postfixتبدیل می کنم مثلن* 23 بد اونو به تابعcalculate میدم و تو این تابع اول 2و3
    رو تو استک پوش میکنه بد که میخاد پاپ کنه تا ضرب کنه کد اسکیشونو بر می گردونه!!
    مجبور شدم از switch استفاده کنم:
    فایل های ضمیمه فایل های ضمیمه

  4. #4
    کاربر تازه وارد آواتار samirdev
    تاریخ عضویت
    تیر 1386
    محل زندگی
    GAC
    پست
    56

    نقل قول: stack-کمک

    کد شما را دیدم دوست عزیز. stack شما مقادیر را به صورت double ذخیره می کند و پس می دهد . ولی شما مقادیری که به stack می دهید از نوع char هستند. پس اگر کلاس stack را به شکل زیر تغییر دهید مشکل حل می شود.

    به نظرم بهتره z , top به صورت private تعریف کنید.

        class stack
    {
    public int top;
    public char[] z;

    public stack(int n)
    {
    z = new char[n];
    top = 0;
    }

    public void Push(char x)
    {
    z[top] = x;
    top++;
    }
    public char Pop()
    {
    top--;
    return z[top];
    }
    }


    و اما اینکه شما با C#‎ کار کردید یا با C++‎ . چون سوال را در قسمت C#‎ مطرح کردید ولی کد پسوند فایل شما cpp بود !

    الیته یک نکته دیگه هم که باید گوش زد بشم اینه که در دات نت کلاسی به نام Stack وجود دارد که عملیات Push و Pop را به راحتی برای شما فراهم می کند و نیازی به نوشتن کلاس جدید نبود.

  5. #5

    نقل قول: stack-کمک

    Eival
    مرسی
    مشکل قبلی حل شد.
    ولی تو این برنامه قرار روی اون چه که پاپ می شه عملیات ریاضی انجاو شه روی کاراکتر که نمی شه
    اینو چی کار کنم؟

  6. #6
    کاربر تازه وارد آواتار samirdev
    تاریخ عضویت
    تیر 1386
    محل زندگی
    GAC
    پست
    56

    نقل قول: stack-کمک

    اون چیزی که pop میشه یه char است. پس یا یک علامت است یا یک عدد . شما در ابتدا باید ببینید که این کاراکتر قابل تبدیل به عدد است یا نه برای این کار می توان از روش زیر استفاده کرد.

    char c = myStack.Pop();
    int number;
    if (char.TryPars(c, out number))
    {
    //operand
    }
    else
    {
    //operator
    }


    حالا اگر این یک عدد باشد مقدار آن در متغیر number قرار می گیرد.
    این کد را از حفظ نوشتم امیدوارم که مشکل نداشته باشه!

  7. #7

    نقل قول: stack-کمک

    بازم
    Eival
    ولی یه کم مشکل داشت خودم حلش می کنم.


    من از استک فقط pushو pop او می شناسم کسی می تونه یه Ebook معرفی کنه؟؟

  8. #8
    کاربر تازه وارد آواتار samirdev
    تاریخ عضویت
    تیر 1386
    محل زندگی
    GAC
    پست
    56

    نقل قول: stack-کمک

    استک دقیقا همین است که شما می شناسید. منتهی کاربر های بسیار است . که مهم ترین کاربرد آن فراخوانی توابع تو در تو در کامپیوتر است . (Call Stack)

  9. #9

    نقل قول: stack-کمک

    E
    حالا اگه یه Ebook بخام که توش C#‎ او یاد بگیرم چی؟؟
    من از کجا باید بدونم یه چیزی مث char.TryParse برای تشخیص operator و operand هست و ... ؟؟؟؟

  10. #10
    کاربر تازه وارد آواتار samirdev
    تاریخ عضویت
    تیر 1386
    محل زندگی
    GAC
    پست
    56

    نقل قول: stack-کمک


قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •