برای آشنایی با قالب صورت سوال در Quera اینجا را مشاهده کنید و برای آشنایی با نحوهی کار با ورودی و خروجی استاندارد (stdin و stdout) در زبانهای مختلف، اینجا را ببینید.
در مورد سوالات پروژهای میتوانید انتخاب کنید که کدتان را به یکی از زبانهای پایتون یا جاوا بزنید و در سوال مربوطه میتوانید راهحلتان را ارسال کنید.
میخواهیم با استفاده از جاوااسکریپت خالص (بدون استفاده از کتابخانهها) بر اساس دادههای یک API، یک نمودار ساده مطابق با شکل زیر رسم کنیم.
این دادهها باید به صورت یک نمودار میلهای ساده نمایش داده شوند. برای هر داده، عنوان، توضیحات، رنگ و مقدار (ارتفاع میله) در API داده میشود. با رفتن نشانگر موس روی هرکدام از میلهها، آن میله فعال میشود (رنگ آن تغییر میکند و اطلاعات مربوط به آن در سمت راست نمودار نمایش داده میشود). همچنین با فشردن کلیدهای راست و چپ صفحهکلید، میلهی فعال تغییر میکند. در شکل زیر مثالی از نحوهی عملکرد نمودار را مشاهده میکنید:
پروژه اولیه را از اینجا دانلود کنید. ساختار فایلهای این پروژه به صورت زیر است:
باید به محض باز شدن صفحه، دادهها را از data.json
(با متد GET
) دریافت کنید و نمودار را طبق جزئیات زیر نمایش دهید. کدهای جاوااسکریپت خود را در فایل chart.js
بنویسید (این فایل را ایجاد کنید). میتوانید در صورت نیاز مواردی به chart.css
نیز اضافه کنید. اما مجاز به تغییر فایل HTML نیستید.
هریک از دادهها شامل یک عنوان (title
)، توضیحات (description
)، مقدار (value
) و رنگ (color
) است. پاسخ API به شکل زیر است:
مقدار (value
) همواره یک عدد صحیح است. رنگها نیز به صورت hex هستند.
کارهایی که پس از دریافت دادهها باید انجام دهید:
باید متن برچسب محور افقی و عمودی را بر اساس مقدار labels
تنظیم کنید. مثلاً در شکل بالا، متنهای Population
و Country
به عنوان برچسب قرار گرفتهاند.
دادهها ابتدا باید بر اساس مقدار از زیاد به کم مرتب شوند و سپس به ترتیب و به صورت مستطیلهای رنگی داخل عنصر .chart
نمایش داده شوند.
.chart
) را میپوشانند.value
) باشد و ارتفاع برای داده با بزرگترین مقدار باید به اندازهی ۹۰٪ ارتفاع نمودار (عنصر .chart
) باشد.در هر لحظه باید یکی از میلهها فعال باشد (به رنگ #fd5f00
نمایش داده شود).
value
) باید با ویرگول (,
) از هم جدا شوند (مطابق شکل).chart.js
حذف میشوند و بررسی میشود که حجم فایل chart.js
کمتر از ۸ کیلوبایت باشد..chart
و همچنین محتوای data.json
مقادیر متفاوتی نسبت به پروژهی اولیه خواهند داشت. بنابراین کد شما نباید به این مقادیر خاص وابسته باشد.chart.html
را به صورت عادی با مرورگر باز کنید، ممکن است هنگام ارسال درخواست برای دریافت data.json
با خطای Cross Origin
از طرف مرورگر مواجه شوید. در این صورت به جای باز کردن مستقیم فایل HTML با مرورگر،
پوشه پروژه را با یک وبسرور (مثلاً
python -m http.server
)
serve
کنید.*
مشخص شده مجاز است
و ارسال سایر فایلها الزامی نیست.