Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Chương trình C tính tiêu cự của thấu kính (Focal Length)


Cho hai giá trị thực: khoảng cách ảnh (image distance) và khoảng cách vật (object distance) từ thấu kính. Tính tiêu cự (focal length).

Tiêu cự (Focal Length) là gì?

Khoảng cách giữa tâm thấu kính/gương cong và tiêu điểm (focus).

Chương trình C tính tiêu cự của thấu kính (Focal Length)

Trong hình: i = vật, F = ảnh, f = tiêu cự.

Công thức:

1/F = 1/O + 1/I → F = 1 / (1/O + 1/I)

Trong đó: F = tiêu cự, O = khoảng cách vật-thấu kính, I = khoảng cách ảnh-thấu kính.

Ví dụ

Input: image_distance=5, object_distance=10
Output: Focal length = 3.333333
Giải thích: 1/5 + 1/10 = 3/10 → F = 10/3 = 3.333333

Input: image_distance=7, object_distance=10
Output: Focal length = 4.117647

Cách giải

  • Nhập image_distance, object_distance.
  • Tính 1/(1/image_distance + 1/object_distance).
  • In kết quả.

Thuật toán

Bắt đầu
B1: float focal_length(float image_distance, float object_distance)
      return 1 / ((1/image_distance) + (1/object_distance))
B2: main():
      image_distance = 5, object_distance = 10
      in focal_length(image_distance, object_distance)
Kết thúc

Ví dụ mã nguồn

#include <stdio.h>

// Tính tiêu cự thấu kính
float focal_length(float image_distance, float object_distance) {
    return 1 / ((1 / image_distance) + (1 / object_distance));
}

int main() {
    float image_distance = 5;   // khoảng cách thấu kính - ảnh
    float object_distance = 10; // khoảng cách thấu kính - vật
    printf("Tieu cu cua thau kinh la: %f\n", focal_length(image_distance, object_distance));
    return 0;
}

Kết quả đầu ra

Tieu cu cua thau kinh la: 3.333333