حاسبة الدرجات
أدخل الدرجات مع أوزانها لتحصل على المتوسط الموزون: 80 و90 بالوزن نفسه تعطيان 85. أو انتقل إلى خيار الاختبار النهائي لتعرف الدرجة التي ما زلت تحتاجها لبلوغ هدفك. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- وضع الحساب
- المتوسط المرجّح
- المتوسط
- 85
- الوزن الإجمالي
- 2
- عدد العناصر المحتسبة
- 2
المتوسط المرجّح مجانًا على الإنترنت
سؤالان: أين أنت الآن وكم تحتاج بعد
تنقسم أسئلة الدرجات غالبًا إلى نوعين. الأول هو معرفة وضعك الحالي: لكل اختبار قصير أو واجب أو امتحان درجة ووزن، والمتوسط الموزون يضرب كل درجة في وزنها ويجمع النتائج ثم يقسم على مجموع الأوزان. فدرجتان 80 و90 بالوزن نفسه تعطيان 85. والثاني هو التخطيط: إذا عرفت الدرجة الإجمالية التي تريدها ووزن الاختبار النهائي، فكم يجب أن تحصل فيه؟ تحل الحاسبة هذه المعادلة وتعرض متوسطك الحالي معها.
الأوزان والأخطاء الشائعة
الأوزان نسبية، فيمكنك استخدام النسب المئوية أو النقاط أو مضاعفات بسيطة ما دمت تستخدم النوع نفسه لكل الدرجات. ومن الأخطاء الشائعة حساب المتوسط دون أوزان، فيصبح لاختبار قصير تأثير امتحان كبير نفسه. ومنها نسيان أن وزن الاختبار النهائي يُضاف إلى الأوزان السابقة عند حساب الدرجة المطلوبة. ويجب أن يكون كل وزن أكبر من الصفر، وتتسع القائمة لخمسين درجة.
حالات الاستخدام
تتبّع درجة المقرّر
ادمج الاختبارات القصيرة والواجبات والامتحانات مع أوزانها في متوسط مرجّح جارٍ واحد.
الأسئلة الشائعة
كيف يُحسب المتوسط المرجّح؟
مجموع كل درجة مضروبةً في وزنها، مقسومًا على مجموع الأوزان؛ ويجب أن تكون الأوزان أكبر من صفر.
ما الدرجة التي أحتاجها في الاختبار النهائي لبلوغ هدفي؟
اختر خيار الاختبار النهائي وأدخل الدرجة الإجمالية التي تريدها ووزن الاختبار النهائي والدرجات التي حصلت عليها. تحسب الحاسبة الدرجة المطلوبة في الاختبار النهائي وتعرض متوسطك الحالي أيضًا.
هل يجب أن يكون مجموع الأوزان 100؟
لا. يُقسم مجموع حاصل ضرب كل درجة في وزنها على مجموع الأوزان التي أدخلتها، لذلك تعطي الأوزان 1 و1 المتوسط نفسه الذي تعطيه 50 و50.
هل يمكن أن يكون الوزن صفرًا؟
لا. يجب أن يكون كل وزن أكبر من الصفر، ويُرفض الوزن الصفري أو السالب. أما الدرجات فيمكن أن تكون أي عدد لا تتجاوز قيمته المطلقة مليونًا.
كم درجة يمكنني إدخالها؟
من 1 إلى 50 في خيار المتوسط. أما في خيار الاختبار النهائي فقائمة الدرجات السابقة اختيارية، لذا يمكنك البدء بالهدف ووزن الاختبار النهائي وحدهما.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/dev/grade-calculator \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"mode":"average"}'const res = await fetch("https://api.kit.forhosting.com/dev/grade-calculator", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"mode": "average"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/grade-calculator",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"mode": "average"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/grade-calculator", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"mode":"average"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"mode":"average"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/grade-calculator", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"mode": "average"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.grade_calculator",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
تحسب متوسطًا مرجّحًا لعناصر مُقيَّمة، أو في وضع final_needed تحسب الدرجة التي عليك إحرازها في امتحان نهائي مرجّح لبلوغ درجة إجمالية مطلوبة.
وضعان يختارهما حقل mode
والمثال — عنصران قيمتاهما 80 و90 بوزن 1 في وضع average — يُعيد متوسطًا قدره 85. يتفرّع dev.grade_calculator على حقل mode مطلوب. ففي وضع average يأخذ مصفوفة items من مدخل إلى 50 مدخلًا، كلٌّ منها كائن بدرجة score رقمية ووزن weight موجب، ويُعيد الوسط المرجّح: مجموع score مضروبًا في weight مقسومًا على الوزن الكلي. وتتضمّن الاستجابة average وtotal_weight وitems_count. وفي وضع final_needed تُمرّر درجة إجمالية مطلوبة desired ووزن الامتحان المتبقّي final_weight، إضافةً إلى مصفوفة items اختيارية بالدرجات المحرَزة سلفًا؛ فتحلّ للدرجة التي عليك إحرازها في ذلك الامتحان النهائي. والصيغة هي (desired * (sum_of_weights + final_weight) - sum_of_score_times_weight) / final_weight، وتُعيد الاستجابة desired وfinal_weight وneeded وcurrent_average.
العناصر والأوزان والتحقق
وفي وضع average يجب أن تحوي مصفوفة items من مدخل إلى 50 مدخلًا، ووزنٌ كلي قدره صفر يُطلق خطأ قسمة على صفر. وأي عنصر مشوَّه، أو حقل مطلوب مفقود، أو قيمة خارج النطاق، يخفق نظيفًا قبل الجمع أو أثناءه، لا انهيارًا غير مُصنَّف أبدًا. يُتحقَّق من كل عنصر: يجب أن يكون score عددًا منتهيًا لا تتجاوز قيمته المطلقة 1e6، وأن يكون weight عددًا منتهيًا أكبر من صفر تمامًا، فيُرفض وزن صفري أو سالب بخطأ invalid_input مُصنَّف. وفي وضع final_needed تكون items اختيارية — تُعامَل قائمة مُغفَلة ومصفوفة فارغة معاملةً واحدة، إذ إن الصيغة التصريحية تُسقِط القوائم الاختيارية الفارغة — فمع عدم وجود درجات سابقة تكون الدرجة اللازمة هي الدرجة المطلوبة ببساطة. ويجب أن تكون desired منتهية، وأن يكون final_weight منتهيًا وأكبر من صفر.
التقريب وcurrent_average والتخطيط
وقيمة needed تفوق أقصى ما يمكن أن يمنحه امتحان نهائي تخبرك بأن الهدف بعيد المنال؛ وقيمة needed سالبة تعني أن الهدف مؤمَّن سلفًا. وفي وضع final_needed تحمل الاستجابة كذلك current_average: المتوسط المرجّح للدرجات المُدخَلة سلفًا، أو null حين لم تُمرَّر عناصر سابقة، فيرى الطالب موقعه الحالي وما يتطلّبه الامتحان النهائي معًا.
حالات التكامل
التخطيط للامتحان النهائي
استعمل final_needed لتخبر الطالب بالدرجة المطلوبة بالضبط في الامتحان النهائي لبلوغ درجة مستهدفة.
أتمتة سجلّ الدرجات
استدعِ API لكل طالب لإلحاق عمود المتوسط المرجّح أو الدرجة اللازمة عبر صفّ كامل.
أسئلة تقنية
ما الفرق بين الوضعين؟
يُعيد average الوسط المرجّح لعناصرك؛ ويحلّ final_needed للدرجة المطلوبة في امتحان نهائي مرجّح لبلوغ درجة إجمالية مطلوبة.
هل أحتاج إلى درجات سابقة لوضع final_needed؟
لا. تكون items اختيارية هناك؛ فمع عدم وجود درجات سابقة تساوي الدرجة اللازمة الدرجة المطلوبة ويكون current_average قيمته null.
كيف يُتحكَّم في التقريب؟
حقل decimals (من 0 إلى 4، الافتراضي 2) يقرّب النتائج half-up من القيمة الخام، لا عبر toFixed.
ما الذي يُطلق خطأً؟
وزن غير موجب، أو وزن كلي قدره صفر، أو درجة خارج النطاق، أو حقل مطلوب مفقود، يُعيد invalid_input. الوصول عبر API من $0.002.