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

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

مغلق
بدأه modi11 في 11 يوليو 2007 · 32 رد · 5,861 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

مرحبا شباب

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

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

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

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

اخوكم محمد

1
#2

مستعجل ليه ؟

هو لسه فيه دراسة لحد دلوقت ؟؟؟؟؟؟؟؟؟؟؟

تم تعديل هذه المشاركة بواسطة Pharaonic_Guy في 11 يوليو 2007 في 02:21

#3

اي اخي انا بدرس بجامعة خاصة بسوريا

وبكرا عندي تسليم هاد المشروع ، و انا جربت كتير وحاولت كتير بس دائما كانت تطلعلي مشكلة ما اقدر عيلها

او نكشة متل ما منسميها

وكنت بتمنى لو انك ساعدتني

وبنتظر المساعدة من الشباب التانيين

وناطر انا

#4

انتظر قليلا وسأعطيك مثال ..

لكن عايز أعرف شوية تفاصيل مثل مدي المصفوفة .. هل المصفوفة إحادية

هل المستخدم هو الذي سيدخل حدود المصفوفة أثناء الـ Design Time أم الـ Run Time

#5

اخي المصفوفة ما فارقة شو ما كانت تكون

وانت بتعرف انو المفروض يكون عناصر أسطر المصفوفة الأولى يساوي عدد عناصر أعمدة المصفوفة الثانية

والمستخدم هو اللي حيادخل حدود المصفوفة من خلال input

يعني ادخال بشكل غير مباشر

واي تفاصيل تانية خبرني

#6

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

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

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

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

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

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

بتحب اعطيك مثال رياضي مثلاً

#7
100 OPTION BASE 1
110 CLS
120 INPUT "Enter The range for the array"; R
130 DIM arr1(R): DIM arr2(R)
140 PRINT
150 PRINT " ** Now Enter The First Array Bounds ** "
160 FOR i = LBOUND(arr1) TO UBOUND(arr1)
170	 PRINT "Bound"; i; "From"; UBOUND(arr1); " : "
180	 INPUT arr1(i)
190 NEXT
200 PRINT
210 PRINT " ** Now Enter The Second Array Bounds ** "
220 FOR i = LBOUND(arr2) TO UBOUND(arr2)
230	 PRINT "Bound"; i; "From"; UBOUND(arr2); " : "
240	 INPUT arr2(i)
250 NEXT
260 PRINT
270 FOR i = LBOUND(arr1) TO UBOUND(arr1)
280	 FOR c = LBOUND(arr2) TO UBOUND(arr2)
290		 PRINT "arr1("; STR$(i); ") * arr2("; STR$(c); ") = ";
300		 PRINT STR$(arr1(i)); " * "; STR$(arr2(c)); " = ";
305		 a = arr1(i) * arr2(c)
306		 Print a
310	 NEXT
320 NEXT
330 PRINT "Good Bye!"
340 END
#8

شكرا كتير الك اخي الكريم

بس لسا عندي كام سؤال لحضرتك الكريم

لأني انا هلق عم جرب الكود

وبدي اسألك عن الـ arr1 شو هاي وهل هي بتنوب عل الـ dim يعني

وشغلة تانية أخي الكريم شو هي bound ما فهمتها فينك تشرحلي عملها

وانا جدا جدا جدا شاكر الك اخي الكريم

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

#9

ما الحل بتاعك مضبوط .. ايه الي ناقص ؟

#10

علي فكرة أنا كل ما أجي أرد علي مشاركة سابقة ليك ..

ألاقي ردي نزل تحت مشاركة حالية ليك ..

مع أنك مش موجود في الموضوع

يا ريت تستني شوية لحد ما أكتب رد علي اسئلتلك الأخيرة

تم تعديل هذه المشاركة بواسطة Pharaonic_Guy في 11 يوليو 2007 في 03:31

#11

arr1 هي اسم المصفوفة الأولي

arr2 هو اسم المصفوفة الثانية

وتم التعريف بـ Dim عادي ..

بالنسبة لـ LBOUND فهي تعود لك بأقل حد في المصفوفة Lower Bound ..

بمعني أنه لو كانت حد المصفوفة يبتدي من الواحد وقمت بعمل الأتي :

Lbound(Arr1)

فستعود لك بالقيمة واحد

مثلما تقول أنت بالضبط

for i=1 to m

بالنسبة UBound فهي تعود بأعلي حد في المصفوفة Upper Bound .

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

Ubound(Arr1)

فستعود لك بالقيمة خمسة ..

والسطرين 290 و 300 دول من باب التذويق .. ويمكنك الاستغناء عنهم لو هيكلكعوا الشفرة .. لكنهم منظمين العملية شوية مع الإرشادات الأخري..

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

تم تعديل هذه المشاركة بواسطة Pharaonic_Guy في 11 يوليو 2007 في 03:41

