# Case study 1: Calculate the approximation of Pi

## Presentation on theme: "Case study 1: Calculate the approximation of Pi"— Presentation transcript:

Case study 1: Calculate the approximation of Pi
Calculate the approximation of Pi by formula with error 1e-4. Algorithm pi = 0, s = 1, n = 1, t = s/n while fabs(t) > 1e-4 do pi = pi + t n = n +2 s = -s t = s / n; end while Pi = 4 * pi

Implementation #include <stdio.h> #include <math.h>
main(){ int s = 1; double n = 1, t = 1, pi = 0; while (fabs(t)>= 1e-4) { pi = pi + t; n += 2; s = - s; t = s/n; } pi = pi * 4; printf("%10.6f\n", pi);

Case Study 2: Fibonacci Sequence
Calculate the first 40 number of Fibonacci sequence: F(1) = 1, F(2) = 1, …, F(n) = F(n-1) + F(n-2) Algorithm f1 = 1, f2 = 1, i = 1 For i from 1 to 20 do Print f1 and f2 f1 = f1 + f2 f2 = f2 + f1 End of for loop

Implementation #include <stdio.h> main(){ long int f1, f2;
int i; f1 = 1; f2 = 1; for (i = 1; i<=20; i++) { printf("%12ld %12ld ", f1, f2); if(i%2==0) printf("\n"); f1 = f1 + f2; f2 = f2 + f1; }

Case Study 3: Simple Encryption and Decryption
Problem: Convert a plain text to a cipher text by alphabet of module k. Where 0<k<26 is an integer, used a key to encode and decode. For example if k = 3, A will be encrypted to D, and y will be encrypted to b. Encryption Algorithm: Get a key k While the input character c is not \n Convert c into its cipher text by using the kth letter forward End while For key k Convert c into its plain text by using the kth letter backward

Implementation #include <stdio.h> main(){ char c; int key;
printf("Input a key between 1 and 25: \n"); scanf("%d", &key); while ((c = getchar())!='*') { if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) c = c + key; if (c > 'Z' && c <='Z'+key || c >'z') c = c - 26; } printf("%c",c);

#include <stdio.h> /* defines fopen, fclose, fscanf fprintf, and EOF */ int main(void) { FILE *inp; /* input file pointer */ int sum = 0, /* sum of scores input so far */ score, /* current score */ input_status; /* status value returned by fscanf */ inp = fopen("scores.dat", "r"); /* open a file for reading */ printf("Scores\n"); input_status = fscanf(inp, "%d", &score); /* read the first line from the file */ while (input_status != EOF) { /* if not the end of file sign */ printf("%5d\n", score); sum += score; input_status = fscanf(inp, "%d", &score); /* continue to read the next line */ } printf("\nSum of exam scores is %d\n", sum); fclose(inp); /* close the file */ Run by command line

Structure Chart for Computing Solar Collecting Area Size

Program to Approximate Solar Collecting Area Size

Program to Approximate Solar Collecting Area Size (cont’d)

Program to Approximate Solar Collecting Area Size (cont’d)