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.   break
Success #stdin #stdout 0.03s 25768KB
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("วัตุตกถึงพื้นแล้ว!")
        break