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

اخواني احتاج لمن يصحح لي هذا الكود

مغلق
بدأه Massay في 19 مارس 2006 · 5 رد · 625 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم جميعا .

معذرة اخواني فهناك مشكله امامي . لقد انشأت array واعطيته مجموعة من القيم ثم ارسلته ال function تعدل فيه بحيث تجعل طوله يقبل القسمه علي 200 بدون باقي ثم اريد ان اضع قيمه في multidimension array بحيث تقسم القيم الي صفوف من 200 خانه. وقد حاولت واشتغل البرنامج ولكن عندما عرضت النتيجه في ملف نصي وجدت ان المعروض هو رقم ثابت وهو طول ال array فهل اجد من يساعدني في تصحيح هذا الكود ؟ اليكم الكود واعتذر للإطاله وارجوا ان يكون شرحي مفهوما .

class work
{
    public double[,] modifyarry(double[] myarry)
    {
        int arrylength = myarry.Length - myarry.Length % 200;
        double[] modifidarry = new double[arrylength];
        for (int arrypointer = 1; arrypointer < modifidarry.Length; arrypointer++)
        {
            modifidarry[arrypointer] = myarry[arrypointer];
        }
        int framlength = modifidarry.Length / 200;
        double[,] lastarry=new double[framlength,200];
        int loop = 0;
        do
        {
            for (int i = 0; i < framlength; i++)
            {
                for (int j = 0; j < 200; j++)
                {
                    lastarry[i, j] =modifidarry[loop];
                }
            }
            loop++;
        }
        while (loop < modifidarry.Length);
            return lastarry;
    }
}
class main : work
{
    public static void Main()
    {
        double[] newarry=new double[1245];
        int arryindex=0;
        for (int arryval = 0; arryval < newarry.Length; arryval++)
        {
            newarry.SetValue(arryval, arryindex);
            arryindex++;
        }
        work w = new work();
        double[,] finalarry = w.modifyarry(newarry);
        StreamWriter sw = new StreamWriter("c:\\FE.txt");
        foreach (double show in finalarry)
        {
            sw.Write(show);
            sw.Write(" , ");
        }
        sw.Close();
    }
}

النقطة الاخيرة هي انني كنت اريد ان اجعل القيم داخل ال multidimension array توزع في صفوف كما اشرت ولكن يكون آخر 100 قيمه في الصف الاول هي اول 100 قيمه في الصف الثاني واخر 100 قيمه في الصف الثاني هي اول 100 قيمة في الصف الثالث . فهل يمكن ان ذلك ؟ وكيف ؟

الف شكر للجميع والسلام عليكم

#2

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

لقد مررت مر الكرام على الكود فلاحظت هذا السطر

foreach (double show in finalarry)

فالمصفوفة finalarry مكونة من بعدين فكيف تقوم بفكها إلى قيمة واحد ، لماذا لا تقوم بفكها إلى مصفوفة ذات بعد واحد ثم تقوم بفك الآخرى على حده

foreach (double[] show in finalarry)
       {
        foreach(double single in show)
           {
                sw.Write(show);
               sw.Write(" , ");
           }
          sw,WriteLine("");
       }
       sw.Close();

تم تعديل هذه المشاركة بواسطة Ahmed H. Alawady في 19 مارس 2006 في 13:03

Name : Ahmed H. Alawady

Web Site : Alawady.info

Email : alawady_ahmed@hotmail.com

Tel : +2 012 345 6808

#3

وعليكم السلام اخي أحمد . لقد قمت بتجربة اقتراحك ولكن ظهرت لي رسالة error تقول

can't convert from double to double [] error

كما انني اعتقد ان ال foreach ليست المشكله لأنها مجرد آداة عرض تقوم بمسح اي array وتعرض كل ما به من قيم . وقد جربت ان اقوم بعرض قيم ال array وهو لا يزال داخل الكلاس وقبل ان يتم ارساله الي ال Main ولكنه ايضا اعطاني نفس النتائج

1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199 , 1199

