• اگر سمپادی هستی همین الان عضو شو :
    ثبت نام عضویت

پرسش و پاسخ پیرامون برنامه‌نویسی

  • شروع کننده موضوع max
  • تاریخ شروع
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

همین تیلور رو من زدم شد 322 خط :D
فقط برای 0 تا 90 کار میکرد L-:(به رادیانم تبدیل میشه)
 
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

-
 
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

به نقل از amoo.majid :
با توجه به این که مقدار divisor از دو به توان سی و یک منهای دو بیشتر نمیشه، اورفلو میکنه. چون توش هیجده فاکتوریل رو هم ذخیره میکنید و این عدد بزرگیه!
احتمالن کار این طوری پیش میره که:
divisor از محدوده ی اینت که خارج میشه بعدش، به یه جایی میرسه که بیشتر از ۳۰ تا عامل ۲ داره و این یعنی که ۳۱ بیت سمت راست divisor صفر هستن، که اگه این طوری باشه، divisor صفر میشه و num / divisor میشه inf و توی مراحل بعدش هم nan!

بله به دامنه divisor دقت نکرده بودم٬ لانگ لانگ تعریف کردم و مشکل حل شد.
 
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

اون خطی که اعداد tab خوردن رو ببینید٬ آخرین عدد ۸۹ بوده که ۹ش رفته خطّ بعدی. دستور خاصی هست که ازین رفتار جلوگیری کنه؟ ضمنا نمی‌خوام هر عدد توی یه سطر جدا باشه٬ ترجیحا tab بینشون باشه.

rVKmE.png
 
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

به نقل از هامـون :
اون خطی که اعداد tab خوردن رو ببینید٬ آخرین عدد ۸۹ بوده که ۹ش رفته خطّ بعدی. دستور خاصی هست که ازین رفتار جلوگیری کنه؟ ضمنا نمی‌خوام هر عدد توی یه سطر جدا باشه٬ ترجیحا tab بینشون باشه.

rVKmE.png
من مطمئن نیستم که این کمکتون کنه ولی امتحان کنید :-"
کد:
cout << value << setw(4);
یعنی به جای '\t' از setw(4) استفاده کنید!
صرفن حجم تب رو کم میکنه :-??
 
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

توی سی هم کار میکنه این؟
 
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

به نقل از هامـون :
اون خطی که اعداد tab خوردن رو ببینید٬ آخرین عدد ۸۹ بوده که ۹ش رفته خطّ بعدی. دستور خاصی هست که ازین رفتار جلوگیری کنه؟ ضمنا نمی‌خوام هر عدد توی یه سطر جدا باشه٬ ترجیحا tab بینشون باشه.


بخاطر اندازه پنجره هست که اون 9 میره پایین؛ چیزی که به ذهن من میرسه اینکه اول اندازه پنجره رو بگیرید بعد هم با توجه به اندازه هر کارکتر عددی و تب حالت های اینشکلی رو مدیریت کنید.

احتمالا کد های آماده ای هم برای اینکار باشه.
راه دیگه هم formatted printing هست، که باید سلیقه به خرج بدید مثلا هر 5 تا عدد رو یک ستون چاپ کنه، اگه یه رقمی بود دو تا صفر بذاره بغلش، از اینجور کار ها:
http://www.cplusplus.com/reference/cstdio/printf/
http://stackoverflow.com/questions/11226143/formatting-output-in-c

(معمولا چون اندازه صفحه ها تقریبا ثابت هست، میتونید طوری فرم بدید که خوب دیده شه)
 
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

به نقل از amoo.majid :
من مطمئن نیستم که این کمکتون کنه ولی امتحان کنید :-"
کد:
cout << value << setw(4);
یعنی به جای '\t' از setw(4) استفاده کنید!
صرفن حجم تب رو کم میکنه :-??
صرفاً یک پیشامد خاص رو به یک پیشامد خاص دیگه تبدیل می‌کنیم با این‌کار. مشکل اصلی حل نمی‌شه.

به نقل از امیـــ ع ـــر :



بخاطر اندازه پنجره هست که اون 9 میره پایین؛ چیزی که به ذهن من میرسه اینکه اول اندازه پنجره رو بگیرید بعد هم با توجه به اندازه هر کارکتر عددی و تب حالت های اینشکلی رو مدیریت کنید.

