سوال چهار


سؤال ۴: پردازش ساده بر روی داده‌ها (Simple Data Processing)

پس از اتمام موفقیت‌آمیز مراحل پیش‌پردازش و تمیز کردن داده‌های سهام TechX، تیم شما اکنون آماده است تا تحلیل‌های اولیه و سریع بر روی داده‌ها را انجام دهد. مدیر تیم اعلام کرده که نوبت به استخراج شاخص‌های کلیدی بازار رسیده است تا بتواند روند تغییرات قیمت را بهتر درک کند و تصمیمات بهتری برای معاملات آینده بگیرد.

شما و تیم‌تان تصمیم گرفته‌اید دو شاخص مهم را محاسبه کنید:

  1. میانگین متحرک ۵ روزه (5-SMA): میانگین قیمت بسته شدن (Close) در ۵ روز متوالی که نوسانات را کاهش داده و روند کلی قیمت‌ها را نشان می‌دهد.
  2. درصد تغییرات روزانه (Daily Change): میزان تغییر قیمت بسته (Close) هر روز نسبت به روز قبل، برحسب درصد. این شاخص شدت تغییرات بازار را نشان می‌دهد.

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

وظیفه🔗

برنامه‌ای بنویسید که داده‌های سهام TechX را دریافت کرده و دو شاخص زیر را محاسبه کند:

  • 5-SMA: میانگین متحرک ۵ روزه قیمت بسته‌شدن (Close)
  • Daily Change: درصد تغییرات روزانه قیمت بسته‌شدن نسبت به روز قبل

سپس، داده‌های پردازش‌شده را در قالب یک جدول به‌روز شده نمایش دهد.

  • برای اولین روز، مقدار Daily Change برابر "N/A" است.
  • برای روزهایی که کمتر از ۵ مقدار برای محاسبه 5-SMA موجود است، مقدار "N/A" ثبت شود.

فرمت ورودی🔗

ورودی شامل چندین خط است که هر سطر دارای ۵ مقدار به ترتیب زیر می‌باشد:

Date, Open, High, Low, Close
Plain text
  • داده‌ها از ورودی STDIN خوانده می‌شوند.
  • فرمت تاریخ به صورت YYYY-MM-DD است.

فرمت خروجی🔗

خروجی شامل جدولی است که دارای ۷ مقدار زیر می‌باشد:

Date, Open, High, Low, Close, 5-SMA, Daily Change
Plain text
  • مقدار 5-SMA برای چهار روز اول برابر "N/A" است.
  • مقدار Daily Change برای روز اول برابر "N/A" است.

مثال‌ها🔗

ورودی نمونه🔗

در ابتدا از کاربر خواسته می‌شود که تعداد سطرها را وارد کند:

6
Plain text

سپس 6 سطر داده به شکل زیر وارد می‌شود:

2025-01-01,100,110,90,105
2025-01-02,105,115,95,110
2025-01-03,110,120,100,115
2025-01-04,115,125,105,120
2025-01-05,120,130,110,125
2025-01-06,125,135,115,130
Plain text

خروجی نمونه🔗

2025-01-01,100,110,90,105,N/A,N/A
2025-01-02,105,115,95,110,N/A,4.76
2025-01-03,110,120,100,115,N/A,4.55
2025-01-04,115,125,105,120,N/A,4.35
2025-01-05,120,130,110,125,115.00,4.17
2025-01-06,125,135,115,130,120.00,4.00
Plain text

توضیح محاسبات🔗

1. Daily Change (درصد تغییر روزانه)🔗

فرمول:

  • برای روز دوم:
  • برای روز سوم:
  • برای روز چهارم:
  • برای روز پنجم:
  • برای روز ششم:

2. 5-SMA (میانگین متحرک ۵ روزه)🔗

فرمول:

  • مقدار 5-SMA برای اولین ۴ روز وجود ندارد (N/A)، زیرا تعداد داده کافی نیست.
  • برای روز پنجم:
  • برای روز ششم:

نکات مهم🔗

اولین روز مقدار Daily Change ندارد، پس مقدار "N/A" است.قبل از روز پنجم مقدار 5-SMA محاسبه نمی‌شود، پس مقدار "N/A" است.خروجی باید دقیقاً مطابق با فرمت خواسته شده باشد.