#12

أخي الكريم انا جداً شاكر الك جهودك معي

بالنسبة للـ arr1

فهمت شو هي شكرا الك

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

اخي الكريم بالنسبة لطريقة حلي عم تقول انو صح

انا ما عملت شي غير اني ادخلت مصفوفتين بس ما عملت المصفوفة التالتة اللي انا بدي ياها

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

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

او تقلي شلون بدي استنتجها

والف الف الف شكرا الك اخي الكريم

عنجد ما بعرف كيف بدي اشكرك

#13

مفيش مشكلة

بس أنا عايز أعرف حاجة واحدة

انت عايز تضرب مصفوفة ذات بعدين * مصفوفة ذات بعدين

لو عايز كده فيا ريت تقولي ليه ؟ وعايز تعملها ازاي .. يعني هتضرب انهو بعد في التاني ..

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

وأدي الشفرة بعد التعديل ..

المصفوفة ArrFinal هيبقي فيها ناتج ضرب كلا المصفوفتين في النهاية ..

100 OPTION BASE 1
110 CLS
120 INPUT "Enter The range for the array"; R
130 DIM arr1(R): DIM arr2(R) : DIM ArrFinal(R * 2)
140 PRINT
150 PRINT " ** Now Enter The First Array Bounds ** "
160 FOR i = 1 TO R
170	 PRINT "Bound"; i; "From"; R; " : "
180	 INPUT arr1(i)
190 NEXT
200 PRINT
210 PRINT " ** Now Enter The Second Array Bounds ** "
220 FOR i = 1 TO R
230	 PRINT "Bound"; i; "From"; R; " : "
240	 INPUT arr2(i)
250 NEXT
260 PRINT
270 FOR i = 1 TO R
280	 FOR c = 1 TO R
285		 cnt = cnt + 1
290		 PRINT "arr1("; STR$(i); ") * arr2("; STR$(c); ") = ";
300		 PRINT STR$(arr1(i)); " * "; STR$(arr2(c)); " = ";
305		 ArrFinal(cnt) = arr1(i) * arr2(c)
306		 Print arrFinal(cnt)
310	 NEXT
320 NEXT
330 PRINT "Good Bye!"
340 END
#14

أخي الكريم حأعطيك مثال عن المصفوفة اللي بدي ياها

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

| a21 a22 a23| ×. | b21 b22 |

| a31 a32 a33|... | b31 b32 |

=

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

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

إن شاء الله تطلع واضحة

تم تعديل هذه المشاركة بواسطة modi11 في 11 يوليو 2007 في 04:29

#15

بتمنى من الأخ الفرعوني يشوف الرد هلق

والمثال للمصفوفات اللي بدي ياها

#16

اطمن .. لسه بدري علي الكلية .. ولا انت ناوي تنام ؟

انا عايز اعرف الحد الأخير

a31 a32 a33

انت وديته النار ليه ..

#17

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

| a21 a22 a23| ×. | b21 b22 |

| b31 b32|

=

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

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

#18

بظن هلق مشي الحال أخي الكريم

مصفوفة الأولى من سطرين و ثلاثة أعمدة

والمصفوفة الثانية من ثلاثة أسطر وعمودين

وأنا بقيان معك أخي الكريم اذا ما عندك شي لوقت اللي بدك ياه

#19

أخي الكريم بس بحب ذكرك انو انا بدي بس المصفوفة التالتة

انا حطيت المصفوفة الأولى والتانية متل ما حضرتك شفت

بس يا ريت تعمل الرموز ووطريقة الكود على نفس الشكل اللي انا كتبتو من قبل بإدخال المصفوفة الاولى والتانية

وانا جدا شاكر الك

#20

طيب يا مان .. انتظرني قليلا

#21

في الإنتظار يا أحلى مااااان والله

عفكرة انا اسمي محمد

#22

لا زلت في الإنتظار

#23

في الإنتظار

#24

سوري يا مان للتأخير

بالنسبة للمسألة .. فالكود بتاعها طلع معقد وطويل قوي قوي قوي ..

ما أعتقدتش أبدا إن هوه ده المطلوب ..

لإنك بتضرب مصفوفات غير متجانسة في الأبعاد .. وعايز تطلع قيم متناسقة .. في مصفوفة أخري مختلفة الأبعاد ..

#25

أخي الكريم

انت بغض النظر عن المصفوفة اللي عطيتك ياها

المهم انو يكون عناصر اسطر المصفوفة الأولى

يساوي

عناصر اعمدة المصفوفة التانية

والتالتة

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

اذا ما حيمشي الحال قلي ولا تتعذب

واذا لأ يا ريت تقلي لأن في سؤال تاني بدي اسألك عليه أخي الكريم

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

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

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

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

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

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