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

حشر عنصر في المصفوفة

مغلق
بدأه cold0zero في 31 ديسمبر 2003 · 1 رد · 900 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
#include<iostream.h>
void main ()
{
	const int size=50;
	int a[size],k,i,j,num,n=0;
	char ch;

	cout<<"Enter the Array and 0 to end"<<endl;
	for (i=0;i<size;i++)
	{
  cin>>a;
  if (a==0)break;
 	 n++;
	}
  
  cout<<endl;
  cout<<"The Array Is :";
	for (i=0;i<n;i++)
 	 cout<<a;
  
  while(n<size)
  {

 	 cout<<endl<<"Please Enter The New Number :";
  cin>>num;
  cout<<endl;
 	 cout<<"Please Enter The New Index :";
  cin>>k;
  cout<<endl;

	for (j=n-1;j>=k;j-- )
  a[j+1]=a[j];
	a[k] = num;
	n++;

	for (i=0;i<n;i++)
	cout<<a<<" ";
	cout<<endl;
  cout<<"Press y to insert another and n to finish :";
  cin>>ch;
  if(ch=='n')break;}
}

هادا برنامح من أجل حشر عنصر في مصفوفة ياريت تشرحولي القسم الأخير منوا بداية من جملة for (j=n-1;j>=k;j-- )

#2

السلام عليكم ,,

أهلين ب cold0zero :

for (j=n-1;j>=k;j-- )
 a[j+1]=a[j];
a[k] = num;
n++;

for (i=0;i<n;i++)
cout<<a<<" ";
cout<<endl;
 cout<<"Press y to insert another and n to finish :";
 cin>>ch;
 if(ch=='n')break;}
}

هذا القسم كالتالي :

بداية المصوفة حجمها الاقصى ثابت 50 وعدد العناصر التي أدخلها المستخدم وهي مايهمنا n ,, الآن لو أردنا حشر عنصر سنضطر لحذف آخر ,, وهذا مايحدث ,, عند حشر خانة جديدة ,, يتم حذف آخر عنصر في المصفوفة دائما ,, لكي يتسع المجال عندا نصل للخانة المطلوبة اضافتها ,,

يعني مثلا خذ عندك مثال :

ول أدخل المستخدم 35 عنصر مثلا ,, عندها n تساوي 35 ,,

لو قرر المستخدم حشر عنصر في الخانة 13 مثلا ,, فسيتم عمل التالي :

for (j=n-1;j>=k;j-- )
 a[j+1]=a[j];

لاحظ أن هذا السطر سيتكرر حتى الوصول للخانة 13 ,و يعني 35-13 مرة يعني 22 مرة ,,

سيتم فيها جعل العنصر رقم 35 يساوي الخانة 34 ,, و34 تساوي 33 ,, 33 = 32 ,, وهكذا حتى 14 تساوي 13 ,, وتتوقف الحلقة فورا ,, لاحظ أن كل العناصر موجودة بعد الحشر ,, ما عدا العنصر الأخير رقم 35 تم هضم قيمته السابقة !!

لتذهب الى السطر التالي لها وهو :

a[k] = num;

حيث يتم وضع القيمة num في الخانة k وهي 13 في حالتنا الآن ,,

ثم :

for (i=0;i<n;i++)
cout<<a<<" ";

لطباعة العناصر بعد الحشر مرة أخرى ,,

والاسطر التي بعدها بالطبع للرغبة في اضافة عنصر جديد ,,

بارك الله فيك ,, أرجوأن أكون قد وفيت ,,

بالتوفيق ,,

banner_60_468.gif

NOTHING IS IMPOSSIBLE

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

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