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

ساعدوني في حل برنامج بسيط جدا جدا جدا

بدأه monahe2000 في 2 أبريل 2010 · 4 رد · 1,274 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هذا هو السؤال

Write a program that takes three numbers from the user and print the largest and the smallest number.

ومعناه اكتب برنامج يخليك تدخل ثلاث ارقام ويضهر اكبر رقم واصغر رقم

وهذي محاولتي الفاشلة

#include<iostream>
using namespace std;
int main()
{
int x;
int y;
int z;
int largest ;
int smallest ;
cout<<"enter three number :" <<endl;
cin>>x,y,z;
   if (x > y &&  x > z)
    {
    cout <<"largest : "<<x<< endl;
  }

  getchar();getchar();  
 return 0;

}
#2

السلام عليكم

في محاولة حلّك لقد أهملت حالتين آخرتين فهناك ثلاث احتمالات لحساب العدد الأكبر

الاحتمال الأول:

x>y&&x>z

الاحتمال الثاني :

y>x&&y>z

الاحتمال الثالث:

حتما سيكون الأكبر هو z باعتبار أن الشرط الأول والثاني غير محقق .

ولفهم هذه الخوارزمية انظر إلى الشكل الموجود في كتاب مدخل إلى الخوارزميات و البرمجة .

post-217808-12701952003145_thumb.jpg

و لكن تصور لو لديك ألف عدد و تريد استخراج العدد الأكبر منها لكنت قد وضعت 999 احتمال لذلك استخدم حلقة for حدودها يساوي عدد الأعداد حيث يدخل المستخدم العدد الأول وعندها تخزن هذا العدد في متغير و سمّهِ فرضاً max(أي أسند قيمة max إلى هذا العدد)و ومن ثم ضع داخل حلقة for شرط لوكان العدد المدخل أكبر من max الافتراضي فأسند قيمة العدد المدخل إلى max الافتراضي و من ثم ضم بعد حلقة فور تعليمة إخراج لقيمة max و التي ستكون نهائية .

وكذلك يمكنك فعل الأمر نفسه لإخراج العدد الأصغر و سوف أضع لك الآن كود هذه الحلقة من أجل خمسة أعداد

for(i=2 ; i<=5 ; i++)
	{
		cout << "enter the number no " << i << endl ; 
		cin >> b ;
		if(b>a)
			max=b ;
		else
			max=max ;
	}

	cout << "max =" << max << endl ; 
}

ملاحظة: هنا أربع حدود ، والحد الخامس هو المدخل قبل حلقة for كمتغيرmax

تم تعديل هذه المشاركة بواسطة yahya91 في 2 أبريل 2010 في 11:15

#3

السلام عليكم

كما قال الأخ يحيا. لقد أهملت في برنامجك الحالات الأخرى، وبما أنك تريد الحد الأعلى والأصغر فالإحتمال يتضاعف ليصبح 6.

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

#include<iostream>
using namespace std;
int main()
{
int x;
int y;
int z;
cout<<"enter three number :" <<endl;
cin>>x>>y>>z;
   if (x > y && y>z)
      {cout <<"largest : "<<x<< endl;
      cout <<"smallest : "<<z<< endl;}
  else if(x > z && z>y)
{      cout <<"largest : "<<x<< endl;
      cout <<"smallest : "<<y<< endl;}
  else if(z>y && y>x)
{  cout <<"largest : "<<z<< endl;
  cout <<"smallest : "<<x<< endl;}
  else if(z>x && x>y)
{  cout <<"largest : "<<z<< endl;
  cout <<"smallest : "<<y<< endl;}
    else if(y>z && z>x)
{  cout <<"largest : "<<y<< endl;
  cout <<"smallest : "<<x<< endl;}
    else
{  cout <<"largest : "<<y<< endl;
  cout <<"smallest : "<<z<< endl;}

getchar();getchar(); 
 return 0;

}

وللتعمق أكثر في أكثر من ثلاثة أعداد فيجب عليك إدخال الدالة for أو while

#4

جزاكم الله الف خير على الشرح الوااااااافي نعم لقد اهملت الاحتمالات الاخرى الحل لقيته في ملفاتي بعد مانزلت الموضوع بعدة ساعات وانا مشكلتي تكمن في المحاولات الفاشلة

مشكوورين جدا جدا جدا

#5

طريقة سهلة وبسيطة جدا :

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
   int num1,num2,num3,largest,smallest;

   cout<<" Enter three number : ";
   cin>>num1>>num2>>num3;

	largest=num1;
	if(num2>largest)
	   largest=num2;
	if(num3>largest)
	  largest=num3;

	smallest=num1;
	if(num2<smallest)
	   smallest=num2;
	if(num3<smallest)
	  largest=num3;


	cout<<" largest = "<<largest<<endl<<" smallest ="<<smallest<<endl;



    system("PAUSE");
    return EXIT_SUCCESS;
}

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…