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

التقاطع والإتحاد والفرق بين المجموعات

مغلق
بدأه المشاكسة في 26 أبريل 2004 · 5 رد · 10,865 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاتة ...............

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

فمثلا عندما أريد أيجاد الأتحاد بين مجموعتين لم أستطع تنفيذة بالسي

فلقد أسخدمت 2 ARRAY وأملاتها بالبيانات ولكن عندماأوجد الاتحاد بينهما أذا كان هناك

رقم متكرر في المجوعتين فإنه يكتبه لي مرتين .... وكذلك نفس المشكلة تواجهني في

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

ولاتوجد في المجوعة الثانيه فلا أستطيع إيجادها ....وكذلك في التقاطع ....

فأرجو من يعرف لهذة المشكلة مساعدتي .........

#2

السلام عليكم

يوجد بعض الادوات التى يمكنك الاستعانه بها وهى :

set_intersection()
set_union()
 set_difference()

انا لم استخدمها من قبل فارجو من احد الاخوه او الاخوات القيام بشرحها.

والسلام

تم تعديل هذه المشاركة بواسطة احمد غريب في 26 أبريل 2004 في 20:32

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#3

بالنسبة للتقاطع intersection

يكون لدينا مصفوفتين و تقاطعهما العناصر الموجودة في الأولى و الثانية معاً ونستبعد العناصر الموجودة في a فقط أو الموجودة في b فقط.

لنفرض المثال التالي:

ليكن لدينا مصفوفة a = 1,2,3,4,5 ؛

ومصفوفة أخرى b = 4,5,6,7,8 ؛

فإن التقاطع سيكون 4,5

سنقوم بتكرار داخل تكرار نختبر فيه عنصر من a بكل عناصر b في حالة وجود تساوي نطبع القيمة على الفور.

أعرف أن هذا الحل بدائي وقد يكون هناك دوال جاهزة تقوم بهذا العمل لكن التفكير ببساطة لإيجاد حل للمشكلة يحسن قدرات المبرمج .

وهذا الكود سيوضح الفكرة:

#include <iostream>
using namespace std;

int main()
{
	int a[5],b[5];

	cout<<"enter elements of a:\n";
	for(int i=0;i<5;i++)
	{
  cout<<"a["<<i<<"]=";
  cin>>a;
	}

	cout<<"enter elements of b:\n";
	for(i=0;i<5;i++)
	{
  cout<<"b["<<i<<"]=";
  cin>>b;
	}

	cout<<"a intersection b = ";
	for(i=0;i<5;i++)
	{
  for(int j=0;j<5;j++)
  {
 	 if(a==b[j])
    cout<<a<<"\t";
  }
	}

	cout<<"\n";
	return 0;
}
#4

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

بالنسبة لفكرة التقاطع طلع الكود صح وقدرة أساوي كود الأتحاد

بس الكود الي أقدر أعمل فية عملية الفرق بين المجموعات (وهو العناصر الي تكون في

المجموعة الأولي ولا توجد في المجموعة الثانية) مو راضي يسير معاي ....

فأرجو أذا كان أحد عنده فكرة للحل يقولها لي وأنا بكمل الحل .......

#5

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

الفرق بين مجموعتين

فكرتيه بسيطه

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

اذا كان العنصر مايساوي العناصر المحموعه الثانيه نضعها في مجموعه جديده

حسب رغبتنا او نعمل لها cout

#include <iostream.h>
 #include <conio.h>
void main()
{
int a[5],b[5],flag;

cout<<"enter elements of a:\n";
for(int i=0;i<5;i++)
{
 cout<<"a["<<i<<"]=";
 cin>>a;
}

cout<<"enter elements of b:\n";
for(int i=0;i<5;i++)
{
 cout<<"b["<<i<<"]=";
 cin>>b;
}

cout<<"a diferent b = ";
for(int i=0;i<5;i++)
{    flag=1;
 for(int j=0;j<5;j++)
 {
  if(a==b[j])
   flag=0;
   }
    if(flag==1)
     cout<<a<<'\t';



 }


getch();
};

لا تنسينا من صالح دعائك
#6

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

شكرا Mrs.n لمساعدتك

وجزاك الله خيرا ............

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

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

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

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

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

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