Zen Eddin Allaham نشر 14 مايو 2025 أرسل تقرير نشر 14 مايو 2025 لقد قمت بأنشاء الة حاسبة لكن ملف جافا سكريبت لم يعمل رغم اني قمت بتصديره في html اسفل الاكواد ارجو المساعدة الة حاسبة.zip 2 اقتباس
0 Mustafa Suleiman نشر 14 مايو 2025 أرسل تقرير نشر 14 مايو 2025 ملف index.js قمت بتضمينه بشكل سليم ولو قمت بكتابة: console.log("Hello World"); ستجد أنّ الرسالة ظهرت في الكونسول، إذن يوجد مشكلة في الكود تمنع عمله بشكل صحيح. لنقم بحل المشكلة الأولى وهي الضغط على الأرقام لا يظهر أيًا منها على شاشة الآلة الحاسبة، عليك تصحيح متغير prevlousOperator بتهيئته بقيمة null، وتصحيح خطأ في handleNumber لأنك تستخدم === الخاص بالمقارنة بدلاً من = لتعيين قيمة. ثم إضافة تحويل runningTotal إلى نص باستخدام toString() عند عرضه، وإضافة استدعاء handleMath(symbol) وكلمة break في حالات العمليات الحسابية. ثم تصحيح اسم متغير event في دالة الاستماع، لأنك كتبت even بدلاً من event: console.log("Hello World"); let runningTotal = 0; let buffer = "0"; let prevlousOperator = null; const screen = document.querySelector('.screen') function buttonClick(value){ if(isNaN(value)){ handleSymbol(value) }else{ handleNumber(value) } screen.innerText = buffer; } function handleSymbol(symbol){ switch(symbol){ case 'C': buffer = "0"; runningTotal = 0; break; case "=": if(prevlousOperator === null){ return } flushOperation(parseInt(buffer)); prevlousOperator = null; buffer = runningTotal.toString(); runningTotal = 0; break; case "←" : if(buffer.length === 1){ buffer = "0"; }else{ buffer = buffer.substring(0, buffer.length - 1); } break; case '+': case '-': case '×': case '÷': handleMath(symbol); break; } } function handleMath(symbol){ if(buffer === '0'){ return; } const inBudffer = parseInt(buffer); if(runningTotal === 0){ runningTotal = inBudffer; }else{ flushOperation(inBudffer); } prevlousOperator = symbol; buffer = '0'; } function flushOperation(inBudffer){ if(prevlousOperator === '+'){ runningTotal += inBudffer; }else if(prevlousOperator === '-'){ runningTotal -= inBudffer; }else if(prevlousOperator === '×'){ runningTotal *= inBudffer; }else if(prevlousOperator === '÷'){ runningTotal /= inBudffer; } } function handleNumber(numberString){ if(buffer === "0"){ buffer = numberString; }else{ buffer += numberString; } }; function init(){ document.querySelector('.calc-buttons').addEventListener('click', function(event){ buttonClick(event.target.innerText); }) } init(); اقتباس
0 محمد عاطف25 نشر 14 مايو 2025 أرسل تقرير نشر 14 مايو 2025 إذا لاحظت في ال console ستجد أن الكود يعمل دون أى مشكلة ويتم تحميل الملف بشكل صحيح. أما بخصوص عدم المنطق كما نريد فهذا بسبب وجود أخطأء لديك . أولا في سطر 84 لاحظ أنك قمت بكتابة even ولكنك تستخدم في الدالة event لهذا يجب تعديلها إلى event هكذا : document.querySelector('.calc-buttons').addEventListener('click' , function(event){ الآن في سطر 76 لاحظ أنك تستخدم === ولكن الصحيح هو علامة = واحدة لتعين القيمة هكذا : buffer = numberString; اقتباس
0 Zen Eddin Allaham نشر 14 مايو 2025 الكاتب أرسل تقرير نشر 14 مايو 2025 لقد قم بتصحيح الأخطاء لكن هناك خظئ لم اعلم اين هو عند ضغط على + - لا يعملون لكن الاحرف تعمل اقتباس
0 محمد عاطف25 نشر 14 مايو 2025 أرسل تقرير نشر 14 مايو 2025 بتاريخ 2 دقائق مضت قال Zen: لقد قم بتصحيح الأخطاء لكن هناك خظئ لم اعلم اين هو عند ضغط على + - لا يعملون لكن الاحرف تعمل من المفترض الآن أن الأزرار جميعها تعمل وهي الأرقام وحرف c للحذف وللسهم . أما بخصوص + و - و × و ÷ فهما لن يعملوا لأنك لم تقم بكتابة المنطق الخاص بهم : لاحظ كيف أن الكود الخاص بهم فارغ. لذلك يجب عليك إنشاء المنطق الخاص بكل زر منهم. وأيضا لاحظ أن زر = غير موجود في HTML. اقتباس
السؤال
Zen Eddin Allaham
لقد قمت بأنشاء الة حاسبة لكن ملف جافا سكريبت لم يعمل رغم اني قمت بتصديره في html اسفل الاكواد
ارجو المساعدة
الة حاسبة.zip
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.