Program to determine focal length of a spherical mirror (original) (raw)

Last Updated : 20 Feb, 2023

Write a program to determine the focal length of a spherical mirror.

Focal length is the distance between the center of the mirror to the principal foci

In order to determine the focal length of a spherical mirror, we should know the radius of curvature of that mirror. The distance from the vertex to the center of curvature is called the radius of curvature

Try It Yourselfredirect icon

The focal length is half the radius of curvature
Formula :

F = ( R / 2 ) for concave mirror
F = - ( R / 2 ) for convex mirror

Examples:

For a concave mirror

Input: R = 30
Output: F = 15

For a convex mirror

Input: R = 25
Output: F = - 12.5

Approach: To solve the problem follow the below idea:

Use the formula given above to calculate the focal length of a concave/convex spherical mirror

C++ `

// C++ program to determine // the focal length of a // of a spherical mirror #include <bits/stdc++.h> using namespace std;

// Determines focal length // of a spherical concave // mirror float focal_length_concave(float R) { return R / 2; }

// Determines focal length of a // spherical convex mirror float focal_length_convex(float R) { return -(R / 2); }

// Driver code int main() { float R = 30;

  // Function call
cout << "Focal length of spherical"
     << "concave mirror is : "
     << focal_length_concave(R) << " units\n";
cout << "Focal length of spherical"
     << "convex mirror is : " << focal_length_convex(R)
     << " units";
return 0;

}

Java

// Java program to determine // the focal length of a // of a spherical mirror import java.lang.; import java.util.;

public class GfG { // Determines focal length // of a spherical concave // mirror public static float focal_length_concave(float R) { return R / 2; }

// Determines focal length of a
// spherical convex mirror
public static float focal_length_convex(float R)
{
    return -(R / 2);
}

// Driver code
public static void main(String argc[])
{
    float R = 30;

      // Function call
    System.out.print("Focal length of"
                     + "spherical concave"
                     + "mirror is : "
                     + focal_length_concave(R)
                     + " units\n");

    System.out.println("Focal length of"
                       + "spherical convex"
                       + "mirror is : "
                       + focal_length_convex(R)
                       + " units");
}

}

/* This code is contributed by Sagar Shukla */

Python

Python3 program to determine

the focal length of a

of a spherical mirrorr

Determines focal length of

a spherical concave mirror

def focal_length_concave(R): return R / 2

Determines focal length of

a spherical convex mirror

def focal_length_convex(R): return - (R / 2)

Driver code

if name == "main": R = 30

Function call

print("Focal length of spherical concave mirror is :", focal_length_concave(R), " units") print("Focal length of spherical convex mirror is : ", focal_length_convex(R), " units")

C#

// C# program to determine the focal // length of a of a spherical mirror using System;

class GfG {

// Determines focal length of a
// spherical concave mirror
public static float focal_length_concave(float R)
{
    return R / 2;
}

// Determines focal length of a
// spherical convex mirror
public static float focal_length_convex(float R)
{
    return -(R / 2);
}

// Driver code
public static void Main(String[] argc)
{
    float R = 30;
  
      // Function call
    Console.Write("Focal length of"
                  + "spherical concave"
                  + "mirror is : "
                  + focal_length_concave(R)
                  + " units\n");

    Console.Write("Focal length of"
                  + "spherical convex"
                  + "mirror is : "
                  + focal_length_convex(R) + " units");
}

}

/* This code is contributed by parashar */

PHP

JavaScript

`

Output

Focal length of sphericalconcave mirror is : 15 units Focal length of sphericalconvex mirror is : -15 units

Time complexity: O(1) because constant operations are performed.
Auxiliary space: O(1), as constant operations are being performed.