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

عندي مشكله في اسناد قيم لمصفوفه ذات 3 ابعاد

بدأه THE HERO في 16 يناير 2009 · 10 رد · 936 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

انا عندي مشكله في اسناد قيم لمصفوفه بـ 3 ابعاد

حاولت كثير لكن ماعرفت !

ابي اعمل تقويم بفنكشن يكون الارقيومنت حقها مصفوفه بـ 3 ابعاد

وهذي هي محاولتي ,,

 void fillDays(int days[WEEKS][DAYS][MONTHS]) { 
	 int i,j,u;
	 int test=0;
  for ( i=0; i<MONTHS; i++)
  {
	  for ( j=0; j<WEEKS;j++)
	  {
		  for (  u=0; u<DAYS; u++)
		  {
			  days[j]=test;
			  test++;
			  if (test==nDaysPerMonth1430)
			  break;
		  }
	  }   
  }

  for (i=0; i<MONTHS; i++)
  {

	  for ( j=0; j<WEEKS;j++)
	  {
		  for (  u=0; u<DAYS; u++)
		  {
			  cout<<endl<<days[j];
		  }
	  }   
  }

وابي الشكل النهائي يكون مثل هذا الشهر في التقويم

1430 Muharram

Fr Th We Tu Mo Su Sa

5 4 3 2 1

12 11 10 9 8 7 6

19 18 17 16 15 14 13

26 25 24 23 22 21 20

29 28 27

ملاحضه 1 يكون تحت mo و 2 تحت tu يعني الارقام تبدا من يسار الرقم 1 وهكذا

والاشهر الباقيه تكون نفس طريقة هذا الشهر علما ان بعضها قد ينقص او يزيد

const int nDaysPerMonth1430[] = {29, 30, 30, 29, 29, 30, 29, 30, 29, 30, 29, 30};

وهذي مصفوفه فيها نهايات الاشهر مرتبه من الشهر الاول

اتمنى تساعدوني

ولكم جزيل الشكر ,,

تم تعديل هذه المشاركة بواسطة THE HERO في 16 يناير 2009 في 22:20

#2

السلام عليكم هذا الكود قد يساعدك.

  1. #include <iostream>
  2. #include <iomanip>
  3. using namespace std;
  4. const int WEEKS = 4;
  5. const int DAYS =7;
  6. const int MONTHS =12;
  7. const int nDaysPerMonth1430[] = {29, 30, 30, 29, 29, 30, 29, 30, 29, 30, 29, 30};
  8. void fillDays(int days[][WEEKS][DAYS]);
  9.  
  10. int main()
  11. {
  12. int days[MONTHS][WEEKS][DAYS];
  13. fillDays(days) ;
  14. int i,j,u;
  15. int ok=0;
  16. for ( i=0; i<MONTHS; i++)
  17. {
  18. cout<<"n Mounth :"<<i+1<<" nn";
  19. for ( j=0; j<WEEKS;j++)
  20. {
  21. cout<<"Week:"<<j+1<<" Fr Th We Tu Mo Su San ";
  22.  
  23. for ( u=0; u<DAYS; u++)
  24. {
  25.  
  26.  
  27. cout<<setw(2)<<setfill('0')<<days[i][j][u]<<" ";
  28.  
  29. }
  30. cout<<endl;
  31. }
  32. }
  33. cin.get();
  34. return 0;
  35. }
  36.  
  37.  
  38.  
  39.  
  40. void fillDays(int days[][WEEKS][DAYS]) {
  41. int i,j,u;
  42.  
  43. int test=0;
  44.  
  45. for ( i=0; i<MONTHS; i++)
  46. {
  47. for ( j=0; j<WEEKS;j++)
  48. {
  49. for ( u=0; u<DAYS; u++)
  50. {
  51. test++;
  52. days[i][j][u]=test;
  53. if(nDaysPerMonth1430[i]==test) test=0;
  54.  
  55.  
  56. }
  57. }
  58. }
  59. }
  60.  

tvquran_6.gif

#3

يعطيكـ العآفيهـ اخوي فهد ماقصرت

بس عندي مشكلتين بسيطه

ابي الشهر يبدا من اليمين الي اليسار مثل هذا الشهر

Fr Th We Tu Mo Su Sa

1 2 3 4 5

6 7 8 9 10 11 12

13 14 15 16 17 18 19

20 21 22 23 24 25 26

27 28 29

وتكون البداية من يوم الاثنين

وفي السؤال معطيني شيئين هما

enum weekDay {Saturday, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday};

const enum weekDay d01y01m1430 = Monday;

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

وشاكر لكم جهودكم

تم تعديل هذه المشاركة بواسطة THE HERO في 18 يناير 2009 في 20:50

#4

إذا كان في السؤال لم يشرط عليك فأسهل طريقه اجعل الاسبوع يبدأ من يوم الاثنين.

بالنسبة لتركيب المصفوفة من 3 ابعاد هل هو مطلوب في السؤال؟

tvquran_6.gif

#5
اقتباس
إذا كان في السؤال لم يشرط عليك فأسهل طريقه اجعل الاسبوع يبدأ من يوم الاثنين.

بالنسبة لتركيب المصفوفة من 3 ابعاد هل هو مطلوب في السؤال؟

void fillDays(int days[WEEKS][DAYS][MONTHS])

const int WEEKS = 5;

const int DAYS = 7;

const int MONTHS = 12;

هذا هو الفنكشن والارقيومنت هي مصفوفه 3 ابعاد

في السؤال يطلب مني اني ابدا في الشهر الاول من يوم الاثنين فقط اما باقي الشهور ابدا من السبت

ان شاء الله يكون ردي واضح

#6
  1. days[WEEKS][DAYS][MONTHS]
  2.  

هل هذا الترتيب منطقي

شهر ثم اسبوع ثم يوم

tvquran_6.gif

#7

في السؤال محدد لي days[WEEKS][DAYS][MONTHS]

وتحديده صحيح لان الصفوف تكون فيها الاسابيع والاعمده فيها الايام

#8

طيب سوف أفكر فيها ان وجدت طريقه سوف اكتبها هنا ان شاء الله.

tvquran_6.gif

#9

شكرا على اهتمامك تعبتك معي

#10

السلام عليكم:

هذا الكود وارجو ان يكون مفيد لك.

  1. #include <iostream>
  2. #include <iomanip>
  3. using namespace std;
  4.  
  5. enum weekDay {Saturday, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday};
  6. const int nDaysPerMonth1430[] = {29, 30, 30, 29, 29, 30, 29, 30, 29, 30, 29, 30};
  7. const int WEEKS = 5;
  8. const int DAYS = 7;
  9. const int MONTHS = 12;
  10. const char weekDayStr[7][3] = {"Sa", "Su", "Mo", "Tu", "We", "Th", "Fr"};
  11. const char monthStr[12][20] = {"Muharram ", "Safar ", "Rabi' Al-Awwal ", "Rabi' Al-
    Akhir ", "Jumada Al-Awwal ", "Jumada Al-Akhir ", "Rajab ", "Sha'aban ", "Ramadan
    ", "Shawwal ", "Dhu Al-Qi'da ", "Dhu Al-Hijjah "};
  12.  
  13. void fillDays(int days[WEEKS][DAYS][MONTHS]);
  14. void show()
  15. {
  16.  
  17. int days[WEEKS][DAYS][MONTHS];
  18.  
  19. fillDays(days);
  20. for(int k=0;k<MONTHS;k++)
  21. {
  22. cout<<"xDA"<<setw(21)<<setfill('xC4')<<"xBFn"<<"xB3"<<setw(19)<<setfill(' ')<<monthStr[k]<
    <"xB3"<<endl<<"xC0"<<setw(21)<<setfill('xC4')<<"xD9n";
  23. for(int h=6;h>=0;cout<<weekDayStr[h]<<" ",h--);
  24. cout<<endl;
  25. for(int i=0;i<WEEKS;i++){
  26. for(int j=DAYS-1;j>=0;j--){
  27. (days[i][j][k])?cout<<right<<setw(2)<<setfill(' ')<<days[i][j][k]: cout<<" ";
  28. if(j) cout<<" ";
  29. }
  30. cout<<endl;
  31. }
  32. }
  33. }
  34.  
  35. int main()
  36. {
  37. show();
  38. return 0;
  39. }
  40.  
  41.  
  42.  
  43. void fillDays(int days[WEEKS][DAYS][MONTHS])
  44. {
  45. int t, u=Monday;
  46. for(int k=0;k<MONTHS;k++)
  47. {
  48. if(k)u+=(nDaysPerMonth1430[k-1]-28);
  49. if(u>6)u%=DAYS;
  50. t=1;
  51. for(int i=0;i<WEEKS;i++)
  52. for(int j=0;j<DAYS;j++)
  53. ((i==0 && j<u)||(t>nDaysPerMonth1430[k]))? days[i][j][k]=0:days[i][j][k]=t++;
  54. }
  55. }
  56.  

tvquran_6.gif

#11

يعطيك العافيه اخوي فهد ,,

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

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

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

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

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