Hxfhf Ucicic نشر 14 مايو أرسل تقرير نشر 14 مايو لقد قمت بأنشاء الة حاسبة لكن ملف جافا سكريبت لم يعمل رغم اني قمت بتصديره في html اسفل الاكواد ارجو المساعدة الة حاسبة.zip 2 اقتباس
0 Mustafa Suleiman نشر 14 مايو أرسل تقرير نشر 14 مايو ملف 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 محمد_عاطف نشر 14 مايو أرسل تقرير نشر 14 مايو إذا لاحظت في ال console ستجد أن الكود يعمل دون أى مشكلة ويتم تحميل الملف بشكل صحيح. أما بخصوص عدم المنطق كما نريد فهذا بسبب وجود أخطأء لديك . أولا في سطر 84 لاحظ أنك قمت بكتابة even ولكنك تستخدم في الدالة event لهذا يجب تعديلها إلى event هكذا : document.querySelector('.calc-buttons').addEventListener('click' , function(event){ الآن في سطر 76 لاحظ أنك تستخدم === ولكن الصحيح هو علامة = واحدة لتعين القيمة هكذا : buffer = numberString; اقتباس
0 Hxfhf Ucicic نشر 14 مايو الكاتب أرسل تقرير نشر 14 مايو لقد قم بتصحيح الأخطاء لكن هناك خظئ لم اعلم اين هو عند ضغط على + - لا يعملون لكن الاحرف تعمل اقتباس
0 محمد_عاطف نشر 14 مايو أرسل تقرير نشر 14 مايو بتاريخ 2 دقائق مضت قال Zen: لقد قم بتصحيح الأخطاء لكن هناك خظئ لم اعلم اين هو عند ضغط على + - لا يعملون لكن الاحرف تعمل من المفترض الآن أن الأزرار جميعها تعمل وهي الأرقام وحرف c للحذف وللسهم . أما بخصوص + و - و × و ÷ فهما لن يعملوا لأنك لم تقم بكتابة المنطق الخاص بهم : لاحظ كيف أن الكود الخاص بهم فارغ. لذلك يجب عليك إنشاء المنطق الخاص بكل زر منهم. وأيضا لاحظ أن زر = غير موجود في HTML. اقتباس
السؤال
Hxfhf Ucicic
لقد قمت بأنشاء الة حاسبة لكن ملف جافا سكريبت لم يعمل رغم اني قمت بتصديره في html اسفل الاكواد
ارجو المساعدة
الة حاسبة.zip
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.