• 0
  • مالي خلق
  • أتهاوش
  • متضايق
  • مريض
  • مستانس
  • مستغرب
  • مشتط
  • أسولف
  • مغرم
  • معصب
  • منحرج
  • آكل
  • ابكي
  • ارقص
  • اصلي
  • استهبل
  • اضحك
  • اضحك  2
  • تعجبني
  • بضبطلك
  • رايق
  • زعلان
  • عبقري
  • نايم
  • طبيعي
  • كشخة
  • صفحة 1 من 2 12 الأخيرةالأخيرة
    النتائج 1 إلى 15 من 17

    الموضوع: تكفووون ساعدوني (طلب بسيط)..

    1. #1
      التسجيل
      13-11-2004
      المشاركات
      11
      المواضيع
      3
      شكر / اعجاب مشاركة

      Unhappy تكفووون ساعدوني (طلب بسيط)..

      السلام عليكم ورحمة الله وبركاته
      أنا عضوه جديدة في المنتدى بصراحه عجبني كثيييرررر وسجلت ..
      انا ادرس برمجة حاسب وتوني مبتدئه مالي كم شهر من بديت اتعلم لغة السي بلس بلس
      حاولت اسوي برنامج ضرب مصفوفات لكن كل مرره افشل
      ودي احد يسويه لي اذا ما عليه كلافه
      على فكره انا اشتغل على Borland ..
      (( برنامج يقوم بضرب مصفوفتين ماتكون احاديه ( يعني لها اعمده وصفوف) واظهار المصفوفتين على الشاشه والمصفوفه الناتجة))
      طلب بلييززززززز لاتردوني ..
      وجزاه الله خير إلي بيسويه والله يجعله في ميزان حسناته..

    2. #2
      التسجيل
      11-04-2002
      الدولة
      سوريا
      المشاركات
      760
      المواضيع
      76
      شكر / اعجاب مشاركة

      مشاركة: تكفووون ساعدوني (طلب بسيط)..

      الحل يعتمد على الحلقات المتداخلة و سنستخدم 3 حلقات for .. بافتراض أن المصفوفة الثنائية رباعية أو ثلاثية .. إلخ و هذا البعد مخزن في الثابت m .. و حيث أن :
      i هي السطر .. j هي العمود .. k من أجل عملية الضرب التجميعي .. لأن c[1,1] تساوي مجموع ضرب السطر الأول من المصفوفة الأولى في العمود الأول من المصفوفة الثانية و هكذا ..
      الحل كالتالي :
      كود:
      for (int i=1; i<=m; i++)
      	for (int j=1; j<=m; j++)
      		for (int k=1; k<=m; k++)
      			c[i][j] = c[i][j] + a[i][k] * b[k][j];
      حيث أن المصفوفة الأولى هي a و الثانية هي b و الناتجة هي c .. و هذا هو الحل كامل مع إدخال المصفوفتين a و b :
      كود:
      #include <iostream.h>
      
      const int m = 2;
      int a[m][m];
      int b[m][m];
      int c[m][m] = {{0,0},{0,0}};
      
      void sum();
      
      void main()
      {
      	// Enter
      	cout << "Enter Array a[] : " << endl;
      	for (int i=1; i<=m; i++)
      		for (int j=1; j<=m; j++)
      		{
      			cout << "a[" << i << "," << j << "] = ";
      			cin >> a[i][j];
      		}
      
      	cout << "Enter Array b[] : " << endl;
      	for (i=1; i<=m; i++)
      		for (int j=1; j<=m; j++)
      		{
      			cout << "b[" << i << "," << j << "] = ";
      			cin >> b[i][j];
      		}
      
      	// Process
      	sum();
      
      	// Printing
      	for (i=1; i<=m; i++)
      	{
      		for (int j=1; j<=m; j++)
      			cout << c[i][j] << "\t";
      		cout << endl;
      	}
      }
      
      void sum()
      {
      	for (int i=1; i<=m; i++)
      		for (int j=1; j<=m; j++)
      			for (int k=1; k<=m; k++)
      				c[i][j] = c[i][j] + a[i][k] * b[k][j];
      }
      أنا أستخدم نسخة Microsoft Visual C++ 6 و ليس نسخة الـ Borland و لكنها متشابهة يعني لا يوجد إختلاف .
      ملاحظة / في كود الطباعة لقد قمت بطباعة المصفوفة الناتجة فقط و عليك بالباقي كتمرين
      لا إله إلا الله
      مشروع لتعليم أساسيات لغة الـ ++C :
      -
      موضوع لتعليم الفيجوال بيسك 6 :

    3. #3
      التسجيل
      13-11-2004
      المشاركات
      11
      المواضيع
      3
      شكر / اعجاب مشاركة

      مشاركة: تكفووون ساعدوني (طلب بسيط)..

      مشكووووووووووووووووووور أخ wolf sniper

      ماقصرت .. الله يجعله في ميزان حسناتك ..

      أنا نسخت الكود بجربه وأحااول افهمه ..

    4. #4
      التسجيل
      13-11-2004
      المشاركات
      11
      المواضيع
      3
      شكر / اعجاب مشاركة

      مشاركة: تكفووون ساعدوني (طلب بسيط)..

      اهلا

      جربته بس ..

      عندي بعض الاسئله ...

      * البرنامج مارضى يشتغل إلا لما اعرف في بدايه البرنامج i , k , j

      **بعدها يشتغل البرنامج ادخل المصفوفتين بس مايطلع الناتج ؟

      *** ايش تقصد في السطر الأخير؟؟ (( c[i][j] = c[i][j] + a[i][k] * b[k][j]; ))



      اتمنى اني مااكون تعبتك .. بس ترى مبتدئة
      التعديل الأخير تم بواسطة الكتكوته ; 18-11-2004 الساعة 02:19 AM

    5. #5
      التسجيل
      11-04-2002
      الدولة
      سوريا
      المشاركات
      760
      المواضيع
      76
      شكر / اعجاب مشاركة

      مشاركة: تكفووون ساعدوني (طلب بسيط)..

      اقتباس المشاركة الأصلية كتبت بواسطة الكتكوته
      اهلا

      جربته بس ..

      عندي بعض الاسئله ...

      * البرنامج مارضى يشتغل إلا لما اعرف في بدايه البرنامج i , k , j

      **بعدها يشتغل البرنامج ادخل المصفوفتين بس مايطلع الناتج ؟

      *** ايش تقصد في السطر الأخير؟؟ (( c[i][j] = c[i][j] + a[i][k] * b[k][j]; ))



      اتمنى اني مااكون تعبتك .. بس ترى مبتدئة
      1- كنت أعتقد أنه لا توجد إختلافات بين نسخ ++C و لكني كنت على خطأ .. ففي بعض المترجمات Compilor يجب أن تعرف المتحولات الخاصة بالحلقات التكرارية ( for ) قبل بداية الحلقة و ذلك في بعض المترجمات .. (قرأتها من أحد الكتب ) .. سوف أحل هذه المشكلة عندك .

      2- الخطأ بسبب (1) .. جربي هذا الكود :
      كود:
      #include <iostream.h>
      
      const int m = 2;
      int a[m][m];
      int b[m][m];
      int c[m][m] = {{0,0},{0,0}};
      int i = 0;
      int j = 0;
      int k = 0;
      
      void sum();
      
      void main()
      {
      	// Enter
      	cout << "Enter Array a[] : " << endl;
      	for (i=0; i<m; i++)
      		for (j=0; j<m; j++)
      		{
      			cout << "a[" << i << "," << j << "] = ";
      			cin >> a[i][j];
      		}
      
      	cout << endl;
      	cout << "Enter Array b[] : " << endl;
      	for (i=0; i<m; i++)
      		for (j=0; j<m; j++)
      		{
      			cout << "b[" << i << "," << j << "] = ";
      			cin >> b[i][j];
      		}
      	
      	// Process
      	sum();
      	
      	// Printing
      	cout << endl;
      	for (i=0; i<m; i++)
      	{
      		for (j=0; j<m; j++)
      			cout << c[i][j] << "\t";
      		cout << endl;
      	}
      }
      
      void sum()
      {
      	for (i=0; i<m; i++)
      		for (j=0; j<m; j++)
      			for (k=0; k<m; k++)
      				c[i][j] = c[i][j] + a[i][k] * b[k][j];
      }
      3- البرنامج كله في هذا الكود .. فكرته هي نفسها عندما تقومين بضرب مصفوفتين .. فضرب السطر الأول في العمود الثاني يعطينا C[1,2] .. و العملية تتم عن طريق ضرب العنصر الأول في السطر الأول (مصفوفة1) مع العنصر الأول في العمود الثاني (مصفوفة 2) و جمع الناتج ( لهذا كررت C[i,j] ) مع حاصل ضرب العنصر الثاني من السطر الأول (مصفوفة 1) مع العنصر الثاني من العمود الثاني (مصفوفة 2) .. و هكذا بقية عناصر المصفوفة الناتجة .

      و هذا ما يوضحه هذا الكود .. فـ i تشير إلى السطر .. و j تشير إلى العمود .. و k من أجل عملية الضرب السابقة التي شرحتها لك .. ولو تتبعتي الحلقات من البداية و قمت بتسجيل قيم i و j و k و وضعتها في الكود الأخير فستفهمين العملية .. أنا أعرف أن هناك بعض الصعوبة في فهم الحلقات المتداخلة لأول وهلة و لكن مع التمرين تصبح أسهل ..

      يجب أن يكون البرنامج عندك مثل هذه الصورة المرفقة .. تحياتي
      الصور المصغرة للصور المرفقة الصور المصغرة للصور المرفقة Array.JPG‏  
      لا إله إلا الله
      مشروع لتعليم أساسيات لغة الـ ++C :
      -
      موضوع لتعليم الفيجوال بيسك 6 :

    6. #6
      التسجيل
      13-11-2004
      المشاركات
      11
      المواضيع
      3
      شكر / اعجاب مشاركة

      مشاركة: تكفووون ساعدوني (طلب بسيط)..

      اهلا


      جربته واشتغل بس شكله فيه مشكله عندي

      ادخل قيم المصفوفات عادي واذا دخلت القيمه الاخيره للمصفوفه الثانيه وضغطت انتر,,

      كأنها تطلع الاجابه بس تختفي شاشه الدوس ,, يعني مايمديني اشوفها \


      ما أدري ايش المشكله ,,

    7. #7
      التسجيل
      11-04-2002
      الدولة
      سوريا
      المشاركات
      760
      المواضيع
      76
      شكر / اعجاب مشاركة

      مشاركة: تكفووون ساعدوني (طلب بسيط)..

      اقتباس المشاركة الأصلية كتبت بواسطة الكتكوته
      اهلا


      جربته واشتغل بس شكله فيه مشكله عندي

      ادخل قيم المصفوفات عادي واذا دخلت القيمه الاخيره للمصفوفه الثانيه وضغطت انتر,,

      كأنها تطلع الاجابه بس تختفي شاشه الدوس ,, يعني مايمديني اشوفها \


      ما أدري ايش المشكله ,,
      إذا كنتي تريدين مشاهدة نتائج البرنامج إضغطي Ctrl + F5 و عندها تستطيعين مشاهدة كامل العمليات .. أما إذا ضغطي على F5 فقط فسوف يعمل البرنامج و لكن سوف يخرج فور الانتهاء من جميع الأوامر لذلك دائما استخدمي Ctrl + F5 .. و هو اختصار لأمر Execute .
      لا إله إلا الله
      مشروع لتعليم أساسيات لغة الـ ++C :
      -
      موضوع لتعليم الفيجوال بيسك 6 :

    8. #8
      التسجيل
      13-11-2004
      المشاركات
      11
      المواضيع
      3
      شكر / اعجاب مشاركة

      مشاركة: تكفووون ساعدوني (طلب بسيط)..

      اهلا

      اذا ضغطت ctrl+F5

      يجيني هذا ..



      انا دايم اشغل البرنامج من العلامه الصفراء إلي زي البرق (Run)

      أو أضغط على ctrl+F9

      ودايم البرنامج تشتغل وتبقى شاشة الدوس لما اقفلها ,,

    9. #9
      التسجيل
      11-04-2002
      الدولة
      سوريا
      المشاركات
      760
      المواضيع
      76
      شكر / اعجاب مشاركة

      مشاركة: تكفووون ساعدوني (طلب بسيط)..

      أووووووه نسيت أنك تستخدمين نسخة Borland فهي تختلف في الإختصارات عن نسخة Microsoft .. طيب .. ابحثي في القوائم File و غيرها أكيد سوف تجدين الأمر المطلوب لإيقاف الشاشة عند الإنتهاء من عمل البرنامج .
      لأني لا أعرف ما هي الإختصارات أو القوائم في نسخة Borland .. هل توجد قائمة تسمى Build ؟ أو ربما تجدين في أحد القوائم الأمر Compile .
      لا إله إلا الله
      مشروع لتعليم أساسيات لغة الـ ++C :
      -
      موضوع لتعليم الفيجوال بيسك 6 :

    10. #10
      التسجيل
      13-11-2004
      المشاركات
      11
      المواضيع
      3
      شكر / اعجاب مشاركة

      مشاركة: تكفووون ساعدوني (طلب بسيط)..

      ما لقيييت

      طيب ليه البرامج تبقى على الشاشه إلا هذا ؟

      مالقيت هذي الاوامر

      لقيت compiler

      بس يبحث عن الاخطاء في البرنامج وبس ..

      ماتجي شاشه الدوس..

      خلاص مو مشكله بوريه احد ثاني احس اني احرجتك بأسإلتي وانت ما تستخدم بورلاند..

    11. #11
      التسجيل
      12-04-2001
      الدولة
      here & there
      المشاركات
      1,003
      المواضيع
      67
      شكر / اعجاب مشاركة

      Talking مشاركة: تكفووون ساعدوني (طلب بسيط)..

      اضيفي السطرين هذولي باخر البرنامج قبل return 0; =)
      كود:
      char temp;
      cin >> temp;

      Soulstaker of Ragnarok

    12. #12
      التسجيل
      11-04-2002
      الدولة
      سوريا
      المشاركات
      760
      المواضيع
      76
      شكر / اعجاب مشاركة

      مشاركة: تكفووون ساعدوني (طلب بسيط)..

      اقتباس المشاركة الأصلية كتبت بواسطة soultaker
      اضيفي السطرين هذولي باخر البرنامج قبل return 0; =)
      كود:
      char temp;
      cin >> temp;
      الله يجزيك الخير .. أضيفي الأمرين اللي كتبهم الأخ soultaker قبل نهاية التابع main .. و بعد ذلك حاولي إيجاد حل للمشكلة تلك .
      لا إله إلا الله
      مشروع لتعليم أساسيات لغة الـ ++C :
      -
      موضوع لتعليم الفيجوال بيسك 6 :

    13. #13
      التسجيل
      16-08-2002
      الدولة
      الفضاء الخارجي
      المشاركات
      34
      المواضيع
      11
      شكر / اعجاب مشاركة

      مشاركة: تكفووون ساعدوني (طلب بسيط)..

      //اسف لتطفلي
      //واحب اقول ان البرنامج فيه خطأ بسيط وصححته
      #include <iostream.h>

      const int m = 2;
      int a[m][m];
      int b[m][m];
      int c[m][m] = {{0,0},{0,0}};

      void sum();

      int main()
      {
      // Enter
      cout << "Enter Array a[] : " << endl;
      for (int i=1; i<=m; i++)
      for (int j=1; j<=m; j++)
      {
      cout << "a[" << i << "," << j << "] = ";
      cin >> a[i][j];
      }

      cout << "Enter Array b[] : " << endl;
      for (i=1; i<=m; i++)
      for (int j=1; j<=m; j++)
      {
      cout << "b[" << i << "," << j << "] = ";
      cin >> b[i][j];
      }

      // Process
      sum();

      // Printing
      for (i=1; i<=m; i++)
      {
      for (int j=1; j<=m; j++)
      cout << c[i][j] << "\t";
      cout << endl;
      }
      return 0;
      }

      void sum()
      {
      for (int i=1; i<=m; i++)
      for (int j=1; j<=m; j++)
      for (int k=1; k<=m; k++)
      c[i][j] = c[i][j] + a[i][k] * b[k][j];
      }

    14. #14
      التسجيل
      16-08-2002
      الدولة
      الفضاء الخارجي
      المشاركات
      34
      المواضيع
      11
      شكر / اعجاب مشاركة

      مشاركة: تكفووون ساعدوني (طلب بسيط)..

      #include <iostream.h>

      const int m = 2;
      int a[m][m];
      int b[m][m];
      int c[m][m] = {{0,0},{0,0}};

      void sum();

      int main()
      {
      // Enter
      cout << "Enter Array a[] : " << endl;
      for (int i=1; i<=m; i++)
      for (int j=1; j<=m; j++)
      {
      cout << "a[" << i << "," << j << "] = ";
      cin >> a[i][j];
      }

      cout << "Enter Array b[] : " << endl;
      for (i=1; i<=m; i++)
      for (int j=1; j<=m; j++)
      {
      cout << "b[" << i << "," << j << "] = ";
      cin >> b[i][j];
      }

      // Process
      sum();

      // Printing
      for (i=1; i<=m; i++)
      {
      for (int j=1; j<=m; j++)
      cout << c[i][j] << "\t";
      cout << endl;
      }
      return 0;
      }

      void sum()
      {
      for (int i=1; i<=m; i++)
      for (int j=1; j<=m; j++)
      for (int k=1; k<=m; k++)
      c[i][j] = c[i][j] + a[i][k] * b[k][j];
      }

    15. #15
      التسجيل
      11-04-2002
      الدولة
      سوريا
      المشاركات
      760
      المواضيع
      76
      شكر / اعجاب مشاركة

      مشاركة: تكفووون ساعدوني (طلب بسيط)..

      أين الخطأ في البرنامج ؟
      لا إله إلا الله
      مشروع لتعليم أساسيات لغة الـ ++C :
      -
      موضوع لتعليم الفيجوال بيسك 6 :

    صفحة 1 من 2 12 الأخيرةالأخيرة

    ضوابط المشاركة

    • لا تستطيع إضافة مواضيع جديدة
    • لا تستطيع الرد على المواضيع
    • لا تستطيع إرفاق ملفات
    • لا تستطيع تعديل مشاركاتك
    •