تبلیغات :
خرید لپ تاپ استوک
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 214 از 326 اولاول ... 114164204210211212213214215216217218224264314 ... آخرآخر
نمايش نتايج 2,131 به 2,140 از 3257

نام تاپيک: سوالات مبتدی و عمومی (++C, C) خود را اینجا بپرسید

  1. #2131
    پروفشنال akpa's Avatar
    تاريخ عضويت
    Jun 2007
    محل سكونت
    خونمون
    پست ها
    876

    پيش فرض

    ولی متغیر double شامل اعشاری هم میشه(البته دبیر کامپیوترمون اینجوری گفته) خواهشا برنامش رو می تونین برام بنویسین؟؟؟؟؟
    الببه خیلی ممنون که جواب دادین
    ایشون درست گفتن اما وقتی دوتا عدد صحیح به هم تقسیم میشن حاصل یه عدد صحیح بعد شما اونو داخل یه متغیر اعشاری میبرید که اعشارش 0 میشه متوجه شدین؟
    مثال
    4/3=1 خب شما فقط متغییری که حاصل توش ذخیره میشه رو اعشاری تعریف کردین بهخاطر همین فرقی نمیکنه درستش اینه که
    4.0/3.0=1.3333333333
    که حالا اینجا متغییرهای که حاوی 4 و 3 هستن هم اعشاری هستن(i,sum) توجه کنید اگه حالا متغییر میانگین رو صحیح در نظر بگیرین بازم جواب 1 میشه چون قابلیت ذخیره اعشار رو نداره
    برای اطلاعات بیشتر این متن رو بخونید
      محتوای مخفی: اینجا 
    تبدیل (cast) انواع داده ای
    در ++C انواع مختلفی برای داده ها وجود دارد، مثل int و float و ... و گاهی پیش می آید که بخواهیم این انواع را تبدیل کنیم. مثلاً دو عدد اعشاری را داریم اما مجموع آنها را فقط بطور صحیح لازم داریم (و میخواهیم به یک متغیر int انتساب دهیم)، پس باید مثلاً نوع float به int تبدیل شود تا حاصل جمع در یک متغیر int ریخته شود. این تبدیل ها میتواند برای انواع داده ای تعریف شده توسط برنامه نویس هم انجام شود که در جای خود توضیح داده میشود. به انواعی که از ابتدا درون زبان وجود دارند (بدون تعریف برنامه نویس) انواع درونی (integral) میگویند. در اینجا بر اساس انواع درونی مثال می آوریم که برای انواع تعریف شده توسط کاربر هم همینگونه است اما به کار اضافی نیاز دارد.

    دو نوع تبدیل وجود دارد: (ضمنی)implicit و (صریح)explicit

    اساس عمل تبدیل: هرجا که کامپایلر انتظار استفاده از نوعی را داشته باشد اما نوع دیگری استفاده شود، اگر امکان داشته باشد خودش تبدیل میکند (implicit) وگرنه باید برنامه نویس خودش تبدیل کند (explicit).

    نکته: برنامه نویس میتواند هر کجا که مجاز باشد از تبدیل صریح استفاده کند (حتی جایی که نیازی نباشد). مثلاً برای چاپ (با cout) کد اسکی یک متغیر از نوع char میتوان char را بطور صریح به int تبدیل کرد و سپس به خروجی فرستاد.

    تبدیل implicit
    قسمتی از تبدیل ها را خود کامپایلر برای شما انجام میدهد. مثلاً اگر f از نوع float با مقدار 2.3 باشد و i از نوع int باشد، حالا با انتساب f به i مقدار 2.3 به 2 تبدیل میشود و درون i ریخته میشود (البته مقدار f بدون تغییر خواهد ماند).

    از دست رفتن داده ها (loss of data)
    در اینجا کامپایلر یک warning میدهد که تبدیل float به int احتمال از دست رفتن داده ها را در پی دارد. مثلاً در اینجا سه دهم از 2.3 حذف خواهد شد، یعنی از دست میرود، اما اگر f مقدار 2 داشت (قسمت اعشاری نداشت) هیچ داده ای از دست نخواهد رفت و همان 2 در i ریخته میشود. پس باید در تبدیل ها به احتمال از دست رفتن داده ها توجه داشت، حتی ممکن است یک کامپایلر هشدار هم ندهد و ما از دست رفتن داده ها را متوجه نشویم. بهرحال با تبدیل انواعی که میتوانند مقادیری را نگه دارند که نوع تبدیل شده (مقصد) نمیتواند نگه دارد، احتمال از دست رفتن داده ها وجود دارد. مثلاً تبدیل float یا double به int یا تبدیل int به short int یا char (حتی در تبدیل int به float هم هشدار دریافت میکنید، چون int مقادیر صحیح بزرگتری نسبت به float نگه میدارد، در چنین جایی برای نگه داری تمام مقادیر ممکن میتوان از double بجای float استفاده کرد).

    کوچک سازی (truncation)
    حتی هنگام تعریف f بصورت float f = 2.3 شما یک هشدار truncation (کوتاه سازی) از double به float را دریافت میکنید، چراکه خود 2.3 هم یک نوع دارد (literal ها هم نوع دارند) و نوعش double است و هنگام ریخته شدن در f به float تبدیل میشود و چون float مقادیر کوچکتری را نگه میدارد پس ممکن است قسمتی از داده ها از دست برود (مثلاً دقت اعشاری کاهش یابد).

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

    تبدیل explicit
    این تبدیل توسط خود برنامه نویس با نوشتن دستوراتی درون کد برنامه انجام میشود. مثلاً وقتی هنگام انتساب f از نوع float به i از نوع int بنویسید
    i = (int)f دیگر هشداری دریافت نمیکنید چون گذاشتن (int) قبل از f آنرا به صراحت به int تبدیل میکند و سپس در i میریزد. میتوان تبدیلات صریح را بگونه ای مثل (int(f هم نوشت که f را به int تبدیل میکند.


    عملگرهای تبدیل صریح
    تبدیل صریح را میتوان با عملگرهای خاصی که در ++C وجود دارد هم انجام داد تا وضوح نوع تبدیل بالاتر رود. برای تبدیل یک نوع به دیگری از (static_cast (expression استفاده میشود که در آن type نوع مقصد و expression عبارتی است که میخواهیم نوعش تبدیل شود. مثلاً (static_cast (f نوع مقدار متغیر f را به int تبدیل میکند و برمیگرداند (البته نوع مقداری که برمیگرداند int میشود و f بدون تغییر میماند).

    برای یک تبدیل که نوع تفسیر بیت ها را تغییر میدهد از (reinterpret_cast (expression استفاده کنید، مثلاً
    (reinterpret_cast(p اگر p از نوع *void باشد به unsigned int تبدیل میکند، یعنی تفسیری که از بیت ها میشد یک اشاره گر بود اما مقدار برگشتی یک متغیر غیر اشاره گر از نوع unsigned int در نظر گرفته میشود.

    برای تبدیل یک اشاره گر به متغیر const (که نمیتواند مقدار آنرا تغییر دهد) به همان نوع اشاره گر اما به متغیر غیر const (که بتواند مقدار متغیر را تغییر دهد) از (const_cast (expression استفاده میشود. مثلاً (const_cast (ptr ، اگر ptr از نوع *const int باشد، اشاره گر برگشتی همان مقدار ptr را دارد اما با آن میتوان مقدار متغیری که اشاره میشود را تغییر داد.

  2. این کاربر از akpa بخاطر این مطلب مفید تشکر کرده است


  3. #2132
    پروفشنال akpa's Avatar
    تاريخ عضويت
    Jun 2007
    محل سكونت
    خونمون
    پست ها
    876

    پيش فرض

    اینم برنامه البته 2 تا ایراد دیگه هم داشت یکی اینکه شمارنده از 1 شروع میشد دوم اینکه 0 رو هم میشمورد که نباید بشماره
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    Last edited by akpa; 20-01-2013 at 09:54.

  4. #2133
    ناظر انجمن موسیقی MILAD MGH's Avatar
    تاريخ عضويت
    Jul 2008
    محل سكونت
    Paddy's Pub
    پست ها
    2,468

    پيش فرض

    سلام،
    این یه دترمینان 3*3 هست:

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    برای اینکه به 2*2 تبدیلش کنم ،چیکار باید بکنم؟

  5. #2134
    اگه نباشه جاش خالی می مونه mehrdad_joon's Avatar
    تاريخ عضويت
    Jun 2009
    محل سكونت
    Hotel EJB
    پست ها
    450

    پيش فرض

    [QUOTE=devil.warrior;7437864]سلاماقا دستم به دامنتون من باید پروژه برنامه نویسی تحویل بدماما هرچی گشتم نتونستم دستور مورد نظرم رو پیدا کنماونم اینکه میخوام یه برنامه بنویسم که وقتی بهش میگی salam بهت بگه salam و اگر بگی hello بگه how are youمیدونم باید با switch case بنویسم اما نمیدونم چی جولوی case قرار بدمchar str[5]="salam"; cin.getline(str,10); switch (str) { case ????: cout


    عزیز با switch نمیشه این کار رو کرد.برنامه ی شما به صورت زیر در میاد..

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  6. #2135
    اگه نباشه جاش خالی می مونه mehrdad_joon's Avatar
    تاريخ عضويت
    Jun 2009
    محل سكونت
    Hotel EJB
    پست ها
    450

    پيش فرض

    سلام،
    این یه دترمینان 3*3 هست:

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    برای اینکه به 2*2 تبدیلش کنم ،چیکار باید بکنم؟
    عزیز شما کار با پوینتر رو خوندی؟

  7. #2136
    اگه نباشه جاش خالی می مونه mehrdad_joon's Avatar
    تاريخ عضويت
    Jun 2009
    محل سكونت
    Hotel EJB
    پست ها
    450

    پيش فرض

    سلام
    اقا دستم به دامنتون من باید پروژه برنامه نویسی تحویل بدم
    اما هرچی گشتم نتونستم دستور مورد نظرم رو پیدا کنم
    اونم اینکه میخوام یه برنامه بنویسم که وقتی بهش میگی salam بهت بگه salam و اگر بگی hello بگه how are you
    میدونم باید با switch case بنویسم اما نمیدونم چی جولوی case قرار بدم
    char str[5]="salam";
    cin.getline(str,10);
    switch (str)
    {
    case ????:
    cout<<"salam"}
    عزیز با switch نمیشه این کار رو کرد.برنامه ی شما به صورت زیر در میاد..

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  8. #2137
    در آغاز فعالیت
    تاريخ عضويت
    Jan 2013
    پست ها
    1

    پيش فرض

    سلام
    باتشکر که این بحث به این خوبی ایجاد کردین
    من این ترم خیلی محتاج نمره بودم استادم 2تا پروژه داده باید تا فردا تحویلش بدم کسی میتونه کمک کنه خیلی گیرکردم

    1- برنامه ای بنویسید که تعداد جملات یک متن و تعداد تکرار کلمات یک متن را شمارش کند

    2- برنامه ای بنویسید که یک ماتریس n*n از کاربر دریافت کرده قطر اصلی و فرعی را نمایش دهد

    خیلی عجله ای هست ممنون میشم یکی کمکم کنه چون من هیچتاشو بلد نیستم

    دوستان اگه کسی تونست به ایمیلم بفرسته
    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

  9. #2138
    داره خودمونی میشه A.I.V.I.O's Avatar
    تاريخ عضويت
    Oct 2012
    محل سكونت
    همدان
    پست ها
    101

    پيش فرض

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

    اصلا این کتابخونه Stdio رو کی ساخته؟ اه

    ویرایش: تو کدبلاکس که اینجوریه
    Last edited by A.I.V.I.O; 22-01-2013 at 17:15.

  10. #2139
    اگه نباشه جاش خالی می مونه p d's Avatar
    تاريخ عضويت
    Apr 2009
    محل سكونت
    قبرستون
    پست ها
    449

    پيش فرض



    به خاطره اینکه تا وقتی به نول نرسیده باشه چاپ میکنه . وقتی به نول رسید متوقف میشه. وقتی شما 1 رشته وارد میکنید اخرش به طور خودکار نول قرار میگیره.
    شاید بگید من ارایه م و به 2 خونه محدودش کردم ولی جواب اینه سی برای حرفه ای ها طراحی شده. طول ارایه تون هنگام مقدار دهی[گرفتن مقدار یعنی مثلا همین رشته ای که دارید میریزید تویه ارایه] چک نمیشه. یعنی شما میتونید به ارایه ای بطول 1 ؛ هزارتا کاراکتر اختصاص بدید. صدای کسی هم در نمیاد. هر چند مثل این میمونه که رفتی خونه همسایه و رو در و دیوراش مقدار نوشتی.

    خروجی تو بصورت چاپ کارکتر بنداز تو 1 حلقه فور و فقط به اندازه ای که میخوای حلقه رو اجرا کن. مثلا فقط 2 بار.
    Last edited by p d; 22-01-2013 at 17:23.

  11. این کاربر از p d بخاطر این مطلب مفید تشکر کرده است


  12. #2140
    داره خودمونی میشه Expert32's Avatar
    تاريخ عضويت
    Oct 2010
    محل سكونت
    جزیره!
    پست ها
    189

    پيش فرض

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

    اصلا این کتابخونه Stdio رو کی ساخته؟ اه

    ویرایش: تو کدبلاکس که اینجوریه
    سلام.
    کتابخانه cstdio هیچ مشکلی نداره و خیلی هم خوب پیاده سازی شده!
    مشکل شما اینه که برای 2 کاراکتر به اندازه 3 عنصر از نوع char نیاز دارید و شما به اندازه 2 عنصر فضا تعریف کرده اید.
    و مشکل دیگتون اینه که از دستور scanf درست استفاده نکردید!
    عبارت s% برای ورودی جمله هست و شما برای دریافت کارکتر باید از عبارت c% استفاده کنید.
    و این عبارت نیز شامل طول میشود یعنی میتونید براش طول تعریف کنید به این شکل:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •