پارس‌کدرز چگونه کار می‌کند؟

از پارس‌کدرز بیشترین بهره را ببرید و رویای کاری خود را زندگی کنید.

پارس‌کدرز خریداران یا کارفرمایان را به مجری‌ها /فریلنسرهای خبره‌ای متصل می‌کند که برای انجام پروژه آماده هستند.

برنامه اي براي توصيف يک مدار مجتمع

چهارده سال پیش منتشر شده

تعداد بازدید: 1690

کد پروژه: 2912


شرح پروژه

پروژه دوم درس ساختمان داده نيمسال دوم 88-89 دانشگاه سيستان و بلوچستان تاريخ تحويل : 15/3/89 ________________________________________ هدف اين پروژه نوشتن برنامه اي براي توصيف يک مدار مجتمع است. در اين پروژه يک فايل تست ورودي با نام data.txt شامل توصيف تعدادي گيت و نحوه اتصال آنها تعريف شده است. فرمت اين فايل به شرح زير است: Gate-type input-no (input-list) gate-name منظور از gate-type نوع گيت، input-no تعداد ورودي هاي گيت، input-list ليست ورودي هاي يک گيت و gate-name نام گيت است. در زير يک نمونه از فايل ورودي نشان داده شده است. Not 1 (49) v0 And 2 (17 48) I1 Not 1 (17) v1 Not 1 (27) v3 خط اول فايل فوق مي گويد گيت not داراي يک ورودي است. سپس داخل پرانتز ليست ورودي هاي اين گيت آمده است. در مورد گيت not تنها يک ورودي تعريف شده است که مقدار اين ورودي نتيجه گيت 49 است. منظور از گيت 49 گيتي است که توصيف آن در خط 49 فايل ورودي آمده است. در پايان نام گيت يعني v0 آمده است. به طور مشابه گيت and در دومين خط فايل توصيف شده است. اين گيت دو ورودي دارد و ورودي هاي آن گيتهاي 17 و 48 هستند. نام اين گيت I1 قرار داده شده است. توجه داشته باشيد که در اين فايل تعداد خروجي هاي يک ليست مشخص نشده است. اما اين تعداد قابل شمارش است. به عنوان مثال گيت شماره 17 در ليست ورودي گيتهاي 2 و 3 ظاهر شده است بنابراين اين گيت حداقل دو خروجي دارد. به عبارت ديگر براي شمارش تعداد خروجي هاي گيت 17 بايد بررسي شود که 17 چند بار در ليست ورودي هاي ساير گيتها تکرار شده است. در اين پروژه شما بايد از ساختمان داده ليست پيوندي براي نگهداري اطلاعات يک گيت و از پشته براي نگهداري تعداد و ليست خروجي هاي يک گيت استفاده کنيد. براي انجام اين پروژه شما بايد به نتيجه گيتهاي ديگر توجه کنيد تا بتوانيد نتيجه يک گيت موردنظر را بدست آوريد. به نکات زير توجه کنيد. ابتدا بايد کلاسي با نام Gate براي نگهداري مشخصات يک گيت شامل نام، شماره ، عملکرد، تعداد ورودي ها و يک آرايه از اشاره گرها که هر عنصر از اين آرايه به يک گيت ورودي اشاره دارد، تعريف کنيد. همين طور بايد تعداد خروجي ها با مقدار اوليه صفر و آرايه اي از اشاره گرها به گيتهاي خروجي تعريف کنيد. انواع گيتهاي زير تعريف مي شوند: Inpt, and, or, not, xor, nand, nor از آنجا که تعداد گيتها در فايل data.txt مشخص نيست ابتدا يک ليست پيوندي تعريف مي کنيد که مشخصات گيتها را از ورودي خوانده و در خود نگهداري مي کند سپس از روي اين ليست ساختمان داده اصلي را ايجاد مي کنيد. به اين صورت که براي تعيين خروجي يک گيت کل ليست پيوندي پيمايش مي شود و ليست ورودي هاي تک تک گيتها بررسي مي شود. به عنوان مثال اگر قصد تعيين ليست خروجي گيت 17 را داريد در ليست ورودي هاي ساير گيتها جستجو مي کنيد. به عنوان مثال اگر در ليست ورودي گيت 3 گيت 17 وجود داشت گيت 3 در پشته خروجي هاي گيت 17 درج مي شود. در پايان با استفاده از متد سايز پشته مي توانيد تعداد خروجي هاي ليست17 را بشماريد. پس از اين مرحله نياز به ايجاد آرايه خروجي هاي يک گيت است. تعداد خروجي هاي گيت در مرحله قبل مشخص شده است آرايه اي با اين اندازه ايجاد کنيد. تا خالي شده پشته از آن حذف و به آرايه خروجي ها اضافه کنيد. براي پياده سازي پشته متدي به نام gateStack با متدهاي push، pop، isEmpty و size تعريف کنيد. مي توانيد براي پياده سازي پشته از آرايه يا ليست پيوندي کمک بگيريد اما مجاز به استفاده از متدهاي زبان برنامه نويسي نيستيد. آخرين کلاسي که نوشته مي شوندکلاسي با نام gateProcessor است. در اين کلاس متدي به نام readFile نوشته مي شود که داده هاي فايل data.txt را مي خواند و ساختمان داده را مي سازد. متد printGate شماره يک گيت را به عنوان ورودي مي گيرد و مشخصات آن گيت را در خروجي چاپ مي کند. نهايتا متد determineOutput گيتها را به ترتيب بررسي مي کند و براي هر گيت خروجي هاي آن را بدست مي آورد. فايل ورودي دوم فايلي به نام ins.txt است که در هر خط آن يکي از متدهاي فوق نوشته مي شود. اين فايل بايد خط به خط خوانده شود و براي هر خط متد مربوط به آن صدا زده شده و نتيجه در خروجي چاپ شود. در زير نمونه اي از فايل خروجي نوشته شده است: printGate 1 determineOutput در خط اول خروجي، بايد مشخصات گيت شماره 1 شامل شماره، نام، نوع، ورودي (ها) و خروجي (هاي) آن چاپ مي شود. در خط دوم خروجي کلي مدار نوشته مي شود. فرمت خروجي به صورت زير است: Gate-number) gate-type gate-name number-of-outputs number-of-inputs (list of inputs) (list of outputs) Gate-number شماره خط گيت در فايل data.txt است (شماره خطوط اين فايل از 1 شروع مي شود نه 0). به عنوان مثال يک نمونه از خروجي مي تواند به صورت زير باشد: 8) buf b1 1 5 (1) (1 1 1 1 1) توجه شود منظور از ورودي (خروجي) مقادير ورودي (خروجي) است نه شماره گيتهاي ورودي (خروجي) توضيح عملکرد گيتها Buf عمل خاصي بر روي ورودي انجام نمي دهد و تنها ورودي را به خروجي مي برد. inpt ورودي مدار را نشان مي دهد. بنابراين هميشه تعداد ورودي هاي اين گيت صفر است. به عبارت ديگر اين گيت ورودي ندارد. اعدادي که در ليست ورودي اين گيت نوشته مي شوند شماره گيت نيستند بلکه ورودي هاي مدار هستند. به عنوان مثال در خط زير گفته شده است گيت i2 از نوع inpt تعريف شده که تعداد ورودي هاي گيت صفر و خروجي هاي آن 0، 1 و 0 است. Inpt 0 (0 1 0) i2 عملکرد ساير گيتها به شرح زير است: tables below show the output states for all types of 2-input and 3-input gates. Summary for all 2-input gates Inputs Output of each gate A B AND NAND OR NOR EX-OR EX-NOR 0 0 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 0 0 1 Summary for all 3-input gates Inputs Output of each gate A B C AND NAND OR NOR 0 0 0 0 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 0 0 1 1 0 1 0 1 0 1 1 0 1 1 0 0 1 1 0 1 1 1 1 0 1 0 توجه: پروژه در گروه هاي حداکثر 3 نفره انجام مي شود. مجاز به استفاده از امکانات زبان برنامه نويسي مانند کلاس Stack و ArrayList نيستيد. همه اعضاء گروه بايد در جريان همه بخشهاي پروژه باشند و بتوانند به طور کامل آن را توضيح دهند.


