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

مساعدة بالمصفوفات

بدأه Riham Ahmed في 14 ديسمبر 2009 · 9 رد · 1,417 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مرحبا شخباركم الرجاء المساعدة في حل هذا السؤال لانه استصعب علي جداً :( ومو عارفة احله للاسف ياريت تساعدوني قدر الامكان ، السؤال :

اكتب برنامج يقوم طلب ارقام من 1 إلى 5 , ويرفض اي رقم غير ذلك ،ويطلب ادخال القائمة التي ستظهر :

1- عند ادخال الرقم 1 يطلب ادخال عناصر مصفوفة ثنائية 4 في 4 ، ويقوم بطباعتها ومن ثم يرجع الى القائمة الرئيسية .

2- ادخال رقم 2 يطبع عناصر القطرين الرئيسي والثانوي كلاً على صف .

3- ادخال الرقم 3 يقوم البرنامج باضافة الرقم 1 للاعداد الزوجية فقط الموجودة في الصف الاول ورقم 2 للاعداد الزوجية في الصف الثاني ورقم 3 للاعداد الزوجية الموجودة في الصف الثالث ورقم 4 للاعداد الزوجية في الصف الرابع ومن ثم طباعة المصفوفة الجديدة .

4- عند ادخال رقم 4 يطبع مصفوفة جديدة وهي عبارة عن المصفوفة السابقة مبدل عليها القيم الموجودة فوق القطر الرئيسي بالقيم الموجودة تحت القطر الرئيسي(عملية تبديل) .

5- عند ادخال رقم 5 يتوقف البرنامج .

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

#2

كما هي قوانين المنتدى . ارنا محاولتك أولا

وبعدها ستجدين ماترغبين فيه.

تحياتي

OMANI FOR EVER

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

post-12787-12780191801974.jpg

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

#3

الموضوع مخالف و كنت داخل سكره بالإذن من مشرفين القسم و لكن وجود رد الأخ omani منعني

المسألة سهلة جدا جربي اقرئي المادة عندك أو الدروس الموجودة بكثرة هنا و ستصلين للحل و اذا احتجتي مساعدة سنقوم بها

#4

ميرسي شباب هي محاولتي بالحل ،، انا ضعيفة فلا تستغربوا من طريقة حلي :sleep:

int count =0; 
int x ;
int a=[4][4];
while ( count <=5 ){
cin>>"enter number:">>x;
if (x==1){
for(int i =0;i<=3;i++){
for(int j=0;j<=3;j++){
cin>>a[j];
}
}
}
For(i=0;i<=3;i++){
For(j=0;j<=3;j++){
Cout<<a[j];
}
}
cout<<"enter number"<<x;
if(x==2){
For(i=0;i<=3;i++){
For(j=0;j<=3;j++){
If(i==j){
cout<<"Primary"<<a[j];
}
}
}
}
for(i=0;i<=3;i++){
for(j=0;j<=3;j++){
if(i+j=3){
cout<<"Secondary"<<a[j];
}
}
}
cout<<"Enter number:"<<x;
if(x==3){
For(j=0;j<=3;j++)
if(a[0][j] % 2 == 0){
a[0][j]=a[0][j]+1;
}elseif(a[1][j] % 2 == 0){
a[1][j]=a[1][j]+2;
}elseif(a[2][j] % 2 ==0){
a[2][j]=a[2][j]+3;
}elseif(a[3][j] % 2 ==0){
a[3][j]=a[3][j] + 4;
}
}
cout<<"Enter number :"<<x;
count++;
}

طبعا الفرع الرابع ما عرفت احله :wacko:

#5

ممكن توضيح اكثر لهذه النقطة

2-ادخال رقم 2 يطبع عناصر القطرين الرئيسي والثانوي كلاً على صف .

لم افهم اية المطلوب من هذه النقطة

حتى اساعدك في حل السوال

تم تعديل هذه المشاركة بواسطة سار مع الليل في 15 ديسمبر 2009 في 02:15

49940.jpg
#6

تفضلي البرنامج

اتمنى ان يكون المطلوب

#include<iostream.h>
#include<stdlib.h> //to use Exit();
#include<conio.h>// to use clrscr();

void print_matrix(int mt[4][4]);

void main()
{
	int choose,i,j;
	int mt[4][4];
 bg:
	clrscr();
	cout<<"Enter Your Choice Please ..\n   1. Enter Matrix.\n   2.  Print diagonal."
		 <<"\n   3.  Add To Even Numbers.\n   4.  Enter A new Matrix\n   5. Exit\n";
	cin>>choose;
	if(choose<1 || choose>5)
	  {
		cout<<"Wrong Entry... Enter Between 1 and 5 only!";
		goto bg;
	  }

	  switch(choose)
		{
		 case 1:

			for(i=0;i<4;i++)
			  {
				cout<<"Enter Row No:"<<(i+1)<<" Values";
				for(j=0;j<4;j++)
				 cin>>mt[j];
				}
				print_matrix(mt);
				getch();
			break;

			case 2:
			 cout<<"  Matrix diagonals \n";
			 for(i=0;i<4;i++)
				 cout<<"\t"<<mt;
			  cout<<endl;
			  for(i=0;i<4;i++)
				cout<<"\t"<<mt[3-i];
				getch();
			  break;
			case 3:
			for(i=0;i<4;i++)
			  for(j=0;j<4;j++)
				  if((mt[j]%2)==0)
						mt[j]+=(i+1);  //Add one to even Numbers Only
				print_matrix(mt);
				getch();
			  break;
		 case 4:
		  cout<<" Enter Values for the Main diagonal\n";
		  for(i=0;i<4;i++)
			  cin>>mt;
			print_matrix(mt);
			getch();
		  case 5:
		  cout<<"\nProgram Exit";
		  exit (0);
		}
  goto bg;
}

void print_matrix(int mt[4][4])
 {
  int i,j;

  for(i=0;i<4;i++)
	{
	  for(j=0;j<4;j++)
		  cout<<"\t"<<mt[j];
	  cout<<endl;
	}

 }

تحياتي

1

OMANI FOR EVER

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

post-12787-12780191801974.jpg

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

#7

ميرسي Omani كتير حلو شغلك ومنظم وفيه الفكرة اللي بدي اياها ،، لكن بس الفرع الثاني و الرابع مو متل ما بده السؤال :ohmy: ،، انسى الثاني ،، بس الرابع بجد انا اصلا السؤال مش فاهميته :( هو بس بده انه يصير عملية تبديل على المصفوفة الاصلية اللي ادخلناها سابقا في المطلوب الاول ثم غيرنا عليها في المطلوب الثالث ،، يعني المصفوفة نفسها نبدل فيها القيم الموجودة فوق القطر الرئيسي بالقيم الموجودة تحت القطر الرئيسي (عملية تبديل قيم فقط) ثم نطبعها ...يا ريت تساعدوني بهالمطلوب وبكون ممنونيتكم بجد

#8

محد ناوي يساعدني؟؟:(

#9

كود الاخ Omani بعد تعديل المطلوب الرابع

#include<iostream.h> 
#include<stdlib.h> //to use Exit(); 
#include<conio.h>// to use clrscr(); 

void print_matrix(int mt[4][4]); 

void main() 
{ 
        int choose,i,j; 
        int mt[4][4]; 
 bg: 
        //clrscr(); 
        cout<<"Enter Your Choice Please ..\n   1. Enter Matrix.\n   2.  Print diagonal." 
                 <<"\n   3.  Add To Even Numbers.\n   4.  Diagonal Replacements \n   5. Exit\n"; 
        cin>>choose; 
        if(choose<1 || choose>5) 
          { 
                cout<<"Wrong Entry... Enter Between 1 and 5 only!"; 
                goto bg; 
          } 

          switch(choose) 
                { 
                 case 1: 

                        for(i=0;i<4;i++) 
                          { 
                                cout<<"Enter Row No:"<<(i+1)<<" Values"; 
                                for(j=0;j<4;j++) 
                                 cin>>mt[j]; 
                                } 
                                print_matrix(mt); 
                                getch(); 
                        break; 

                        case 2: 
                         cout<<"  Matrix diagonals \n"; 
                         for(i=0;i<4;i++) 
                                 cout<<"\t"<<mt; 
                          cout<<endl; 
                          for(i=0;i<4;i++) 
                                cout<<"\t"<<mt[3-i]; 
                                getch(); 
                          break; 
                        case 3: 
                        for(i=0;i<4;i++) 
                          for(j=0;j<4;j++) 
                                  if((mt[j]%2)==0) 
                                                mt[j]+=(i+1);  //Add one to even Numbers Only 
                                print_matrix(mt); 
                                getch(); 
                          break; 
                 case 4: 
                  cout<<" The Matrix after replacements \n"; 
				  int temp[4][4];
                  for(i=0;i<4;i++) 
                    for(j=0;j<4;j++)
							temp[j]=mt[j];
                        print_matrix(temp); 
                        getch(); 
                  case 5: 
                  cout<<"\nProgram Exit"; 
                  exit (0); 
                } 
  goto bg; 
} 

void print_matrix(int mt[4][4]) 
 { 
  int i,j; 

  for(i=0;i<4;i++) 
        { 
          for(j=0;j<4;j++) 
                  cout<<"\t"<<mt[j]; 
          cout<<endl; 
        } 

 }

ارجو ان يكون هو المطلوب ، تحياتي

1
#10

شكرا اخي اسامة هذا هو المطلوب فعلا :) :wub: وشكرا لك اخي عماني ولكل من ساعدني :wub:

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