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

خطأ في مصفوفة

بدأه -الأمل- في 26 مايو 2011 · 20 رد · 1,215 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

class Program

{

static void Main(string[] args)

{

int[] y = new int[4];

y[0] = 1;

y[1] = 0;

y[2] = 1;

y[3] = 0;

int[] g = new int[4];

g[0] = 1;

g[1] = 1;

g[2] = 0;

g[3] = 0;

int[] target = new int[5];

int[] b = new int[4];

int[] wg = new int[4];

int[] a= new int[4];

for (int i = 0; i < g[4]; i++)

post-240687-075365400 1306416631_thumb.p

هذي مصفوفة أريد أن أطبق فيها خوارزمية hebbnet أريد أن أطبقها على دالة AND

بحيث يوجد لدي: مصفوفة g ,y لديها القيم الموضحة

ومصفوفة target يتم فيها تخزين نتيجة الضرب.

wg[w] قانونها : wg[w] = g * target[ta];

a[aa]قانونها

a[aa] = y[j] * target[ta];

b[ba]= نفس قيمة target

نفذت الكود ويظهر هذا الخطأ:

post-240687-010914600 1306417228_thumb.p

المرفقات
مصفوفة.pngخطأ المصفوفة.png

تم تعديل هذه المشاركة بواسطة -الأمل- في 26 مايو 2011 في 16:44

#2

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

اختي المشكله انك عرفتي حجم المصفوفه 4


int[] g = new int[4];

يعني سوف تأخذ فهرس او دليل من 0 الى 3 وانت كتبتي الدليل 4؟؟

تم تعديل هذه المشاركة بواسطة VB Helper في 26 مايو 2011 في 19:27

1

.:: Wish to become better and better ::.

#3
post-240687-051880800 1306530794_thumb.pطيب غيرته ل3 ويطلع ايرور
المرفقات
خطأ.png
#4

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

اختي نفس المشكله في المصفوفه y عرفتيها ب 3 عناصر وقمتي باستخدام الدليل 3؟؟؟

.:: Wish to become better and better ::.

#5

مافهمت يعني ايش المفروض اسوي؟؟؟؟

#6

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

جربي هذا

int[] y = new int[4];

.:: Wish to become better and better ::.

#7

عملت زي كدا وماضبط....

طيب كيف أسند لعناصر المصفوفة قيم 0 أو 1

#8

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

اختي يمكنك الاسناد اعتماد على دليل المصفوفه بس تأكدي انه مش خارج نطاقها .. ويستحسن ارفاق مشروعك للتعديل

.:: Wish to become better and better ::.

#9

طيب جربى كده

 int[] y = new int[4];
        y[0] = 1;
        y[1] = 0;
        y[2] = 1;
        y[3] = 0;
        int[] g = new int[4];
        g[0] = 1;
        g[1] = 1;
        g[2] = 0;
        g[3] = 0;
        int[] target = new int[5];
        int[] b = new int[4];
        int[] wg = new int[4];
        int[] a= new int[4];
        for (int i = 0; i < g.Length; i++) {
            Response.Write(g + "<br/>");
        }

غير كلمة Response بكلاس الى بتقومى بطباعة بيه

الاسم:محمدهلال

البلد:مصر

مبتدى بي اتش بي

#10
VB Helper كتب:

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

اختي يمكنك الاسناد اعتماد على دليل المصفوفه بس تأكدي انه مش خارج نطاقها .. ويستحسن ارفاق مشروعك للتعديل

طيب

ConsoleApplication1.rar

#11

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

اختي اصلا كودك ملخبط شوي .. يعني مشاكل في الاقواس!! انت ايه ناويه تعملي ؟!!

.:: Wish to become better and better ::.

#12

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

جربي هذا الكود يا صحبتي :)

static void Main(string[] args)
        {
            int[] X1 = new int[] { 1, 1, 0, 0 };
            int[] X2 = new int[] { 1,0 ,1 ,0};
            int[] B = new int[] { 1,1,1,1};
            int[] T = new int[4];
            int[] oldW1 = new int[4];
            int[] oldW2 = new int[4];
            int[] oldB = new int[4];
            int[] newW1 = new int[]{0,0,0,0};
            int[] newW2 = new int[]{0,0,0,0};
            int[] newB = new int[]{0,0,0,0};
            for (int i = 0; i < 4; i++)
            {
                T = X1 * X2;
                oldW1 = X1 * T;
                oldW2 = X2 * T;
                oldB = T;

            }
            newW1[0] = newW1[0] + oldW1[0];
            newW2[0] = newW2[0] + oldW2[0];
            newB[0] = newB[0] + T[0];
            for (int i = 1; i < 4; i++)
            {
                newW1 = newW1[i-1] + oldW1;
                newW2 = newW2[i-1] + oldW2;
                newB = newB[i-1] + T;
            }
            Console.WriteLine("  InPut     Target     WeightChanges     NewWeights");
            for (int i = 0; i < 4; i++)
            {
                Console.Write("   ");
                Console.Write(X1);

                 Console.Write( X2);
                  Console.Write(B);
                  Console.Write("        ");
                Console.Write( T);
                Console.Write("             ");
                 Console.Write(oldW1);
                Console.Write(oldW2);
                 Console.Write(oldB);
                 Console.Write("              ");
                Console.Write( newW1);
                 Console.Write (newW2);
                 Console.Write (newB);
                 Console.WriteLine();
            }
            Console.ReadLine();


        }
#13

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

وبرضه اختي ليش بعض المصفوفات فيها اصفار او واحدات او اصفار وواحدات؟!!

.:: Wish to become better and better ::.

#14

وعليكم السلام

المصفوفات اللي فيها اصفار ووحايد هي تبغى تسند هذي القيم للمصفوفة فثبتها من البدايه

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

#15
VB Helper كتب:

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

اختي اصلا كودك ملخبط شوي .. يعني مشاكل في الاقواس!! انت ايه ناويه تعملي ؟!!

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

هي شبكة عصبية جداً بسيطة.... تمثل نتيجة الرابطAND بين مصفوفتين....والناتج نحطه في مصفوفة target وبعدين نحسب الأوزان الجديدة بالقانون....عمليات حسابية ..بس تكون بالتتابع يعني نتيجة الوزن التي في الصف التالي تعتمد على الوزن في الصف الأول الصف الأول

Mnool كتب:

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

جربي هذا الكود يا صحبتي :)