زیرساخت:
سي شارپ


قابل تحویل:

مهارت ها و تخصص های مورد نیاز


بودجه

5,000 تومان تا 100,000 تومان

مهلت برای انجام

3روز

وضعیت مناقصه

بسته


درباره کارفرما

عضویت چهارده سال پیش

3 پروژه ثبت شده ،
0 پروژه در حال انجام ،
0 پروژه آماده دریافت پیشنهاد ،
نرخ پذیرش پیشنهاد 67%

برای پیدا کردن پروژه‌های مشابه ثبت نام کنید و پروفایل خود را بسازید.

ورود با گوگل
یا
نام نباید خالی باشد.
نام خانوادگی نباید خالی باشد.

نیاز به استخدام فریلنسر یا سفارش پروژه مشابه دارید؟

سفارش پروژه مشابه

قادر به انجام این پروژه هستید؟

ثبت نام کنید

مهلت ارسال پیشنهاد قیمت برای این پروژه تمام شده است

سری به پروژه‌های مشابه بزنید

توصيف Direct Mapped Cache در VHDL

چهارده سال پیش منتشر شده

روش کار در پارس‌کدرز

به رایگان یک حساب کاربری بسازید

مهارت‌ها و تخصص‌های خود را ثبت کنید، رزومه و نمونه‌کارهای خود را نشان دهید و سوابق کاری خود را شرح دهید.

به شیوه‌ای که دوست دارید کار کنید

برای پروژه‌های دلخواه در زمان دلخواه پیشنهاد قیمت خود را ثبت کنید و به فرصت‌های شغلی منحصر به فرد دسترسی پیدا کنید.

با اطمینان دستمزد دریافت کنید

از زمان شروع کار تا انتهای کار به امنیت مالی شما کمک خواهیم کرد. وجه پروژه را از ابتدای کار به امانت در سایت نگه خواهیم داشت تا تضمین شودکه بعد از تحویل کار دستمزد شما پرداخت خواهد شد.

می‌خواهید شروع به کار کنید؟

یک حساب کاربری بسازید


بهترین مشاغل فریلنسری را پیدا کنید
رشد شغلی شما به راحتی ایجاد یک حساب کاربری رایگان و یافتن کار (پروژه) متناسب با مهارت‌های شما است.

پیدا کردن کار (پروژه)

تماشای دمو روش کار