سي بلس بلس-42: العمليات على المتجهات في لغة سي بلس بلس


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

اخوتي الكرام اخواتي الفاضلات

كما هو معروف فأن المصفوفات في لغات البرمجة محدودة جداً من ناحية التلاعب بحجم المصفوفة ولحل هذه الاشكالية تم تطوير مفهوم المتجهات

vectors

والتي تسهل عملية اضافة وحذف وتعديل العناصر في المصفوفات احادية ومتعددة الابعاد وفي ادناه سؤال وجواب عن بعض العمليات الرئيسية في هذا المجال

السؤال:

اكتب برنامج يقوم بإمشاء مصفوفتين، الأولى تحتوي أعداد فردية، والثانية تحتوي أعداد زوجية و المطلوب:
1- إضافة عدد جديد إلى إحدى المصفوفتين.
2- حذف عنصر من المصفوفة.
3-البحث عن عدد بداخل المصفوفة. و يرجع مكان العدد.
4-التعديل على قيمة بداخل مصفوفة.
5-طباعة المصفوفة.
الكود لجواب هذا السؤال هو

#include <iostream>
#include<vector>

using namespace std;

int main()
{ vector<int> odd(10);
vector<int> even(10);
int i, newOdd,element,newEven, oddElementSearch;

cout<<“enter 10 odd numbers for the first matrix”<<endl;
for (i=0;i<10;i++)
{cin>>element;
if (element%2==0)
cout<<“not odd number, try another number”<<endl;
else
odd[i]=element;
}
cout<<“the odd matrix is”<<endl;
for (i=0;i<10;i++)
cout<<odd[i];
cout<<“\n”;
cout<<“Enter 10 even numbers for the second matrix”<<endl;
for (i=0;i<10;i++)
{cin>>element;
if (element%2==1)
cout<<“not even number, try another number”<<endl;
else
even[i]=element;
}
cout<<“the even matrix is”<<endl;
for (i=0;i<10;i++)
cout<<even[i];
cout<<“\n”;

// adding new element to the vectors
cout<<“enter new odd element”<<endl;
cin>>newOdd;
odd.push_back(newOdd);
for (i=0;i<11;i++)
cout<<odd[i];
cout<<“\n”;
cout<<“enter new even element”<<endl;
cin>>newEven;
even.push_back(newEven);
for (i=0;i<11;i++)
cout<<even[i];
cout<<“\n”;
// deleting element from the matrix
// erase the 6th element
odd.erase (odd.begin()+5);
cout<<“the odd vector after deleting the 6th element”<<endl;
for (i=0;i<10;i++)
cout<<odd[i];
cout<<“\n”;

// searching for an element and return its index
cout<<“enter an element in the odd vector to search for its location (index)”<<endl;
cin>>oddElementSearch;
for (i=0;i<10;i++)
{if (odd[i]==oddElementSearch)
cout<<oddElementSearch<<” is in the “<<i<<“th location”<<endl;
else cout<<oddElementSearch<<” is not found”<<endl;
}
// modifying the 4th element value in the even vector
even[3]=even[3]*2;

// printing the odd final vector
for (i=0;i<10;i++)
cout<<odd[i];
cout<<“\n”;

return 0;
}

 

اتمنى ان يكون السؤال وحله مفيداً للجميع

تحياتي

اترك رد

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s