PDA

View Full Version : سوال: آرایه و اعداد تصادفی



noura karimi
دوشنبه 24 مهر 1391, 11:21 صبح
سلام ببخشید یه برنامه در محیط c++ میخوام که بشه 3 تا آرایه m*n بگیرد و یک عدد به اسم n رو از ورودی بگیرد که اعداد 1 تا n را در آرایه های 1 و 2 دخیره کند و هر چه خانه از آرایه خالی بود -1 بزارد و در آخر خروجی ما آرایه سوم باشد که آرایه 1 و 2 را به صورت تصادفی و بدونه تکرارمرتب کند مثلا اگر تکراری بود همون -1 رو در خانه آرایه درج کند
تعداد خانه های آرایه هم به عنوان ورودی از کاربر گرفته شود
اگه کسی از شما ها بلدید سورس این برنامه رو برام بزارید ممنون میشم:چشمک:

mahak006
دوشنبه 24 مهر 1391, 12:31 عصر
سلام ببخشید یه برنامه در محیط c++ میخوام که بشه 3 تا آرایه m*n بگیرد و یک عدد به اسم n رو از ورودی بگیرد که اعداد 1 تا n را در آرایه های 1 و 2 دخیره کند و هر چه خانه از آرایه خالی بود -1 بزارد و در آخر خروجی ما آرایه سوم باشد که آرایه 1 و 2 را به صورت تصادفی و بدونه تکرارمرتب کند مثلا اگر تکراری بود همون -1 رو در خانه آرایه درج کند
تعداد خانه های آرایه هم به عنوان ورودی از کاربر گرفته شود
اگه کسی از شما ها بلدید سورس این برنامه رو برام بزارید ممنون میشم:چشمک:

توضیحت مبهمه . اونجوری که من فهمیدم بره اجرای این برنامه ، به آرایه دو بعدی نیازی نیست . m*n منظورت طول یک بعدیه یا یک بعد m و بعد بعدی n ؟؟؟
اعداد 1 تا n هم تصادفی انتخاب می شن ( درسته ؟) خب در این صورت معلوم نیست تا چند عدد تصادفی قراره ذخیره بشه . پس همه ی خانه ها تو دو آرایه اول پر می شه و -1 نداریم . اینجای توضیحتون یه مقداری مبهمه . فقط بره آرایه سوم می تونیم داشته باشیم که در صورت داشتن عدد تکراری ، اون عدد وارد آرایه سوم نمی شه . در آخر هم بعد از وارد کردن کلیه اعداد غیر تکراری از آرایه اول و دوم ، بقیه خانه های آرایه سوم با -1 پر می شن .

noura karimi
دوشنبه 24 مهر 1391, 20:46 عصر
من باید از ابتدا میگفتم m ,n دو2 عدد است که از کاربر باید گرفته بشه در ورودی یعنی m به عنوان تعداد سطر و n هم به عنوان ستون هستش

در کل این پروژه از 3 تا جدول تشکیل میشه که اعداد تصادفی باید در 2 تا جداول اول قرار بگیرد اگر در سطر یا ستونی خانه خالی داشتیم عدد -1 گذاشته شود و در نهایت باید خروجی در جدول سوم که حاصل مرتب کردن 2 تا جدول دیگر به صورت تصادفی و بدونه تکراره ذخیره شود

mahak006
دوشنبه 24 مهر 1391, 21:20 عصر
با اون چیزایی که تو اینجا توضیح دادی و من متوجه شدم ، main رو باید اینطر پیاده سازی کنی . حالا ببین اگه درسته ، دو تابع دیگشم برات بنویسم . تو تابع input هر دو ورودی جدید آرایه های اول و دوم رو با سایر اعضای آرایه سوم چک می کنه که در صورت تکراری نبودن ، به آرایه سوم هم اضافه می شه . تابع full هم آرایه سوم رو که فقط همون آرایه امکان داره خانه خالی داشته باشه ، با -1 پر می کنه . البته چون قراره این آرایه مرتب بشه ، همه -1 ها بسته به نوع مرتب سازی که صعودی باشه یا نزولی ، به ابتدا یا انتهای لیست میرن .
حالا جواب 3 تا سؤال پایین رو بده که بشه کاملش کرد :
این چیزی که من نوشتم ، همون چیزی هست که میخوای ؟
آرایه صعودی مرتب بشه یا نزولی ؟
روش مرتب سازیش چی باشه ؟ مثلا bubble-sort مبتدی ترین نوع مرتب سازیه .


