ورود

نسخه کامل مشاهده نسخه کامل : سوالی در مورد وارد کردن یک معادله درجه 2 در یک متغیر در "سی"



Nimra
09-12-2008, 16:04
با سلام خدمت دوستان
یک سوال داشتم در مورد برنامه C
فرض کنید یک معادله داریم به این صورت: x^2 + 3x^3 + tan(x^2)+3logx
حالا میخوام این معادله رو در سی خودم وارد کنم و برنامه این رو در یک متغیر مثل Y قرار بده.
که میشه این
Y=x^2 + 3x^3 + tan(x^2)+3logx
در حقیقت میخوام این معادله رو خودم در محیط "سی" تایپ کنم و برنامه اون رو در متغیر Y قرار بده و مثلا به X بدم 3 و y رو برام محاسبه کنه
کسی میدونه روشش چیه؟؟؟
ممنون

devil_ff2008
09-12-2008, 18:49
اگه میخواین براتون محاسبه انجام بده باید برنامش رو پیاده کنید
ولی اگه میخواین توی یه متغیر ذخیره کنه و بعدا چاپش کنه
باید یه آرایه از کاراکترها (رشته در سی) ایجاد کنید و اینو توش بریزید

Nimra
09-12-2008, 19:05
منظور منو خوب متوجه نشدین
فرض کنین که من یک معادله دارم که میخوام ریشه هاشو در بیارم y=-x^2+2x-3
خب حالا من میخوام که این معادله رو توی محیط سی وارد کنم
نه اینکه یک رشته باشه که دوباره بخوام چاپش کنم میخوام عین این متغیر x رو وارد کنم
در حقیقت اینکه اول به صورت یک رشته اینو بنویسم بعدش خود برنامه این رشته رو به یک متغیر Float تبدیل کنه

Mamadex
10-12-2008, 00:07
کد زیر رو همین الان نوشتم فکر کنم مشکلتو حل کنه
شما فقط باید در قسمتی که کنارش // zarayebe moadele // نوشته عدد مربوط به ضرایب رو تغییر بدهید، برنامه رو اجرا کنید ریشه ها رو بهتون میده. در ضمن تایپ معادله در c بصورت x^2+4x+4 = a*pow(x,2)+b*x+c نوشته می شود که در کد می بینید


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
موفق باشید
محمد

Nimra
10-12-2008, 21:28
دوست من ممنون
ولی مشکل من در این نیست که چجوری ریشه رو بگیرم
از قرار معلوم من واسه پروژه پایان ترمم یک ماشین حسابی میخوام بنویسم که ریشه معادله n جمله ای مقدار عددی انتگرال رو بده و اینکه معادله و نامعادله حل کنه (علاوه بر کارای یک ماشین حساب معمولی)
خب مشکل من اینجاس که مثلا بخوام این معادله رو وارد کنم نمیتونم x^2+3Tan(3x^2)+4Log
راه حل چیست؟؟

Mehran NZ
11-12-2008, 02:03
اینجوری که نمی شه هر معادله ای برای خودش یک راه حلی داره
شما کدوم ماشین حساب و دیدی که بهش معادله n جمله ای میدی بهت جواب بده؟
بعدش برای بدست اوردن معادلات 3 جمله ای به بعد باید از روشهای محاسبات عددی رفت و دیگه اینجوری نیستش که خیلی راحت فرمول و بهش بدی و مثل برنامه بالاحلش کنه

Nimra
11-12-2008, 08:20
اینجوری که نمی شه هر معادله ای برای خودش یک راه حلی داره
شما کدوم ماشین حساب و دیدی که بهش معادله n جمله ای میدی بهت جواب بده؟
بعدش برای بدست اوردن معادلات 3 جمله ای به بعد باید از روشهای محاسبات عددی رفت و دیگه اینجوری نیستش که خیلی راحت فرمول و بهش بدی و مثل برنامه بالاحلش کنه

