تور لحظه آخری
امروز : چهارشنبه ، 26 اردیبهشت 1403    احادیث و روایات:  امام علی (ع):هرگاه رسول اكرم صلى‏الله‏عليه‏و‏آله يكى از اصحاب خود را غمگين مى‏ديدند، با شوخى او...
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

تریدینگ ویو

خرید اکانت اسپاتیفای

کاشت ابرو

لمینت دندان

ونداد کولر

لیست قیمت گوشی شیائومی

صرافی ارکی چنج

صرافی rkchange

دانلود سریال سووشون

دانلود فیلم

ناب مووی

سرور اختصاصی ایران

جملات زیبا

دزدگیر منزل

ماربل شیت

تشریفات روناک

آموزش آرایشگری رایگان

طراحی سایت تهران سایت

آموزشگاه زبان

اجاره سند در شیراز

ترازوی آزمایشگاهی

فروش اقساطی کوییک

راهبند تبریز

ترازوی آزمایشگاهی

قطعات لیفتراک

وکیل تبریز

خرید اجاق گاز رومیزی

آموزش ارز دیجیتال در تهران

شاپیفای چیست

فروش اقساطی ایران خودرو

واردات از چین

قیمت نردبان تاشو

وکیل کرج

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

پیچ و مهره

طراحی کاتالوگ فوری

واردات از چین

اجاره کولر

دفتر شکرگزاری

تسکین فوری درد بواسیر

دانلود کتاب صوتی

تعمیرات مک بوک

قیمت فرش

خرید سی پی ارزان

خرید تجهیزات دندانپزشکی اقساطی

خانه انزلی

تجهیزات ایمنی

رنگ استخری

پراپ فرم رابین سود

سایت نوید

کود مایع

سایت نوید

Future Innovate Tech

باند اکتیو

بلیط هواپیما

بلیط هواپیما

صمغ های دارویی

 






آمار وبسایت

 تعداد کل بازدیدها : 1799884496




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

برنامه ماتريس معكوس نوشته شده در++c


