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

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

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

Quf

کاربر فوق‌حرفه‌ای
ارسال‌ها
960
امتیاز
4,226
نام مرکز سمپاد
حلی
شهر
تهران
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

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

hastiz

کاربر فعال
ارسال‌ها
22
امتیاز
35
نام مرکز سمپاد
فرزانگان 2
شهر
تهران
سال فارغ التحصیلی
97
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

-
 

ArtmisSoR

کاربر حرفه‌ای
ارسال‌ها
292
امتیاز
3,446
نام مرکز سمپاد
فرزانگان‎امین
شهر
Isf
دانشگاه
پلی‌پیکنیک
رشته دانشگاه
علوم کامپیوتر
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

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

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

ArtmisSoR

کاربر حرفه‌ای
ارسال‌ها
292
امتیاز
3,446
نام مرکز سمپاد
فرزانگان‎امین
شهر
Isf
دانشگاه
پلی‌پیکنیک
رشته دانشگاه
علوم کامپیوتر
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

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

rVKmE.png
 

Anita H

کاربر فوق‌حرفه‌ای
ارسال‌ها
571
امتیاز
2,987
نام مرکز سمپاد
حلّی ۲
شهر
تهران
سال فارغ التحصیلی
1396
مدال المپیاد
کامپیوتری بودم
دانشگاه
شریف
رشته دانشگاه
کامپیوتر
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

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

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

Quf

کاربر فوق‌حرفه‌ای
ارسال‌ها
960
امتیاز
4,226
نام مرکز سمپاد
حلی
شهر
تهران
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

توی سی هم کار میکنه این؟
 

a_mat_1995

کاربر فوق‌فعال
ارسال‌ها
156
امتیاز
183
نام مرکز سمپاد
شهيد بهشتي
شهر
اردبیل
دانشگاه
صنعتی شریف
رشته دانشگاه
علوم کامپیوتر
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

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


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

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

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

ArtmisSoR

کاربر حرفه‌ای
ارسال‌ها
292
امتیاز
3,446
نام مرکز سمپاد
فرزانگان‎امین
شهر
Isf
دانشگاه
پلی‌پیکنیک
رشته دانشگاه
علوم کامپیوتر
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

به نقل از 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

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

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

Dani1377

کاربر جدید
ارسال‌ها
0
امتیاز
24
نام مرکز سمپاد
H2
شهر
tehran
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

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

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

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

Agent 47

کاربر حرفه‌ای
ارسال‌ها
318
امتیاز
1,190
نام مرکز سمپاد
شهید بهشتی
شهر
تهران
دانشگاه
شهید بهشتی
رشته دانشگاه
علوم کامپیوتر
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

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

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

ArtmisSoR

کاربر حرفه‌ای
ارسال‌ها
292
امتیاز
3,446
نام مرکز سمپاد
فرزانگان‎امین
شهر
Isf
دانشگاه
پلی‌پیکنیک
رشته دانشگاه
علوم کامپیوتر
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

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

Agent 47

کاربر حرفه‌ای
ارسال‌ها
318
امتیاز
1,190
نام مرکز سمپاد
شهید بهشتی
شهر
تهران
دانشگاه
شهید بهشتی
رشته دانشگاه
علوم کامپیوتر
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

به نقل از هامـون :
همون حالت بندی خاص ه دیگه٬ تعداد ارقام عددها مدام تغییر می‌کنه و کلی از پردازش رو درگیر می‌کنه این‌ شمردن‌ها...
به نقل از هامـون :
همون حالت بندی خاص ه دیگه٬ تعداد ارقام عددها مدام تغییر می‌کنه و کلی از پردازش رو درگیر می‌کنه این‌ شمردن‌ها...
الان من این برنامه رو نوشتم. هر چقدر ران می کنم به مشکل تو نمی خورم :-?
کد:
 #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;
}
 

a_mat_1995

کاربر فوق‌فعال
ارسال‌ها
156
امتیاز
183
نام مرکز سمپاد
شهيد بهشتي
شهر
اردبیل
دانشگاه
صنعتی شریف
رشته دانشگاه
علوم کامپیوتر
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

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

ArtmisSoR

کاربر حرفه‌ای
ارسال‌ها
292
امتیاز
3,446
نام مرکز سمپاد
فرزانگان‎امین
شهر
Isf
دانشگاه
پلی‌پیکنیک
رشته دانشگاه
علوم کامپیوتر
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

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


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

daneshvar.amrollahi

کاربر حرفه‌ای
ارسال‌ها
327
امتیاز
130
نام مرکز سمپاد
راهنمایی حلی۲/دبیرستان حلی۱۰/دبیرستان علامه طباطبایی
شهر
تهران
سال فارغ التحصیلی
1397
مدال المپیاد
کامپیوتر
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

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


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

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

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

Quf

کاربر فوق‌حرفه‌ای
ارسال‌ها
960
امتیاز
4,226
نام مرکز سمپاد
حلی
شهر
تهران
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

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


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

mrm

کاربر فعال
ارسال‌ها
46
امتیاز
265
نام مرکز سمپاد
فرزانگان زینب(س)
شهر
تهران
سال فارغ التحصیلی
94
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

سلام .........من تو سی پلاس پلاس یه مشکلی دارم
کد زیر خط 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
ببخشید بیشتر از این نتونتستم بهم ریختگی شو درست کنم...........
 

JB

کاربر خاک‌انجمن‌خورده
ارسال‌ها
1,447
امتیاز
4,765
نام مرکز سمپاد
هاشمی‌نژاد ۲ مشهد
دانشگاه
شهید بهشتی تهران
رشته دانشگاه
ریاضی و علوم کامپیوتر
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

به نقل از 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);
}
البته احتمالا روش‌های بهینه‌تری توی سی‌پلاس‌پلاس وجود داره!
 

mrm

کاربر فعال
ارسال‌ها
46
امتیاز
265
نام مرکز سمپاد
فرزانگان زینب(س)
شهر
تهران
سال فارغ التحصیلی
94
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

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

Sahar.Z

کاربر حرفه‌ای
ارسال‌ها
459
امتیاز
6,872
نام مرکز سمپاد
دبیرستان فـرزانگان ۱
شهر
تهران
دانشگاه
صنعتی شريف
رشته دانشگاه
مهندسی كامپيوتر - IT
پاسخ : پرسش و پاسخ پیرامون برنامه نویسی

توی 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
بالا