حالا من هی میگم یکی طرز وارد کردن این معادله رو بگه مگه کسی گوش میکنه
خب جالبیش به همینه که معادله درجه n حل میکنه اونم از راه عددی
که خیلی طول میکشه فکر کنم یه بار تست کردم درجه 5 بود 10 دقیقه کشید
مشکل من فقط همینه که این معادله لعنتی رو چجوری وارد کنم

Mehran NZ
11-12-2008, 13:29
ببین عزیز دل بازم نگرفتی چی شد ! هر معادله ای یه راه حلی داره و وبرای دریافت هر نوع معادله باید یه برنامه بنویسی مثلا فرض کن می خوام معادله درجه 3 زیر رو دریافت کنم
c1x^3 + c2x^2+c3x + number=0
برنامه زیر و می نویسم ولی این دیگه برای معادله tan(c1)x^3 + c2x^2+c3x + number=0 کاربردی نداره براش باید یه برنامه دیگه ای بنویسی ok ؟
از کتاب وحیدی -قاسم پور استفاده می کنی ؟ اگه توجه کنی اون هم نتونسته برنامه رو برای هر نوع معادله ای حل کنه و فقط نوشته( y=f(x یعنی اینکه باید در اون قسمت یه تابع بنویسی که اینکار و برات انجام بده و شما نمی تونی این کار و انجام بدی مگر اینکه نوع معادله ای که کاربر می خواد وارد کنه رو بدونی


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

Nimra
11-12-2008, 14:18
حالا این شد یه چیزی
خب برادر از همون اول میگفتی که نمیشه این کارو کرد
من انتظارم این بود که مثلا فرض کن یک رشته ازم بگیره که رشته این باشه
pow(x,2)+8*pow(x,3)+3Tan(Pow(x,2))+1
بعدش بیاد اینو عینا بریزه توی متغیر Y که در مراحل بعد واسم Y رو محاسبه کنه ولی مثه اینکه نمیشه
دنبال دستور های کانورت استرینگ به اینتیجر بودم که فقط مثه اینکه میتونه عدد رو اینکارو بکنه

Mehran NZ
11-12-2008, 15:46
بابا ما که از همون اول هم داریم همین و می گیم شما گوش نمیدی یه نگاه دیگه به پست جناب devil_ff2008 بندازید...
این و هم نوشتم برای معادله x^3-x+1 از همون کتاب وحیدی -قاسم پور که از راه bisect یا تنصیف میره به تابع f دقت کن که چطور پیادش کردم (هر چند انگار طرف برنامه رو غلط نوشته چون برای همه بازه ها کار نمی کنه !!شما
برای -1و2 امتحانش کن)


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

Mamadex
14-12-2008, 08:08
مشکل من اینجاس که مثلا بخوام این معادله رو وارد کنم نمیتونم x^2+3Tan(3x^2)+4Log
راه حل چیست؟؟


مشکل من فقط همینه که این معادله لعنتی رو چجوری وارد کنم

math.h همه جمله های فوق رو برات حساب می کنه

Mamadex
14-12-2008, 08:18
حالا این شد یه چیزی
خب برادر از همون اول میگفتی که نمیشه این کارو کرد
من انتظارم این بود که مثلا فرض کن یک رشته ازم بگیره که رشته این باشه

بعدش بیاد اینو عینا بریزه توی متغیر Y که در مراحل بعد واسم Y رو محاسبه کنه pow(x,2)+8*pow(x,3)+3Tan(Pow(x,2))+1 ولی مثه اینکه نمیشه
دنبال دستور های کانورت استرینگ به اینتیجر بودم که فقط مثه اینکه میتونه عدد رو اینکارو بکنه

پس شما می فرمایید برنامه هایی نظیر matlab و maple و برنامه نویسی فرترن و ... رو گذاشتن که تو ویترین نمایش داده بشن و cd خام ها رو باش پر کنن، این کار از عهده اینا بر میاد. (البته c که سرور همه است)
اما اگه استاد گیر داده باشه که فقط با c قبول یه حرف دیگس

خلاصه خواستم بگم که این کار با matlab آب خوردنه.