PDA

View Full Version : سوال: چگونه مقدار یک تابع void را در متغییر بریزیم؟



hessam2003
چهارشنبه 22 آبان 1392, 18:31 عصر
سلام.
چگونه مقدار یک تابع void را در متغییر بریزم؟
;double keep
;(keep = regc() + S(n + 1, k + 1
در این دستور خطا میدهد که تابع void به double قابل تبدیل نیست.
راهی برای جلوگیری از این خطا وجود دارد؟

noroozifar
چهارشنبه 22 آبان 1392, 18:37 عصر
تابع regc() و تابع (S(n + 1, k + 1 هر دو باید یک مقدار یا از نوع int یا double بر گردانند و اگر از نوع string بر میگرداند باید تبدیل کنید به double ( در صورت عددی بودن) اگر دو تابع ای که در کدی گذاشته ای از نوع void هستند یعنی مقداری بر نمی گردانند این کد شما کاملا اشتباه است

hessam2003
چهارشنبه 22 آبان 1392, 19:02 عصر
تابع S از نوع double است و تابه regc() از نوع void چون تابع regc درون خودش تابع regresion را فراخوانی میکند که تابع regresion از نوع void میباشد.
حال میخواهم این عمل را انجام دهم
;double keep
;(keep = regc() + S(n + 1, k + 1
طبق توضیحات خط اول اگر جایی را اشتباه تعریف کرده ام بگویید تا تصحیح کنم.

rahnema1
چهارشنبه 22 آبان 1392, 20:15 عصر
تابع void یعنی تابعی که هیچ مقداری رو بر نمی گردونه بنابراین سوال شما کاملا اشتباه است چون اصلا void مقدار نداره
جهت حل مشکل سوال رو واضح تر بیان کرده و کل کدتون رو بذارید

noroozifar
چهارشنبه 22 آبان 1392, 20:53 عصر
استفاده به این روش شما می خواهید استفاده کنید اشتباه است void هیچ مقداری بر نمیگردانه و شما حالا می خواهید با یک عدد جمع کنید و اون دوباره بریزید تو یک متغییر عددی به قول دوستمون کدهاتو بگذار

danialafshari
چهارشنبه 22 آبان 1392, 23:24 عصر
سلام
قبل از ایجاد تاپیک جستجو کنید
می تونید از ref , out استفاده کنید
http://barnamenevis.org/showthread.php?422348-%D8%B3%D8%A7%D8%B2%D9%85%D8%A7%D9%86%D8%AF%D9%87%D B%8C-%DA%A9%D8%AF-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE&highlight=ref
موفق باشید