ترانهاده ماتریس اسپارس
ترانهاده كردن ماتريس اسپارس
بعضي از ماتريس ها وجود دارند كه تعداد زيادي از عناصر آنها صفر است كه به آنها ماتريس اسپارس مي گويند كه در اين مطلب برنامه ترانهاده كردن اين ماتريس رو گذاشتم كه در ادامه مطلب مي تونيد ببينيد كه اين برنامه بوسيله زبان برنامه نويسي ++c نوشته شده است كه يكي از پروژه هاي درس ساختمان داده مي باشد اميدوارم ببينيد و لذت ببريد دانلود
بردار و ماتریس در متلب
ایجاد یک آرایه عددی با نام x :[x=[1 2 3<<اعداد را داخل کوروشه نوشته و با فاصله از هم جدا می کنیم. این آرایه 3 عضو دارد. می توان به همین روش آرایه های بزرگتری تولید کرد.روش دیگری برای ایجاد یک آرایه عددی با مقیاس بزرگتر و بدون تایپ کردن اعداد :x=1:5<<در این مثال آرایه ای تولید کردیم که اعضای آن اعداد 1 2 3 4 5 می باشند که ما خود این اعداد را بطور دستی تایپ نکردیم یعنی با عملگر کالن : طول گام اعداد درون آرایه را مشخص می کنیم. به مثالی دیگر توجه کنید...x=1:2:5<<در این مثال طول گام اعداد تولید شده را 2 گرفته ایم پس اعضای آرایه 1 3 5 می باشند. همانطور که در مثال اول مشاهده کردید اگر طول گام را بطور صریح ننویسیم آنرا 1 تلقی می کند. به همین روش می توان آرایه های گوناگونی ساخت.می توان با این روش یک آرایه با اعضای معکوس ساخت در مثال زیر آرایه ای با اعضای 5 4 3 2 1 مشخص شده است:x=5:-1:1<<روش سوم برای ایجاد یک آرایه ، قرار دادن مقادیر درون اندیس های آرایه است :x(1)=10<<x(2)=11<<x(3)=12<<یعنی درون اولین خانه آرایه عدد 10 ، درون دومین خانه عدد 11 و درون سومین خانه عدد 12 و الی آخر... قرار می دهیم.پس این آرایه شامل اعضای 10 ، 11 و 12 می باشد.مثال : آرایه ای بسازید که x=k*pi را برای k=1..10 تولید کند؟جواب :x=(1:10)*pi<<ایجاد یک آرایه ستونی :[x=[1;2;3;4<<با گذاشتن سمی کالن ; بین اعداد می توان آرایه را به شکل ستونی درآورد.ترانهاده کردن یک آرایه : یعنی می توان با عملگر تک کوتیشن ' یک آرایه سطری را به ستونی و یک آرایه ستونی را به سطری تبدیل کرد.'x<<نمایش دادن اندازه یا طول آرایه :(length(x<<برای دسترسی به اعضای یک آرایه تولید شده می توان از اندیس های آن استفاده کرد. به عنوان مثال برای مشاهده سومین عدد ذخیره شده در آرایه x می توان به شکل زیر عمل کرد :(x(3<<دسترسی به عناصر آرایه از اندیس i تا j با طول گام یک :(x(i:j<<مثال : عضو پنجم آرایه x را که قبلا ساخته شده بود ، به عدد 7 تغییر دهید ؟جواب :x(5)=7<<برای حذف کردن عنصری از آرایه از دو کوروشه خالی به شکل زیر استفاده می شود. در مثال زیر می خواهیم عنصری را که در اندیس 3 یا سومین خانه آرایه است را پاک کنیم. بعد از حذف شدن عدد سایر اعداد به سمت چپ شیفت پیدا می کنند:[]=(x(3<<حذف سومین عنصر بدون شیفت اعداد:x(3)=nan<<ورودی اکثر توابع و دستورات MATLAB به جای یک عدد می تواند یک آرایه باشد. اگر x یک آرایه شامل عناصر 1 2 3 4 5 باشد در اینصورت دستور زیر به عنوان مثال روی تک تک عناصر اجرا می شود :(sqrt(x<<در صورتیکه نقطه یا دات . قبل از ضرب ، تقسیم و توان بیاید به این عملگر ها ، عملگر های مولفه ای گویند و آنها عناصر درون آرایه ها را مولفه به مولفه به هم ضرب ، ...
ساختمان داده در C++
1- فصل اول: نوع داده انتزاعي(مجرد): ADT : وقتي در برنامه ايي به نوعي داده نياز باشد كه در آن زبان وجود ندارد برنامه نويس بايد نوع مورد نظرش را ايجاد كند. نوع داده ايي را كه برنامه نويس ايجاد مي كند نوع داده انتزاعي مي گويند. ADT يك مدل رياضي است كه عملياتي بر روي آن مدل تعريف مي شود. هرنوع داده متشكل از چند مقدار و مجموعه اي از عمليات بر روي آنها است. مانند نوع داده int كه در زبان C عملياتهايي مانند * + - = / > < و غيره براي آنها تعريف شده است. در اين درس انواع مختلفي از ADT ها را بوجود مي آوريم مانند آرايه ها و ماتريس ها و درخت ها و غيره 1-1-نحوه تجزيه و تحليل و سنجش كارايي يك برنامه: تعريف : ميزان حافظه يا پيچيدگي فضاي يك برنامه مقدار حافظه مورد نياز براي اجراي كامل يك برنامه است. مقدار زمان يا پيچيدگي زماني يك برنامه مقدار زماني از كامپيوتر است كه براي اجراي كامل برنامه لازم است. 1-1-1- ميزان حافظه (پيچيدگي حافظه): فضاي مورد نياز براي يك برنامه شامل موارد زير است: · بخش ثابت كه مستقل از بعضي خصيصه هاي ورودي و خروجي مانند تعداد وو اندازه است. اين بخش شامل فضاي دستورالعمل (كد برنامه) ، فضاي لازم براي متغيرهاي ساده و ثابت ها مي باشد · بخش متغير كه شامل فضاي مورد نياز متغيرهاي ساختاري برنامه كه اندازه آن بستگي به نمونه مسئله ايي كه حل مي شود، دارد و فضاي لازم براي متغيرهاي مرجع كه اندازه آنها نيز به خصيصه هاي نمونه بستگي دارد و فضاي لازم براي پشته بازگشتي مي باشد. 1-1-2-پيچيدگي زماني: زمان برنامه (T(P) ) مجموع زمان كامپايل و زمان اجراي برنامه است. زمان كامپايل براي يك برنامه فقط يك بار رخ مي دهد در ضمن به خصيصه هاي نمونه بستگي ندارد. بنابراين زمان اجرا يك برنامه Tpمورد بررسي قرار مي گيرد. براي بدست آوردن زمان اجراي برنامه راه هاي مختلفي وجود دارد مثلا تعداد جمع ها و ضرب ها و تقسيمات و تفريقات يك برنامه را بدست آوريم و زمان را به صورت زير محاسبه كنيم: Tp= C1ADD(n) + C2Sub(n) + C3Mul(n) + C4Div(n) كه n نشان دهنده مشخصه هاي نمونه است. بدست آوردن چنين فرمول دقيقي يك كار غير ممكن است زيرا زمان مورد نياز براي جمع و ضرب و تفريق و تقسيم به عوامل متعددي بستگي دارد. در ضمن بين كامپيوتر هاي مختلف نيز متعدد است. روش ديگري كه براي بدست آوردن پيچيدگي زماني يك برنامه استفاده مي شود اين است كه تعداد مراحل برنامه را بشماريم. پيچيدگي زماني يك برنامه را بر اساس تعداد مراحل آن بدست مي آوريم. براي بدست آوردن تعداد مراحل يك برنامه با توجه به نوع دستورات عمل مي كنيم. مثلا دستورات انتساب را يك مرحله محسوب مي كنيم. دستورات تكرار را با توجه به تعداد تكرارشان محاسبه ...
آرم کافی نت جگوار
دانلود چندین برنامه برای درس ساختمان داده ها
به دلیل خراب شدن لینک های پایین تصمیم گرفتم لینک دانلود برنامه ها رو دوباره بذارم با عرض پوزش به دلیل قدیمی بودن مطلب چند برنامه را نداشتم که آپلود کنم تمام برنامه ها به نقل از سایت برنامه نویس می باشد توصیه می کنم برای ارتقای سطح برنامه نویسی در این سایت عضو شوید الگوریتم جمع و تفریق دو ماتریس 3*3 | لینک کمکی الگوریتم جمع دو ماتریس اسپارس | لینک کمکی الگوریتم جستجوی دودویی | لینک کمکی الگوریتم تبدیل ماتریس پایین مثلثی به ماتریس خطی | لینک کمکی الگوریتم ضرب دو ماتریس اسپارس | لینک کمکی الگوریتم ایجاد ترانهاده یک ماتریس اسپارس | لینک کمکی الگوریتم ضرب دو ماتریس ساده | لینک کمکی
نمونه سوالات ساختمان داه استاد شمس الدینی
- فرض کنید برای نگهداری یک سری عدد صحیح از یک صف حلقوی queue[100] استفاده نموده ایم بطوریکه queue[0] ، حاوی مقدار queue[1] , front حاوی مقدار near ( انتهای صف ) بکار میرود و queue[2] تا queue[q a] برای نمایش عناصر صف حلقوی بكار می روند. توابع ایجاد ، اضافه کردن مقداری به صف حلقوی و حذف مقداری از آن را بجای این مورد بنویسید . 4- الف ) حداکثر تعداد عناصر صفر یک ماتریس سه قطری چند است ؟ب) آرایه سه بعدی A[4][6][7] مفروض است . اگر آدرس شروع این آرایه a باشد آدرس شروع عنصر A[3][1][4] را محاسبه کنید . 5- از یک آرایه یک بعدی با طول n می توان برای پیاده سازی دو پشته استفاده نمود به طوری که عناصر پشته اول با شروع از ابتدای آرایه و عناصر پشته دوم با شروع از انتهای آرایه در آن قرار گیرند . توابع مربوط به ایجاد پشته خالی ، حذف عنصری از پشته و افزودن عنصری به پشته را برای هر یک از دو پشته بنویسید . 6- الف ) توضیح دهید که چرا در پیاده سازی صف حلقوی با آرایه ، یک خانه از صف باید خالی بماند . ب) توابع مربوط به افزودن عنصری به صف حلقوی و حذف عنصری از آن را بنویسید . 7- یک ماتریس 15*10 که هر یک از عناصر آن ، شش بایتی هستند را در نظر بگیرید . تعداد عناصر غیر صفر این ماتریس چقدر میتواند باشد که نگهداری آن به شکل ویژه اسپارس ، از لحاظ حافظه به صرفه تر از نگهداری معمولی آن به شکل آرایه دو بعدی باشد ؟ فضای لازم برای ذخیره شماره سطر و ستونهای عناصر صفر را دو بایت در نظر بگیرید . 8- الف ) حداکثر تعداد عناصر غیر صفر یک ماتریس سه قطری چند است ؟ب ) عناصر غیر صفر یک ماتریس بالا مثلثی محض را به چه ترتیبی می توان در یک ارایه یک بعدی ذخیره نمود ؟ رابطه دستیابی این عناصر را بدست آورید . 9 – عبارت زیر را به شکل میانوندی داده شده است . با ذکر مراحل ، معادل پسوندی آنرا بیابید . سپس عبارت پسوندی را به ازای مقادیر داده شده با ذکر مراحل ، ارزیابی کنید . Infix = 6+a/b-(3/x*2) +1)/5 a = 2 b=3 x=610- كاربرى صف اولویت و انواع آن را توضیح دهید . چگونه می توان صف اولویت را با استفاده از آرایه صعودی پیاده سازی نمود ؟ در هر مورد دستورات لازم برای حذف و اضافه عنصر به صف اولویت به تفکیک نوع آن را ذکر کنید . 11- عبارت میانوندی زیر را با رسم تغییرات پشته به پسوندی تبدیل کنید . سپس با نوشتن تابع ارزیابی ، عبارت پسوندی حاصل را به ازای مقادیر داده شده ارزیابی کنید . -A + (B/C * A-2) ^ K*B A=2 B=6 C=3 K=412- أرایه ای به طول m موجود است . می خواهیم n صف ساده را در این آرایه پیاده سازی کنیم دستورات لازم برای ایجاد صف شماره i ، حذف عنصری از صف شماره i و افزودن عنصری به صف شماره i را بنویسید .13- الف ) تابعی بنویسید که یک ماتریس اسپارس را که به ...