حاسبة متوسط الدرجات المرجح حسب الفئة
تجمع حاسبة متوسط الدرجات المرجح درجات الفئات وفقا لأهميتها النسبية. أدخل درجة مئوية ووزنا للواجبات أو المشروعات أو الاختبارات أو المشاركة أو أي فئة أخرى.
شغّل الأداة مجانًا
تضرب الحاسبة كل درجة في وزنها، ثم تجمع النواتج وتقسمها على مجموع الأوزان. وبما أن الأوزان تطبع تلقائيا، فيمكن أن يكون مجموعها 100 أو 1 أو 20 أو أي قيمة موجبة أخرى. تتضمن النتيجة المتوسط النهائي وتفصيلا لمساهمة كل فئة، مما يتيح التحقق من الصيغ وشرح الدرجات وإدماج الحساب نفسه في سير عمل أكاديمي.
أدخل درجات الفئات وأوزانا متسقة
أنشئ صفا لكل فئة تسهم في الدرجة الكلية. امنح الصف اسما واضحا، وأدخل الدرجة المحققة كنسبة مئوية من 0 إلى 100، ثم حدد وزنا غير سالب. قد تستخدم مادة دراسية نموذجية وزنا قدره 20 للواجبات و35 للمشروعات و45 للاختبارات. مجموع هذه القيم 100، لكن ذلك ليس شرطا. يمكنك إدخال 2 و3.5 و4.5 والحصول على المتوسط نفسه، لأن النسبة بين الأوزان هي المهمة فقط. وتصلح أيضا الأوزان العشرية مثل 0.2 و0.35 و0.45. استخدم مقياسا واحدا متسقا داخل الطلب؛ فمزج 20 مع 0.35 سيمثل على الأرجح نسبة غير مقصودة. يجب أن تكون الدرجات نسبا مئوية بالفعل، لذلك حول 42 نقطة من أصل 50 إلى 84 قبل الإدخال. يمكن إبقاء فئة بوزن صفر في التفصيل من دون أن تغير المتوسط. ويجب أن يكون وزن فئة واحدة على الأقل موجبا، كما يقبل كل طلب ما يصل إلى 100 فئة.
افهم صيغة المتوسط المرجح
يستخدم الحساب المتوسط المرجح القياسي: تضرب كل درجة في وزنها، وتجمع كل النواتج، ثم تقسم المحصلة المرجحة على مجموع الأوزان. فإذا كانت درجة الواجبات 88 بوزن 20، والمشروعات 94 بوزن 35، والاختبارات 81 بوزن 45، تجمع النواتج قبل القسمة. لذلك تؤثر الفئة ذات الوزن الأكبر في النتيجة النهائية بدرجة أقوى. تعرض الاستجابة المحصلة المرجحة والوزن الإجمالي لكي تتمكن من إعادة تطبيق الصيغة الأساسية. كما تعرض الوزن المطبع لكل فئة بوصفه حصة عشرية من الكل، ومساهمتها المرجحة في نقاط الدرجة. تساوي المساهمات المتوسط المعروض باستثناء فروق بسيطة ناتجة عن التقريب عند المنزلة العشرية السادسة. لا تجبر الأوزان أبدا على أن يكون مجموعها 100، لأن القسمة على مجموعها الفعلي تطبعها بصورة صحيحة. وتؤدي الأعداد غير الصالحة والأوزان السالبة والدرجات الخارجة عن النطاق والأسماء الفارغة ومجموع الوزن الصفري إلى خطأ إدخال بدلا من إنتاج درجة مضللة.
فسر النتيجة ودققها
استخدم weighted_average باعتباره النسبة المئوية المجمعة للفئات المرسلة. تحافظ قائمة الفئات على ترتيب الإدخال، وتضيف normalized_weight وweighted_contribution، وبذلك توضح بدقة أثر كل صف في الإجابة. يفيد هذا التفصيل عندما يسأل متعلم لماذا لم تعوض درجة ممتازة في الواجبات نتيجة اختبار أقل، أو عندما يتحقق مدرس من تطبيق نظام إدارة التعلم لأوزان المنهج بصورة صحيحة. لا تمنح الحاسبة تقديرا حرفيا، ولا تطبق منحنى للدرجات، ولا تحذف أدنى درجة، ولا تستبدل الأعمال المفقودة، ولا تشترط أن يكون مجموع الأوزان 100؛ فهذه قرارات تتعلق بسياسة التقييم. إذا كانت الأوزان المنشورة تغطي الفئات المكتملة فقط، فقرر ما إذا كان ينبغي التطبيع على العمل المكتمل أم تمثيل الفئات غير المكتملة بدرجات صفرية؛ كلا الخيارين صحيح رياضيا، لكنهما ينتجان نتيجتين مختلفتين. الخوارزمية حتمية ولا تستخدم خدمة شبكية، وتقرب الحقول الرقمية المعادة إلى ست منازل عشرية. لذلك ينتج الإدخال الصالح نفسه النتيجة المنظمة نفسها في المتصفح وعبر API.
حالات الاستخدام
تحقق من الدرجة الحالية للمادة
اجمع درجات الواجبات والاختبارات القصيرة والمشروعات والاختبارات وفقا لأوزان الفئات المنشورة في المنهج.
دقق حسابات سجل الدرجات
قارن نتيجة نظام إدارة التعلم بمحصلة مرجحة واضحة ووزن إجمالي وتفصيل لمساهمة كل فئة.
أتمت التقارير الأكاديمية
احسب متوسطات مرجحة متسقة ضمن سير التقارير من دون صيانة صيغ جداول بيانات منفصلة لكل متعلم.
الأسئلة الشائعة
ما تكلفة طلب API؟
تبلغ تكلفة كل طلب API $0.002. ويمكن أيضا تشغيل حاسبة الفئة A في المتصفح.
هل يجب أن يكون مجموع الأوزان 100؟
لا. يصلح أي مقياس متسق غير سالب لأن المحصلة المرجحة تقسم على الوزن الإجمالي الفعلي.
هل يمكن استخدام أوزان عشرية؟
نعم. تنتج القيم 0.2 و0.35 و0.45 المتوسط نفسه الذي تنتجه 20 و35 و45.
ماذا يحدث للفئة ذات الوزن الصفري؟
تبقى في التفصيل، لكنها لا تسهم في المتوسط النهائي. ويجب أن يكون وزن واحد على الأقل موجبا.
هل تمنح الحاسبة تقديرا حرفيا؟
لا. تعيد النسبة المئوية المرجحة فقط لأن حدود التقديرات تختلف بين المواد والمؤسسات.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/edu/weighted-grade-average \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"categories":[{"name":"Homework","score":88,"weight":20},{"name":"Projects","score":94,"weight":35},{"name":"Exams","score":81,"weight":45}]}'const res = await fetch("https://api.kit.forhosting.com/edu/weighted-grade-average", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"categories": [
{
"name": "Homework",
"score": 88,
"weight": 20
},
{
"name": "Projects",
"score": 94,
"weight": 35
},
{
"name": "Exams",
"score": 81,
"weight": 45
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/edu/weighted-grade-average",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"categories": [
{
"name": "Homework",
"score": 88,
"weight": 20
},
{
"name": "Projects",
"score": 94,
"weight": 35
},
{
"name": "Exams",
"score": 81,
"weight": 45
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/edu/weighted-grade-average", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"categories":[{"name":"Homework","score":88,"weight":20},{"name":"Projects","score":94,"weight":35},{"name":"Exams","score":81,"weight":45}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"categories":[{"name":"Homework","score":88,"weight":20},{"name":"Projects","score":94,"weight":35},{"name":"Exams","score":81,"weight":45}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/edu/weighted-grade-average", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"categories": [
{
"name": "Homework",
"score": 88,
"weight": 20
},
{
"name": "Projects",
"score": 94,
"weight": 35
},
{
"name": "Exams",
"score": 81,
"weight": 45
}
]
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "edu.weighted_grade_average",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |