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