C# Exercise: 66 Double, approximation of Pi

In this C# exercise, you are asked to write a program that calculates an approximation for PI using the alternating fraction series:

pi/4 = 1/1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + 1/13 ...

The program should prompt the user to specify how many terms to use in the approximation and then display the accumulated results up to that number of terms. This exercise is excellent for understanding how mathematical series can be used to approximate values like PI in programming.

Using a loop, the program will iterate through the terms of the series, adding or subtracting terms based on the alternating pattern (positive and negative). At the end, the program will display the approximate value of PI after calculating the specified number of terms. This exercise will also allow you to practice working with loops, flow control, and basic mathematical operations in C#.

Additionally, you will learn how the precision of the approximation improves as the number of terms increases, helping you understand the concepts behind approximations in mathematics and their implementation in programming.

 Lesson

Basic Data Types

 Exercise

Double, approximation of Pi

 Objetive

Write a C# program to calculate an approximation for PI using the expression:

pi/4 = 1/1 - 1/3 + 1/5 -1/7 + 1/9 - 1/11 + 1/13 ...

The user will indicate how many terms must be used, and the program will display all the results until that amount of terms.

 Example Code

using System;  // Import the System namespace to use basic classes like Console

class Program  // Define the main class of the program
{
    static void Main()  // The entry point of the program
    {
        // Prompt the user for the number of terms
        Console.Write("Enter the number of terms to approximate Pi: ");
        int terms = int.Parse(Console.ReadLine());  // Read the user's input and convert it to an integer

        double piApproximation = 0.0;  // Variable to store the approximation of Pi

        // Loop through each term, adding or subtracting based on the formula
        for (int i = 0; i < terms; i++)  // Loop through the number of terms
        {
            // Calculate the current denominator (odd numbers: 1, 3, 5, 7, 9, ...)
            double denominator = 2 * i + 1;  
            
            // Use the formula to alternate adding and subtracting terms
            if (i % 2 == 0)  // If i is even, add the term
            {
                piApproximation += 1 / denominator;
            }
            else  // If i is odd, subtract the term
            {
                piApproximation -= 1 / denominator;
            }

            // Display the current approximation of Pi (multiply by 4 to get the approximation of Pi)
            Console.WriteLine($"After {i + 1} terms, approximation of Pi: {4 * piApproximation}");
        }
    }
}

More C# Exercises of Basic Data Types

 Char
Write a C# program to ask the user for three letters and display them in reverse order....
 Triangle
Write a C# program that prompts for a symbol and a width, and displays a triangle of that width, using that number for the inner symbol, as in this ex...
 Password as string
Write a C# program to ask the user for their username and password (both should be strings) and repeat it as many times as necessary until the entered...
 Password 5 attempts
Write a C# program that prompts the user for their username and password. Both should be strings. After 5 incorrect attempts, the user will be rejecte...
 Calculator - if
Write a C# program that asks the user for two numbers and an operation to perform on them (+,-,*,x,/) and displays the result of that operation, as in...
 Calculator - switch
Write a C# program that asks the user for two numbers and an operation to perform on them (+,-,*,x,/) and displays the result of that operation, as in...
 Double
Write a C# program that calculate the perimeter, area, and diagonal of a rectangle, given its width and height. (Hint: use y = Math.Sqrt(x) to calc...
 Calculate values of a function
Write a C# program in C# to display certain values of the function y = x^2 - 2x + 1 (using integer numbers for x, ranging from -10 to +10)...
 Display a function
Write a C# program to "draw" the graphic of the function y = (x-4)2 for integer values of x ranging -1 to 8. It will show as many asterisks on screen ...
 Float, speed units
Write a C# program to ask the user for a distance (in meters) and the time taken (as three numbers: hours, minutes, seconds), and display the speed, i...
 Sphere, float
Write a C# program that calculate the surface area and volume of a sphere, given its radius (surface area = 4 * pi * radius squared; volume = 4/3 * pi...
 Vowel - switch
Write a C# program to ask the user for a symbol and respond whether it is a vowel (in lowercase), a digit, or any other symbol, using "switch"....
 Vowel - if
Write a C# program to ask the user for a symbol and respond if it's a vowel (in lowercase), a digit, or any other symbol, using "if"....
 Triangle, NorthEast
Write a C# program which asks for a width, and displays a triangle like this one: Enter the desired width: 5 ***** _**** __*** ___** ____*...
 Prime factors
Write a C# program that displays a number (entered by the user) as a product of its prime factors. For example, 60 = 2 · 2 · 3 · 5 (Hint: it can be...
 If, symbols
Write a C# program to ask the user for a symbol and answer if is an uppercase vowel, a lowercase vowel, a digit or any other symbol, using "if"....
 Char + for
Write a C# program to write the letters "B" to "N" (uppercase), using "for"...
 Perimeter Area
Write a C# program to calculate the perimeter, area and diagonal of a rectangle from its width and height (perimeter = sum of the four sides, area = b...
 Hexadecimal and binary
Write a C# program to ask the user for a number an display it both in hexadecimal and binary. It must repeat until the user enters 0....
 Binary
Write a C# program that asks the user for a decimal number and displays its equivalent in binary form. It should be repeated until the user enters the...
 Conditional and boolean
Write a C# program that uses the conditional operator to give a boolean variable named "bothEven" the value "true" if two numbers entered by the user ...
 Exceptions V2
Write a C# program to ask the user for a real number and display its square root. Errors must be trapped using "try..catch". Does it behave as you ...