تسجيل الدخول

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


يونس
2012-12-24, 20:36
السلام عليكم
عملت هذا البرنامج لكن لا أعرف ما المشكلة لا أعرف فيما أخطأت
هذا الكود
#include <stdio.h>
#include <stdlib.h>


/*programme qui calcule la circonférence et la surface d'un cercle*/

main()
{
float R ,C , S,pi ; /* R est le rayon ,C est circonférence et S est surface */
char val;
pi=3.1415926535897932384626432795 ;
printf("\nCALCUL D'UN CERCLE \n");
printf("Quel est le rayon du cercle :\n",R);
scanf("%f",&R);
C=2*pi*R; S=R*R*pi;
printf("Sa circonférence est de :%.5f\n",S);
printf("Sa surface est de :%.5f\n ",C);
printf ("voulez-vous faire un autre calcule(O/N)");
scanf("%d",val);
if(val==o)
{
printf("Quel est le rayon du cercle :\n",R);
scanf("%f",&R);
C=2*pi*R; S=R*R*pi;
printf("Sa circonférence est de :%.5f\n",S);
printf("Sa surface est de :%.5f\n ",C);
}
printf ("voulez-vous faire un autre calcule(O/N)");
else if (val==n)
{ printf (Au revoir et à bientôt !");}
else printf("\nfin du programme.........");
system("PAUSE");
}



يقول البرنامج الخطأ في
if(val==o)



و السلام عليكم أرجو المساعدة

agm1991
2012-12-24, 22:20
#include <stdio.h>
#include <stdlib.h>


/*programme qui calcule la circonférence et la surface d'un cercle*/

main()
{
float R ,C , S,pi ; /* R est le rayon ,C est circonférence et S est surface */
char val;
pi=3.1415926535897932384626432795 ;
printf("\nCALCUL D'UN CERCLE \n");
printf("Quel est le rayon du cercle :\n",R);
scanf("%f",&R);
C=2*pi*R; S=R*R*pi;
printf("Sa circonférence est de :%.5f\n",S);
printf("Sa surface est de :%.5f\n ",C);
printf ("voulez-vous faire un autre calcule(O/N)");
scanf("%d",val);
if(val=='o')
{
printf("Quel est le rayon du cercle :\n",R);
scanf("%f",&R);
C=2*pi*R; S=R*R*pi;
printf("Sa circonférence est de :%.5f\n",S);
printf("Sa surface est de :%.5f\n ",C);
}
// printf ("voulez-vous faire un autre calcule(O/N)")
else if (val=='n')
{ printf ("Au revoir et à bientôt !");}
else printf("\nfin du programme.........");
system("PAUSE");
}السلام عليكم ورحمة الله وبركاته
يوجد 3 أخطاء
اثنان منهما في الشرط حيث ان المتغير val متغير حرفي عندما يقارن بقيمة يجب ان تكون داخل علامتي اللتنصيص '......'
اما الثالث فهو ان عبارة الطباعة printf لاهي داخل الشرط ولاخارجه , فقمت بإلغائها

يونس
2012-12-25, 17:33
السلام عليكم ورحمة الله وبركاته
يوجد 3 أخطاء
اثنان منهما في الشرط حيث ان المتغير val متغير حرفي عندما يقارن بقيمة يجب ان تكون داخل علامتي اللتنصيص '......'
اما الثالث فهو ان عبارة الطباعة printf لاهي داخل الشرط ولاخارجه , فقمت بإلغائها




بارك الله فيك أخي
وظيفة العبارة printf ("voulez-vous faire un autre calcule(O/N)")
هي للإعادة العملية مرة آخرى oui و الخروج non
كيف يمكن تصحيح البرنامج لتعمل

و بارك الله فيك

agm1991
2012-12-25, 17:49
#include <stdio.h>
#include <stdlib.h>


/*programme qui calcule la circonférence et la surface d'un cercle*/

main()
{
float R ,C , S,pi ; /* R est le rayon ,C est circonférence et S est surface */
char val;
pi=3.1415926535897932384626432795 ;
printf("\nCALCUL D'UN CERCLE \n");
printf("Quel est le rayon du cercle :\n",R);
scanf("%f",&R);
C=2*pi*R; S=R*R*pi;
printf("Sa circonférence est de :%.5f\n",S);
printf("Sa surface est de :%.5f\n ",C);
printf ("voulez-vous faire un autre calcule(O/N)");
while(val!='n' || val!='N' )
{ scanf("%s",&val);
if(val=='o' || val=='O')
{
printf("Quel est le rayon du cercle :\n",R);
scanf("%f",&R);
C=2*pi*R; S=R*R*pi;
printf("Sa circonférence est de :%.5f\n",S);
printf("Sa surface est de :%.5f\n ",C);
printf ("voulez-vous faire un autre calcule(O/N)");
}
else if (val!='n' || val!='N') printf ("Au revoir et à bientôt !");
else printf ("reponse inconnu !");

}
printf("\nfin du programme.........");
system("PAUSE");
}
وعليكم السلام ورحمة الله وبركاته
اضافة حلقة while قبل الشرط
الحل اعلاه يعملمع بعض الاضافات

__الهاوي__
2012-12-26, 12:09
استخدمي do while بدل while حتى تتجنبي تكرار الكود.

يونس
2012-12-26, 12:57
[


وعليكم السلام ورحمة الله وبركاته
اضافة حلقة while قبل الشرط
الحل اعلاه يعملمع بعض الاضافات


:19:

بارك الله فيك أخي و جزاك الله كل خير

يونس
2012-12-26, 12:59
استخدم do while بدل while حتى تتجنب تكرار الكود.


بارك الله فيك أخي على النصيحة سأعمل بها ان شاء الله
و هو نفسه الذي تفظل به الأخ agm1991

بارك الله فيكما

ANESS
2012-12-26, 19:15
بارك الله فيك

nabil judo
2012-12-26, 21:20
بعد التعديل


#include <stdio.h>
#include <stdlib.h>

/*programme qui calcule la circonférence et la surface d'un cercle*/

main()
{
float R ,C , S,pi ; /* R est le rayon ,C est circonférence et S est surface */
int T ;
T=1;
while (T==1){
pi=3.1415926535897932384626432795 ;
printf("\nCALCUL D'UN CERCLE \n");
printf("Quel est le rayon du cercle :\n",R);
scanf("%f",&R);
C=2*pi*R;
S=R*R*pi;
printf("Sa circonférence est de :%f\n",S);
printf("Sa surface est de :%f\n ",C);
printf ("==>pour faire un autre calcule tapez 1 \n");
printf ("==>pour sortir tapez 2 \n");
scanf("%d",&T);

}
system("PAUSE");
}

يونس
2012-12-26, 22:54
بعد التعديل

]

بارك الله فيك أخي نبيل طريقة مميزة لتقليص الكود كما تفظل بها الأخ __الهاوي__

وشكرا لإثرائك أخي الموضوع


و هذا تعديل للكود فقد أوحيت لي فكرة مميزة بارك الله فيك
فقد استعملت فيه عبارة
voulez-vous faire un autre calcule(O/N)
مع تغير طفيف في القيم و بعض المتغيرات

فما رايك


#include <stdio.h>
#include <stdlib.h>

/*programme qui calcule la circonférence et la surface d'un cercle*/

main()
{
float R ,C , S,pi ; /* R est le rayon ,C est circonférence et S est surface */
char T,o ;
T='o';
printf("\nCALCUL D'UN CERCLE \n");
while (T=='o'){
pi=3.1415926535897932384626432795 ;
printf("Quel est le rayon du cercle :\n",R);
scanf("%.5f",&R);
C=2*pi*R;
S=R*R*pi;
printf("Sa circonférence est de :%.5f\n",S);
printf("Sa surface est de :%.5f\n ",C);
printf ("voulez-vous faire un autre calcule(O/N)");
scanf("%s",&T);


}
system("PAUSE");
} فقد سؤال كيف يمكن دمج الحرفين الكبير و الصغير o و O ؟ و اي فكرة أنا في الإستماع وشكرا

يونس
2012-12-27, 00:03
شكرا انها تعمل مع الحرف الكبير و الصغير

بارك الله في الجميع لقد أثريتم الموضوع

NEt_Bomber
2013-03-19, 19:28
الخطأ في val فهو حرف لذا ميزه ب 'val'

NEt_Bomber
2013-03-19, 19:31
للدمج بين الصغير و الكبير استعمل دالتة toupper مثلا لتحويل جميع المدخلات الى أحرف كبيرة ..