امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 2
  • 1
  • 2
  • 3
  • 4
  • 5
اشکال در تقسیم
نویسنده پیام
zeinab.kh آفلاین
تازه وارد

ارسال‌ها: 21
موضوع‌ها: 12
تاریخ عضویت: شهریور ۱۳۹۰

تشکرها : 9
( 1 تشکر در 1 ارسال )
ارسال: #1
اشکال در تقسیم
سلام
این برنامه رو که مینویسم, جواب 0.000000 میده, چرا؟؟
کد php:
#include<stdio.h>
main()
{
    
int x=8,y=10;
    
float k;
    
kx/y;
    
printf("%f",k);

(آخرین ویرایش در این ارسال: ۲۸-دى-۱۳۹۲, ۰۰:۱۵:۴۷، توسط babyy.)
۲۷-دى-۱۳۹۲, ۱۷:۱۸:۱۲
ارسال‌ها
پاسخ
salehjg آفلاین
مدیر بخش
*****

ارسال‌ها: 1,281
موضوع‌ها: 133
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 9560
( 8557 تشکر در 2603 ارسال )
ارسال: #2
RE: اشکال در تقسیم
(۲۷-دى-۱۳۹۲, ۱۷:۱۸:۱۲)zeinab.kh نوشته است: سلام
این برنامه رو که مینویسم, جواب 0.000000 میده, چرا؟؟
#include<stdio.h>
main()
{
int x=8,y=10;
float k;
k= x/y;
printf("%f",k);
}

سلام
باید بصورت زیر نوشته بشه:
کد:
k=(float)x/(float)y
البته احتمال float اولی نیاز نباشه...خودتون یه تستی بزنید...


موفق باشین
۲۷-دى-۱۳۹۲, ۱۸:۰۶:۵۷
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : zeinab.kh, sharin, Ambassador, babyy
zeinab.kh آفلاین
تازه وارد

ارسال‌ها: 21
موضوع‌ها: 12
تاریخ عضویت: شهریور ۱۳۹۰

تشکرها : 9
( 1 تشکر در 1 ارسال )
ارسال: #3
RE: اشکال در تقسیم
ممنون از جوابتون. فقط یکی بذارم کافیه!
ولی تو این یکی (float) هم گذاشتم فایده نداشت. جوابو 0.000000 درمی آره. باید چی کار کنم؟
کد php:
#include<stdio.h>
main()
{
float x;
x=(1/3);
printf("%f",x);

(آخرین ویرایش در این ارسال: ۲۸-دى-۱۳۹۲, ۰۰:۱۷:۵۵، توسط babyy.)
۲۷-دى-۱۳۹۲, ۱۸:۳۲:۲۸
ارسال‌ها
پاسخ
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #4
RE: اشکال در تقسیم
همونطور كه صالح خان گفتن اينطوري بنويسيد.
کد php:
main()
{
int x=8,y=10;
float k;
k=(float)x/y;
while(
1)
{
print(
"%0.01f",k);
delay_ms(500);
}

اگر جواب نداد ، يه متغيير از نوع char تعريف كنيد مثلا بهش مقدار 3 رو بديد و بعد print كنيد ، ببينيد درست دريافت مي كنه يا نه ... ( در اين حالت به جاي f% بايد u% بذاريد ) ، اگر درست دريافت نكرديد يا با متغيير اشتباهي داريد مي خونيد يا ارتباط سريال مشكل دارهه.

(آخرین ویرایش در این ارسال: ۲۷-دى-۱۳۹۲, ۱۸:۵۴:۲۷، توسط sharin.)
۲۷-دى-۱۳۹۲, ۱۸:۵۲:۴۵
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : salehjg, zeinab.kh, Ambassador, babyy
salehjg آفلاین
مدیر بخش
*****

ارسال‌ها: 1,281
موضوع‌ها: 133
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 9560
( 8557 تشکر در 2603 ارسال )
ارسال: #5
RE: اشکال در تقسیم
(۲۷-دى-۱۳۹۲, ۱۸:۳۲:۲۸)zeinab.kh نوشته است: ممنون از جوابتون. فقط یکی بذارم کافیه!
ولی تو این یکی (float) هم گذاشتم فایده نداشت. جوابو 0.000000 درمی آره. باید چی کار کنم؟

#include<stdio.h>
main()
{
float x;
x=(1/3);
printf("%f",x);
}

حرفای آقا مرتضی+ ...

شما 1/3 رو بصورت integer یا همون int یا همون عدد صحیحBiggrin نوشتین...
اگه بخواین حین تقسیم، قسمت اعشاری هم محاسبه بشه، باید اعداد رو ممیز دار وارد کنید...

1/3.00
یا
1.00f/3.000f
یا
...

اون f آخری دقیقا یادم نیست برا چی بود
یه بار تو msdn خونده بودم... شاید مفهوم بی پایان بود رو داره...
کسی میدونه، به منم بگه...


موفق باشید
۲۷-دى-۱۳۹۲, ۱۹:۳۵:۰۵
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : zeinab.kh, sharin, babyy
zeinab.kh آفلاین
تازه وارد

ارسال‌ها: 21
موضوع‌ها: 12
تاریخ عضویت: شهریور ۱۳۹۰

تشکرها : 9
( 1 تشکر در 1 ارسال )
ارسال: #6
RE: اشکال در تقسیم
ممنون متوجه شدم.
یه سوال هم از اولویت ها دارم. ++ کی تاثیر میذاره و جواب k چه قدر باید بشه؟
x=8, y=10, m=5
k= x/y++ + y/--m
۲۷-دى-۱۳۹۲, ۲۰:۲۳:۱۳
ارسال‌ها
پاسخ
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #7
RE: اشکال در تقسیم
کد:
k= x/y++ + y/--m
طبق اعداد زير جايگزين مي شه ، به مقدار y و m دقت كنيد.
کد:
k = 8/10 + 11/4

++/-- وقتي قبل از متغيير بياد ، ++/-- اول اعمال مي شه به عدد و بعد عدد وارد محاسبه مي شه. مثل m--
عكس اين حالت هم موجب مي شه عدد در محاسبات وارد بشه و بعد از اينكه اثر كرد مقدار ++/-- بهش اعمال بشه ، مثل ++y

------------
@صالح
اون 0.01f رو من جايي چك نكردم ، اما از قبل اين تو ذهنم مونده كه دقت رقم اعشار رو تعيين مي كنه ( البته توي توابعي مثل sprintf و ... كه كار نمايش و اهمال رو انجام مي دن ( براي اعشاري ))
براي متغيير ها كه استفاده بشه ، احتمال خيلي زياد همونه كه اشاره كرديد ، يعني كل اعشار از جايي تا آخر 0 . اين منطقي مي ياد.

(آخرین ویرایش در این ارسال: ۲۷-دى-۱۳۹۲, ۲۲:۱۴:۰۱، توسط sharin.)
۲۷-دى-۱۳۹۲, ۲۱:۰۶:۴۴
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : Ambassador, salehjg, behzady, zeinab.kh, babyy
behzady آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 1,169
موضوع‌ها: 57
تاریخ عضویت: آبان ۱۳۹۰

تشکرها : 4094
( 6339 تشکر در 2085 ارسال )
ارسال: #8
RE: اشکال در تقسیم
(۲۷-دى-۱۳۹۲, ۲۱:۰۶:۴۴)sharin نوشته است: اون 0.01f رو من جايي چك نكردم ، اما از قبل اين تو ذهنم مونده كه دقت رقم اعشار رو تعيين مي كنه ( البته توي توابعي مثل sprintf و ... كه كار نمايش و اهمال رو انجام مي دن ( براي اعشاري ))
براي متغيير ها كه استفاده بشه ، احتمال خيلي زياد همونه كه اشاره كرديد ، يعني كل اعشار از جايي تا آخر 0 . اين منطقي مي ياد.
function <cstdio> printf
f نشون میده داده اعشاری هست
عدد بعد از % نشون میده کلا چند رقم باید نمایش داده بشه (اون صفری که گذاشتید مشکل سازهBiggrin)
و عدد بعد از . نشون میده چند رقم باید دقت داشته باشه (01 که گزاشتید مشکل سازهBiggrin)
---
Operators in C and C++
به این بخش مراجعه شود
Operators in C and C++ -> Notes
ولی به طور کلی توضیح جناب مرتضی درست بود

به همه عشق بورز، به معدودی اعتماد کن و در حق کسی بدی نکن.
ویلیام شکسپیر

نباید ایمان به انسانیت را از دست دهید. انسانیت یک اقیانوس است؛ اگر قطرات اندکی از اقیانوس کثیف است، اقیانوس کثیف نمی‌شود.
مهاتما گاندی

يَا أَيُّهَا الَّذِينَ آمَنُواْ اسْتَعِينُواْ بِالصَّبْرِ وَالصَّلاَةِ إِنَّ اللّهَ مَعَ الصَّابِرِينَ
(آخرین ویرایش در این ارسال: ۲۷-دى-۱۳۹۲, ۲۲:۳۵:۱۱، توسط behzady.)
۲۷-دى-۱۳۹۲, ۲۲:۲۹:۵۸
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : sharin, Ambassador, babyy
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #9
RE: اشکال در تقسیم
(۲۷-دى-۱۳۹۲, ۲۲:۲۹:۵۸)behzady نوشته است:
(۲۷-دى-۱۳۹۲, ۲۱:۰۶:۴۴)sharin نوشته است: اون 0.01f رو من جايي چك نكردم ، اما از قبل اين تو ذهنم مونده كه دقت رقم اعشار رو تعيين مي كنه ( البته توي توابعي مثل sprintf و ... كه كار نمايش و اهمال رو انجام مي دن ( براي اعشاري ))
براي متغيير ها كه استفاده بشه ، احتمال خيلي زياد همونه كه اشاره كرديد ، يعني كل اعشار از جايي تا آخر 0 . اين منطقي مي ياد.
function <cstdio> printf
f نشون میده داده اعشاری هست
عدد بعد از % نشون میده کلا چند رقم باید نمایش داده بشه (اون صفری که گذاشتید مشکل سازهBiggrin)
و عدد بعد از . نشون میده چند رقم باید دقت داشته باشه (01 که گزاشتید مشکل سازهBiggrin)

حالت هاي مختلف رو قبلا امتحان كرده بودم ، خيلي خوب هم جواب مي دهه Biggrin
سر وقتش نياز باشه با تمام عالم وجود تباني مي كنم. Biggrin
اما كلا هم تو Keil و هم codevision براي sprintf استفاده كردم و مشكلي نداشته Biggrin
الان يكي از كد هام رو چك كردم 0.2f استفاده كرده بودم ، توي كدويژن هم فكر كنم مشابه چيزي رو كه بالا گفتم استفاده كرده بودم و جواب دادهه ، خيالت راحت Biggrin

اما ممنون كه اصولش رو گفتي ، تا ابد كه نمي شه تباني كرد :d

(آخرین ویرایش در این ارسال: ۲۷-دى-۱۳۹۲, ۲۲:۴۶:۳۹، توسط sharin.)
۲۷-دى-۱۳۹۲, ۲۲:۴۵:۰۷
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : behzady, babyy
zeinab.kh آفلاین
تازه وارد

ارسال‌ها: 21
موضوع‌ها: 12
تاریخ عضویت: شهریور ۱۳۹۰

تشکرها : 9
( 1 تشکر در 1 ارسال )
ارسال: #10
RE: اشکال در تقسیم
(۲۷-دى-۱۳۹۲, ۲۱:۰۶:۴۴)sharin نوشته است:
کد:
k= x/y++ + y/--m
طبق اعداد زير جايگزين مي شه ، به مقدار y و m دقت كنيد.
کد:
k = 8/10 + 11/4

++/-- وقتي قبل از متغيير بياد ، ++/-- اول اعمال مي شه به عدد و بعد عدد وارد محاسبه مي شه. مثل m--
عكس اين حالت هم موجب مي شه عدد در محاسبات وارد بشه و بعد از اينكه اثر كرد مقدار ++/-- بهش اعمال بشه ، مثل ++y

من فکر میکردم ++ باعث بشه 0.8 بشه 1.8 !!Biggrin
اینطوری که شما گفتید جواب میشه 3.55 ؛ اما این برنامه k رو چاپ میکنه 3.3 , اشکالش چیه؟
کد php:
#include<stdio.h>
main()
{
int x=8,y=10,m=5;
float k;
k=(float) x/y++ +(float) y/--m;
printf("%f",k);

(آخرین ویرایش در این ارسال: ۲۸-دى-۱۳۹۲, ۰۰:۲۳:۰۱، توسط babyy.)
۲۷-دى-۱۳۹۲, ۲۳:۱۲:۱۲
ارسال‌ها
پاسخ
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #11
RE: اشکال در تقسیم
پس اينجوري حساب كردهه!
کد:
k = 8/10 + 10/4
در اين صورت بعد از چاپ اين ، اگر مقدار y رو چاپ كنيد ، عدد 11 رو بايد نشون بدهه.

كدها تون رو هم مي تونيد در تگِ CODE بذاريد كه بهتر مشخص بشه.

(آخرین ویرایش در این ارسال: ۲۷-دى-۱۳۹۲, ۲۳:۴۱:۲۵، توسط sharin.)
۲۷-دى-۱۳۹۲, ۲۳:۳۹:۵۲
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : babyy, zeinab.kh


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  الگوریتم تقسیم از طریق تفریق متوالی eelectronik 4 5,667 ۰۱-آذر-۱۳۹۳, ۰۰:۲۸:۱۷
آخرین ارسال: eelectronik
  اشکال در اجرای فایل exeبرنامه نویسی شده با #c taksa2012 2 2,968 ۲۸-مهر-۱۳۹۲, ۱۱:۳۰:۵۳
آخرین ارسال: Ghoghnus
  رسم اشکال هندسی (پروژه) دوستان کمک کنید گیر افتادم mehrdad_3625 0 2,526 ۱۶-آذر-۱۳۹۱, ۱۹:۴۶:۱۷
آخرین ارسال: mehrdad_3625

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS