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

کجای این برنامه مشکل داره؟(برنامه حل معادله درجه 2)

saeed engine

محروم از فعالیت تجاری
محروم از فعالیت تجاری
تاریخ عضویت
11 دسامبر 2011
نوشته‌ها
1,357
لایک‌ها
300
داداش میشد این سوالو طوری نوشت که else آخر در اول برنامه به کار بیاد و لی چون برنامه شما یکمی کدش فرق می کنه else آخرهیچ وقت اجرا نمیشه
اصلا else آخر چیکار میکنه؟
شرمنده من یکم ریاضی ضعیفه
:D

else برای موقعی هست که معادله شما درجه یک یا به عبارتی مقدار a که وارد می کنید صفر باشه عمل می کنه
 

galaxysky

Registered User
تاریخ عضویت
2 مارس 2011
نوشته‌ها
3,319
لایک‌ها
644
محل سکونت
Tehran

else آخر بدرد این برنامه با این کد نویسی نمیخوره[/QUOTE]
چرا دوست عزیز میخوره و عمل هم میکنه شما یه بار اجرا کن میبینی من خودم اجرا کردم براتون گذاشتم . اون else برای if اول هست که شرط صفر بودن a رو بررسی میکنه
البته برای else آخر اول بلوک ایجاد کنید یه کوچولو ایراد داشت که برطرف میشه من حواسم نبود به این که اگه بلوک ایجاد نکنیم براش دستور cout آخر همیشه اجرا میشه

کد:
#include <iostream>
#include <math.h>
#include <conio.h>
using namespace::std;


int main()
{
    float x1, x2, a, b, c, delta;
    cin >> a >> b >> c;
	if(a!=0) {
    delta = b * b - 4 * a * c;
    if ( delta > 0 )
    {
        x1 = ( -b + sqrt( delta ) ) / ( 2 * a );
        x2 = ( -b - sqrt( delta ) ) / ( 2 * a );
        cout <<x1 << "\t" << x2;
    }
    else if ( delta == 0 )
    {
        x1= -b / ( 2  *a );
        cout << x1;
    }
    else
		cout << "rishe haghighi nadarad" << endl;
	}
	else {
		x1=-c/b;
		cout<<"moadeleye shoma daraje yek va risheye an  "<<x1<<"  ast!\n"; }
    getch();
    return 0;
}
 
Last edited:

saeed engine

محروم از فعالیت تجاری
محروم از فعالیت تجاری
تاریخ عضویت
11 دسامبر 2011
نوشته‌ها
1,357
لایک‌ها
300
چرا دوست عزیز میخوره و عمل هم میکنه شما یه بار اجرا کن میبینی من خودم اجرا کردم براتون گذاشتم . اون else برای if اول هست که شرط صفر بودن a رو بررسی میکنه
البته برای else آخر اول بلوک ایجاد کنید یه کوچولو ایراد داشت که برطرف میشه من حواسم نبود به این که اگه بلوک ایجاد نکنیم براش دستور cout آخر همیشه اجرا میشه

تشکر....
 

galaxysky

Registered User
تاریخ عضویت
2 مارس 2011
نوشته‌ها
3,319
لایک‌ها
644
محل سکونت
Tehran

درستشو تو پست بالا وارد کردم
استارتر عزیز فکر میکنم منظورم الان گرفته باشید چرا اون if اول و else آخر رو اضافه کردم چون ارور دادن یه برنامه زیاد خوب نیست و با اون شرط اگر عدد اولی که وارد میکنید صفر باشه برنامه تشخیص میده که معادله درجه اول هست و جوابشو اعلام میکنه ولی اگه وارد نکرده باشید اگه عدد اول صفر وارد بشه جواب درستی نمیده
موفق باشید
 

Agha_Jo0n

Registered User
تاریخ عضویت
19 جولای 2011
نوشته‌ها
3,768
لایک‌ها
2,980
محل سکونت
Unknown
درستشو تو پست بالا وارد کردم
استارتر عزیز فکر میکنم منظورم الان گرفته باشید چرا اون if اول و else آخر رو اضافه کردم چون ارور دادن یه برنامه زیاد خوب نیست و با اون شرط اگر عدد اولی که وارد میکنید صفر باشه برنامه تشخیص میده که معادله درجه اول هست و جوابشو اعلام میکنه ولی اگه وارد نکرده باشید اگه عدد اول صفر وارد بشه جواب درستی نمیده
موفق باشید

سلام
بله الان متوجه شدم
if اول که اجرا میشه اگر a صفر وارد بشه میره else آخر رو اجرا میکنه :)

ممنونم از همگی:)
 
بالا