اذهب إلى المحتوى

السؤال

نشر (معدل)

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
تعديل عنوان السؤال

Recommended Posts

  • 0
نشر
بتاريخ 5 ساعة قال Ahmed Alfadaly:

اها فهمتك استاذي قد قمت بشئ وهو إدخال ال for..loop الثانيه بداخل الاولي وأخرج نواتج صحيحه ولكن يوجد تكرار لبعض القيم وهذا لم يعجبني 

ثانيا الا يوجد طريقه لاخراج النواتج ف table منظم مثلا كل قيمه زاويه phi لها h و v و a معينه وهكذا ف  table

تستطيع استخدام حلقتي for بدلاً من ذلك، حيث تقوم الحلقة الداخلية بتخزين قيم h، v، a، والحلقة الخارجية بتخزين قيم phi. بعد ذلك، يمكن رسم الرسم البياني باستخدام المكتبة المناسبة، مثل  Plotly طالما أنك تستخدم JavaScript.

وقد تبدو بعض القيم مكررة لأنك تستخدم خطوة 0.5 في الحلقة الداخلية وبعض القيم تحتوي على مجموعة من الأرقام العشوائية الصغيرة التي يمكن أن تؤدي إلى تقريب القيمة بشكل غير دقيق.

وبالنسبة لعرض القيم كجدول ورسم بياني، تستطيع استخدام المكتبة المذكورة أعلاه أو أي مكتبة أخرى، أو ببساطة إنشاء جدول HTML يعرض القيم بطريقة منظمة وسهلة القراءة، وإنشاء رسم بياني باستخدام المكتبة التي تفضلها.

 

  • 0
نشر

الشيفرة لديك تحتاج التنظيف والتنقيح، فأسماء المتغيرات لديك لا تظهر انها تحمل دلالات معينة والكتل البرمجية لديك موزعة بشكل عشوائي لا يعبر عن اي مضمون.

والسبب في الغالب في عدم التعرف على المتغير باسم phi فهذا لأن phi يعرف في حلقة for كمتغير محلي لا يمكن استخدامه خارق نطاق الكتلة البرمجية الخاصة بالحلقة. فهو غير معرف خارجها.

لا اعلم ما الذي تحاول القيام به على وجه التحديد، ولكن اظنك ستحتاج تصريح تعريف المتغير phi بشكل عام global ثم تجاوز قيمه باستعمال حلقة for وذلك حتى يمكن استعماله.

نفس الامر بالنسبة للمتغير باسم h، قم بتصريح تعريفه واعد تجاوزه من داخل الحلقة او الشرط حتى يمكن التعرف عليه بشكل عام. 

اضف في الاعلى: 

var phi = '';
var h = [];

 

  • 0
نشر
بتاريخ 20 دقائق مضت قال Adnane Kadri:

الشيفرة لديك تحتاج التنظيف والتنقيح، فأسماء المتغيرات لديك لا تظهر انها تحمل دلالات معينة والكتل البرمجية لديك موزعة بشكل عشوائي لا يعبر عن اي مضمون.

والسبب في الغالب في عدم التعرف على المتغير باسم phi فهذا لأن phi يعرف في حلقة for كمتغير محلي لا يمكن استخدامه خارق نطاق الكتلة البرمجية الخاصة بالحلقة. فهو غير معرف خارجها.

لا اعلم ما الذي تحاول القيام به على وجه التحديد، ولكن اظنك ستحتاج تصريح تعريف المتغير phi بشكل عام global ثم تجاوز قيمه باستعمال حلقة for وذلك حتى يمكن استعماله.

نفس الامر بالنسبة للمتغير باسم h، قم بتصريح تعريفه واعد تجاوزه من داخل الحلقة او الشرط حتى يمكن التعرف عليه بشكل عام. 

اضف في الاعلى: 

var phi = '';
var h = [];

 

اها فهمتك استاذي قد قمت بشئ وهو إدخال ال for..loop الثانيه بداخل الاولي وأخرج نواتج صحيحه ولكن يوجد تكرار لبعض القيم وهذا لم يعجبني 

ثانيا الا يوجد طريقه لاخراج النواتج ف table منظم مثلا كل قيمه زاويه phi لها h و v و a معينه وهكذا ف  table

  • 0
نشر
بتاريخ 6 دقائق مضت قال Ahmed Alfadaly:

اها فهمتك استاذي قد قمت بشئ وهو إدخال ال for..loop الثانيه بداخل الاولي وأخرج نواتج صحيحه ولكن يوجد تكرار لبعض القيم وهذا لم يعجبني 

ثانيا الا يوجد طريقه لاخراج النواتج ف table منظم مثلا كل قيمه زاويه phi لها h و v و a معينه وهكذا ف  table

ما تحاول القيام به غير واضح جيدا، هل يمكنك شرحه ؟ 

  • 0
نشر
بتاريخ 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 السرعه

IMG-20230424-WA0081.jpg

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...