static void Main(string[] args)
        {
            int[] X1 = new int[] { 1, 1, 0, 0 };
            int[] X2 = new int[] { 1,0 ,1 ,0};
            int[] B = new int[] { 1,1,1,1};
            int[] T = new int[4];
            int[] oldW1 = new int[4];
            int[] oldW2 = new int[4];
            int[] oldB = new int[4];
            int[] newW1 = new int[]{0,0,0,0};
            int[] newW2 = new int[]{0,0,0,0};
            int[] newB = new int[]{0,0,0,0};
            for (int i = 0; i < 4; i++)
            {
                T = X1 * X2;
                oldW1 = X1 * T;
                oldW2 = X2 * T;
                oldB = T;

            }
            newW1[0] = newW1[0] + oldW1[0];
            newW2[0] = newW2[0] + oldW2[0];
            newB[0] = newB[0] + T[0];
            for (int i = 1; i < 4; i++)
            {
                newW1 = newW1[i-1] + oldW1;
                newW2 = newW2[i-1] + oldW2;
                newB = newB[i-1] + T;
            }
            Console.WriteLine("  InPut     Target     WeightChanges     NewWeights");
            for (int i = 0; i < 4; i++)
            {
                Console.Write("   ");
                Console.Write(X1);

                 Console.Write( X2);
                  Console.Write(B);
                  Console.Write("        ");
                Console.Write( T);
                Console.Write("             ");
                 Console.Write(oldW1);
                Console.Write(oldW2);
                 Console.Write(oldB);
                 Console.Write("              ");
                Console.Write( newW1);
                 Console.Write (newW2);
                 Console.Write (newB);
                 Console.WriteLine();
            }
            Console.ReadLine();


        }

طيب ياصحبتي إن شاء الله بجربه..تسلمي

تم تعديل هذه المشاركة بواسطة -الأمل- في 31 مايو 2011 في 23:25

#16

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

اختي انصحك باستخدام ال BitArray للتعامل مع البتات ..

.:: Wish to become better and better ::.

#17

ضبط الكود يامنول....بس لازم أدور على طريقة ثانية ...أ. وفاء قالت ماتبغى يتشابه الحل بين البنات

تم تعديل هذه المشاركة بواسطة -الأمل- في 2 يونيو 2011 في 15:31

#18

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

هذا لك . :)

وانا بسوي بطريقة تانيه..

#19

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

اختي ذكرت سابقا يمكنك استخدام ال BitArray وستوفر عليك الكثير ..

.:: Wish to become better and better ::.

#20
VB Helper كتب:

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

اختي ذكرت سابقا يمكنك استخدام ال BitArray وستوفر عليك الكثير ..

وعليكم السلام ورحمه الله وبركاته.... أخي الكريم ايش فكرتها....لم استخدمها من قبل...وتوفر ماذا؟

Mnool كتب:

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

هذا لك . :)

وانا بسوي بطريقة تانيه..

طيب تسلمي ماحردك :P

تم تعديل هذه المشاركة بواسطة -الأمل- في 3 يونيو 2011 في 20:47

#21

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

اختي اذا كنت تريدي التعامل مع مصفوفات على شكل بتات فهذا النوع صمم لهذا الغرض, فمثلا يمكنك استدعاء اجراء And للقيام بعمل هذا المعامل لجميع عناصر المصفوفه بدون دوران والكثير الكثير ..

.:: Wish to become better and better ::.

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