/* TMA02 q4 */ /*Author: Chan Chi Ming s93504843, Date of authoring: 27/1/2001 */ /*This program is used to calcalate the value of PI. It can also used to test the performance of CPU.*/ #include <condefs.h> #pragma hdrstop #include <stdio.h> #include <math.h> #include <dos.h> //--------------------------------------------------------------------------- #pragma argsused double evaluatePI(long n); /*function evaluatePI declaration*/ int main(int argc, char **argv) { long n; /*number of term*/ struct time t; printf("Enter the number of terms (-1 to quit): "); /*ask user to input number of term or -1 to quit*/ scanf("%d", &n); while(n != -1) { /*use a while loop to execute the function indefinitely until the input is -1*/ gettime(&t); /*start time*/ printf("The start time is: %2d:%02d:%02d.%02d\n", t.ti_hour, t.ti_min, t.ti_sec, t.ti_hund); printf("pi = %.20f\n", evaluatePI(n)); /*call the function and print out the result*/ gettime(&t); /*end time*/ printf("The finish time is: %2d:%02d:%02d.%02d\n", t.ti_hour, t.ti_min, t.ti_sec, t.ti_hund); printf("\n"); printf("Enter the number of terms (-1 to quit): "); scanf("%d", &n); } return 0; } double evaluatePI(long n) { /*function body of evaluatePI, it uses Euler's method to find out PI*/ long i = 0; /*index for for loop*/ double denomator = 0.0; /*value of denomator*/ double sum = 0.0; /*value of sum according to the number of terms*/ for(i=1; i<=n; i++) { /*using a for loop to calculate the value of pi according to the no. of term, n, entered by user*/ denomator = (2*i-1)*(2*i-1); sum += (1/denomator); } return (sqrt(8 * sum)); }