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

Rookie Poster



no avatar
پست ها

29

تشکر کرده: 0 مرتبه
تشکر شده: 0 مرتبه
تاريخ عضويت

چهارشنبه 23 اسفند 1385 00:28

آرشيو سپاس: 0 مرتبه در 0 پست

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

توسط sohrab1414 » پنج شنبه 26 آذر 1388 12:51

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


Captain II

Captain II



نماد کاربر
پست ها

246

تشکر کرده: 0 مرتبه
تشکر شده: 7 مرتبه
تاريخ عضويت

يکشنبه 9 فروردین 1388 08:11

آرشيو سپاس: 821 مرتبه در 200 پست

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

توسط arashtabaie » پنج شنبه 26 آذر 1388 14:54

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


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
    }

}

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

}



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

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

کاربران زیر از شما کاربر محترم جناب arashtabaie تشکر کرده اند:
nt, siryahya, Mahdi1944

Rookie Poster

Rookie Poster



no avatar
پست ها

29

تشکر کرده: 0 مرتبه
تشکر شده: 0 مرتبه
تاريخ عضويت

چهارشنبه 23 اسفند 1385 00:28

آرشيو سپاس: 0 مرتبه در 0 پست

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

توسط sohrab1414 » يکشنبه 29 آذر 1388 20:14

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


Captain II

Captain II



نماد کاربر
پست ها

246

تشکر کرده: 0 مرتبه
تشکر شده: 7 مرتبه
تاريخ عضويت

يکشنبه 9 فروردین 1388 08:11

آرشيو سپاس: 821 مرتبه در 200 پست

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

توسط arashtabaie » چهارشنبه 2 دی 1388 17:26

کامپایلر++g این کد رو کامپایل میکنه:

کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 



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

کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


در قطعه کد دومی، یک ماتریس قطری 3*3 پاس میشه که مقدار دترمینانش برابر یک هستش، کد رو تو کامپایلر تحت ویندوز dev-cpp تست کردم درست جواب داد. اگه با کامپایلر دیگه ای دارید کار میکنید اگه مشکلی داشت باید احتمالا یکم تغییرش بدید!

کاربران زیر از شما کاربر محترم جناب arashtabaie تشکر کرده اند:
Mahdi1944

Rookie Poster

Rookie Poster



no avatar
پست ها

29

تشکر کرده: 0 مرتبه
تشکر شده: 0 مرتبه
تاريخ عضويت

چهارشنبه 23 اسفند 1385 00:28

آرشيو سپاس: 0 مرتبه در 0 پست

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

توسط sohrab1414 » پنج شنبه 3 دی 1388 19:11

ممنون ازتون.ولی یه سوال از خدمتتون داشتم :
چه جوری میشه فهمید از چه کامپایلری استفاده می کنم و یا ورژنش چیه و شما از چه کامپایلری استفاده می کنید؟
و اگر بخوام تغییرش بدم چجوری میشه؟
:-x  :-x  :-x

Captain II

Captain II



نماد کاربر
پست ها

246

تشکر کرده: 0 مرتبه
تشکر شده: 7 مرتبه
تاريخ عضويت

يکشنبه 9 فروردین 1388 08:11

آرشيو سپاس: 821 مرتبه در 200 پست

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

توسط arashtabaie » پنج شنبه 3 دی 1388 22:43

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

کاربران زیر از شما کاربر محترم جناب arashtabaie تشکر کرده اند:
Mahdi1944


 


  • موضوعات مشابه
    پاسخ ها
    بازديدها
    آخرين پست

چه کسي حاضر است ؟

کاربران حاضر در اين انجمن: بدون كاربران آنلاين و 0 مهمان