تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
طلب برمجة فكرة بلمصفوفات
#1
السلام عليكم
ارجو مساعدتي في ايجاد حل مثالي لهذه الفكرة لاني استطعت حلها لكن الكود يصبح جدا كبير وانا لدي عناصر عديدة فلايمكن تطبيق هذا الكود عليها
الفكرة هي في الصورة توجد مصفوفتان المصفوفة الاولى هي المدخلات اما المصفوفة الثانية هي المخرج
[attach=config]1487[/attach]

في المصفوفة الاولى توجد عناصر اسم العنصر s كل عنصر من الممكن ان ندخل له اكثر من قيمة او قيمة واحدة مثلا العنصر الاول له قيمة واحدة اما العنصر الثاني له قيمتان وهكذا
اي لايمكن ان ياتي عنصر بدون قيمة
هذه المصفوفة استلمها من نظام معين
المطلوب هوا
ان اعمل رول من هذه القيم كل رول تحوي جميع العناصر لكن لكل عنصر قيمة واحد مع الحفاظ على تسلسل العناصر
فكما في الصورة العنصر الثاني لديه قيمتان هذا يعني اعمل 2 رول مرة مع القيمة الاولى ومرة مع القيمة الثانية وكذلك العنصر الاخير توجد قيمتان فيجب ان اخذ بنظر الاعتبار ان اعمل رول لهما معا
اي يجب عمل كل الاحتمالات
مع العلم ان مصفوفة المدخلات متغيرة القيم
لكن مشروطة بان اقل عدد ممكن للعنصر هي قيمة واحدة واعلى حد اربع قيم
اعذروني على الاطالة ارجو ان اكون قد وضحت الفكرة


الملفات المرفقة صورة/صور
   
الرد }}}}
تم الشكر بواسطة:
#2
السلام عليكم
توصلت الى فكرة في الحل لكن احتاج الى دالة تعمل هكذا
[ATTACH=CONFIG]1491[/ATTACH]
المصفوفة الاولى هي المدخل والثانية هي المخرج
اي دالة تقوم باخذ كل احتمالات تغير مابين الصفوف اما الاعمدة ثابته
ارجو المساعدة


الملفات المرفقة صورة/صور
   
الرد }}}}
تم الشكر بواسطة:
#3
يرجاء وضع الكود من اجل ان يتم التعديل عليه حسب المطلوب لك
الرد }}}}
تم الشكر بواسطة:
#4
ولد رائع كتب :يرجاء وضع الكود من اجل ان يتم التعديل عليه حسب المطلوب لك

السلام عليكم اخي الكريم هذا كود يحسب احتمالات مصفوفة 2*2 ارغب بجعله يحسب كل احتمالات مصفوفة 4*4

[HTML]#include<iostream.h>
main()
{

int a[2][2],b[4][2];
int i,d=0,cc=0,bb;

a[0][0]=1;
a[0][1]=2;
a[1][0]=3;
a[1][1]=4;

for(i=0;i<2;++i)
{
bb=d;
for(int n=0;n<2;++n)
{
for(int m=0;m<2;++m)
b[d][m]=a[n][m];
d=d+1;
}

for(int c=bb;c<d;++c)
b[c][0]=a[i][0];
}

for(int k=0;k<4;++k)
{
for(int j=0;j<2;++j)
cout<<b[k][j]<<" ";
cout<<endl;
}

}



[/HTML]

اخي الكريم ياريت يكون الكود مثالي لان لدي عناصر كثيرة
جزاك الله الف خير
الرد }}}}
تم الشكر بواسطة:
#5
السلام عليكم ورحمة الله

شكرا لكل من حاول مساعدتي الحمد لله انحلت المشكلة

وهذا كود الفكر للفائدة

ولكي لايضيع حق احد فان احد الاخوة جزاه الله الف خير قد ساعدني في منتدى اخر
كود :
#include <stdio.h>

main()
{

const int ROWS = 3 ;
const int COLS = 3;
int inputs[ROWS][COLS]={0};
int col_item[COLS]={0};
int i,j,k,count=0,outputs_rows,**outputs;



inputs[0][0] = 10;
inputs[0][1] = 20;
inputs[0][2] = 30;
inputs[1][1] = 50;
inputs[1][2] = 60;
inputs[2][1] = 80;


for(i=0;i<ROWS;i++)
{      
        if(inputs[i][0] == 0)
                break;
        col_item[0]++;
}
for(i=0;i<ROWS;i++)
{      
        if(inputs[i][1] == 0)
                break;
        col_item[1]++;
}
for(i=0;i<ROWS;i++)
{      
        if(inputs[i][2] == 0)
                break;
        col_item[2]++;
}

outputs_rows = col_item[0]*col_item[1]*col_item[2];

outputs = new int*[outputs_rows];
for(i=0;i<outputs_rows;i++)
{
        outputs[i] = new int[COLS];
}

for(i=0;i<col_item[0];i++)
{
        for(j=0;j<col_item[1];j++)
        {
                for(k=0;k<col_item[2];k++)
                {
                        outputs[count][0] = inputs[i][0];
                        outputs[count][1] = inputs[j][1];
                        outputs[count][2] = inputs[k][2];
                        count++;
                }
        }
}

for(i=0;i<outputs_rows;i++)
  {
        for(j=0;j<COLS;j++)
        {
                        printf(" %d ",outputs[i][j]);
                        
        }
        printf("\n");
  }

}
الرد }}}}
تم الشكر بواسطة:


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم