PDA

View Full Version : سوال: نمونه سوال المپیاد کشوری کارگاهی رایانه



p30rex
شنبه 04 تیر 1390, 19:09 عصر
سلام این سوال المپیاد پارسال بوده:

برنامه ای بنویسید که ابتدا بتواند ارقام دیجیتال را شبیه سازی کند . سپس با استفاده از این ارقام ، یک کرنومتر را شبیه سازی کند. کرنومتر شامل دقیقه ، ثانیه و صدم ثانیه خواهد بود که اندازه صدم ثانیه کوچکتر از بقیه خواهد بود . اندازه ارقام توسط یک لیست به صورت درصد قابل تغییر باشد . و اعداد لیست توسط کد نویسی با فاصله 10 وارد شود . همچنین امکان وارد کردن هر عدد دلخواه نیز وجود داشته باشد . در برنامه با زدن دکمه Start کرنومتر شروع بکار کند. و با زدن دکمه Stop متوقف شود و با کلیک روی دکمه Reset کرنومتر صفر شود.


این برنامه رو من سادش رو نوشتم اما فک میکنم روش درستی واسه نوشتن کدهاش استفاده نکردم
حالا اگردوستان طرح های پیشنهادیشون رو بدن ازشون ممنون میشم
برنامه خودم رو هم گذاشتم
71573

درطول نوشتن این برنامه چنتا سوال هم واسم پیش اومد:
1. آیا میشه یک آرایه رو به یک تابع که خودمون نوشتیم ارسال کنیم
2. شیء رو چطور منظورم اینه:

Private Sub test(شی ء)
شیء.caption="hi"
end sub

arasbaran
یک شنبه 05 تیر 1390, 00:00 صبح
سلام
توانایی ارسال آرایه و شیء به تابع وجود دارد برای این کار باید از "فراخوانی با ارجاع" (Call By Reference) استفاده کنید.
این سوالتون نشان میده کتاب استاندارد VB6 را مطالعه نکرده اید. کتاب الکترونیک زیاد هست، حتما مطالعه کنید
حالا در مورد برنامه:
کاری که کرده اید اشتباه نیست، ولی:
1- الگوریتم بهینه نیست: یعنی اگر قرار باشد دقیقه و صدم ثانیه هم اضافه شود حجم کد و متغیرها خیلی بالا می رود
2- عدم استفاده مناسب از قابلیتهای زبان برای کاهش حجم کد: مثلا استفاده از توابع، توابع همنام و متغیرهای عمومی

ایده آل ترین حالت نوشتن چنین برنامه هایی استفاده از کنترل های ActiveX است یعنی هر رقم دیجیتال را به صورت یک کنترل ActiveX نوشته، تعداد مورد نیاز از این کنترل را روی فرم آورده و با مقداری کد نویسی ارتباط منطقی میان کنترل ها برای رسیدن به هدف برنامه(ایجاد کرنومتر) فراهم شود.

من قبلا یک اکتیو ایکس به نام Seven Segment Display ساخته بودم که می توانید در این برنامه از آن استفاد کنید
پروژه را باز کنید در منوی File گزینه Make SevenSegment.ocx بزنید تا فایل اکتیو ایکس دوباره ساخته شده و در سیستم شما ثبت گردد
پس از آن در یک پروژه از طریق مسیر منوی Project > Components با نام Seven Segment Display آن را به پروژه اضافه کرده و از آن استفاده کنید

من در مورد کد ایجاد اکتیو ایکس و روش به کار گیری آن توضیحی نمی دهم تا خودتان با آن در گیر شوید
اگر کل پروژه ای که سوالش را نوشته اید، خودتان کم کم کامل کنید یک مرور خوب روی 70 درصد برنامه نویسی VB6 خواهید داشت
موفق باشید