কম্পিউটার টিউটোরিয়াল

C প্রোগ্রামিং-এ লেন্সের ফোকাল দৈর্ঘ্য (Focal Length of a Lens) বের করা

দুটি ফ্লোটিং ভ্যালু দেওয়া আছে: ইমেজ ডিস্ট্যান্স (image distance) এবং অবজেক্ট ডিস্ট্যান্স (object distance) একটি লেন্স থেকে; টাস্ক হলো লেন্সের ফোকাল দৈর্ঘ্য (focal length) প্রিন্ট করা।

ফোকাল দৈর্ঘ্য (Focal Length) কী?

একটি আপটিক্যাল সিস্টেম (optical system)-এর ফোকাল দৈর্ঘ্য হল লেন্স বা কিভড মিরর (curved mirror)-এর সেন্টার এবং এর ফোকাস (focus)-এর মাঝপথের দূরত্ব।

নিচের ফিগার দিয়ে বুঝি:

C প্রোগ্রামিং-এ লেন্সের ফোকাল দৈর্ঘ্য (Focal Length of a Lens) বের করা

উপরের ফিগারে i হল অবজেক্ট (object), এবং F হল অবজেক্টের ইমেজ (image) যা ফর্মড (formed) হয়েছে এবং f হল ইমেজের ফোকাল দৈর্ঘ্য।

তাহলে লেন্স থেকে ইমেজের ফোকাল দৈর্ঘ্য বের করার সূত্র হল −

1/F = 1/O + 1/I

যেখানে,

  • F = ফোকাল দৈর্ঘ্য (focal length)
  • O = লেন্স এবং অবজেক্টের মাঝপথের টোটাল দূরত্ব (total distance of the lens and the object)
  • I = লেন্স এবং লেন্স দ্বারা ফর্মড ইমেজের মাঝপথের টোটাল দূরত্ব (total distance between lens and the image formed by the lens)

উদাহরণ (Example)

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

অ্যাপ্রোচ (Approach) যা আমরা ব্যবহার করছি:

  • ইমেজ ডিস্ট্যান্স (image_distance) এবং অবজেক্ট ডিস্ট্যান্স (object_distance) ইনপুট নেওয়া।
  • ১/ইমেজ_ডিস্ট্যান্স এবং ১/অবজেক্ট_ডিস্ট্যান্স এর যোগফল বের করে ১ দিয়ে ভাগ করা।
  • রেজাল্ট প্রিন্ট করা।

আলগরিদম (Algorithm)

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 first input image_distance = 5
    Declare and initialize second input object_distance = 10
    Print the results obtained from calling function focal_length(image_distance, object_distance)
Stop

উদাহরণ (C প্রোগ্রাম)

#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() {
    // লেন্স এবং ইমেজের মাঝপথের দূরত্ব
    float image_distance = 5;
    // লেন্স এবং অবজেক্টের মাঝপথের দূরত্ব
    float object_distance = 10;
    printf("Focal length of a lens is: %f\n", focal_length(image_distance, object_distance));
    return 0;
}

আউটপুট (Output)

Focal length of a lens is: 3.333333

ব্যাখ্যা: লেন্স ফর্মুলা 1/f = 1/v + 1/u (যেখানে v = ইমেজ ডিস্ট্যান্স, u = অবজেক্ট ডিস্ট্যান্স) ব্যবহার করা হয়েছে। প্রোগ্রামটি সরল এবং সি-স্টাইলে লেখা। ইউজার ইনপুট নেওয়ার জন্য scanf ব্যবহার করা যাবে।

  1. C++ প্রোগ্রামে ডায়াগোনাল দৈর্ঘ্য দিয়ে হেক্সাগনের ক্ষেত্রফল

  2. C-এ ক্রিসমাস ট্রি প্রিন্ট করার প্রোগ্রাম (এনিমেশন সহ)

  3. পাইথনে গোলাকার দর্পণের ফোকাস দৈর্ঘ্য প্রোগ্রাম

  4. পাইথন প্রোগ্রাম: গোলাকার মিররের ফোকাল দৈর্ঘ্য বের করা