الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

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

مغلق
بدأه الحاير في 7 مايو 2003 · 4 رد · 567 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته جميعاً ,,,

عضو جديد و أرجو عدم الإحراج !!!

مع العلم أني مبتدئ في دراسة لغة البورلند C++ طالب في الكلية.

أرجو أن تتفهموا الوضع وجزاكم الله خير الجزاء.

لدي سؤال قد تعبت في حله ولكن ......

.

.

.

لا نــــــــتـــــــــــــــــــــيـــــــــــجــــــــــة

تذكر !!

--------------------------------------------

أرجو أن لا تخذلوني في حله وهو برنامج آلة حاسبة ولكن باستخدام الـ(switch) والـ(do… while)

والـ(:case) والـ(break) والـ(default) والـ(getch())

---------------------------

والبرنامج كالتالي:

#include

main()

{

float nm1,nm2,result;

char op;

do{

printf("Enter the first number:n");

scanf("%f",&nm1);

printf("Enter the second number:n");

scanf("%f",&nm2);

printf("Enter the operation:n");

scanf("%c",&op);

switch(op)

{

case'+':

{

result=nm1+nm2;

printf("the result of nm1+nm2=%f",result);

break;

}

case'-':

{

result=nm1-nm2;

printf("the result of nm1-nm2=%f",result);

break;

}

case'*':

{

result=nm1*nm2;

printf("the result of nm1*nm2=%f",result);

break;

}

case'/':

{

result=nm1/nm2;

printf("the result of nm1/nm2=%f",result);

break;

}

default :

printf("you enter unknown operator:n");

printf("nAgain: (y/n)");

break;

}

}while((ch==getch()=='y'));

return(0);

}

&&&&&&&&&&&&&&&&&&&&&&&&&&&&

أرجو التجاوب من الجميع وأرجو إظهار الخطأ والسرعة في الرد وشكراً

لكم مرةً أخرى ,,,

#2

بسم الله الرحمن الرحيم

انا مجرب الكود على مايكروسوفت اذا لم تعمل معاك بلغني

وساثبت c بورلاند عندي واجرب إن شاء الله.

#include<stdio.h>

#include<conio.h> // to call getche()

main()

{

float nm1,nm2,result;

char ch;

do{

printf("nEnter the first number:n");

scanf("%f",&nm1);

printf("Enter the second number:n");

scanf("%f",&nm2);

printf("Enter the operation:n");

switch(getche())

{

case '+':

{

result=nm1+nm2;

printf("nthe result of nm1+nm2=%f",result);

break;

}

case '-':

{

result=nm1-nm2;

printf("nthe result of nm1-nm2=%f",result);

break;

}

case '*':

{

result=nm1*nm2;

printf("nthe result of nm1*nm2=%f",result);

break;

}

case '/':

{

if (nm2 == 0.0)

// you can't devide by zero

break;

result=nm1/nm2;

printf("nthe result of nm1/nm2=%f",result);

break;

}

default :

printf("nyou enter unknown operator:n");

break;

}

printf("nAgain: (y/n)");

}while( ( ch=getche() ) == 'y' );

return(0);

}
#3

سلام ,,,

جزاك الله خيراً وماقصرت ,,,,

ماشاء الله البرنامج اشتغل عندي % بس بغيت

أستفسر عن إضافتك للـ(getche())في البداية عند الـ(switch)

وأيضاً إضافة الشرط if (nm2 == 0.0)

// you can't devide by zero

وأيضاً إضافتك للبريك في الدفيلت{printf("nyou enter unknown operator:n");

break;}

ومشكور ياغالي::

#4

بسم الله الرحمن الرحيم

اولا الحمد لله على ان البرنامج اشتغل :D

ثانيا بالنسبة لــ:

1- اضافة ()getche عند السويتش فهذه اسهل من استخدام scanf بحيث تاخذ القيم من المستخدم مباشرة دون الحاجة لاستخدام متغير في الذاكرة واخذ مساحة أكبر في الذاكرة.

2- اضافة الشرط الذي يعبر عن اذا كانت القيمة الثانية في عملية القسمة تساوي صفر لانه اذا كانت تساوي صفر فان القسمة

تكون خطا( مثل 10 قسمة 0 ) فلو حذفت الشرط مثلا فاما يعلق عليك البرنامج او يعطيك قيمة غريبة نوعا ما (وهذا في المترجمات الحديثة)

3- بالنسبة للديفاولت والبريك فانا اخذتها من عندك في نفس الكود ولو حذفت البريك ما حيتغير معاك شي باذن الله لان الديفاولت موجودة اخر السويتش وبالتالي اكيد حتخرج اما باستخدام break او بدونها.

4- العفو ولا تنسانا بصالح الدعــاء ...

#5

السلام عليكم ....

أشكرك جداً على ردودك السريعة وتجاوبك وأرجو أن لا أكون عليكم

عبئاً ثقيلاً وماقصرت ياخوي.

وخير الكلام ماقل ودل ::::: إلا في شرح البرامج ,,,,

وجزاك الله خير وربنا يوفقنا ويوفق الجميع لما يحب ويرضى,,,,

هذا الموضوع مغلق.

مواضيع مشابهة