واضح آرشیو وب فارسی:سایت ریسک: Saeed 13861st May 2007, 09:27 AMاينم برنامه ماتريس معكوس شايد براي كسي مفيد باشه خودم نوشتم اگه يه موقع اشكال داشت ببخشيد ضمنا كليك راست كرده و از قسمت Encoding گزينه left to right document را بزنيد. /*Matrix Reverse */ #include <math.h> #include <iomanip.h> #include <stdlib.h> #include <iostream.h> #include <conio.h> int p=1; float det(int i1,int j1,int i4,int j4,int n,float x[10][10]); int hams(int i1,int j1,int n,float x[10][10]); int main() { float x[10][10],det1,y[2][2]; int n,r=1; cout<<"Enter n for Matrix n*n: "; cin>>n; if(n==1) cout<<"there is not matrix."; else { cout<<" Enter "<<n*n<<" number. "; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) cin>>x[i][j]; det1=det(1,1,n,n,n,x); cout<<"Determinan x is : "<<det1<<endl; cout<<" Matrix Reverse Is :"<<endl; if(n==2) { y[1][1]=x[2][2]; y[2][2]=x[1][1]; y[1][2]=-x[1][2]; y[2][1]=-x[2][1]; for(i=1;i<=2;i++) for(int j=1;j<=2;j++) { cout<<setw(8)<<setprecision(2)<<y[i][j]/det1; if(j==2) cout<<endl;}} else { for(i=1;i<=n;i++) for(int j=1;j<=n;j++) { cout<<setw(8)<<setprecision(2)<<(hams(j,i,n,x)/det1)*r; r*=-1; if(j==n) cout<<endl;}} } return 0;} /*in ghesmat determinane x ra hesab mikonad */ float det(int i1,int j1,int i4,int j4,int n,float x[10][10]) { if(n==2) {int i2,i3,j2,j3; i2=i1; j2=j4; i3=i4; j3=j1; return x[i1][j1]*x[i4][j4]-x[i2][j2]*x[i3][j3];} float sum=0; for(int k=j1;k<=j4;k++) { if(k==j1) sum+=p*x[i1][k]*det(i1+1,j1+1,i4,j4,i4-i1,x); else if(k==j4) sum+=p*x[i1][k]*det(i1+1,j1,i4,j4-1,i4-i1,x); else sum+=p*x[i1][k]*det(i1+1,j1,i4,j4,i4-i1,x); p*=-1; } return sum; } /* in ghesmat hamsaze x ra hesab mikonad */ int hams(int i1,int j1,int n,float x[10][10]) { float z[10][10]; int k=1,l=1,s; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) { if(i!=i1 && j!=j1) { z[k][l]=x[i][j]; if(l==n-1) {++k; l=0;} ++l; } } s=det(1,1,n-1,n-1,n-1,z); return s;} والسلام farzad_jh200129th May 2007, 11:10 AMسلام دوست عزيز ميشه يه لطفي كني تابع حساب دترمينان و معكوس را يك كمي نحوه عملشو توضيح بدهي قبلاٌ ازت متشكرم من برنامه شما را چندين بار مرور كردم ولي هنوز نتونستم اين دو تابع را براي خودم شرح دهم قبلا از شما متشكرم Saeed 138611th June 2007, 07:05 AMبرنامه اي كه دترمينان رو حساب ميكنه /*Determinan Matrix*/ #include <math.h> #include <iomanip.h> #include <stdlib.h> #include <iostream.h> #include <conio.h> int p=1; float det(int i1,int j1,int i4,int j4,int n,float x[10][10]); int main() { clrscr(); float x[10][10]; int n; cout<<"Enter n for Matrix n*n: "; cin>>n; cout<<" Enter "<<n*n<<" number. "; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) cin>>x[i][j]; cout<<det(1,1,n,n,n,x); return 0;} float det(int i1,int j1,int i4,int j4,int n,float x[10][10]) { if(n==2) {int i2,i3,j2,j3; i2=i1; j2=j4; i3=i4; j3=j1; return x[i1][j1]*x[i4][j4]-x[i2][j2]*x[i3][j3];} float sum=0; for(int k=j1;k<=j4;k++) { if(k==j1) sum+=p*x[i1][k]*det(i1+1,j1+1,i4,j4,i4-i1,x); else if(k==j4) sum+=p*x[i1][k]*det(i1+1,j1,i4,j4-1,i4-i1,x); else sum+=p*x[i1][k]*det(i1+1,j1,i4,j4,i4-i1,x); p*=-1; } return sum; } Saeed 138611th June 2007, 07:19 AMدترمينان به اين ترتيب عمل ميكنه كه ابتدا آرايه ها و نيازها رو خود تابع دريافت ميكنه. در خود تابع از سطر اول عدد اول رو انتخاب و در دترمينان ماتريس بغير از سطر اول و ستون اول ضرب ميكنه عدد انتخاب شده سه حالت داره كه يا عدد اول سطر يا عدد آخر سطر يا عدد غير از آنها كه براي هركدام مقدار ورودي تابع فرق ميكنه و به همين ترتيب عدد دوم سطر و سوم و... تاوقتي كه ماتريس 2*2 بدست مياد براي حساب كردنه ماتريس معكوس ما به دترمينان و ماتريس همسازه نياز داريم كه ماتريس همسازه نيز در تابع جداگانه با نامdet و hams آمده است اميدوارم توضيح مفيد باشه ولي اگه خواستيد بگيد تا با تمام جزئيات شرح دهم farzad_jh200111th June 2007, 08:31 AMسلام سعيد جان خيلي از شما متشكرم من دتر مينان 2*2 يا 3*3 رو ميتونم درك كنم و حتي برنامه هم براش نوشتم ولي تابع برنامه شما دركش برام مشكله اگه ممكنه با جزئياتش برام يك توضيح مختصر بده قبلا ازت خيلي ممنمونم Saeed 138611th June 2007, 08:35 PMآقا فرزاد خدمت شما ! i1 : مشخصه سطر اول ماتريس j1 : مشخصه ستون اول ماتريس i4 : مشخصه سطر آخر ماتريس j4 : مشخصه ستون آخر ماتريس k : شمارنده حلقه for به تعداد مرتبه ماتريس ( تعداد ستونهاي ماتريس) p : براي تغيير دادن علامت ستون زوج ماتريس . براي بدست آوردن دترمينان يكي در ميان در منفي ضرب ميشوند. اگر مرتبه ماتريس (n) بزرگتر از 2 يعني 3يا4 يا... باشد اعداد سطر اول را در دترمينان حاصل از حذف سطر و ستون همان عدد ضرب ميكند. مثلا عدد اول سطر اول (x[i1][k] ) را برداشته و آن را در دترمينان حاصل از خذف سطر اول و ستون اول ضرب ميكند. عددي كه برداشته ميشود 3 حالت دارد 1- اولين عدد سطر 2- آخرين عدد سطر 3- اعداد بين اول و آخر سطر براي اولي ما بايد سطر اول و ستون اول را حذف كنيم --- i1+1 سطر دوم را جايگزين سطر اول ميكند. و j1+1 ستون دوم را جايگزين اول ميكند . سطر و ستون آخر خودشان و i4-i1 همان n جديد يعني مرتبه ماتريس منهاي يك. براي دومي بايد سطر اول و ستون آخر را حذف كنيم .---i1+1 سطر دوم جايگزين سطر اول . --- j1 ستون اولي خودش . --- j4 سطر آخري خودش ---j4-1 ستون آخر حذف و ستون قبلي جايگزين آن ميشود. براي سومي سطر و ستون اول و آخر تغيير نميكند فقط مرتبه ماتريس يكي كم ميشود . اين روند ادامه پيدا ميكند تا وقتي كه مرتبه ماتريس به 2 برسد كه دتر مينان آن را به صورت دستي حساب كردم يعني جايي كه نوشته شده if (n = = 2 ) پيشنهاد ميكنم به صورت دستي روي كاغذ با نوشتن مشخصه ها و تغييرات آنها امتحان كني تا بهتر متوجه بشي. اميدوارم توضيح مفيد بوده باشه. اگه خوب توضيح ندادم ببخشيد. کاربران ثبت نام کرده قادر به مشاهده لینک می باشند negar6024th October 2007, 03:00 PMبه نام خدا سلام و عرض ادب من یک پشته و صف میخوام توی سی پلاس پلاس بنویسم.... کسی میتونه کمکم کنه؟ برنامه نویسی رو با سیستم تازه شروع کردم...واقعا مشکل دارم....ممنون میشم یا علی یا حق سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 2953]

bt

اضافه شدن مطلب/حذف مطلب







-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن