PDA

View Full Version : سوال: تبدیل نوع char به double



mohamad2468
یک شنبه 17 شهریور 1398, 11:26 صبح
با سلام
می خواستم برنامه ای بنویسم که ضابطه تابعی(تابع ریاضی منظورم هست ) رو از کاربر بگیره و عملیاتی را بر روی تابع انجام بده (مثلا تابع رو مقدار دهی کنه )
برای اینکه ضابطه تابع رو بگیره آرایه ای از نوع char ایجاد میکنم ولی نمیدونم چطور این متغیر ها و علائم ریاضی رو از کاراکتر به متغیر ها و غیره تبدیل کنم
ممنون میشم راهنماییم کنید.

farhad_shiri_ex
یک شنبه 17 شهریور 1398, 17:19 عصر
با سلام
می خواستم برنامه ای بنویسم که ضابطه تابعی(تابع ریاضی منظورم هست ) رو از کاربر بگیره و عملیاتی را بر روی تابع انجام بده (مثلا تابع رو مقدار دهی کنه )
برای اینکه ضابطه تابع رو بگیره آرایه ای از نوع char ایجاد میکنم ولی نمیدونم چطور این متغیر ها و علائم ریاضی رو از کاراکتر به متغیر ها و غیره تبدیل کنم
ممنون میشم راهنماییم کنید.

در زبان C ویا ++C چیزی به نام evaluator در زمان اجرا نداریم چیزی که در خیلی از زبانها هست! بنابراین باید آرایه ای که دارید را اکستراکت کنید و هر کدام از علامت های زیاضی را که اکستراکت شده را عملیات موثر همون علامت را انجام بدید
با چند تا شرط و یک حلقه به راحتی میشه پیاده اش کرد.
مثال...

char* tempString = const_cast<char*>("a*b");
int a=10;
int b=2;
for(unsigned int i=0 ; i <= strlen(tempString) ; i++){
if(*(tempString+i) == '*'){
std::cout << "a*b = "<< a*b <<'\n';
}
}

mohamad2468
دوشنبه 18 شهریور 1398, 13:19 عصر
در زبان C ویا ++C چیزی به نام evaluator در زمان اجرا نداریم چیزی که در خیلی از زبانها هست! بنابراین باید آرایه ای که دارید را اکستراکت کنید و هر کدام از علامت های زیاضی را که اکستراکت شده را عملیات موثر همون علامت را انجام بدید
با چند تا شرط و یک حلقه به راحتی میشه پیاده اش کرد.
مثال...

char* tempString = const_cast<char*>("a*b");
int a=10;
int b=2;
for(unsigned int i=0 ; i <= strlen(tempString) ; i++){
if(*(tempString+i) == '*'){
std::cout << "a*b = "<< a*b <<'\n';
}
}


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

farhad_shiri_ex
جمعه 22 شهریور 1398, 11:26 صبح
من قصد دارم برنامه ای بنویسم که انتگرال معین تابعی که کاربر وارد میکند رو در بازه مطلوب حساب بکنه
چطور میتوان با کدی که شما نوشتید برای دریافت ضابطه تابع اقدام کنم؟

فقط مقادیر تابع را کاربر وارد میکنه؟ ویا یک تابع را به صورت رشته از کاربر دریافت میکنید؟

mohamad2468
جمعه 22 شهریور 1398, 18:51 عصر
فقط مقادیر تابع را کاربر وارد میکنه؟ ویا یک تابع را به صورت رشته از کاربر دریافت میکنید؟

یک تابع رو به صورت رشته ای از کاراکتر ها دریافت کنه
برای مثال اگر کاربر بخود انتگرال تابع 1/x رو در بازه
[1،2] حساب کنه ، با وارد کردن 1/x این تابع
دریافت بشه و به صورت مجموع n زیر بازه (n را کاربر وارد میکند) انتگرال با دقتی معین به دست بیاد