#include<iostream>
using namespace std;
#include<stdlib.h>
#include<time.h>
int main()
{
cout<<"enter m & n";
int m,n,x;
cin>>m>>n;
int *a,*b,*c;
a=new int[m][n];
b=.............;
c=.............;
srand(time(0));
for (int i=0;i<m;i++)
for(int j=0;j<n;j++)
{
a[i][j]=1+rand()%n;
b[i][j]=1+rand()%n;
x=input(a,b,c,i,j);
}
fuller (c,m,n,x);
for (int i=0;i<m;i++)
{
for (int j=0;j<n;j++)
cout<<c[i][j];
cout<<endl;
}
return 0;
}

mahak006
دوشنبه 24 مهر 1391, 21:21 عصر
با اون چیزایی که تو اینجا توضیح دادی و من متوجه شدم ، main رو باید اینطر پیاده سازی کنی . حالا ببین اگه درسته ، دو تابع دیگشم برات بنویسم . تو تابع input هر دو ورودی جدید آرایه های اول و دوم رو با سایر اعضای آرایه سوم چک می کنه که در صورت تکراری نبودن ، به آرایه سوم هم اضافه می شه . تابع full هم آرایه سوم رو که فقط همون آرایه امکان داره خانه خالی داشته باشه ، با -1 پر می کنه . البته چون قراره این آرایه مرتب بشه ، همه -1 ها بسته به نوع مرتب سازی که صعودی باشه یا نزولی ، به ابتدا یا انتهای لیست میرن .
حالا جواب 3 تا سؤال پایین رو بده که بشه کاملش کرد :
این چیزی که من نوشتم ، همون چیزی هست که میخوای ؟
آرایه صعودی مرتب بشه یا نزولی ؟
روش مرتب سازیش چی باشه ؟ مثلا bubble-sort مبتدی ترین نوع مرتب سازیه .


#include<iostream>
using namespace std;
#include<stdlib.h>
#include<time.h>
int main()
{
cout<<"enter m & n";
int m,n,x;
cin>>m>>n;
int *a,*b,*c;
a=new int[m][n];
b=.............;
c=.............;
srand(time(0));
for (int i=0;i<m;i++)
for(int j=0;j<n;j++)
{
a[i][j]=1+rand()%n;
b[i][j]=1+rand()%n;
x=input(a,b,c,i,j);
}
fuller (c,m,n,x);
for (int i=0;i<m;i++)
{
for (int j=0;j<n;j++)
cout<<c[i][j];
cout<<endl;
}
return 0;
}

noura karimi
سه شنبه 25 مهر 1391, 14:54 عصر
ممنونم از لطفت فقط خودمم امروز متوجه منظور این پروژه شدم
در این پروژه گفتم که 3 تا جدول n ستونی وm سطری لازم هست باید یک عدد از کاربر گرفته شود که اعداد 1 تا آن عدد را در جدول 1 و 2 به صورت تصادفی قرار دهد
حالا جدول سوم که قراره در خروجی به ما نشان دهد :باید برنامه بیات از 1 تا m که تعداد سطرهاس رو به صورت تصادفی انتخاب کنه شماره سطری رو که انتخاب میکنه اعداد موجود در آن سطر و در جدول اولی را عینا در همان شماره سطر جدول 3 ذخیره می کند،بعد برای مرحله دوم میات شماره سطری را که به دست آورده به اضافه 1 میکند تا عمل مرتب سازی در شماره بدست آمده باشد اگر عددی که بدست آمد از اعداد بین 1تا m بود میشه شماره سطر دومین جدول که باید کل اعداد موجود در آن خانه را در همان شماره سطر بعدی جدول 3 که در صورت تکراری نبودن اعداد را در خانه های آن سطر قرار میدهد
اما حالا اگه به اضافه 1 کردیم و حاصل از تعداد سطرها بیشتر شد باید اون عدد حاصل را از m کم کنیم بعد حاصل شماره سطر میشود
پس این مرتب سازی به صورت سطر به سطر جداول 1 و 2 است اول به صورت تصادفی یکی از سطرهای جدول 1 بعد در مرحله بعدی جدول 2
یعنی یک سطر از جدول 1 را در سطر جدول 3 قرار میده یه بار از سطر جدول 2
امیدوارم متوجه منظورم شده باشید:گریه: