أخبار الموقع

حاسبة المعدل المدرسية 2026 — جميع المستويات مع إمكانية تعديل المعاملات

.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 += ‘

‘ + subj.n + ‘

‘;
html += ‘

المعامل ‘ + subj.c + ‘

‘;
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’);
})();

📍 دروس مشابهة

شاهد أيضا

الإحصاء والاحتمالات — تمثيل البيانات وتحليلها — الرياضيات — السنة الرابعة متوسط — المنهاج الجزائري

يعد الإحصاء والاحتمالات من أهم فروع الرياضيات التي تستخدم في تحليل البيانات واتخاذ القرارات. في …

الصناعة في الجزائر — أنواعها وأهميتها — التاريخ والجغرافيا — السنة الثانية متوسط — المنهاج الجزائري

تعتبر الصناعة من أهم القطاعات الاقتصادية في الجزائر بعد قطاع المحروقات. تساهم الصناعة في توفير …

السكان في الجزائر — توزيعهم وخصائصهم — التاريخ والجغرافيا — السنة الأولى متوسط — المنهاج الجزائري

تعتبر دراسة السكان من أهم موضوعات الجغرافيا، حيث تساعدنا على فهم كيفية توزيع البشر على …

Clothes and Shopping — Vocabulary, Expressions and Dialogues — English — 2nd Year Middle School — Algerian Curriculum

\n Clothes and Shopping — English — 2AM — Algerian Curriculum \n Subject: English (Vocabulary …

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *