Ahmed Ebrahim11 نشر 25 أبريل 2023 أرسل تقرير نشر 25 أبريل 2023 (معدل) 1-السلام عليكم لا ادري ما المشكله يظهر لي خطا ان phi is not defined رغم اني عرفتها ف for loop 2-ولا تخرج نواتج لh يخرج انها غير معرفه ايضا من المفترض اني ابدا تخزين h ك array بقيم 3-ايضا اريد اخراج النواتج كجدول و رسمه توضح العلاقه بين phi و h const p = 100; const N = 2500; const pi = 3.14; const d0 = 2.5; const w = (2 * pi * N) / 60; const phi_end = 15; const phi_m = phi_end / 2; const sfc = 0.23; const rho = 850; const z = 6; m0_f = (sfc * p) / 3600; mf = (m0_f * 120) / (z * N); Vf = mf / rho; l_st = (Vf * (4 / pi)) ** (1 / 3) * 1000; h_cam = l_st + d0; //calculating v_max from the h_cam and phi_end and phi_m-----------------------------------------------------** v_max = h_cam / ((phi_m ** 2 / 2 + phi_end ** 2 / 2 - phi_end * phi_m) / (6 * N * (phi_end - phi_m)) + phi_m / (12 * N)) / 1000; h_m = (v_max / (12 * N)) * phi_m; //save the value of phi from 0---15------------------------------------------------ //------------------------------------------ for (let phi = 0; phi <= phi_end; phi += 0.5) { //phi values stored } // get the values of h and v and a using for-loop && if-condition for(i=1;i<=31;i++) { if(phi[i]<=phi_m){ h[i]=(v_max/(6*N*phi_m))*((phi[i])^2/2)*1000; v[i]=(v_max/phi_m)*phi[i]; a[i]=w*(v_max/phi_m); } else if(phi[i]>phi_m ){ h[i]=((v_max/(6*N*(phi_end-phi_m)))*(phi_end*phi[i]-((phi[i]))**2/2-phi_end*phi_m+((phi_m))**2/2)+(v_max/(12*N)*phi_m))*1000; v[i]=v_max*((phi_end-phi[i])/(phi_end-phi_m)); a[i]=w*(phi_end/(phi_end-phi_m))*v_max; console.log(h); } else{ h[i]=0; v[i]=0; } } اسف عل الاطاله. تم التعديل في 25 أبريل 2023 بواسطة Mustafa Suleiman تعديل عنوان السؤال 1 اقتباس
0 Mustafa Suleiman نشر 25 أبريل 2023 أرسل تقرير نشر 25 أبريل 2023 بتاريخ 5 ساعة قال Ahmed Alfadaly: اها فهمتك استاذي قد قمت بشئ وهو إدخال ال for..loop الثانيه بداخل الاولي وأخرج نواتج صحيحه ولكن يوجد تكرار لبعض القيم وهذا لم يعجبني ثانيا الا يوجد طريقه لاخراج النواتج ف table منظم مثلا كل قيمه زاويه phi لها h و v و a معينه وهكذا ف table تستطيع استخدام حلقتي for بدلاً من ذلك، حيث تقوم الحلقة الداخلية بتخزين قيم h، v، a، والحلقة الخارجية بتخزين قيم phi. بعد ذلك، يمكن رسم الرسم البياني باستخدام المكتبة المناسبة، مثل Plotly طالما أنك تستخدم JavaScript. وقد تبدو بعض القيم مكررة لأنك تستخدم خطوة 0.5 في الحلقة الداخلية وبعض القيم تحتوي على مجموعة من الأرقام العشوائية الصغيرة التي يمكن أن تؤدي إلى تقريب القيمة بشكل غير دقيق. وبالنسبة لعرض القيم كجدول ورسم بياني، تستطيع استخدام المكتبة المذكورة أعلاه أو أي مكتبة أخرى، أو ببساطة إنشاء جدول HTML يعرض القيم بطريقة منظمة وسهلة القراءة، وإنشاء رسم بياني باستخدام المكتبة التي تفضلها. اقتباس
0 Adnane Kadri نشر 25 أبريل 2023 أرسل تقرير نشر 25 أبريل 2023 الشيفرة لديك تحتاج التنظيف والتنقيح، فأسماء المتغيرات لديك لا تظهر انها تحمل دلالات معينة والكتل البرمجية لديك موزعة بشكل عشوائي لا يعبر عن اي مضمون. والسبب في الغالب في عدم التعرف على المتغير باسم phi فهذا لأن phi يعرف في حلقة for كمتغير محلي لا يمكن استخدامه خارق نطاق الكتلة البرمجية الخاصة بالحلقة. فهو غير معرف خارجها. لا اعلم ما الذي تحاول القيام به على وجه التحديد، ولكن اظنك ستحتاج تصريح تعريف المتغير phi بشكل عام global ثم تجاوز قيمه باستعمال حلقة for وذلك حتى يمكن استعماله. نفس الامر بالنسبة للمتغير باسم h، قم بتصريح تعريفه واعد تجاوزه من داخل الحلقة او الشرط حتى يمكن التعرف عليه بشكل عام. اضف في الاعلى: var phi = ''; var h = []; اقتباس
0 Ahmed Ebrahim11 نشر 25 أبريل 2023 الكاتب أرسل تقرير نشر 25 أبريل 2023 بتاريخ 20 دقائق مضت قال Adnane Kadri: الشيفرة لديك تحتاج التنظيف والتنقيح، فأسماء المتغيرات لديك لا تظهر انها تحمل دلالات معينة والكتل البرمجية لديك موزعة بشكل عشوائي لا يعبر عن اي مضمون. والسبب في الغالب في عدم التعرف على المتغير باسم phi فهذا لأن phi يعرف في حلقة for كمتغير محلي لا يمكن استخدامه خارق نطاق الكتلة البرمجية الخاصة بالحلقة. فهو غير معرف خارجها. لا اعلم ما الذي تحاول القيام به على وجه التحديد، ولكن اظنك ستحتاج تصريح تعريف المتغير phi بشكل عام global ثم تجاوز قيمه باستعمال حلقة for وذلك حتى يمكن استعماله. نفس الامر بالنسبة للمتغير باسم h، قم بتصريح تعريفه واعد تجاوزه من داخل الحلقة او الشرط حتى يمكن التعرف عليه بشكل عام. اضف في الاعلى: var phi = ''; var h = []; اها فهمتك استاذي قد قمت بشئ وهو إدخال ال for..loop الثانيه بداخل الاولي وأخرج نواتج صحيحه ولكن يوجد تكرار لبعض القيم وهذا لم يعجبني ثانيا الا يوجد طريقه لاخراج النواتج ف table منظم مثلا كل قيمه زاويه phi لها h و v و a معينه وهكذا ف table 1 اقتباس
0 Adnane Kadri نشر 25 أبريل 2023 أرسل تقرير نشر 25 أبريل 2023 بتاريخ 6 دقائق مضت قال Ahmed Alfadaly: اها فهمتك استاذي قد قمت بشئ وهو إدخال ال for..loop الثانيه بداخل الاولي وأخرج نواتج صحيحه ولكن يوجد تكرار لبعض القيم وهذا لم يعجبني ثانيا الا يوجد طريقه لاخراج النواتج ف table منظم مثلا كل قيمه زاويه phi لها h و v و a معينه وهكذا ف table ما تحاول القيام به غير واضح جيدا، هل يمكنك شرحه ؟ اقتباس
0 Ahmed Ebrahim11 نشر 25 أبريل 2023 الكاتب أرسل تقرير نشر 25 أبريل 2023 بتاريخ 2 دقائق مضت قال Adnane Kadri: ما تحاول القيام به غير واضح جيدا، هل يمكنك شرحه ؟ استاذي اقوم بعمل هذا البرنامج ليعبر عن mechanism ف محرك احتراق diesel engine اولا قمت بتعريف الثوابت وهي N سرعه خاصه بالكامه الكلمه هنا تقوم بدفع piston وبدوره يقوم بالتحرك مسافه الكامه تقوم بحركه دائريه ولها سرعه N و piston حركته خطيه بالتالي ال piston مع كل درجه من دوران الكامه يرتفع نسبيا h حتي يصل لاعلي نقطه فالثوابت ف البدايه تساعد ف حل المعادلات Mf كميه الوقود N سرعه Vf حجم الوقود الذي سيخرج نتيجه ارتفاع ال piston حيث يقوم ال piston عند الارتفاع بضخ وقود do قطر دخول الوقود وهكذا كي لا أطيل المراد منه التعبير عن h وناويه دوران الكام وهي قمت بتسميتها phi برسمه فقمت بإنشاء loop لاتحسب h والسرعه والعجله عند كل phi والمعادلات لإيجاد النواتج مثلا كما موضح بالصوره رسمه توضح علاقه phi ب v السرعه 1 اقتباس
السؤال
Ahmed Ebrahim11
1-السلام عليكم لا ادري ما المشكله يظهر لي خطا ان phi is not defined رغم اني عرفتها ف for loop
2-ولا تخرج نواتج لh يخرج انها غير معرفه ايضا من المفترض اني ابدا تخزين h ك array بقيم
3-ايضا اريد اخراج النواتج كجدول و رسمه توضح العلاقه بين phi و h
const p = 100; const N = 2500; const pi = 3.14; const d0 = 2.5; const w = (2 * pi * N) / 60; const phi_end = 15; const phi_m = phi_end / 2; const sfc = 0.23; const rho = 850; const z = 6; m0_f = (sfc * p) / 3600; mf = (m0_f * 120) / (z * N); Vf = mf / rho; l_st = (Vf * (4 / pi)) ** (1 / 3) * 1000; h_cam = l_st + d0; //calculating v_max from the h_cam and phi_end and phi_m-----------------------------------------------------** v_max = h_cam / ((phi_m ** 2 / 2 + phi_end ** 2 / 2 - phi_end * phi_m) / (6 * N * (phi_end - phi_m)) + phi_m / (12 * N)) / 1000; h_m = (v_max / (12 * N)) * phi_m; //save the value of phi from 0---15------------------------------------------------ //------------------------------------------ for (let phi = 0; phi <= phi_end; phi += 0.5) { //phi values stored } // get the values of h and v and a using for-loop && if-condition for(i=1;i<=31;i++) { if(phi[i]<=phi_m){ h[i]=(v_max/(6*N*phi_m))*((phi[i])^2/2)*1000; v[i]=(v_max/phi_m)*phi[i]; a[i]=w*(v_max/phi_m); } else if(phi[i]>phi_m ){ h[i]=((v_max/(6*N*(phi_end-phi_m)))*(phi_end*phi[i]-((phi[i]))**2/2-phi_end*phi_m+((phi_m))**2/2)+(v_max/(12*N)*phi_m))*1000; v[i]=v_max*((phi_end-phi[i])/(phi_end-phi_m)); a[i]=w*(phi_end/(phi_end-phi_m))*v_max; console.log(h); } else{ h[i]=0; v[i]=0; } }
اسف عل الاطاله.
تم التعديل في بواسطة Mustafa Suleimanتعديل عنوان السؤال
5 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.