در خواست برنامه به زبان ++c(دترمینان)

در اين بخش مي‌توانيد در مباحث مربوط به زبانهاي بر پايه C به بحث بپردازيد

مدیران انجمن: abbas.m.k, athlon64x2, شوراي نظارت

ارسال پست
Rookie Poster
Rookie Poster
پست: 29
تاریخ عضویت: چهارشنبه ۲۳ اسفند ۱۳۸۵, ۱۲:۲۸ ق.ظ

در خواست برنامه به زبان ++c(دترمینان)

پست توسط sohrab1414 »

سلام خدمت دوستان
من سورس برنامه ای به زبان ++c می خواستم که بتونه دترمینان پارامتری(شامل 3*3 و
2*2)رو حل کنه و یک ماتریس پارامتری رو در در ماتریس عددی ضرب کنه.
ممنون میشم اگر کمک کنین.خیلی احتیاج دارم

تصویرتصویرتصویرتصویرتصویرتصویرتصویر
Captain II
Captain II
نمایه کاربر
پست: 246
تاریخ عضویت: یک‌شنبه ۹ فروردین ۱۳۸۸, ۹:۱۱ ق.ظ
سپاس‌های ارسالی: 780 بار
سپاس‌های دریافتی: 791 بار
تماس:

Re: در خواست برنامه به زبان ++c(دترمینان)

پست توسط arashtabaie »

به علت اینکه برای محاسبه ی دترمینان ماتریس های بزرگتر باید از فرمول بازگشتی استفاده کرد که خیلی محاسبات پیچیده ای داره و در نتیجه order(پیچیدگی زمانی) کدتون رو میبره بالا اینجا از راه حل ساده تر کد کردن فرمول دترمینان برای ماتریس مربعی درجه دو و سه استفاده کردم.
برنامه برای محاسبه دترمینان:

 [BLOCKQUOTE]
int DetMatrix(int **matrix, int Type)
{
int counter = 0;
try //yek error e mohtamel inja eshtebah pas kardane
{

if(Type == 2)
return DetMatrix2*2(matrix)

else if(Type == 3)
return ( matrix[0][0] * DetMatrix2*2({{matrix[1][1],matrix[1][2]},{matrix[2][1],matrix[2][2]}}) -
matrix[0][1] * DetMatrix2*2({{matrix[1][0],matrix[1][2]},{matrix[2][0],matrix[2][2]}}) +
matrix[0][2] * DetMatrix2*2({{matrix[1][0],matrix[1][1]},{matrix[2][0],matrix[2][1]}}));

}
catch
{
return ; // an error has occured
}

}

  DetMatrix2*2(int**matrix)
{
return (matrix[0][0] * matrix[1][1] - matrix[0][1] * matrix[1][0]);




 : تایپ یک int است که باید بر اساس ماتریستون یک مقدار 2 یا 3 بهش پاس کنید.
بعد از else if بر اساس فرمول محاسبه دترمینان تابع ماتریس دو در دو مرتبا با مقادیر مناسب کال میشه.

پ.ن.: من این کد رو همینجا نوشتم و جایی چک یا دیباگش نکردم. در حقیقت شما میتونید به عنوان یک سودو کد ازش استفاده کنید. البته اگه خیلی خوش شانس باشید با یکمی دیباگ کردن راه می افته. [/BLOCKQUOTE] 
Rookie Poster
Rookie Poster
پست: 29
تاریخ عضویت: چهارشنبه ۲۳ اسفند ۱۳۸۵, ۱۲:۲۸ ق.ظ

Re: در خواست برنامه به زبان ++c(دترمینان)

پست توسط sohrab1414 »

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

تصویرتصویرتصویر
Captain II
Captain II
نمایه کاربر
پست: 246
تاریخ عضویت: یک‌شنبه ۹ فروردین ۱۳۸۸, ۹:۱۱ ق.ظ
سپاس‌های ارسالی: 780 بار
سپاس‌های دریافتی: 791 بار
تماس:

Re: در خواست برنامه به زبان ++c(دترمینان)

پست توسط arashtabaie »

  ++g این کد رو کامپایل میکنه: 
Please Login or Register to see this code


  کد بالا کامپایل نشد مشکل از کامپایلرتونه که سینتکس رو کامل نمیشناسه!!! کد زیر رو به جای بالایی استفاده کنید:

 Please Login or Register to see this code

    قطعه کد دومی، یک ماتریس قطری 3*3 پاس میشه که مقدار دترمینانش برابر یک هستش، کد رو تو کامپایلر تحت ویندوز dev-cpp تست کردم درست جواب داد. اگه با کامپایلر دیگه ای دارید کار میکنید اگه مشکلی داشت باید احتمالا یکم تغییرش بدید!
Rookie Poster
Rookie Poster
پست: 29
تاریخ عضویت: چهارشنبه ۲۳ اسفند ۱۳۸۵, ۱۲:۲۸ ق.ظ

Re: در خواست برنامه به زبان ++c(دترمینان)

پست توسط sohrab1414 »

ممنون ازتون.ولی یه سوال از خدمتتون داشتم :
چه جوری میشه فهمید از چه کامپایلری استفاده می کنم و یا ورژنش چیه و شما از چه کامپایلری استفاده می کنید؟
و اگر بخوام تغییرش بدم چجوری میشه؟
:-x :-x :-x
Captain II
Captain II
نمایه کاربر
پست: 246
تاریخ عضویت: یک‌شنبه ۹ فروردین ۱۳۸۸, ۹:۱۱ ق.ظ
سپاس‌های ارسالی: 780 بار
سپاس‌های دریافتی: 791 بار
تماس:

Re: در خواست برنامه به زبان ++c(دترمینان)

پست توسط arashtabaie »

خوب، ببینید، c یک syntax استاندارد داره که اونو همه ی کامپایلر ها میشناسن!
همین کد نوشته شدتونو با هر کامپایلری کامپایل کنید میشه کامپایلرتون دیگه!!!!
ارسال پست

بازگشت به “C Base Programming”