السلام عليكم
مرحبا شباب
من بعد إذنكم بدي كود برنامج على الـ Q BASIC
لإدخال مصفوفتين ومن ثم مصفوفة ناتج ضرب هاتين المصفوفتين
وانا مضطر عليه ومستعجل كتييييييير اليوم او الأن بسرعة
ولا تأخذونا وشكرا كتير الكم
اخوكم محمد
السلام عليكم
مرحبا شباب
من بعد إذنكم بدي كود برنامج على الـ Q BASIC
لإدخال مصفوفتين ومن ثم مصفوفة ناتج ضرب هاتين المصفوفتين
وانا مضطر عليه ومستعجل كتييييييير اليوم او الأن بسرعة
ولا تأخذونا وشكرا كتير الكم
اخوكم محمد
مستعجل ليه ؟
هو لسه فيه دراسة لحد دلوقت ؟؟؟؟؟؟؟؟؟؟؟
تم تعديل هذه المشاركة بواسطة Pharaonic_Guy في 11 يوليو 2007 في 02:21
اي اخي انا بدرس بجامعة خاصة بسوريا
وبكرا عندي تسليم هاد المشروع ، و انا جربت كتير وحاولت كتير بس دائما كانت تطلعلي مشكلة ما اقدر عيلها
او نكشة متل ما منسميها
وكنت بتمنى لو انك ساعدتني
وبنتظر المساعدة من الشباب التانيين
وناطر انا
انتظر قليلا وسأعطيك مثال ..
لكن عايز أعرف شوية تفاصيل مثل مدي المصفوفة .. هل المصفوفة إحادية
هل المستخدم هو الذي سيدخل حدود المصفوفة أثناء الـ Design Time أم الـ Run Time
اخي المصفوفة ما فارقة شو ما كانت تكون
وانت بتعرف انو المفروض يكون عناصر أسطر المصفوفة الأولى يساوي عدد عناصر أعمدة المصفوفة الثانية
والمستخدم هو اللي حيادخل حدود المصفوفة من خلال input
يعني ادخال بشكل غير مباشر
واي تفاصيل تانية خبرني
بالنسبة لبداية الكود انا اشتغلت عليه
وبعتقد اني صحيحة البداية بس مش متأكد
الكود بدايتو على الشكل التالي:
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
هي بالنسبة لإدخال المصفوفتين
بس فضل احجز مكان للمصفوفة التالية وانشئ مصفوفة جديدة ناتجة عن ناتج ضرب المصفوفتين
بتحب اعطيك مثال رياضي مثلاً
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شكرا كتير الك اخي الكريم
بس لسا عندي كام سؤال لحضرتك الكريم
لأني انا هلق عم جرب الكود
وبدي اسألك عن الـ arr1 شو هاي وهل هي بتنوب عل الـ dim يعني
وشغلة تانية أخي الكريم شو هي bound ما فهمتها فينك تشرحلي عملها
وانا جدا جدا جدا شاكر الك اخي الكريم
وما بعرف شلون بدي كافيك غير اني قلك الله يوفقك بحياتك
علي فكرة أنا كل ما أجي أرد علي مشاركة سابقة ليك ..
ألاقي ردي نزل تحت مشاركة حالية ليك ..
مع أنك مش موجود في الموضوع
يا ريت تستني شوية لحد ما أكتب رد علي اسئلتلك الأخيرة
تم تعديل هذه المشاركة بواسطة Pharaonic_Guy في 11 يوليو 2007 في 03:31
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
أخي الكريم انا جداً شاكر الك جهودك معي
بالنسبة للـ arr1
فهمت شو هي شكرا الك
وبالنسبة للتانية كمان فهمتها بس هل بقدر عذبك وتعملها عطريقتي متل ما انا كاتب
اخي الكريم بالنسبة لطريقة حلي عم تقول انو صح
انا ما عملت شي غير اني ادخلت مصفوفتين بس ما عملت المصفوفة التالتة اللي انا بدي ياها
و اللي هي عبارة عن ناتج ضرب المصفوفتين اللي قبل
فيا ترا بقدر عذبك وتكتبلي هاي المصفوفة بطريقة اللي انا كاتب
او تقلي شلون بدي استنتجها
والف الف الف شكرا الك اخي الكريم
عنجد ما بعرف كيف بدي اشكرك
مفيش مشكلة
بس أنا عايز أعرف حاجة واحدة
انت عايز تضرب مصفوفة ذات بعدين * مصفوفة ذات بعدين
لو عايز كده فيا ريت تقولي ليه ؟ وعايز تعملها ازاي .. يعني هتضرب انهو بعد في التاني ..
ما تخليك في الساهل احسن .. مصفوفة ذات بعد واحد ..
وأدي الشفرة بعد التعديل ..
المصفوفة 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أخي الكريم حأعطيك مثال عن المصفوفة اللي بدي ياها
| 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
بتمنى من الأخ الفرعوني يشوف الرد هلق
والمثال للمصفوفات اللي بدي ياها
اطمن .. لسه بدري علي الكلية .. ولا انت ناوي تنام ؟
انا عايز اعرف الحد الأخير
a31 a32 a33
انت وديته النار ليه ..
| a11 a12 a13| ...| b11 b12 |
| a21 a22 a23| ×. | b21 b22 |
| b31 b32|
=
|a11b11+a12b21+a13b31 .........a11b12+a12b22+a13b32|
|a21b11+a22b21+a23b31.......... a21b12+a22b22+a23b32|
بظن هلق مشي الحال أخي الكريم
مصفوفة الأولى من سطرين و ثلاثة أعمدة
والمصفوفة الثانية من ثلاثة أسطر وعمودين
وأنا بقيان معك أخي الكريم اذا ما عندك شي لوقت اللي بدك ياه
أخي الكريم بس بحب ذكرك انو انا بدي بس المصفوفة التالتة
انا حطيت المصفوفة الأولى والتانية متل ما حضرتك شفت
بس يا ريت تعمل الرموز ووطريقة الكود على نفس الشكل اللي انا كتبتو من قبل بإدخال المصفوفة الاولى والتانية
وانا جدا شاكر الك
في الإنتظار يا أحلى مااااان والله
عفكرة انا اسمي محمد
لا زلت في الإنتظار
في الإنتظار
سوري يا مان للتأخير
بالنسبة للمسألة .. فالكود بتاعها طلع معقد وطويل قوي قوي قوي ..
ما أعتقدتش أبدا إن هوه ده المطلوب ..
لإنك بتضرب مصفوفات غير متجانسة في الأبعاد .. وعايز تطلع قيم متناسقة .. في مصفوفة أخري مختلفة الأبعاد ..
أخي الكريم
انت بغض النظر عن المصفوفة اللي عطيتك ياها
المهم انو يكون عناصر اسطر المصفوفة الأولى
يساوي
عناصر اعمدة المصفوفة التانية
والتالتة
تساوي ناتج ضرب المصفوفتين
اذا ما حيمشي الحال قلي ولا تتعذب
واذا لأ يا ريت تقلي لأن في سؤال تاني بدي اسألك عليه أخي الكريم
هذا الموضوع مغلق.
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…