احتمالا کد های آماده ای هم برای اینکار باشه.
راه دیگه هم formatted printing هست، که باید سلیقه به خرج بدید مثلا هر 5 تا عدد رو یک ستون چاپ کنه، اگه یه رقمی بود دو تا صفر بذاره بغلش، از اینجور کار ها:
http://www.cplusplus.com/reference/cstdio/printf/
http://stackoverflow.com/questions/11226143/formatting-output-in-c

(معمولا چون اندازه صفحه ها تقریبا ثابت هست، میتونید طوری فرم بدید که خوب دیده شه)

نمی‌خوام حالت‌بندی‌ش کنم. و اینکه جواب‌م رو نگرفتم همچنان:-?
 
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

به نقل از هامـون :
من دقیق نفهمیدم میخوای چیکار کنی ولی تا اونجایی که من فهمیدم

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

اگه این مشکل رو من داشتم یک تعداد خاصی میگفتم توی یک خط چاپ کنه منطقی تر از این واقعا به ذهنم چیزی نمیاد و این که درباره ی این که تو کدت نمیتونی بهش بگی هر وقت رسیدی به‌ آخر خط دیگه یک کارکتر اونجا نزار کارکتر بعدی خط بعد و مثل آدم بیا کامل بزار پایین رو که نمیشه هم باید منطقی باشه(شایدم نباشه نمیدونم ولی برای من منطقیه واقعا)
 
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

به نقل از هامـون :
اون خطی که اعداد tab خوردن رو ببینید٬ آخرین عدد ۸۹ بوده که ۹ش رفته خطّ بعدی. دستور خاصی هست که ازین رفتار جلوگیری کنه؟ ضمنا نمی‌خوام هر عدد توی یه سطر جدا باشه٬ ترجیحا tab بینشون باشه.

rVKmE.png
میتونی بشماری که کی میره خط بعد یه if بذاری در اون صورت قبلش یه space بذاری :D
 
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

به نقل از Agent 47 :
میتونی بشماری که کی میره خط بعد یه if بذاری در اون صورت قبلش یه space بذاری :D
همون حالت بندی خاص ه دیگه٬ تعداد ارقام عددها مدام تغییر می‌کنه و کلی از پردازش رو درگیر می‌کنه این‌ شمردن‌ها...
 
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

به نقل از هامـون :
همون حالت بندی خاص ه دیگه٬ تعداد ارقام عددها مدام تغییر می‌کنه و کلی از پردازش رو درگیر می‌کنه این‌ شمردن‌ها...
به نقل از هامـون :
همون حالت بندی خاص ه دیگه٬ تعداد ارقام عددها مدام تغییر می‌کنه و کلی از پردازش رو درگیر می‌کنه این‌ شمردن‌ها...
الان من این برنامه رو نوشتم. هر چقدر ران می کنم به مشکل تو نمی خورم :-?
کد:
 #include <iostream>
#include <ctime>
#include <cstdlib>

using namespace std;

int main()
{
    int x;
    srand(time(NULL));
    for (int i = 0; i < 20; i++)
    {
        cout << rand() % 100 <<"\t";
    }
    
    cin >> x;
    return 0;
}
 
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

به نقل از هامـون :
همون حالت بندی خاص ه دیگه٬ تعداد ارقام عددها مدام تغییر می‌کنه و کلی از پردازش رو درگیر می‌کنه این‌ شمردن‌ها...
تا یکی دومیلیون پردازش چیز خاصی نیست!
خودتون رو خیلی درگیر این چیزها نکنید.
با چاپ formatted میتونید پنج تا پنج تا چاپ کنید؛ یعنی به جای این که هر مرحله یه if رو چک کنید دوتا for بزنید که توییه 5 تا فیبوناچی چاپ کنه، یه چیزی مثل این:
01 01 02 03 05
08 13 21 34 55
 
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

چطور می‌تونیم order یک تکه برنامه رو محاسبه کنیم؟ مثلا توی این کد:
0XAsw.png


n*(n-1)/2 مقایسه انجام میشه؟ order همینه؟
 
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

به نقل از هامـون :
چطور می‌تونیم order یک تکه برنامه رو محاسبه کنیم؟ مثلا توی این کد:
0XAsw.png


n*(n-1)/2 مقایسه انجام میشه؟ order همینه؟