كان هذا شكل الناتج وانا اريده ان يعرض لي القيم وليس طول ال array

واعتقد ان المشكله في هذا الجزء

  int framlength = modifidarry.Length / 200;
       double[,] lastarry=new double[framlength,200];
       int loop = 0;
       do
       {
           for (int i = 0; i < framlength; i++)
           {
               for (int j = 0; j < 200; j++)
               {
                   lastarry[i, j] =modifidarry[loop];
               }
           }
           loop++;
       }
       while (loop < modifidarry.Length);
           return lastarry;

فهل يمكن ان يدلني احد علي الخطأ فيه ؟ بليز انا متوقف امام هذه النقطه وغير قادر علي اكمال البرنامج بدونها

والف شكر للجميع

#4

للرفع . واسف علي الازعاج لكني متوقف تماما بسبب هذه النقطه :(

تم تعديل هذه المشاركة بواسطة Massay في 20 مارس 2006 في 01:47

#5

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

اخي العزيز Massay هل يمكن ان تعطي مثال لمصفوفة مدخلة و كيف تريد ان يكون المخرج و الكيفية التي تريد عرضه بها ! اتمنى ان تضرب مثال بسيط بالارقام لكي تتضح الفكرة و بإذن الله تعالى محلولة اخي الكريم.

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

مواضيع برمجية تقنية جديدة

----------------------------------------------------------------------------------------------------------------------------------------------

• إستغلال خدمة الـ RSS في برامجنا ومواقعنا ! (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج للبحث في الملفات ومحتواياتها (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• فئة للتراسل بين برنامجين في جهاز واحد ! (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

مواضيع برمجية تقنية قديمة

----------------------------------------------------------------------------------------------------------------------------------------------

• إستغلال رسائل البالونات Balloons في الوينذوز أكس بي(VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• مقالة : لماذا يجب ان نعتني بشفرات برامجنا !؟- (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• لمطوري البرامج و مواقع الويب - برنامج تركيب ألوان - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج : بسيط للتحكم بالنظام, عن طريق الريجستري - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج : لتقييد و منع تشغيل البرامج الاخرى - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• النوافذ المنبثقة و طريقة لإستغلالها في برامجنا -(VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• تقنية الإستدعاء الذاتي - (VB.NET , VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• مصفوفات الأدوات Control Arrays افكار وتلميحات ! - (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• أفكار و تلميحات[ المعنى الحقيقي للـ True و False ] - أمثلة (VB.NETVB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• دوال الـ APIs و مايقابلها في الدوت نت ! - (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

#6

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

هذا الكود هو جزء من برنامج speech recognition لتحليل الصوت القادم من المايك وتحويله الي كلمات في ملف نصي . وهذا الجزء يسمي بال feature extraction وهي مجموعة من المعادلات التي تمم علي array of doubles هو ناتج الجزء السابق وهو جزء فصل الكلام عن اي ضوضاء او لحظات صمت ووضع الارقام التي تدل علي كلمات في array . وقبل تطبيق اي معادلة من ال feature extraction لابد ان يكون ال array مقسم الي مجموعة من ال frames وكل frame هو مجموعة من 200 قيمة لذلك قمت بعمل array افتراضي ثم وضعت فيه عدد من القيم ثم قمت بتعديله كما ذكرت الي multidimension array حتي اقسمه الي ال frames المطلوبه . وهناك امر اخير لابد ان تكون هذه ال frames متداخله بمعني ان يكون النصف الاخير من ال frame رقم واحد هو نفس القيم الموجوده في النصف الاول من ال frame رقم اثنين وهكذا حتي نهاية ال array وهذا مثال علي شكل ال array المطلوب :

 
({0,1,2,3,....,100,101,102,.......,197,198,199,} , {100,101,102,......,200 , 201 , 202.......,298,299} ,{200,201,202,............,300,301,302.........,398,399}...................... )

ارجوا أن أكون قد أوضحت وآسف علي الإطالة وشكرا جزيلا

تم تعديل هذه المشاركة بواسطة Massay في 21 مارس 2006 في 20:47

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

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