كنترل پنل             جستجو               پرسشهای متداول            .:: آخرین پست‌های انجمن ::.            لیست اعضا            مدیران سایت             درجات        ورود
فهرست انجمن‌ها -> عمومي برنامه‌نويسي
پاسخ دادن به این موضوع
اشكال اين برنامه كجاست؟
پست تاریخ: یکشنبه 30 فروردین 1388 - 10:55    
sahar2000
خوب داره پيش مي‌ره
خوب داره پيش مي‌ره


پست: 52
عضو شده در: 4 آذر 1384

iran.gif


امتياز: 481

عنوان: اشكال اين برنامه كجاست؟ خواندن مشخصات فردی ارسال پیام شخصی

به نظرم اين برنامه بايد درست باشه
ولي جواب نادرست ميده.اشكالش كجاست
کد:
#include <cmath>
#include <iostream>

using namespace std;

int main()
    {
    int a, b, c;
    float x1,x2,d;
    cin >> a >> b >> c;
    d = ((b * b) - (4 * a * c));

    if( d < 0 )
        {
        cout << "whitout root";
       
        exit(0);
        }
    else
    x1=(-b + sqrt(d) / (2 * a));
    cout << "x1=" << x1 << endl;
    x2=(-b - sqrt(d) / (2 *a));
    cout << "x2=" <<x2 << endl;
   
    return 0;
    }
 

[ وضعيت كاربر: ]

تشکر کردن از پست  پاسخگویی به این موضوع بهمراه نقل قول 
تشکرها از این پست:

پست تاریخ: یکشنبه 30 فروردین 1388 - 17:17    
Hamid
مدیريت كل سایت
مدیريت كل سایت


پست: 5504
عضو شده در: 31 اردیبهشت 1384
محل سکونت: -::ساوه::-
iran.gif


امتياز: 47846

عنوان: پاسخ به «اشكال اين برنامه كجاست؟» خواندن مشخصات فردی ارسال پیام شخصی

یعنی چی جواب نادرست می‌ده؟
من a رو وارد کردم 1- و b رو 1 و c رو هم 1
جواب:
x1=2.11803
x2=0.118034

یعنی می‌گید این اعداد اشتباهه؟ که خیلی بعیده، چون فرمولتون درسته:
d=b^2-4*a*c
(برای اینکه برنامه‌تون بهینه بشه، به جای b ضربدر b بنویسید b^2)
و ریشه‌ها هم که فرمولشون درسته.

نمی‌دونم مشکلتون چیه؟ Embarassed

[ وضعيت كاربر: ]

تشکر کردن از پست  پاسخگویی به این موضوع بهمراه نقل قول 
تشکرها از این پست:

پست تاریخ: یکشنبه 30 فروردین 1388 - 20:41    
sahar2000
خوب داره پيش مي‌ره
خوب داره پيش مي‌ره


پست: 52
عضو شده در: 4 آذر 1384

iran.gif


امتياز: 481

عنوان: پاسخ به «اشكال اين برنامه كجاست؟» خواندن مشخصات فردی ارسال پیام شخصی

كشف كردم! Razz
...بله ظاهرا اين برنامه درست كار مي كنه ولي ريشه ها رو غلط محاسبه ميكنه منبع خطا هم در قسمت محاسبه ريشه هاست (دقت كنيد)
البته آقا حميد تا اونجا كه من مي دونم در اين زبان برنامه نويسي توان وجود نداره امتحان هم كردم كار نكرد!
به هر حال ممنون از لطفتون درستش اينه :
کد:
  x1 = (-b + sqrt(d)) / (2 * a)

[ وضعيت كاربر: ]

تشکر کردن از پست  پاسخگویی به این موضوع بهمراه نقل قول 
تشکرها از این پست:

پست تاریخ: یکشنبه 30 فروردین 1388 - 22:52    
Hamid
مدیريت كل سایت
مدیريت كل سایت


پست: 5504
عضو شده در: 31 اردیبهشت 1384
محل سکونت: -::ساوه::-
iran.gif


امتياز: 47846

عنوان: پاسخ به «اشكال اين برنامه كجاست؟» خواندن مشخصات فردی ارسال پیام شخصی

Shocked
چه جالب!
تا به حال پیش نیامده بود که توان رو توی برنامه‌ها به کار ببرم، اما توی Excel این رو مدام به کار بردیم که علامت توان اونجا ^ هست. توی PHP هم همچین چیزی نداریم Shocked

اینطور که معلومه باید کتابخانه math.h رو اینکلود کنید و از تابع pow استفاده کنید:
http://www.cprogramming.com/fod/pow.html
البته در مثال شما که یک عدد به توان دو به حساب میاد، ضرب راحت‌تره. اما فرض کنید یک عدد به توان ده باشه! یعنی باید ده بار ضرب رو نوشت! Shocked

به هر حال، واقعاً ممنون، نکته حیاتی‌ای رو فهمیدم Mr. Green

در مورد x1 راست می‌گید، توی کد اول اصلا چه نیازی به پرانتز دور یک عبارت کلی هست؟ Rolling Eyes پرانتز رو احتمالاً به اشتباه زود بستید...

[ وضعيت كاربر: ]

تشکر کردن از پست  پاسخگویی به این موضوع بهمراه نقل قول 
تشکرها از این پست:


نمایش پستها:                 مشاهده موضوع قبلی :: مشاهده موضوع بعدی  
پاسخ دادن به این موضوع
 

صفحه 1 از 1

تمام زمانها بر حسب GMT + 3.5 Hours می‌باشند
 Related Topics 


 information 

 

پرش به:  
شما نمی توانید در این بخش موضوع جدید پست کنید
شما نمی توانید در این بخش به موضوعها پاسخ دهید
شما نمی توانید موضوع های خودتان را در این بخش ویرایش کنید
شما نمی توانید موضوع های خودتان را در این بخش حذف کنید
شما نمی توانید در این بخش رای دهید


Copyright 2004-2024. All rights reserved.
© by Aftabgardan Cultural Center : Aftab.cc