ضرایب تو اردر بی تاثیر اند. یعنی اون ۱/۲ بی تاثیره. میمنونه n^2 - n که این هم میشه از اردر n^2 !

تعریف دقیق اردر رو بخونید حرفم واضح میشه!
 
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

میخوام یه سری بایت مشخص تو رم رو داشته باشم،
در واقع یه دسترسی بالاتر از OS میخوام که خودم بایتای حافظه رو مدیریت کنم
چطوری میتونم؟


(اگر جوابتون به زبان خاصی بستگی داره، زبانش مهم نیست! فقط لازمه این اتفاق بیفته )
 
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

سلام .........من تو سی پلاس پلاس یه مشکلی دارم
کد زیر خط 6 عبارت رو چاپ میکنه ولی رشته ای که تو خط بعد میخوام نمیگیره.......خط های بعدیشم درست اجرا میکنه ..فقط از اون خط getline میپره چکار کنم؟؟؟؟؟؟؟؟ رشته رم درست تعریف کردم
string lesson[30];
; cin>>n
for(int i=0;i<n;i+1=i
}
cout<<"enter the name of lesson"<<i+1
getline(cin,lesson);
cout<<"enter the coefficient of lesson"<<i+1<<endl
cin>>v
ببخشید بیشتر از این نتونتستم بهم ریختگی شو درست کنم...........
 
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

به نقل از mrm :
سلام .........من تو سی پلاس پلاس یه مشکلی دارم
کد زیر خط 6 عبارت رو چاپ میکنه ولی رشته ای که تو خط بعد میخوام نمیگیره.......خط های بعدیشم درست اجرا میکنه ..فقط از اون خط getline میپره چکار کنم؟؟؟؟؟؟؟؟ رشته رم درست تعریف کردم
string lesson[30];
; cin>>n
for(int i=0;i<n;i+1=i
}
cout<<"enter the name of lesson"<<i+1
getline(cin,lesson);
cout<<"enter the coefficient of lesson"<<i+1<<endl
cin>>v
ببخشید بیشتر از این نتونتستم بهم ریختگی شو درست کنم...........

من اگه بخوام یه آرایه‌ از رشته تو سی درست کنم و بعدا چاپش کنم این‌ کار رو می‌کنم، احتمالا به دردت بخوره.
کد:
#include <stdio.h>
typedef struct name{
	char name[100];
}name;
int main(){
	name yourString[10];
	for(int i=0; i<10;i++)
		scanf("%s",yourString[i].name);
	for(int i=0; i<10;i++)
		printf(yourString[i].name);
}
البته احتمالا روش‌های بهینه‌تری توی سی‌پلاس‌پلاس وجود داره!
 
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

روش بهینه ش فکر کنم آرایه دوبعدیه که به ما یاد ندادن...........و مجبورم اینکارو کنم
منم فکر کنم روش مشابه شما رو دقیقا به کار بردم....منتها مشکل من تو خوندن هر رشته است.من بعد از تعریف حلقه از تابعGETLINE برای گرفتن هر رشته استفاده میکنم ولی در اجرا برنامه از روش میپره :-\ و دستورات بعدی رو اجرا میکنه..........
در حالی که قبل از حلقه از همین تابع چن بار استفاده میکنم و اجرا میشه ~X(
 
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

توی C++ میتونی string داشته باشی.یعنی نیازی نیست آرایه ای از کاراکترها رو درنظر بگیری و با %S ، اسکن‌اف و پرینت‌اف کنی.

بعد خب توی وکتور هم میشه ذخیره کرد. :-?

کد:
#include<iostream>
#include<vector>
using namespace std;
main()
{
	vector <string> myvec;
	string mystr;
	int n;
	cin>> n;
	
	for(int i = 0 ; i < n ; i++)
	{
		cin>> mystr;
		myvec.push_back(mystr);
	}
	
	for(int j = 0 ; j < n ; j++)
		cout<< myvec[j]<< endl;
}

+حالا اجباری نیس از وکتور استفاده کنی البته.می‌تونی توی آرایه‌ای از نوع استرینگ بریزی‌ش.وکتور مزیت‌ش اینه که هر تعداد بخوای می‌توی به تهش اضافه کنی.

درمورد گت‌لاین هم آخه واسه چی گت‌لاین؟ :-" گت‌لاین خیلی چیز بیخودیه. :-"
 
  • لایک
امتیازات: mrm
Back
بالا