• 0
modi11

مساعدة لبرنامج ضرب مصفوفتين

سؤال

السلام عليكم

مرحبا شباب

من بعد إذنكم بدي كود برنامج على الـ Q BASIC

لإدخال مصفوفتين ومن ثم مصفوفة ناتج ضرب هاتين المصفوفتين

وانا مضطر عليه ومستعجل كتييييييير اليوم او الأن بسرعة

ولا تأخذونا وشكرا كتير الكم

اخوكم محمد

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

32 إجابة على هذا السؤال .

  • 0

السلام عليكم

شباب ما حدا ساعدنا

وانا كتير مضطر عليه اليوم او هلق

من بعد إذنكم بدي كود برنامج على الـ Q BASIC

لإدخال مصفوفتين ومن ثم مصفوفة ناتج ضرب هاتين المصفوفتين

وانا مضطر عليه ومستعجل كتييييييير اليوم او الأن بسرعة

ولا تأخذونا وشكرا كتير الكم

بالنسبة لبداية الكود انا اشتغلت عليه

وبعتقد اني صحيحة البداية بس مش متأكد

الكود بدايتو على الشكل التالي:

cls

dim a(m,n)

dim b(k,f)

input m,n

input k,f

if m=f then

for i=1 to m

for j=1 to n

input a(i,j)

next j

next i

for i=1 to k

for j=1 to f

input b(i,j)

next j

next i

هي بالنسبة لإدخال المصفوفتين

بس فضل احجز مكان للمصفوفة التالية وانشئ مصفوفة جديدة ناتجة عن ناتج ضرب المصفوفتين

يا شباب بس بدي انا المصفوفة التالتة

وهي مثال عن المصفوفات

المصفوفة الثانية المصفوفة الأولى

| a11 a12 a13| ...| b11 b12 |

| a21 a22 a23| ×. | b21 b22 |

| b31 b32|

=

المصفوفة الثالثة

|a11b11+a12b21+a13b31 .........a11b12+a12b22+a13b32|

|a21b11+a22b21+a23b31.......... a21b12+a22b22+a23b32|

اخوكم محمد

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بسم الله الرحمن الرحيم

عملية الضرب بسيطه وليست صعبة لهذا الحد على أساس أن المصفوفة مربعة

جرب الكود التالي

For i = 1 To 4
For j = 1 To 4
For x = 1 To 4
c(i,j) = a(i,x)* b(x,j) + c(i,j)
Next x
Next j
Next i

مع ملاحظة على طريقة تعريف المصفوفات في برنامجك حيث أنني لا أتوقع أن يمشي الحال على هالأساس

كتبته على السريع ولم أجربه

ستحتاج لتعديل شيء بسيط لكي يعمل على أساس مصفوفات بشكل عام

عذرا فأنا مشغول كثير هالأيام لذا قد لا أقدر على مساعدتك أكثر

أمنياتي لك بالتوفيق

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

تم تعديل بواسطه البريشي
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخي البريشي

بدون تجربة الكود .. وبمجرد النظر إليه .. ستجد أنه مليان بالأخطاء ..

أخي محمد ..

أن أسف جداا .. لإني كان لازم أدخل أنام علشان لما أصحي أفكرلك في أسهل وأقل كود يمكن كتابته لحل هذه المسألة .. لإني كنت وصلت لمرحلة كبيرة من عدم التركيز ..

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

علي العموم مرفق الكود بلغة فيجوال بيسيك .. وإذا كنت ما زلت بحاجة إليه .. فسأحوله لك للـ Quick Basic

post-44226-1184177057_thumb.jpg

وأنا أسف مرة أخري ..

arrays.rar

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بسم الله الرحمن الحيم

أخي العزيز Pharaonic_Guy

بدون تجربة الكود .. وبمجرد النظر إليه .. ستجد أنه مليان بالأخطاء ..

كل احترامي لرأيك في الكود لكن جربه بس بعد ما تقرأ كيف تكون عملية ضرب المصفوفات قليلا لوجدت أن الحل صحيح مع ملاحظة أنه يعالج المصفوفات المربعة أي أن المصفوفتان لهما نفس الطول والعرض وهو في المثال 4

بالنسبة لتحفظي على عدم معرفتك بكيفية الضرب في المصفوفات فإن ناتج ضرب المصفوفتان في مثالك يجب أن يكون مصفوفة 2×2 وتأكد من ذلك

حيث أن ضرب المصفوفات يكون كالتالي :

- يجب أن يكون عدد الأعمدة في المصفوفة الأولى يساوي عدد الصفوف في المصفوفة الثانية

- تكون المصفوفة الناتجة عدد صفوفها يساوي عدد صفوف المصفوفة الثانية وعدد أعمدتها يساوي عدد أعمدة المصفوفة الأولى

اذا

المصفوفة الأولى

الصفوف 3

الأعمدة 2

المصفوفة الثانية

الصفوف 2

الأعمدة 3

المصفوفة الناتجة عن الضرب

الصفوف 2

الأعمدة 2

سأحاول حل البرنامج كاملا ثم ارفقه

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

كل احترامي لرأيك ..

سوري يا مان فهمت قصدك الآن ..

أنا كنت بأحسب علامة الجمع التي وضعها بين الحقول علامة فاصلة ليس إلا ..

علي العموم ما زال الكود الذي كتبته صحيح ..

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

تم تعديل بواسطه Pharaonic_Guy
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخي العزيز

هذا هو الكود الذى تبحث عنه تكملة لكود ادخال المعطيات الذى أدخلته

For I = 1 To N

For J = 1 To K

C(J, I) = 0

For NUM = 1 To M

(C(J, I) = C(J, I) + A(NUM, I) * B(J, NUM

Next NUM

Next J

Next I

ملحوظة:-

(C(J,I هى صحيحة هكذا ولاتحاول تعديلها الى (C(I,J

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .