تسجيل الدخول

مشاهدة النسخة كاملة : طلب طلب تصحيح البرمجية بلغة c++


يونس
2013-01-03, 13:29
السلام عليكم
واجهتني مشكلة في البرنامج الذي برمجته
أعلم أين الخطأ ،لكن لم أعرف كيفية التصحيح

و أرفق البرنامج مع صورة توضيحية
فأرجو المساعدة و لو بأفكار من ايجاد ايجاد حل للمشكل

#include <stdio.h>
#include <stdlib.h>
main()
{
int a ,b , c;
float d,x1,x2,x;
char o,T;
T='o',T='O';
printf("\n racines de l’equation de deuxieme degre \n\ny=ax2+bx+c\n ");
while (T=='o'||T=='O')
{
printf("Quelle est la valeur de a :",a);
scanf("%d",&a);
printf("Quelle est la valeur de b :",b);
scanf("%d",&b);
printf("Quelle est la valeur de c :",c);
scanf("%d",&c);
d=b*b-(4*a*c);

if (a==0,b==0,c==!0)

{
printf ("L'equation n'en est plus une !!!");
}


else if
{
if(a==0,b=!0,c=!0)
{
x=-c/b; printf ("L'equation est du premier degree!");
printf ("L'equation s'annule pour x=-(c/b):%.2f\n",x);
}

else if
{
if(d<0)
{
printf("L'équation possed pas de racin reel : d=%.2f\n",d);
}
else if
{
if(d==0)
{
printf("L'equation possed une racin double :d=%.2f\n",d);
printf("L'equation s'annule pour : x1=x2=%.2f\n",-b/(2*a));
}
else if(d>0)
{

x1=(-b+d*(1/2))/(2*a);
x2=(-b-d*(1/2))/(2*a);
printf("L'equation possede deux racin distinctes : x1=%.2f et x2=%.2f\n",x1,x2);

}
}
}
}
printf ("voulez-vous faire un autre calcule(O/N) :");
scanf("%s",&T);
}
printf ("Au revoir et à bientôt !");
system("PAUSE");
}
http://im26.gulfup.com/Ij7T1.png

Amine-Dev
2013-01-03, 17:48
راجع طريقة استعمال else if

بعد else if تكتب عبارة الشرط
لكن انت تركت المكان فارغ وفتحت if اخرى ؟!!


ps:
الكود مكتوب بلغة c وليس c++

__الهاوي__
2013-01-03, 18:41
أولا رسالة الخطأ تقول أن المصرف compiler يتوقع منك قوس بعد التعليمة if
يعني أصلا هناك خطأ في الكتابة
ثم هناك مشكلة في الشرط، أسلوب الشرط a==0,b==0, c!=0.... يتطلب منك الكثير من الحالات (2أس3 حالات)، وهي صعبة التحليل ومستحيلة الصيانة، لهذا يستحسن الاكتفاء بشرط واحد مع التعليمة if
الجذر هو عدد أس نصف، وليس عدد * نصف.

لقد عدلت على البرنامج وجربته
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
int a ,b , c;
float d,x1,x2,x;
char o,T;
T='o',T='O';
printf("\n racines de l’equation de deuxieme degre \n\ny=ax2+bx+c\n ");
while (T=='o'||T=='O')
{
printf("Quelle est la valeur de a :",a);
scanf("%d",&a);
printf("Quelle est la valeur de b :",b);
scanf("%d",&b);
printf("Quelle est la valeur de c :",c);
scanf("%d",&c);

if (a==0)
{
if (b==0) //0,0,c
{
printf ("L'equation n'en est plus une !!!\n");
}
else //0,b,c
{
x=-c/b;
printf ("L'equation est du premier degree!\n");
printf ("L'equation s'annule pour x=-(c/b):%.2f\n",x);
}
}
else //a,b,c
{
d=b*b-(4*a*c);
printf("La valeur de racin reel d =%.2f\n",d);
if(d<0)
{
printf("L'équation ne possed pas de racin reel : d=%.2f\n",d);
}
else if(d==0)
{
printf("L'equation possed une racin double :d=%.2f\n",d);
printf("L'equation s'annule pour : x1=x2=%.2f\n",-b/(2*a));
}
else //d>0
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("L'equation possede deux racin distinctes : x1=%.2f et x2=%.2f\n",x1,x2);
}
}

printf ("voulez-vous faire un autre calcule(O/N) :");
scanf("%s",&T);
}
printf ("Au revoir et à bientôt !");
system("PAUSE");
return 0;
}

zaki_yagami
2013-02-11, 21:16
راجع طريقة استعمال else if

بعد else if تكتب عبارة الشرط
لكن انت تركت المكان فارغ وفتحت if اخرى ؟!!
اضافة الى الحاضنة يجب فتحها و قفلها عند الانتهاء