حاسبة الطفو والغرق: مقارنة كثافة الجسم والسائل
تقارن هذه الحاسبة كثافة الجسم بكثافة المائع المحيط به، ثم تعرض حكماً مباشراً. أدخلوا الكثافتين بالوحدة نفسها، مثل كيلوغرام لكل متر مكعب أو غرام لكل سنتيمتر مكعب.
شغّل الأداة مجانًا
يطفو الجسم الأقل كثافة، ويغرق الجسم الأعلى كثافة، أما تساوي الكثافتين فيعني التعادل في الطفو. تعرض النتيجة أيضاً فرق الكثافة بإشارته، ونسبة الكثافتين عندما تكون كثافة المائع أكبر من صفر، وبذلك يسهل التحقق من سبب الحكم.
توقعوا النتيجة بالاعتماد على الكثافة
يعتمد الطفو على العلاقة بين متوسط كثافة الجسم وكثافة المائع المحيط. عندما تكون كثافة الجسم أقل، يستطيع الجسم إزاحة مقدار من المائع يكفي لمعادلة وزنه قبل أن يُغمر بالكامل، ولذلك تعرض الحاسبة أنه يطفو. أما إذا كانت كثافته أعلى، فلا تكفي الإزاحة حتى عند الغمر الكامل لحمل وزنه، فيغرق. وإذا تساوت الكثافتان تماماً، يكون الجسم متعادل الطفو؛ أي إنه، في هذه المقارنة المثالية، لا يميل إلى الصعود أو الهبوط بسبب الكثافة. تنفذ الحاسبة هذه المقارنة مباشرة، ولا تحتاج إلى الكتلة أو الحجم أو تسارع الجاذبية أو حساب قوة الطفو بصورة منفصلة، لأن هذه المقادير تُختزل عندما يكون المطلوب تحديد أي الكثافتين أكبر فقط. استخدموا متوسط الكثافة الحجمية للأجسام التي تحتوي على هواء أو تجاويف أو مسام أو مواد متعددة. فالسفينة المصنوعة من الفولاذ قد تطفو إذا كانت كتلتها الكلية مقسومة على كامل حجمها الخارجي المزاح أقل من كثافة الماء، مع أن الفولاذ المصمت نفسه أعلى كثافة من الماء.
أدخلوا قيم كثافة بوحدات متوافقة
يجب أن تستخدم القيمتان وحدة الكثافة نفسها. يمكن استعمال كيلوغرام لكل متر مكعب أو غرام لكل سنتيمتر مكعب أو رطل لكل قدم مكعب أو أي وحدة أخرى، لكن لا يجوز خلط الوحدات في الحساب الواحد. تكون المقارنة العددية مستقلة عن اختيار الوحدة فقط عندما تتطابق الوحدتان. فالماء قرب درجة حرارة الغرفة يُقرب عادة إلى 1000 كيلوغرام لكل متر مكعب أو 1 غرام لكل سنتيمتر مكعب؛ وهذان التعبيران يصفان الكثافة نفسها، لكن لا يمكن مقارنة العددين مباشرة. تحتفظ الحاسبة بالقيم المدخلة، وتعيد كثافة الجسم ناقص كثافة المائع، كما تعرض النسبة عندما تكون كثافة المائع موجبة. يؤيد الفرق السالب أو النسبة الأقل من واحد حكم `floats`، ويؤيد الفرق الموجب أو النسبة الأكبر من واحد حكم `sinks`، بينما يشير الفرق صفر والنسبة واحد إلى `neutrally_buoyant`. لا يمكن أن تكون الكثافة سالبة، ولذلك ينتج عن أي قيمة سالبة خطأ بدلاً من حكم فيزيائي مضلل. ويُقبل الصفر بوصفه حداً رياضياً، مع أن المائع ذي الكثافة الصفرية حالة مثالية لا تمثل سائلاً أو غازاً عادياً.
راعوا الافتراضات التي يقوم عليها الحكم
النتيجة توقع مثالي يعتمد على الكثافة الحجمية، وليست محاكاة لجميع القوى المؤثرة في جسم حقيقي. فقد يحمل التوتر السطحي أجساماً صغيرة جداً كان يُتوقع أن تغرق، كما يمكن للفقاعات المحبوسة أو تغير اتجاه الجسم أن يبدلا الحجم المزاح فعلياً. وقد تتغير كثافة الأجسام القابلة للانضغاط والغازات مع الضغط، كما تتغير كثافة المائع مع الحرارة أو الملوحة أو التركيب. للحركة أثر كذلك؛ فقد تدفع قوة الرفع أو المقاومة أو الأمواج أو قوة خارجية الجسم مؤقتاً في اتجاه يخالف الحكم الساكن. للحصول على استخدام عملي موثوق، اختاروا قيماً تمثل الجسم والمائع في الظروف المعنية. إذا كان الجسم أجوف أو متعدد الطبقات، فاقسموا كتلته الكلية على كامل حجمه الخارجي لتقدير كثافته الحجمية. وإذا كان المائع خليطاً، فاستخدموا كثافة مقيسة أو محسوبة للخليط نفسه لا كثافة مكوّن واحد. ويتأثر التعادل في الطفو خصوصاً بالتقريب وعدم يقين القياس؛ فقد تبدو القيم متساوية بالدقة المحدودة، ومع ذلك يصعد الجسم أو يهبط ببطء. تعاملوا مع الحكم بوصفه التوقع الفيزيائي الأساسي، وأضيفوا هذه المؤثرات عندما تكون السلامة أو حدود التصميم أو دقة التجربة مهمة.
حالات الاستخدام
اختبروا مادة في الماء
قارنوا الكثافة الحجمية المقيسة لعينة بكثافة الماء لتوقع ما إذا كانت ستطفو أم ستغرق.
خططوا لتجربة تعليمية
توقعوا النتيجة قبل وضع الأجسام في سائل، ثم قارنوا النموذج المثالي بالمشاهدات العملية.
قيّموا التعادل في الطفو
تحققوا مما إذا كان متوسط كثافة الجسم يطابق كثافة المائع، وحددوا مقدار الفرق بين القيمتين.
الأسئلة الشائعة
ما الذي يحدد ما إذا كان الجسم يطفو أم يغرق؟
يطفو الجسم عندما يكون متوسط كثافته أقل من كثافة المائع، ويغرق عندما تكون أعلى. أما تساوي الكثافتين فيعني التعادل في الطفو.
هل يجب استخدام الوحدة نفسها للكثافتين؟
نعم. تصلح أي وحدة كثافة، لكن يجب أن يستخدم object_density وfluid_density الوحدة نفسها كي تكون المقارنة صحيحة.
ماذا يحدث عندما تتساوى الكثافتان؟
يكون الحكم neutrally_buoyant. وفي النموذج المثالي لا يميل الجسم إلى الصعود أو الغرق بسبب كثافته.
هل يمكن إدخال كثافة سالبة؟
لا. فالكثافة السالبة خارج النموذج الفيزيائي لهذه الحاسبة، ولذلك تؤدي إلى خطأ يفيد بأن الإدخال غير صالح.
لماذا قد تختلف التجربة الفعلية عن النتيجة؟
قد يؤثر التوتر السطحي والهواء المحبوس والحركة والحرارة والضغط واتجاه الجسم وعدم دقة قياس الكثافة الحجمية في السلوك الفعلي.
ما تكلفة الحساب عبر API؟
تكلف كل مطالبة عبر API مقدار $0.002. ويمكن أيضاً استخدام الحاسبة مباشرة في المتصفح على هذه الصفحة.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/mech/float-or-sink \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"object_density":750,"fluid_density":1000}'const res = await fetch("https://api.kit.forhosting.com/mech/float-or-sink", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"object_density": 750,
"fluid_density": 1000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/mech/float-or-sink",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"object_density": 750,
"fluid_density": 1000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/mech/float-or-sink", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"object_density":750,"fluid_density":1000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"object_density":750,"fluid_density":1000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/mech/float-or-sink", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"object_density": 750,
"fluid_density": 1000
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "mech.float_or_sink",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |