]> آرایه های دو بعدی در c++
صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از 1 به 10 از 15

موضوع: آرایه های دو بعدی در c++

  1. Top | #1
    لطفا استاتوس خود را تنظیم کنید.
     

    عنوان کاربر
    کاربر تازه وارد
    تاریخ عضویت
    Feb 2015
    شماره عضویت
    529
    نوشته ها
    7
    OS/Browser
    Windows 7 Chrome 40.0.2214.115

    آرایه های دو بعدی در c++

    دوستان گرامی سلام
    من از اعضای تازه وارد سایت هستم، برای همین دقیقا مطمئن نیستم که طرح سوالات برنامه نویسی در این قسمت درست هست یا نه! اگر نیست که ببخشید بنده رو.
    یه برنامه با c++ نوشتم که توش از آرایه های دو بعدی استفاده شده. حالا نیازه که تعداد عناصر آرایه رو زیاد کنم، ولی متاسفانه به حد 1000000*10000 که میرسه، دیگه برنامه ام ران نمیشه.
    ولی
    من باید تعداد رو خیلی بیشتر از اینا هم کنم .
    چند تا روش مثل تعریف عناصر آرایه خارج از قسمت main()، یا استفاده از اشاره گرها رو امتحان کردم؛ اما در هر بار باز با ارور core dumped مواجه میشم.
    نمیدونم دیگه چیکار باید بکنم.
    ممنون میشم اگه کمکم کنید.

  2. Top | #2
    :(){ :|:& };:
     

    عنوان کاربر
    مدیر بخش
    تاریخ عضویت
    May 2014
    شماره عضویت
    168
    نوشته ها
    196
    OS/Browser
    Linux (Ubuntu) Chromium 40.0.2214.111
    کدت رو بذار. با سی پلاس کار کردن شبیه به کار کردن با ناو جنگیه.
    S0h3!L این پست را پسندیده است! :)

  3. Top | #3
    لطفا استاتوس خود را تنظیم کنید.
     

    عنوان کاربر
    کاربر تازه وارد
    تاریخ عضویت
    Feb 2015
    شماره عضویت
    529
    نوشته ها
    7
    OS/Browser
    Windows 7 Chrome 40.0.2214.94
    /* This programme calculates averages: <X>,<Y>,<X2>,<Y2> & MSD v.s t by "ensemble average" */




    #include <iostream>
    #include <stdlib.h>
    #include <cmath>
    #include <fstream>
    #include <time.h>
    #define step 1000000
    #define N 1000
    using namespace std;


    int main() {
    srand48(time(0));
    double x,y,X,Y,X2,Y2;
    double noise;
    ofstream out1("xydN.txt");
    ofstream NMSD("NMSD.txt");
    static double xns[N+1][step+1], yns[N+1][step+1], d[N+1][step+1];
    double XN[step], YN[step], X2N[step], Y2N[step], rN[step], r2N[step];
    xns[N+1][1]=1;
    yns[N+1][1]=2;
    d[N+1][0]=3;
    for (int j=1; j<=N; j++)
    {
    for (int i=1; i<=step; i++)
    {
    d[j][i]=2*xns[j][i]-3;
    out1 <<xns[j][i]<<"\t"<<yns[j][i]<<"\t"<<d[j][i]<<endl;
    if (d[j][i]-d[j][i-1]>0)
    {
    noise=drand48();
    if (noise>=0 && noise<0.28)
    {
    xns[j][i+1]=xns[j][i]+1;
    yns[j][i+1]=yns[j][i];
    }
    else if (noise>=0.28 && noise<0.52)
    {
    xns[j][i+1]=xns[j][i]-1;
    yns[j][i+1]=yns[j][i];
    }
    else if (noise>=0.52 && noise<0.76)
    {
    xns[j][i+1]=xns[j][i];
    yns[j][i+1]=yns[j][i]+1;
    }
    else
    {
    xns[j][i+1]=xns[j][i];
    yns[j][i+1]=yns[j][i]-1;
    }
    }
    if (d[j][i]-d[j][i-1]<0)
    {
    noise=drand48();
    if (noise>=0 && noise<0.28)
    {
    xns[j][i+1]=xns[j][i]-1;
    yns[j][i+1]=yns[j][i];
    }
    else if (noise>=0.28 && noise<0.52)
    {
    xns[j][i+1]=xns[j][i]+1;
    yns[j][i+1]=yns[j][i];
    }
    else if (noise>=0.52 && noise<0.76)
    {
    xns[j][i+1]=xns[j][i];
    yns[j][i+1]=yns[j][i]+1;
    }
    else
    {
    xns[j][i+1]=xns[j][i];
    yns[j][i+1]=yns[j][i]-1;
    }
    }
    else
    {
    noise=drand48();
    if (noise>=0 && noise<0.25)
    {
    xns[j][i+1]=xns[j][i]+1;
    yns[j][i+1]=yns[j][i];
    }
    else if (noise>=0.25 && noise<0.50)
    {
    xns[j][i+1]=xns[j][i]-1;
    yns[j][i+1]=yns[j][i];
    }
    else if (noise>=0.50 && noise<0.75)
    {
    xns[j][i+1]=xns[j][i];
    yns[j][i+1]=yns[j][i]+1;
    }
    else
    {
    xns[j][i+1]=xns[j][i];
    yns[j][i+1]=yns[j][i]-1;
    }
    }
    }
    }
    for (int l=1; l<=step; l+=5) // l=time interval
    {
    X=0;
    Y=0;
    X2=0;
    Y2=0;
    for (int d=1; d<=N; d++)
    {
    X+=xns[d][l];
    Y+=yns[d][l];
    X2+=pow((xns[d][l]),2);
    Y2+=pow((yns[d][l]),2);
    }
    XN[l]=X/N;
    YN[l]=Y/N;
    X2N[l]=X2/N;
    Y2N[l]=Y2/N;
    rN[l]=sqrt((XN[l]*XN[l])+(YN[l]*YN[l]));
    r2N[l]=(X2N[l]+Y2N[l]);


    double MSD=r2N[l]-pow(rN[l],2);
    NMSD<<l<<"\t"<<XN[l]<<"\t"<<YN[l]<<"\t"<<X2N[l]<<"\t"<<Y2N[l]<<"\t"<<MSD<<endl;
    }
    out1.close();
    NMSD.close();
    return 0;
    }






    از لطفتون پیشاپیش تشکر می کنم و عذرخواهی می کنم بابت بهم ریختن کد
    ویرایش توسط amidagha : 03-01-2015 در ساعت 10:33 AM دلیل: بهم ریختن کد

  4. Top | #4
    R+L=J
     

    عنوان کاربر
    مدیریت کل سایت
    تاریخ عضویت
    Jun 2013
    شماره عضویت
    1
    نوشته ها
    2,225
    نوشته های وبلاگ
    1
    OS/Browser
    Linux (Ubuntu) Firefox 35.0
    سلام.
    عزیز لطفا داخل [code] قرار بدید کدهارو.
    به این صورت:

    [code]
    کدهای شما
    [code]
    فقط [code] دومی به این صورت باشه:
    [/codeـ] (بدون ـ فاصله)
    من توی مثال بالا اینجوری اگه میذاشتم به صورت کد میشناخت و مثال به هم میریخت...
    قوانین (همه کاربران مطالعه کنند) : http://www.ubuntuforums.ir/thread1.html
    لطفا پس از حل مشکل یا رسیدن به جوابتون:
    di LKI3 ۲.۱۷. همه کاربران موظفند پس از حل شدن مشکل یا رسیدن به جواب خود، تاپیکشان را به عنوان موضوع حل شده نشانه‌گذاری کنند.
    برای اینکار، از منوی بالا تاپیک، منو "ابزار‌های موضوع" را انتخاب کرده و سپس گزینه "نشانه‌گذاری این تاپیک به عنوان موضوع حل شده" را انتخاب کنید. این تصویر را ببینید: http://www.imgshare.ir/di-TNWC.png

    rlj3 they will rule together small

  5. Top | #5
    لطفا استاتوس خود را تنظیم کنید.
     

    عنوان کاربر
    کاربر تازه وارد
    تاریخ عضویت
    Feb 2015
    شماره عضویت
    529
    نوشته ها
    7
    OS/Browser
    Windows 7 Chrome 40.0.2214.115


    کد:
    /* This programme calculates averages: <X>,<Y>,<X2>,<Y2> & MSD v.s t by "ensemble average" with MAX p=0-0.28*/
    
    
    
    
    #include <iostream>
    #include <stdlib.h>
    #include <cmath>
    #include <fstream>
    #include <time.h>
    #define step 1000000
    #define N 1000
    using namespace std;
    
    
    int main() {
    srand48(time(0));
    double x,y,X,Y,X2,Y2;
    double noise;
    ofstream out1("xydN.txt");
    ofstream NMSD("NMSD.txt");
    static double xns[N+1][step+1], yns[N+1][step+1], d[N+1][step+1];
    double XN[step], YN[step], X2N[step], Y2N[step], rN[step], r2N[step];
    xns[N+1][1]=1;
    yns[N+1][1]=2;
    d[N+1][0]=3;
    for (int j=1; j<=N; j++) 
    {
    	for (int i=1; i<=step; i++)
    	{
    		d[j][i]=2*xns[j][i]-3;
    		out1 <<xns[j][i]<<"\t"<<yns[j][i]<<"\t"<<d[j][i]<<endl;
    		if (d[j][i]-d[j][i-1]>0)
    		{
    			noise=drand48();
    			if (noise>=0 && noise<0.28) 
    			{
    				xns[j][i+1]=xns[j][i]+1;
    				yns[j][i+1]=yns[j][i];
    			}
    			else if (noise>=0.28 && noise<0.52)
    			{ 
    				xns[j][i+1]=xns[j][i]-1;
    				yns[j][i+1]=yns[j][i];
    			}
    			else if (noise>=0.52 && noise<0.76)
    			{
    				xns[j][i+1]=xns[j][i];
    				yns[j][i+1]=yns[j][i]+1;
    			}
    			else 
    			{
    				xns[j][i+1]=xns[j][i];
    				yns[j][i+1]=yns[j][i]-1;
    			}
    		}
    		if (d[j][i]-d[j][i-1]<0)
    		{
    			noise=drand48();
    			if (noise>=0 && noise<0.28)
    			{
    				xns[j][i+1]=xns[j][i]-1;
    				yns[j][i+1]=yns[j][i];
    			}
    			else if (noise>=0.28 && noise<0.52)
    			{
    				xns[j][i+1]=xns[j][i]+1;
    				yns[j][i+1]=yns[j][i];
    			}
    			else if (noise>=0.52 && noise<0.76)
    			{
    				xns[j][i+1]=xns[j][i];
    				yns[j][i+1]=yns[j][i]+1;
    			}
    			else 
    			{
    				xns[j][i+1]=xns[j][i];
    				yns[j][i+1]=yns[j][i]-1;
    			}
    		}
    		else
    		{
    			noise=drand48();
    			if (noise>=0 && noise<0.25)
    			{
    				xns[j][i+1]=xns[j][i]+1;
    				yns[j][i+1]=yns[j][i];
    			}	
    			else if (noise>=0.25 && noise<0.50)
    			{
    				xns[j][i+1]=xns[j][i]-1;
    				yns[j][i+1]=yns[j][i];
    			}
    			else if (noise>=0.50 && noise<0.75)
    			{
    				xns[j][i+1]=xns[j][i];
    				yns[j][i+1]=yns[j][i]+1;
    			}
    			else
    			{
    				xns[j][i+1]=xns[j][i];
    				yns[j][i+1]=yns[j][i]-1;
    			}
    		}
    	}	
    }
    for (int l=1; l<=step; l+=5) // l=time interval
    {
    	X=0;
    	Y=0;
    	X2=0;
    	Y2=0;
    	for (int d=1; d<=N; d++)
    	{
    		X+=xns[d][l];
    		Y+=yns[d][l];
    		X2+=pow((xns[d][l]),2); 
    		Y2+=pow((yns[d][l]),2);
    	}
    	XN[l]=X/N;
    	YN[l]=Y/N;
    	X2N[l]=X2/N;
    	Y2N[l]=Y2/N;
    	rN[l]=sqrt((XN[l]*XN[l])+(YN[l]*YN[l]));
    	r2N[l]=(X2N[l]+Y2N[l]);
    
    
    	double MSD=r2N[l]-pow(rN[l],2);
    	NMSD<<l<<"\t"<<XN[l]<<"\t"<<YN[l]<<"\t"<<X2N[l]<<"\t"<<Y2N[l]<<"\t"<<MSD<<endl;
    }
    out1.close();
    NMSD.close();
    return 0;
    }

    ببخشید من چون تازه عضو شدم، خیلی چیزا رو باید بگیرم، هی خرابکاری می کنم ببخشید و ممنونم ازتون
    ویرایش توسط amidagha : 03-01-2015 در ساعت 10:40 AM دلیل: اصلاح کد
    مهرداد خان و S0h3!L این پست را پسندیده‌اند! :)

  6. Top | #6
    مرگ بر اوبونتو
    :دی
     

    عنوان کاربر
    کاربر سایت
    تاریخ عضویت
    Feb 2015
    شماره عضویت
    521
    نوشته ها
    57
    OS/Browser
    Windows NT/Windows 8.1 6.3 Firefox 36.0
    ماشالله چی نوشتی خوندنش یه قرن طول میکشه

  7. Top | #7
    لطفا استاتوس خود را تنظیم کنید.
     

    عنوان کاربر
    کاربر تازه وارد
    تاریخ عضویت
    Feb 2015
    شماره عضویت
    529
    نوشته ها
    7
    OS/Browser
    Windows 7 Chrome 40.0.2214.115
    خوندن همش لازم نیست فقط تو خط های 6،7 و 15 مشکل هست، اونجایی که آرایه ای تعریف می کنم که تعداد اعضاش 1000*1000000 میشه یا بیشتر و دیگه برنامه ام ران نمیشه.
    واقعا کاری نمیشه برای ماتریسهای بزرگ کرد تو c++ ؟

  8. Top | #8
    مرگ بر اوبونتو
    :دی
     

    عنوان کاربر
    کاربر سایت
    تاریخ عضویت
    Feb 2015
    شماره عضویت
    521
    نوشته ها
    57
    OS/Browser
    Windows NT/Windows 8.1 6.3 Firefox 36.0
    همون تاپیک که برنامه نویس زدین فکر کنم زودتر به نتیجه برسه
    اینجا تعداد سی++ کارا فکر نکنم زیاد باشه

  9. Top | #9
    :(){ :|:& };:
     

    عنوان کاربر
    مدیر بخش
    تاریخ عضویت
    May 2014
    شماره عضویت
    168
    نوشته ها
    196
    OS/Browser
    Linux (Ubuntu) Chromium 40.0.2214.111
    نقل قول نوشته اصلی توسط amidagha نمایش پست ها
    خوندن همش لازم نیست فقط تو خط های 6،7 و 15 مشکل هست، اونجایی که آرایه ای تعریف می کنم که تعداد اعضاش 1000*1000000 میشه یا بیشتر و دیگه برنامه ام ران نمیشه.
    واقعا کاری نمیشه برای ماتریسهای بزرگ کرد تو c++ ؟
    هاهاهاها منظور من از گذاشتن کد فقط اون قسمت تخصیص حافظه بود نه همش!
    بصورت پویا تخصیص بده ببین بازم به مشکل میخوری؟ مثلا به گفته خودت 1000*1000000 :
    کد:
    long int n= 1000*1000000;
    int* array = new int[n];

  10. Top | #10
    لطفا استاتوس خود را تنظیم کنید.
     

    عنوان کاربر
    کاربر تازه وارد
    تاریخ عضویت
    Feb 2015
    شماره عضویت
    529
    نوشته ها
    7
    OS/Browser
    Windows 7 Chrome 40.0.2214.115
    آهان پس من خوب متوجه منظورتون نشده بودم، ببخشید

    این حافظه پویا رو هم قبلا امتحان کردم، اما به نتیجه ای نرسیده، حتی رو تعداد عناصر کمتر هم ارور میده.

صفحه 1 از 2 12 آخرینآخرین

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

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