.calc-master-wrap { font-family: ‘Tajawal’,’Cairo’,sans-serif; max-width: 1000px; margin: 0 auto; padding: 15px; background: #f0f4f8; border-radius: 18px; direction: rtl; }
.calc-master-wrap * { box-sizing: border-box; }
.calc-master-wrap h1 { color: #1a237e; text-align: center; font-size: 26px; margin-bottom: 6px; }
.calc-master-wrap .subtitle { text-align: center; color: #666; font-size: 15px; margin-bottom: 20px; }
/* التبويبات الرئيسية – قابلة للالتفاف */
.calc-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 16px; justify-content: center; }
.calc-tab { padding: 10px 18px; border: 2px solid #1a237e; border-radius: 10px; background: white; color: #1a237e; font-size: 14px; font-weight: 700; cursor: pointer; transition: all 0.25s; font-family: inherit; white-space: nowrap; }
.calc-tab:hover { background: #e8eaf6; }
.calc-tab.active { background: #1a237e; color: white; }
/* الشعبة – قابلة للالتفاف */
.stream-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; justify-content: center; }
.stream-tab { padding: 7px 14px; border: 2px solid #3949ab; border-radius: 8px; background: white; color: #3949ab; font-size: 13px; font-weight: 600; cursor: pointer; transition: all 0.2s; font-family: inherit; white-space: nowrap; }
.stream-tab:hover { background: #e8eaf6; }
.stream-tab.active { background: #3949ab; color: white; }
/* منطقة المواد */
.calc-subjects { background: white; border-radius: 14px; padding: 12px; box-shadow: 0 2px 14px rgba(0,0,0,0.07); margin-bottom: 16px; }
/* كل مادة – تصميم responsive */
.calc-row { display: flex; align-items: center; padding: 8px 6px; border-bottom: 1px solid #f0f0f0; gap: 8px; }
.calc-row:last-child { border-bottom: none; }
.calc-row .s-name { flex: 1; font-weight: 600; color: #333; font-size: 14px; min-width: 0; }
.calc-row .s-coeff { background: #e8eaf6; color: #1a237e; padding: 4px 8px; border-radius: 16px; font-size: 12px; font-weight: 700; min-width: 55px; text-align: center; cursor: pointer; transition: background 0.2s; flex-shrink: 0; }
.calc-row .s-coeff:hover { background: #c5cae9; }
.calc-row .s-coeff.editing { background: #ffecb3; border: 1px dashed #f57f17; }
.calc-row .s-input { width: 65px; padding: 6px 8px; border: 2px solid #ddd; border-radius: 8px; font-size: 15px; text-align: center; font-family: inherit; outline: none; transition: border 0.2s; flex-shrink: 0; }
.calc-row .s-input:focus { border-color: #1a237e; }
/* مجموع المعاملات */
.total-coeff-edit { text-align: center; padding: 8px; font-size: 13px; color: #666; }
.total-coeff-edit input { width: 50px; padding: 4px; border: 1px dashed #aaa; border-radius: 4px; text-align: center; font-family: inherit; font-size: 13px; }
/* النتيجة – تتناسب مع الشاشة */
.calc-result { background: linear-gradient(135deg, #1a237e, #283593); color: white; border-radius: 16px; padding: 18px 12px; text-align: center; margin-top: 10px; transition: background 0.4s; }
.calc-result .r-label { font-size: 14px; opacity: 0.85; margin-bottom: 2px; }
.calc-result .r-grade { font-size: 40px; font-weight: 900; line-height: 1.2; }
.calc-result .r-mention { display: inline-block; margin-top: 6px; padding: 6px 24px; border-radius: 30px; background: rgba(255,255,255,0.18); font-size: 16px; font-weight: 700; }
.calc-result .r-detail { font-size: 12px; opacity: 0.7; margin-top: 4px; }
/* الجدول – قابل للتمرير أفقياً */
.calc-table-wrap { overflow-x: auto; margin-top: 16px; background: white; border-radius: 12px; box-shadow: 0 2px 8px rgba(0,0,0,0.05); -webkit-overflow-scrolling: touch; }
.calc-table-wrap table { width: 100%; border-collapse: collapse; font-size: 13px; }
.calc-table-wrap th { background: #1a237e; color: white; padding: 10px 10px; text-align: center; white-space: nowrap; }
.calc-table-wrap td { padding: 8px 8px; text-align: center; border-bottom: 1px solid #eee; white-space: nowrap; }
.calc-table-wrap tr:nth-child(even) td { background: #f8f9fa; }
.calc-info { background: #fff8e1; border-right: 4px solid #ff8f00; padding: 12px 14px; border-radius: 8px; margin: 14px 0; font-size: 14px; color: #555; }
.calc-info strong { color: #e65100; }
.calc-faq { margin-top: 20px; }
.calc-faq-item { background: white; border-radius: 10px; padding: 12px 16px; margin-bottom: 8px; box-shadow: 0 1px 4px rgba(0,0,0,0.05); }
.calc-faq-item h3 { color: #1a237e; font-size: 15px; margin: 0 0 4px; }
.calc-faq-item p { color: #555; font-size: 14px; line-height: 1.7; margin: 0; }
.section-title { font-size: 20px; color: #1a237e; margin: 22px 0 10px; text-align: center; }
/* ===== التجاوب مع الشاشات الصغيرة ===== */
@media (max-width: 768px) {
.calc-master-wrap { padding: 10px; border-radius: 12px; }
.calc-master-wrap h1 { font-size: 20px; }
.calc-tab { padding: 8px 12px; font-size: 13px; white-space: nowrap; flex: 1 1 auto; min-width: 80px; text-align: center; }
.stream-tab { padding: 6px 10px; font-size: 12px; flex: 1 1 auto; min-width: 60px; text-align: center; }
}
@media (max-width: 600px) {
.calc-master-wrap { padding: 8px; border-radius: 10px; }
.calc-master-wrap h1 { font-size: 18px; }
.calc-master-wrap .subtitle { font-size: 13px; }
.calc-tab { padding: 7px 10px; font-size: 12px; min-width: 60px; }
.calc-tab .tab-icon { margin-left: 3px; }
.stream-tab { padding: 5px 8px; font-size: 11px; min-width: 50px; }
.calc-subjects { padding: 8px; border-radius: 10px; }
.calc-row { padding: 6px 4px; gap: 6px; flex-wrap: nowrap; }
.calc-row .s-name { font-size: 13px; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.calc-row .s-coeff { font-size: 11px; padding: 3px 6px; min-width: 45px; }
.calc-row .s-input { width: 52px; font-size: 14px; padding: 5px 4px; }
.calc-result { padding: 14px 8px; }
.calc-result .r-grade { font-size: 30px; }
.calc-result .r-mention { font-size: 14px; padding: 5px 16px; }
.section-title { font-size: 17px; }
.calc-table-wrap table { font-size: 11px; }
.calc-table-wrap th, .calc-table-wrap td { padding: 6px 5px; }
.calc-info { font-size: 13px; padding: 10px 12px; }
.calc-faq-item { padding: 10px 12px; }
.calc-faq-item h3 { font-size: 14px; }
.calc-faq-item p { font-size: 13px; }
}
@media (max-width: 400px) {
.calc-master-wrap { padding: 5px; }
.calc-master-wrap h1 { font-size: 16px; }
.calc-tab { padding: 6px 8px; font-size: 11px; min-width: 48px; }
.stream-tab { padding: 4px 6px; font-size: 10px; min-width: 40px; }
.calc-row .s-input { width: 44px; font-size: 13px; padding: 4px 3px; }
.calc-result .r-grade { font-size: 24px; }
}
🧮 حاسبة المعدلات الدراسية 2026 — جميع المستويات
احسب معدلك لأي مرحلة دراسية في الجزائر: ابتدائي، متوسط، BEM، ثانوي، بكالوريا — مع إمكانية تعديل المعاملات يدوياً
📋 جدول المعاملات الرسمية لشعب البكالوريا
| المادة | علوم تجريبية | رياضيات | تقني رياضي | تسيير واقتصاد | آداب وفلسفة | لغات أجنبية |
|---|---|---|---|---|---|---|
| اللغة العربية | 3 | 3 | 3 | 3 | 5 | 3 |
| اللغة الفرنسية | 2 | 2 | 2 | 2 | 3 | 4 |
| اللغة الإنجليزية | 2 | 2 | 2 | 2 | 3 | 4 |
| الرياضيات | 5 | 7 | 6 | 4 | 2 | 2 |
| الفيزياء | 5 | 5 | 6 | 2 | — | — |
| علوم طبيعة وحياة | 6 | 4 | 2 | — | — | — |
| التسيير المحاسبي والمالي | — | — | — | 6 | — | — |
| الاقتصاد والمناجمنت | — | — | — | 4 | — | — |
| التاريخ والجغرافيا | 2 | 2 | 2 | 2 | 4 | 3 |
| الفلسفة | 2 | 2 | 2 | 2 | 5 | 3 |
| التربية الإسلامية | 2 | 2 | 2 | 2 | 2 | 2 |
| التربية البدنية | 1 | 1 | 1 | 1 | 1 | 1 |
💡 طريقة حساب المعدل
يتم حساب المعدل بقسمة مجموع (العلامة × المعامل) لكل مادة على مجموع المعاملات.
المعدل = ∑ (العلامة × المعامل) ÷ ∑ المعاملات
🎯 نظام التقدير
| المعدل | التقدير |
|---|---|
| 10 – 10.99 | مقبول 🎉 |
| 11 – 11.99 | مستحسن ✅ |
| 12 – 13.99 | جيد 👍 |
| 14 – 15.99 | جيد جداً 🌟 |
| 16 فأكثر | ممتاز 🏆 |
❓ الأسئلة الشائعة
كيف أحسب معدل البكالوريا؟
استخدم الحاسبة أعلاه: اختر شعبك (علوم تجريبية، رياضيات، …) وأدخل علاماتك في كل مادة — النتيجة تظهر فوراً. المعادلة: مجموع (العلامة × المعامل) ÷ مجموع المعاملات.
كيف أحسب معدل BEM؟
اختر تبويب “BEM” في الحاسبة، أدخل علاماتك للمواد المقررة (اللغة العربية، الرياضيات، الفرنسية، الإنجليزية، التاريخ، الجغرافيا، العلوم الإسلامية، العلوم الطبيعية، الفيزياء، التربية البدنية).
هل يمكن تعديل المعاملات؟
نعم! اضغط على رقم المعامل بجانب أي مادة وسيظهر حقل نصي يمكنك من تغييره لأي قيمة تريدها. هذا مفيد إذا كانت معاملات مدرستك تختلف عن المعاملات الرسمية.
هل الحاسبة متاحة لجميع المستويات؟
نعم، تغطي الحاسبة: الابتدائي (جميع المواد بمعامل 1)، المتوسط (بالمعاملات حسب السنة)، BEM، والبكالوريا (جميع الشعب الـ 6).
ما هي معاملات البكالوريا 2026؟
المعاملات ثابتة منذ سنوات ولا تتغير كثيراً. راجع جدول المعاملات أعلاه للحصول على التفاصيل الكاملة لكل شعبة.
(function(){
// ===== Ø§ÙØ¨ÙØ§ÙØ§Øª =====
const streams = {
science: { name: ‘عÙÙÙ
ØªØ¬Ø±ÙØ¨ÙØ©’, coeffSum:30,
subjects: [
{n:’اÙÙØºØ© Ø§ÙØ¹Ø±Ø¨ÙØ©’,c:3},{n:’اÙÙØºØ© اÙÙØ±ÙØ³ÙØ©’,c:2},{n:’اÙÙØºØ© Ø§ÙØ¥ÙجÙÙØ²ÙØ©’,c:2},
{n:’Ø§ÙØ±ÙØ§Ø¶ÙØ§Øª’,c:5},{n:’اÙÙÙØ²Ùاء’,c:5},{n:’عÙÙÙ
Ø·Ø¨ÙØ¹Ø© ÙØÙØ§Ø©’,c:6},
{n:’Ø§ÙØªØ§Ø±ÙØ® ÙØ§ÙجغراÙÙØ§’,c:2},{n:’اÙÙÙØ³ÙØ©’,c:2},{n:’Ø§ÙØªØ±Ø¨ÙØ© Ø§ÙØ¥Ø³ÙاÙ
ÙØ©’,c:2},
{n:’Ø§ÙØªØ±Ø¨ÙØ© Ø§ÙØ¨Ø¯ÙÙØ©’,c:1}
]},
math: { name: ‘Ø±ÙØ§Ø¶Ùات’, coeffSum:30,
subjects: [
{n:’اÙÙØºØ© Ø§ÙØ¹Ø±Ø¨ÙØ©’,c:3},{n:’اÙÙØºØ© اÙÙØ±ÙØ³ÙØ©’,c:2},{n:’اÙÙØºØ© Ø§ÙØ¥ÙجÙÙØ²ÙØ©’,c:2},
{n:’Ø§ÙØ±ÙØ§Ø¶ÙØ§Øª’,c:7},{n:’اÙÙÙØ²Ùاء’,c:5},{n:’عÙÙÙ
Ø·Ø¨ÙØ¹Ø© ÙØÙØ§Ø©’,c:4},
{n:’Ø§ÙØªØ§Ø±ÙØ® ÙØ§ÙجغراÙÙØ§’,c:2},{n:’اÙÙÙØ³ÙØ©’,c:2},{n:’Ø§ÙØªØ±Ø¨ÙØ© Ø§ÙØ¥Ø³ÙاÙ
ÙØ©’,c:2},
{n:’Ø§ÙØªØ±Ø¨ÙØ© Ø§ÙØ¨Ø¯ÙÙØ©’,c:1}
]},
tech: { name: ‘تÙÙÙ Ø±ÙØ§Ø¶Ù’, coeffSum:30,
subjects: [
{n:’اÙÙØºØ© Ø§ÙØ¹Ø±Ø¨ÙØ©’,c:3},{n:’اÙÙØºØ© اÙÙØ±ÙØ³ÙØ©’,c:2},{n:’اÙÙØºØ© Ø§ÙØ¥ÙجÙÙØ²ÙØ©’,c:2},
{n:’Ø§ÙØ±ÙØ§Ø¶ÙØ§Øª’,c:6},{n:’اÙÙÙØ²Ùاء’,c:6},{n:’عÙÙÙ
Ø·Ø¨ÙØ¹Ø© ÙØÙØ§Ø©’,c:2},
{n:’Ø§ÙØªØ§Ø±ÙØ® ÙØ§ÙجغراÙÙØ§’,c:2},{n:’اÙÙÙØ³ÙØ©’,c:2},{n:’Ø§ÙØªØ±Ø¨ÙØ© Ø§ÙØ¥Ø³ÙاÙ
ÙØ©’,c:2},
{n:’Ø§ÙØªØ±Ø¨ÙØ© Ø§ÙØ¨Ø¯ÙÙØ©’,c:1}
]},
eco: { name: ‘تسÙÙØ± ÙØ§Ùتصاد’, coeffSum:30,
subjects: [
{n:’اÙÙØºØ© Ø§ÙØ¹Ø±Ø¨ÙØ©’,c:3},{n:’اÙÙØºØ© اÙÙØ±ÙØ³ÙØ©’,c:2},{n:’اÙÙØºØ© Ø§ÙØ¥ÙجÙÙØ²ÙØ©’,c:2},
{n:’Ø§ÙØ±ÙØ§Ø¶ÙØ§Øª’,c:4},{n:’اÙÙÙØ²Ùاء’,c:2},{n:’Ø§ÙØªØ³ÙÙØ± اÙÙ
ØØ§Ø³Ø¨Ù ÙØ§ÙÙ
اÙÙ’,c:6},
{n:’Ø§ÙØ§Ùتصاد ÙØ§ÙÙ
ÙØ§Ø¬Ù
ÙØª’,c:4},{n:’Ø§ÙØªØ§Ø±ÙØ® ÙØ§ÙجغراÙÙØ§’,c:2},{n:’اÙÙÙØ³ÙØ©’,c:2},
{n:’Ø§ÙØªØ±Ø¨ÙØ© Ø§ÙØ¥Ø³ÙاÙ
ÙØ©’,c:2},{n:’Ø§ÙØªØ±Ø¨ÙØ© Ø§ÙØ¨Ø¯ÙÙØ©’,c:1}
]},
lit: { name: ‘آداب ÙÙÙØ³ÙØ©’, coeffSum:25,
subjects: [
{n:’اÙÙØºØ© Ø§ÙØ¹Ø±Ø¨ÙØ©’,c:5},{n:’اÙÙØºØ© اÙÙØ±ÙØ³ÙØ©’,c:3},{n:’اÙÙØºØ© Ø§ÙØ¥ÙجÙÙØ²ÙØ©’,c:3},
{n:’Ø§ÙØ±ÙØ§Ø¶ÙØ§Øª’,c:2},{n:’Ø§ÙØªØ§Ø±ÙØ® ÙØ§ÙجغراÙÙØ§’,c:4},{n:’اÙÙÙØ³ÙØ©’,c:5},
{n:’Ø§ÙØªØ±Ø¨ÙØ© Ø§ÙØ¥Ø³ÙاÙ
ÙØ©’,c:2},{n:’Ø§ÙØªØ±Ø¨ÙØ© Ø§ÙØ¨Ø¯ÙÙØ©’,c:1}
]},
lang: { name: ‘ÙØºØ§Øª Ø£Ø¬ÙØ¨ÙØ©’, coeffSum:22,
subjects: [
{n:’اÙÙØºØ© Ø§ÙØ¹Ø±Ø¨ÙØ©’,c:3},{n:’اÙÙØºØ© اÙÙØ±ÙØ³ÙØ©’,c:4},{n:’اÙÙØºØ© Ø§ÙØ¥ÙجÙÙØ²ÙØ©’,c:4},
{n:’Ø§ÙØ±ÙØ§Ø¶ÙØ§Øª’,c:2},{n:’Ø§ÙØªØ§Ø±ÙØ® ÙØ§ÙجغراÙÙØ§’,c:3},{n:’اÙÙÙØ³ÙØ©’,c:3},
{n:’Ø§ÙØªØ±Ø¨ÙØ© Ø§ÙØ¥Ø³ÙاÙ
ÙØ©’,c:2},{n:’Ø§ÙØªØ±Ø¨ÙØ© Ø§ÙØ¨Ø¯ÙÙØ©’,c:1}
]}
};
const bems = {
normal: { name: ‘BEM عادْ,
subjects: [
{n:’اÙÙØºØ© Ø§ÙØ¹Ø±Ø¨ÙØ©’,c:4},{n:’Ø§ÙØ±ÙØ§Ø¶ÙØ§Øª’,c:4},{n:’اÙÙØºØ© اÙÙØ±ÙØ³ÙØ©’,c:3},
{n:’اÙÙØºØ© Ø§ÙØ¥ÙجÙÙØ²ÙØ©’,c:2},{n:’Ø§ÙØªØ§Ø±ÙØ® ÙØ§ÙجغراÙÙØ§’,c:2},{n:’Ø§ÙØ¹ÙÙÙ
Ø§ÙØ¥Ø³ÙاÙ
ÙØ©’,c:2},
{n:’Ø§ÙØ¹ÙÙÙ
Ø§ÙØ·Ø¨ÙØ¹ÙØ©’,c:2},{n:’اÙÙÙØ²Ùاء’,c:2},{n:’Ø§ÙØ¥Ø¹ÙاÙ
Ø§ÙØ¢ÙÙ’,c:1},
{n:’Ø§ÙØªØ±Ø¨ÙØ© Ø§ÙØ¨Ø¯ÙÙØ©’,c:1},{n:’Ø§ÙØªØ±Ø¨ÙØ© اÙÙÙÙØ©’,c:1},{n:’Ø§ÙØªØ±Ø¨ÙØ© اÙÙ
دÙÙØ©’,c:1}
]},
tech: { name: ‘BEM تÙÙÙ’,
subjects: [
{n:’اÙÙØºØ© Ø§ÙØ¹Ø±Ø¨ÙØ©’,c:4},{n:’Ø§ÙØ±ÙØ§Ø¶ÙØ§Øª’,c:5},{n:’اÙÙØºØ© اÙÙØ±ÙØ³ÙØ©’,c:3},
{n:’اÙÙØºØ© Ø§ÙØ¥ÙجÙÙØ²ÙØ©’,c:2},{n:’Ø§ÙØªØ§Ø±ÙØ® ÙØ§ÙجغراÙÙØ§’,c:1},{n:’Ø§ÙØ¹ÙÙÙ
Ø§ÙØ¥Ø³ÙاÙ
ÙØ©’,c:1},
{n:’Ø§ÙØ¹ÙÙÙ
Ø§ÙØ·Ø¨ÙØ¹ÙØ©’,c:1},{n:’اÙÙÙØ²Ùاء’,c:3},{n:’Ø§ÙØ¥Ø¹ÙاÙ
Ø§ÙØ¢ÙÙ’,c:2},
{n:’Ø§ÙØªØ±Ø¨ÙØ© Ø§ÙØ¨Ø¯ÙÙØ©’,c:1},{n:’Ø§ÙØªÙÙÙÙÙØ¬Ùا’,c:3}
]}
};
const middles = {
m1: { name: ‘Ø§ÙØ³ÙØ© Ø§ÙØ£ÙÙÙ Ù
ØªÙØ³Ø·’,
subjects: [
{n:’اÙÙØºØ© Ø§ÙØ¹Ø±Ø¨ÙØ©’,c:3},{n:’Ø§ÙØ±ÙØ§Ø¶ÙØ§Øª’,c:3},{n:’اÙÙØºØ© اÙÙØ±ÙØ³ÙØ©’,c:2},
{n:’اÙÙØºØ© Ø§ÙØ¥ÙجÙÙØ²ÙØ©’,c:2},{n:’Ø§ÙØ¹ÙÙÙ
Ø§ÙØ·Ø¨ÙØ¹ÙØ©’,c:2},{n:’اÙÙÙØ²Ùاء’,c:2},
{n:’Ø§ÙØªØ§Ø±ÙØ® ÙØ§ÙجغراÙÙØ§’,c:2},{n:’Ø§ÙØ¹ÙÙÙ
Ø§ÙØ¥Ø³ÙاÙ
ÙØ©’,c:2},{n:’Ø§ÙØ¥Ø¹ÙاÙ
Ø§ÙØ¢ÙÙ’,c:1},
{n:’Ø§ÙØªØ±Ø¨ÙØ© Ø§ÙØ¨Ø¯ÙÙØ©’,c:1},{n:’Ø§ÙØªØ±Ø¨ÙØ© اÙÙÙÙØ©’,c:1},{n:’Ø§ÙØªØ±Ø¨ÙØ© اÙÙ
دÙÙØ©’,c:1}
]},
m2: { name: ‘Ø§ÙØ³ÙØ© Ø§ÙØ«Ø§ÙÙØ© Ù
ØªÙØ³Ø·’,
subjects: [
{n:’اÙÙØºØ© Ø§ÙØ¹Ø±Ø¨ÙØ©’,c:3},{n:’Ø§ÙØ±ÙØ§Ø¶ÙØ§Øª’,c:3},{n:’اÙÙØºØ© اÙÙØ±ÙØ³ÙØ©’,c:2},
{n:’اÙÙØºØ© Ø§ÙØ¥ÙجÙÙØ²ÙØ©’,c:2},{n:’Ø§ÙØ¹ÙÙÙ
Ø§ÙØ·Ø¨ÙØ¹ÙØ©’,c:2},{n:’اÙÙÙØ²Ùاء’,c:2},
{n:’Ø§ÙØªØ§Ø±ÙØ® ÙØ§ÙجغراÙÙØ§’,c:2},{n:’Ø§ÙØ¹ÙÙÙ
Ø§ÙØ¥Ø³ÙاÙ
ÙØ©’,c:2},{n:’Ø§ÙØ¥Ø¹ÙاÙ
Ø§ÙØ¢ÙÙ’,c:1},
{n:’Ø§ÙØªØ±Ø¨ÙØ© Ø§ÙØ¨Ø¯ÙÙØ©’,c:1},{n:’Ø§ÙØªØ±Ø¨ÙØ© اÙÙÙÙØ©’,c:1},{n:’Ø§ÙØªØ±Ø¨ÙØ© اÙÙ
دÙÙØ©’,c:1}
]},
m3: { name: ‘Ø§ÙØ³ÙØ© Ø§ÙØ«Ø§Ùثة Ù
ØªÙØ³Ø·’,
subjects: [
{n:’اÙÙØºØ© Ø§ÙØ¹Ø±Ø¨ÙØ©’,c:3},{n:’Ø§ÙØ±ÙØ§Ø¶ÙØ§Øª’,c:3},{n:’اÙÙØºØ© اÙÙØ±ÙØ³ÙØ©’,c:2},
{n:’اÙÙØºØ© Ø§ÙØ¥ÙجÙÙØ²ÙØ©’,c:2},{n:’Ø§ÙØ¹ÙÙÙ
Ø§ÙØ·Ø¨ÙØ¹ÙØ©’,c:2},{n:’اÙÙÙØ²Ùاء’,c:2},
{n:’Ø§ÙØªØ§Ø±ÙØ® ÙØ§ÙجغراÙÙØ§’,c:2},{n:’Ø§ÙØ¹ÙÙÙ
Ø§ÙØ¥Ø³ÙاÙ
ÙØ©’,c:2},{n:’Ø§ÙØ¥Ø¹ÙاÙ
Ø§ÙØ¢ÙÙ’,c:1},
{n:’Ø§ÙØªØ±Ø¨ÙØ© Ø§ÙØ¨Ø¯ÙÙØ©’,c:1},{n:’Ø§ÙØªØ±Ø¨ÙØ© اÙÙÙÙØ©’,c:1},{n:’Ø§ÙØªØ±Ø¨ÙØ© اÙÙ
دÙÙØ©’,c:1}
]},
m4: { name: ‘Ø§ÙØ³ÙØ© Ø§ÙØ±Ø§Ø¨Ø¹Ø© Ù
ØªÙØ³Ø·’,
subjects: [
{n:’اÙÙØºØ© Ø§ÙØ¹Ø±Ø¨ÙØ©’,c:3},{n:’Ø§ÙØ±ÙØ§Ø¶ÙØ§Øª’,c:4},{n:’اÙÙØºØ© اÙÙØ±ÙØ³ÙØ©’,c:3},
{n:’اÙÙØºØ© Ø§ÙØ¥ÙجÙÙØ²ÙØ©’,c:2},{n:’Ø§ÙØ¹ÙÙÙ
Ø§ÙØ·Ø¨ÙØ¹ÙØ©’,c:3},{n:’اÙÙÙØ²Ùاء’,c:3},
{n:’Ø§ÙØªØ§Ø±ÙØ® ÙØ§ÙجغراÙÙØ§’,c:2},{n:’Ø§ÙØ¹ÙÙÙ
Ø§ÙØ¥Ø³ÙاÙ
ÙØ©’,c:2},{n:’Ø§ÙØ¥Ø¹ÙاÙ
Ø§ÙØ¢ÙÙ’,c:1},
{n:’Ø§ÙØªØ±Ø¨ÙØ© Ø§ÙØ¨Ø¯ÙÙØ©’,c:1},{n:’Ø§ÙØªØ±Ø¨ÙØ© اÙÙ
دÙÙØ©’,c:1}
]}
};
const primary = {
all: { name: ‘Ø§ÙØ§Ø¨ØªØ¯Ø§Ø¦Ù (جÙ
ÙØ¹ Ø§ÙØ³ÙÙØ§Øª)’,
subjects: [
{n:’اÙÙØºØ© Ø§ÙØ¹Ø±Ø¨ÙØ©’,c:1},{n:’Ø§ÙØ±ÙØ§Ø¶ÙØ§Øª’,c:1},{n:’اÙÙØºØ© اÙÙØ±ÙØ³ÙØ©’,c:1},
{n:’Ø§ÙØªØ±Ø¨ÙØ© Ø§ÙØ¥Ø³ÙاÙ
ÙØ©’,c:1},{n:’Ø§ÙØªØ±Ø¨ÙØ© Ø§ÙØ¹ÙÙ
ÙØ©’,c:1},{n:’Ø§ÙØªØ§Ø±ÙØ® ÙØ§ÙجغراÙÙØ§’,c:1},
{n:’Ø§ÙØªØ±Ø¨ÙØ© Ø§ÙØ¨Ø¯ÙÙØ©’,c:1},{n:’Ø§ÙØªØ±Ø¨ÙØ© اÙÙÙÙØ©’,c:1},{n:’Ø§ÙØªØ±Ø¨ÙØ© اÙÙ
ÙØ³ÙÙÙØ©’,c:1}
]}
};
// ===== Tab data registry =====
const tabData = {
bac: { subTabs: streams, defaultSub: ‘science’ },
bem: { subTabs: bems, defaultSub: ‘normal’ },
middle: { subTabs: middles, defaultSub: ‘m1’ },
primary: { subTabs: primary, defaultSub: ‘all’ },
custom: { subTabs: null, defaultSub: null }
};
// ===== Ø§ÙØØ§ÙØ© =====
let currentTab = ‘bac’;
let currentSub = ‘science’;
let customSubjects = [];
let editingCoeff = null;
// ===== اÙÙ
راجع =====
const subjectsArea = document.getElementById(‘calcSubjects’);
const rGrade = document.getElementById(‘rGrade’);
const rMention = document.getElementById(‘rMention’);
const rDetail = document.getElementById(‘rDetail’);
const calcResult = document.getElementById(‘calcResult’);
const streamTabsDiv = document.getElementById(‘streamTabs’);
const totalCoeffEdit = document.getElementById(‘totalCoeffEdit’);
// ===== Ø§ÙØ¯Ùا٠=====
function getSubjectsFor(tab, sub) {
if (tab === ‘custom’) {
if (customSubjects.length === 0) {
customSubjects = [
{n:’اÙÙ
ادة 1′,c:1},{n:’اÙÙ
ادة 2′,c:1},{n:’اÙÙ
ادة 3′,c:1},
{n:’اÙÙ
ادة 4′,c:1},{n:’اÙÙ
ادة 5′,c:1}
];
}
return customSubjects;
}
const td = tabData
;
return td.subTabs[sub] ? td.subTabs[sub].subjects : [];
}
function renderSubjects() {
let subs = getSubjectsFor(currentTab, currentSub);
if (currentTab === ‘custom’) {
totalCoeffEdit.style.display = ‘block’;
} else {
totalCoeffEdit.style.display = ‘none’;
}
let html = ”;
subs.forEach((subj, idx) => {
const id = ‘s_’ + idx;
html += ‘
html += ‘
‘;
html += ‘
‘;
html += ”;
html += ‘
‘;
});
subjectsArea.innerHTML = html;
// Restore any saved values
subs.forEach((subj, idx) => {
var el = document.getElementById(‘s_’ + idx);
if (el && window.__saved && window.__saved[currentTab + ‘_’ + currentSub + ‘_’ + idx]) {
el.value = window.__saved[currentTab + ‘_’ + currentSub + ‘_’ + idx];
}
});
window.__calc();
}
window.__toggleCoeff = function(idx) {
var el = document.getElementById(‘coeff_’ + idx);
var subs = getSubjectsFor(currentTab, currentSub);
if (!subs[idx]) return;
// If already editing, save
if (el.classList.contains(‘editing’)) {
var inp = el.querySelector(‘input’);
if (inp) {
var val = parseFloat(inp.value);
if (!isNaN(val) && val > 0) {
subs[idx].c = val;
el.innerHTML = ‘اÙÙ
عاÙ
Ù ‘ + val;
el.classList.remove(‘editing’);
window.__calc();
}
}
return;
}
var currentVal = subs[idx].c;
el.innerHTML = ”;
el.classList.add(‘editing’);
var inp = el.querySelector(‘input’);
if (inp) { inp.focus(); inp.select(); }
};
window.__saveCoeff = function(idx, valStr) {
var val = parseFloat(valStr);
var subs = getSubjectsFor(currentTab, currentSub);
if (!subs[idx]) return;
if (!isNaN(val) && val > 0) {
subs[idx].c = val;
}
var el = document.getElementById(‘coeff_’ + idx);
if (el) {
el.innerHTML = ‘اÙÙ
عاÙ
Ù ‘ + subs[idx].c;
el.classList.remove(‘editing’);
window.__calc();
}
};
window.__calc = function() {
var subs = getSubjectsFor(currentTab, currentSub);
var totalWeighted = 0, totalCoeff = 0, allFilled = true, countFilled = 0, countTotal = 0;
subs.forEach(function(subj, idx) {
var el = document.getElementById(‘s_’ + idx);
if (!el) return;
countTotal++;
var val = parseFloat(el.value);
if (!isNaN(val) && val >= 0 && val 0) {
totalCoeff = mc;
}
}
}
if (totalCoeff > 0) {
var avg = totalWeighted / totalCoeff;
rGrade.textContent = avg.toFixed(2) + ‘ / 20’;
var mention, bg;
if (avg >= 16) { mention = ‘Ù
Ù
تاز ð’; bg = ‘linear-gradient(135deg, #1b5e20, #2e7d32)’; }
else if (avg >= 14) { mention = ‘Ø¬ÙØ¯ جدا٠ð’; bg = ‘linear-gradient(135deg, #1565c0, #1976d2)’; }
else if (avg >= 12) { mention = ‘Ø¬ÙØ¯ ð’; bg = ‘linear-gradient(135deg, #e65100, #ef6c00)’; }
else if (avg >= 11) { mention = ‘Ù
Ø³ØªØØ³Ù â
’; bg = ‘linear-gradient(135deg, #4a148c, #6a1b9a)’; }
else if (avg >= 10) { mention = ‘ð Ù
ÙØ¨ÙÙ’; bg = ‘linear-gradient(135deg, #00695c, #00897b)’; }
else { mention = ‘ÙÙØªØ°ÙÙØ±: اÙÙØ¬Ø§Ø Ù
Ù 10 ÙÙ
ا ÙÙÙ’; bg = ‘linear-gradient(135deg, #b71c1c, #c62828)’; }
rMention.textContent = mention;
calcResult.style.background = bg;
rDetail.textContent = ‘اÙÙ
جÙ
ÙØ¹: ‘ + totalWeighted.toFixed(2) + ‘ | Ù
جÙ
ÙØ¹ اÙÙ
عاÙ
ÙØ§Øª: ‘ + totalCoeff.toFixed(1) + ‘ | ‘ + countFilled + ‘/’ + countTotal + ‘ Ù
ÙØ§Ø¯ Ù
Ø¯Ø®ÙØ©’;
// Save values
if (!window.__saved) window.__saved = {};
subs.forEach(function(subj, idx) {
var el = document.getElementById(‘s_’ + idx);
if (el && el.value) {
window.__saved[currentTab + ‘_’ + currentSub + ‘_’ + idx] = el.value;
}
});
} else {
rGrade.textContent = ‘â’;
rMention.textContent = ‘Ø£Ø¯Ø®Ù Ø§ÙØ¹ÙاÙ
ات ÙØØ³Ø§Ø¨ اÙÙ
عدْ;
calcResult.style.background = ‘linear-gradient(135deg, #1a237e, #283593)’;
rDetail.textContent = ”;
}
};
// ===== Ø¨ÙØ§Ø¡ تبÙÙØ¨Ø§Øª اÙÙ
ستÙÙØ§Øª اÙÙØ±Ø¹ÙØ© =====
function buildStreamTabs(tab) {
var td = tabData
;
if (!td || !td.subTabs) {
streamTabsDiv.innerHTML = ”;
return;
}
var firstKey = null;
var html = ”;
for (var key in td.subTabs) {
if (!firstKey) firstKey = key;
var sub = td.subTabs[key];
html += ‘‘;
}
streamTabsDiv.innerHTML = html;
// If current sub isn’t in this tab, set to first
if (!td.subTabs[currentSub] && firstKey) {
currentSub = firstKey;
}
// Attach events
streamTabsDiv.querySelectorAll(‘.stream-tab’).forEach(function(btn) {
btn.addEventListener(‘click’, function() {
streamTabsDiv.querySelectorAll(‘.stream-tab’).forEach(function(b) { b.classList.remove(‘active’); });
this.classList.add(‘active’);
currentSub = this.dataset.sub;
renderSubjects();
});
});
}
// ===== Ù
Ø¹Ø§ÙØ¬Ø© اÙÙÙØ± عÙÙ Ø§ÙØªØ¨ÙÙØ¨Ø§Øª Ø§ÙØ±Ø¦ÙØ³ÙØ© =====
document.querySelectorAll(‘.calc-tab’).forEach(function(btn) {
btn.addEventListener(‘click’, function() {
document.querySelectorAll(‘.calc-tab’).forEach(function(b) { b.classList.remove(‘active’); });
this.classList.add(‘active’);
currentTab = this.dataset.tab;
renderSubjects();
buildStreamTabs(currentTab);
});
});
// ===== Custom: add subject button =====
var addBtn = document.createElement(‘div’);
addBtn.style.cssText = ‘text-align:center;margin-top:10px;’;
addBtn.innerHTML = ‘‘;
subjectsArea.parentNode.insertBefore(addBtn, subjectsArea.nextSibling);
window.__addSubject = function() {
customSubjects.push({n:’Ù
ادة Ø¬Ø¯ÙØ¯Ø©’, c:1});
if (currentTab === ‘custom’) renderSubjects();
};
// ===== Ø§Ø®ØªÙØ§Ø±Ù: تعدÙÙ Ù
جÙ
ÙØ¹ اÙÙ
عاÙ
ÙØ§Øª اÙÙ
خصص =====
document.getElementById(‘manualTotalCoeff’).addEventListener(‘input’, function() {
if (currentTab === ‘custom’) window.__calc();
});
// ===== Ø§ÙØªØ´ØºÙÙ Ø§ÙØ£ÙÙÙ =====
renderSubjects();
buildStreamTabs(‘bac’);
})();
مدونة التربية و التعليم في الجزائر – دروس، فروض، نتائج امتحانات مدونة التربية والتعليم في الجزائر | تحضير الدروس، فروض واختبارات، نتائج البكالوريا وBEM، مسابقات التوظيف، والتوجيه المدرسي للطلاب وأولياء الأمور.