fork download
  1. #include <stdio.h>
  2.  
  3. int main(void)
  4. {
  5. int i, j;
  6. long dec; /* ให้รับค่าอินพุทแบบ Long Integer - เลขจำนวนเต็มแบบยาว */
  7. int bit[32]; /* จองพื้นที่ในการเก็บข้อมูลเลขฐาน 2 ลงใน Array */
  8.  
  9. clrscr(); /* เคลียร์หน้าจอ */
  10. printf("Decimal Number : "); /* แจ้งผู้ใช้เพื่อเตรียมป้อนค่าเลขฐาน 10 */
  11. scanf("%ld", &dec); /* ต้องใช้ ld เพราะ Input มันเป็นแบบ Long Integer */
  12. i = 0; /* กำหนดค่าเริ่มต้นของ Array */
  13. /* ทำตามที่ได้ออกแบบโปรแกรมเอาไว้ ... ยังไงยังงั้นเลย 55555+ */
  14. do {
  15. bit[i++] = dec % 2; /* การหารเอาเศษ เพื่อให้เป็นคำตอบ */
  16.  
  17. /* การหารทั่วไป แต่ตัวแปร dec ของภาษา C มันเป็น Integer หรือ เลขจำนวนเต็ม */
  18. /* ดังนั้นมันจึงตัดเศษ (หรือทศนิยม) ทิ้งไปโดยอัตโนมัติ */
  19. dec = dec / 2;
  20.  
  21. } while (dec > 0); /* เงื่อนไขที่ทำจนกระทั่ง dec = 0 ก็ออกจากวังวนเงื่อนไข */
  22.  
  23. /* การแสดงผลของการแปลงเลขฐาน 10 เป็นเลขฐาน 2*/
  24. /* j = i - 1 และให้ j ลดค่าลงทีละ 1 ... ก็คืออ่านข้อมูลถอยหลังกลับเท่านั้นเองครับ */
  25. /* เพราะตัวแปรแบบ Array ในภาษา C มันเก็บข้อมูลจากซ้ายไปขวา */
  26. /* ทำให้ LSB # กำหนดค่าคงที่ของแรงโน้มถ่วง (หน่วย m/s^2)
  27. GRAVITY = 9.81
  28.  
  29. # ตำแหน่งเริ่มต้น (เมตร)
  30. position = 100.0 # วัตถุอยู่สูงจากพื้น 100 เมตร
  31. velocity = 0.0 # เริ่มต้นด้วยความเร็ว 0
  32. time_step = 0.1 # หน่วยเวลาแต่ละรอบ (วินาที)
  33.  
  34. # จำลองการเคลื่อนที่ภายใต้แรงโน้มถ่วง
  35. for i in range(100):
  36.   velocity += GRAVITY * time_step # ความเร็วเพิ่มขึ้นตามแรงโน้มถ่วง
  37.   position -= velocity * time_step # ตำแหน่งลดลง (วัตุตกลงมา)
  38.  
  39.   print(f"เวลา: {i*time_step:.1f} วินาที | ตำแหน่ง: {position:.2f} m | ความเร็ว: {velocity:.2f} m/s")
  40.  
  41.   if position <= 0:
  42.   print("วัตุตกถึงพื้นแล้ว!")# ค่าคงที่
  43. GRAVITY = 9.81 # m/s^2
  44.  
  45. # มวลของวัตถุ (กิโลกรัม)
  46. mass = 2.0 # kg
  47.  
  48. # ตำแหน่งเริ่มต้นและความเร็ว
  49. height = 10.0 # เมตร
  50. velocity = 0.0 # m/s
  51.  
  52. # เวลาจำลอง
  53. time_step = 0.1 # วินาที
  54. position = height
  55. total_energy = mass * GRAVITY * height # พลังงานกลเริ่มต้น
  56.  
  57. print(f"พลังงานกลเริ่มต้น: {total_energy:.2f} J")
  58.  
  59. for t in range(100):
  60.   # คำนวณพลังงานศักย์และจลน์
  61.   potential_energy = mass * GRAVITY * position
  62.   kinetic_energy = 0.5 * mass * velocity ** 2
  63.   mechanical_energy = potential_energy + kinetic_energy
  64.  
  65.   print(f"เวลา {t * time_step:.1f}s | ศักย์: {potential_energy:.2f} | จลน์: {kinetic_energy:.2f} | รวม: {mechanical_energy:.2f}")
  66.  
  67.   # อัปเดตความเร็วและตำแหน่ง
  68.   velocity += GRAVITY * time_step
  69.   position -= velocity * time_step
  70.  
  71.   # หยุดเมื่อถึงพื้น
  72.   if position <= 9:
  73.   position = 9
  74.   break
  75.   break
Success #stdin #stdout 0.02s 25736KB
stdin
Standard input is empty
stdout
#include <stdio.h>

int main(void)
{
int i, j;
long dec;  /* ให้รับค่าอินพุทแบบ Long Integer - เลขจำนวนเต็มแบบยาว */
int bit[32];  /* จองพื้นที่ในการเก็บข้อมูลเลขฐาน 2 ลงใน Array */

    clrscr();  /* เคลียร์หน้าจอ */
    printf("Decimal Number : ");  /* แจ้งผู้ใช้เพื่อเตรียมป้อนค่าเลขฐาน 10 */
    scanf("%ld", &dec);  /* ต้องใช้ ld เพราะ Input มันเป็นแบบ Long Integer */
    i = 0;  /* กำหนดค่าเริ่มต้นของ Array */
    /* ทำตามที่ได้ออกแบบโปรแกรมเอาไว้ ... ยังไงยังงั้นเลย 55555+ */
    do {
        bit[i++] = dec % 2;  /* การหารเอาเศษ เพื่อให้เป็นคำตอบ */

        /* การหารทั่วไป แต่ตัวแปร dec ของภาษา C มันเป็น Integer หรือ เลขจำนวนเต็ม */
        /* ดังนั้นมันจึงตัดเศษ (หรือทศนิยม) ทิ้งไปโดยอัตโนมัติ */
        dec = dec / 2;

    } while (dec > 0);  /* เงื่อนไขที่ทำจนกระทั่ง dec = 0 ก็ออกจากวังวนเงื่อนไข */

    /* การแสดงผลของการแปลงเลขฐาน 10 เป็นเลขฐาน 2*/
    /* j = i - 1 และให้ j ลดค่าลงทีละ 1 ... ก็คืออ่านข้อมูลถอยหลังกลับเท่านั้นเองครับ */
    /* เพราะตัวแปรแบบ Array ในภาษา C มันเก็บข้อมูลจากซ้ายไปขวา */
    /* ทำให้ LSB # กำหนดค่าคงที่ของแรงโน้มถ่วง (หน่วย m/s^2)
GRAVITY = 9.81

# ตำแหน่งเริ่มต้น (เมตร)
position = 100.0  # วัตถุอยู่สูงจากพื้น 100 เมตร
velocity = 0.0    # เริ่มต้นด้วยความเร็ว 0
time_step = 0.1   # หน่วยเวลาแต่ละรอบ (วินาที)

# จำลองการเคลื่อนที่ภายใต้แรงโน้มถ่วง
for i in range(100):
    velocity += GRAVITY * time_step   # ความเร็วเพิ่มขึ้นตามแรงโน้มถ่วง
    position -= velocity * time_step  # ตำแหน่งลดลง (วัตุตกลงมา)

    print(f"เวลา: {i*time_step:.1f} วินาที | ตำแหน่ง: {position:.2f} m | ความเร็ว: {velocity:.2f} m/s")

    if position <= 0:
        print("วัตุตกถึงพื้นแล้ว!")# ค่าคงที่
GRAVITY = 9.81  # m/s^2

# มวลของวัตถุ (กิโลกรัม)
mass = 2.0  # kg

# ตำแหน่งเริ่มต้นและความเร็ว
height = 10.0     # เมตร
velocity = 0.0    # m/s

# เวลาจำลอง
time_step = 0.1   # วินาที
position = height
total_energy = mass * GRAVITY * height  # พลังงานกลเริ่มต้น

print(f"พลังงานกลเริ่มต้น: {total_energy:.2f} J")

for t in range(100):
    # คำนวณพลังงานศักย์และจลน์
    potential_energy = mass * GRAVITY * position
    kinetic_energy = 0.5 * mass * velocity ** 2
    mechanical_energy = potential_energy + kinetic_energy

    print(f"เวลา {t * time_step:.1f}s | ศักย์: {potential_energy:.2f} | จลน์: {kinetic_energy:.2f} | รวม: {mechanical_energy:.2f}")

    # อัปเดตความเร็วและตำแหน่ง
    velocity += GRAVITY * time_step
    position -= velocity * time_step

    # หยุดเมื่อถึงพื้น
    if position <= 9:
        position = 9
        break
        break