Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C 렌즈의 초점거리 프로그램

<시간/>

두 개의 부동 값이 주어집니다. 렌즈로부터의 이미지 거리 및 물체 거리; 작업은 렌즈의 초점 거리를 인쇄하는 것입니다.

초점 거리란 무엇입니까?

광학계의 초점거리는 렌즈나 곡면거울의 중심과 초점 사이의 거리입니다.

아래 그림의 도움으로 이해합시다 -

C 렌즈의 초점거리 프로그램

위의 그림에서 i는 물체이고 F는 형성되는 물체의 이미지이고 f는 이미지의 초점거리입니다.

따라서 렌즈에서 이미지의 초점 거리를 찾는 공식은 -

1F=1O+1I

여기서 F는 초점 거리입니다.

O는 렌즈와 물체의 총 거리입니다.

I는 렌즈와 렌즈에 의해 형성된 이미지 사이의 총 거리입니다.

예시

Input: image_distance=5, object_distance=10
Output: Focal length of a lens is: 3.333333
Explanation: 1/5 + 1/10 = 3/10🡺 F = 10/3 = 3.33333333

Input: image_distance = 7, object_distance = 10
Output: Focal length of a lens is: 4.1176470

위의 문제를 해결하기 위해 사용하는 접근 방식 -

  • image_disance 및 object_distance를 입력합니다.
  • 1/image_distance와 1/object_distance의 합을 찾아 1로 나눈 결과를 반환합니다.
  • 결과를 인쇄합니다.

알고리즘

Start
Step 1-> In function float focal_length(float image_distance, float object_distance)
   Return 1 / ((1 / image_distance) + (1 / object_distance))

Step 2-> In function int main()
   Declare and initialize the first input image_distance = 5
   Declare and initialize the second input object_distance = 10
   Print the results obtained from calling the function focal_length(image_distance, object_distance)
Stop
함수를 호출하여 얻은 결과를 출력합니다.

예시

#include <stdio.h>
// Function to find the focal length of a lens
float focal_length(float image_distance, float object_distance) {
   return 1 / ((1 / image_distance) + (1 / object_distance));
}
// main function
int main() {
   // distance between the lens and the image
   float image_distance = 5;
   // distance between the lens and the object
   float object_distance = 10;
   printf("Focal length of a lens is: %f\n", focal_length(image_distance, object_distance));
   return 0;
}

출력

Focal length of a lens is: 3.333333