نمایش نتایج 1 تا 5 از 5

نام تاپیک: بدست آوردن ستون یک آرایه دو بعدی

  1. #1

    Question بدست آوردن ستون یک آرایه دو بعدی

    دوستان سلام
    شاید این سوال مبتدی به نظر برسه اما من بلدش نبودم
    یک آرایه دوبعدی داریم
    چطورمی تونیم بدون حلقه به عناصر موجود بر روی یک ستون دسترسی داشته باشیم.
    مثلا در زبان سی اگر اشتباه نکنم این کد جواب میده


    arr[][0]=22

    در کد بالا در ستون صفرم میاد در همه ی خونه هاش عدد 22 رو قرار میده
    تو دلفی همین کد چطور نوشته میشه؟

  2. #2

    نقل قول: بدست آوردن ستون یک آرایه دو بعدی

    سلام
    توی زبان c یا ++c این چنین امکانی وجود نداره. تنها در هنگام اعلان اولیه آرایه و هنگام مقدار دهی اولیه اون میشه مثلا این جور نوشت
    int arr[][5]={22};

    یک آرایه با یک سطر و 5 ستون درست می کنه و عنصر با اندیس صفر و صفر را مقدار 22 میده و بقیه خانه ها را صفر قرار میده
    این شکلی که شما نوشتید بیشتر در خصوص زبانهای تفسیر شده مثل متلب به کار میره اما نکته مهم اینه که پیاده سازی این روشها با استفاده از حلقه در سی پلاس پلاس انجام شده

  3. #3

    نقل قول: بدست آوردن ستون یک آرایه دو بعدی

    پس یعنی تو دلفی ما نمی تونیم هنگام اجرای برنامه ، به طور مثال تمام خانه های اول یک آرایه رو مثلا 2 قرار بدیم. البته بدون حلقه

  4. #4

    نقل قول: بدست آوردن ستون یک آرایه دو بعدی

    البته در ++c میشه با overload کردن عملگر ها از جمله عملگر [] این کار را انجام داد. در مورد دلفی بذارید اساتید عزیز دلفی کار پاسخ بدهند

    در مثال زیر این کار با ++c انجام شده اگرچه هنوز نواقصی در برنامه هست
    یکبار یک ماتریس 5 در 6 درست می کنیم و از سطر 2 تا 3 و از ستون 2 تا 3 برابر 7 قرار می دهیم
    در مورد دومی ستون دوم مقدار 8 می گیرد

    #include <vector>
    #include <iostream>
    #include <initializer_list>

    using namespace std;
    struct Matrix
    {
    typedef vector<vector<int> > matrix;
    typedef vector<int> vec;
    vec indexmat;
    vec indexvec;
    matrix mymat;
    int ctr=0;
    Matrix(int rows,int cols):mymat(matrix(rows,vec(cols))) {}
    Matrix& operator[](std::initializer_list<int> il)
    {
    if(++ctr==1) indexmat=il;
    else indexvec=il;
    return *this;
    }
    Matrix& operator=(const int& val)
    {
    int m1,m2,v1,v2;
    if (indexmat.size())
    {
    m1=indexmat[0];
    m2=indexmat[indexmat.size()-1];
    }
    else
    {
    m1=0;
    m2=mymat.size()-1;
    }
    if (indexvec.size())
    {
    v1=indexvec[0];
    v2=indexvec[indexvec.size()-1];
    }
    else
    {
    v1=0;
    v2=mymat[0].size()-1;
    }
    for(int i=m1; i<=m2; i++)
    for(int j=v1; j<=v2; j++)
    mymat[i][j]=val;
    return *this;
    }
    friend ostream& operator<<(ostream& stream, Matrix& mtx)
    {
    for(int i=0; i<mtx.mymat.size(); i++)
    {
    for(int j=0; j<mtx.mymat[0].size(); j++)
    stream<<mtx.mymat[i][j]<<" ";
    stream<<endl;
    }
    return stream;
    }
    };
    int main()
    {
    Matrix m(5,6);
    m[{2,3}][{2,3}]=7;
    cout<<m;
    Matrix m1(5,6);
    m1[ {}][{2}]=8;
    cout<<m1;
    }
    آخرین ویرایش به وسیله rahnema1 : دوشنبه 17 شهریور 1393 در 22:41 عصر

  5. #5

    نقل قول: بدست آوردن ستون یک آرایه دو بعدی

    آیا کلا در دلفی نمیشه از یک آرایه دو بعدی دوتا آرایه ی یک بعدی جدا ساخت؟
    برای مثال یک بعد آرایه در یک آرایه یک بعدی قرار بگیره بعد دیگرش در آرایه ی یک بعدی دیگه
    میشه؟
    البته بدون حلقه

تاپیک های مشابه

  1. سوال: بدست آوردن طول یک بعد از آرایه چند بعدی
    نوشته شده توسط csharpdoost در بخش C#‎‎
    پاسخ: 1
    آخرین پست: شنبه 14 بهمن 1391, 13:26 عصر
  2. بدست آوردن ستون ها تیک شده دیتا گرید بوسیله Linq
    نوشته شده توسط sajjad_kochekian در بخش C#‎‎
    پاسخ: 1
    آخرین پست: پنج شنبه 25 آبان 1391, 09:41 صبح
  3. حرفه ای: بدست آوردن مقدار موجود در ایندکس name و family در آرایه چند بعدی
    نوشته شده توسط idocsidocs در بخش PHP
    پاسخ: 1
    آخرین پست: یک شنبه 06 فروردین 1391, 18:39 عصر
  4. سوال: بدست آوردن ایندکس یه آرایه چند بعدی
    نوشته شده توسط idocsidocs در بخش PHP
    پاسخ: 4
    آخرین پست: سه شنبه 27 دی 1390, 16:21 عصر
  5. بدست آوردن داده یک ستون خاص و سطر جاری از datagrid
    نوشته شده توسط ILYA در بخش C#‎‎
    پاسخ: 10
    آخرین پست: چهارشنبه 30 شهریور 1390, 23:09 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •