اطلاعیه

Collapse
هیچ اطلاعیه ای هنوز ایجاد نشده است .

سوالات پایه ای Objective-C و کمک جهت پیدا کردن پاسخ در Documentation

Collapse
X
 
  • فیلتر
  • زمان
  • نمایش
پاک کردن همه
new posts

  • سوالات پایه ای Objective-C و کمک جهت پیدا کردن پاسخ در Documentation

    دوستان من تازه شروع به یادگیری Objective-C کردم و کتاب
    Objective-C Programming - The Big Nerd Ranch Guid
    Amazon.com: Objective-C Programming: The Big Nerd Ranch Guide (Big Nerd Ranch Guides) (9780321706287): Aaron Hillegass: Books
    رو میخونم.
    سوالات مفهومی برام پیش اومده که به تدریج ازتون میپرسم و ممنون میشم بهم کمک کنید.

    ولی در ابتدا، من نتونستم با محیط Documentation خوب ارتباط برقرار کنم و جواب سوالام رو از اونجا پیدا کنم.
    ممنون میشم اگه علاوه بر کمک به سوالاتم، بتونید کمک کنید که چطور جواب سوال رو در Documentaion پیدا کنم.

    به عوان اولین سوال:
    چرا وقتی
    کد PHP:
    float f=3.35 
    قرار میدم، مقدار 3.3499999 در اون قرار میگیره؟؟
    حتی اگر بنویسیم:
    کد PHP:
    float f=3.35f 
    باز هم به همین نتیجه میرسیم
    و مثلا اگر شرطی بگذارم که آیا
    کد PHP:
     if (f==3.35
    جواب منفی میگیرم؟؟
    ولی مثلا با
    کد PHP:
     float f=3.75 
    این مشکل رو نداره !! و همون مقدار f=3.75 رو قرار میده


    البته اگر من شرط رو به
    کد PHP:
    if (f==3.35f
    تغییر بدم شرط درست در میاد، ولی سوال من اینه:
    ۱. چرا همچین مسئله ای بوجود میاد و ایا همیشه باید از f بعد از عدد (3.35f) استفاده کنم؟
    ۲. چرا من نمیتونم اطلاعات کاملی در Documentation در باره floating Point numbers پیدا کنم؟ آیا این مسئله و راه حل اون، در اونجا توضیح داده شده ؟
    من کلی در documentation گشتم، بدنبال واژه هایی مثل
    data type
    variable type
    floating point number
    ولی نتونستم چیزی پیدا کنم.

    مهمتر از پیدا کردم جواب سوال، برام مهم هست که چطور به تنهایی بتونم جواب رو در documentaion پیدا کنم.

    سایر سوالات رو بتدریج میپرسم
    متشکرم
    ویرایش توسط dr_bijan : https://i-phone.ir/forums/member/5567-dr_bijan در ساعت 02-07-2012, 09:15 PM

  • #2
    سلام
    من الان با c++ یه برنامه ساده نوشتم و چیزی رو که شما نوشتین نبود یعنی float=3.35 رو که چاپ کردم دقیقا ۳.۳۵ رو چاپ کرد

    ولی در عبارت های شرطی درست کار نمیکنه به دلیل این که کامپیوتر ها اعداد رو فقط بر مبنای دو میشناسند و موقع تبدیل اعداد اعشاری فقط مقدار تقریبی رو در متغیر ذخیره میکنه
    یک راه حل این هست که شما به جای استفاده از عبارت
    If(f==3.35)
    از عبارت
    Float f,g;
    F=g=3.35;
    If (f==g)
    استفاده کنید



    Sent from my iPad using Tapatalk HD
    ویرایش توسط Ehsanbagheri : https://i-phone.ir/forums/member/91046-ehsanbagheri در ساعت 02-07-2012, 11:33 PM

    نظر


    • #3
      من با برنامه bloodshed dev c++ استفاده میکنم
      Http://www.bloodshed.net



      Sent from my iPad using Tapatalk HD

      نظر


      • #4
        منم با احسان موافقم بهتر هست مقدار float رو اول در یک متغییر قرار بده بعد از اون متغییر در شرط if استفاده کن!
        این مشکلات اغلب از کامپایلر ها هست نه از زبان برنامه نویسی!

        نظر


        • #5
          بله، در زمان چاپ، درست چاپ میکنه، ولی با شرط مشکل داره.
          البته نیازی نیست که از یک متغیر دیگه استفاده بشه، کافی هست همونطور که گفتم شرط رو به
          کد PHP:
          if (f==3.35f
          تغییر بدیم

          خوب چرا مسئله ای به این مهمی رو در هیچ جایی ذکر نکردن؟؟ آیا این مطلب در Documentation ذکر شده ؟
          ممنون میشم اگه بتونید لینکش رو بهم معرفی کنید.
          ویرایش توسط dr_bijan : https://i-phone.ir/forums/member/5567-dr_bijan در ساعت 03-07-2012, 11:50 AM

          نظر


          • #6
            سلام
            این مشکل نیست فقط از ناتوانی ماشین هاست
            البته یه راه بهتر هم داره شما میتونید از دستور زیر استفاده کنید
            If (fabs(f==3.35)<0.00001)


            Sent from my iPad using Tapatalk HD

            نظر


            • #7
              مرسی

              سوال اول: جایی در Documentation هست که راجع به این مسئله توضیح داده باشه؟

              سوال دوم:
              فرض کنید که میخواهید بگویید:
              normalRang=10X +_2
              یعنی از 10X-2 تا 10X+2
              آیا فانکشنی هست که این گونه بازه ها رو در خودش جای بده؟

              متشکرم

              نظر


              • #8
                این کدهایی که شما تا این لحظه نوشتید همش C بوده و هنوز کاری به Objective C نداشته(البته بجز NSLOG که معادلش cout توی C++ و printf توی C هست ) و توی Documentation اپل هم بعید میدونم چیزی نوشته باشه.


                نوشته اصلی توسط dr_bijan نمایش پست ها
                مرسی

                سوال اول: جایی در Documentation هست که راجع به این مسئله توضیح داده باشه؟

                سوال دوم:
                فرض کنید که میخواهید بگویید:
                normalRang=10X +_2
                یعنی از 10X-2 تا 10X+2
                آیا فانکشنی هست که این گونه بازه ها رو در خودش جای بده؟

                متشکرم

                باید اون function های ریاضیاتی را خودتون بنویسید. زبانهای برنامه نویسی دستورات پایه ریاضی را درونشون دارن اما اگر پیشرفته شد دیگه نه! منظورم از پایه مثل Sin ، Cos,Tan,Log,sqr و ... اگر دنبال چنین چیزی هستید باید برید سراع Matlab . راستی من جواب شمارو توی x-code.ir دادم که توی شرط هم از f استفاده کنید.
                ویرایش توسط E H S A N : https://i-phone.ir/forums/member/37262-e-h-s-a-n در ساعت 04-07-2012, 11:13 PM
                " MICROSOFT'S MONSTER OF SOFTWARE, APPLE'S MONSTER OF HARDWARE "
                TECHNOLOGY NEEDS BOTH OF THEM

                نظر


                • #9
                  نوشته اصلی توسط dr_bijan نمایش پست ها
                  مرسی

                  سوال اول: جایی در Documentation هست که راجع به این مسئله توضیح داده باشه؟

                  سوال دوم:
                  فرض کنید که میخواهید بگویید:
                  normalRang=10X +_2
                  یعنی از 10X-2 تا 10X+2
                  آیا فانکشنی هست که این گونه بازه ها رو در خودش جای بده؟

                  متشکرم
                  منظور شما رو درست نفهمیدم لطفا واضح در بگید تا کمکتون بکنم


                  Sent from my iPad using Tapatalk HD

                  نظر

                  صبر کنید ..
                  X