C T1 RULER 2 RULER 3 RULER 4 RULER 5 RULER 6 RULER 7 C2345 Adds the given input(s) till a zero input is found. WRITE(*,*)' Give your input(s) now : ' SUM = 0.0 1 READ(*,*)X IF (X.EQ.0.0) THEN GO TO 1000 ELSE SUM = SUM + X WRITE(*,*)'NEXT ? ' GO TO 1 ENDIF 1000 WRITE(*,*)'------------------------------------------------ ' WRITE(*,*)'Your result is : ', SUM 1001 STOP END C T1 RULER 2 RULER 3 RULER 4 RULER 5 RULER 6 RULER 7 C2345 Finds the two unknowns for a pair of linear Co-Equations. 1 WRITE(*,*)'Give your inputs now : A1, B1, C1, A2, B2, C2 ' READ(*,*)A1, B1, C1, A2, B2, C2 DENOM = A1*B2 - A2*B1 IF (DENOM.EQ.0.0) THEN WRITE(*,*)'Inputs are not valid' GO TO 1001 ELSE X = (B1*C2 - B2*C1)/DENOM Y = (C1*A2 - C2*A1)/DENOM WRITE(*,*)'Your results are :' WRITE(*,*)'x =',X,' y = ',Y ENDIF 1001 STOP END C T1 RULER 2 RULER 3 RULER 4 RULER 5 RULER 6 RULER 7 C2345 Solves a system of simultaneous linear equations by the Gaussian C Elimination Method C C DIMENSION COEFF(20,20),TEMPOR(21,21),EQUALS(20),RESULT(20) REAL MINUTE MINUTE = 1.0E-32 WRITE(*,*)'Enter the number of unknowns ( maximum 20 ) :' READ(*,*)N CHECKN = ABS(FLOAT(N) - 11.0) IF (CHECKN.GT.9.0) THEN WRITE(*,*)' I am in no mood of a joke ! ' GO TO 1001 ENDIF C C C Reading the equations : WRITE(*,*) 'Reading the equations :' DO 1 I = 1,N,1 WRITE(*,*) ' ' WRITE(*,*)'Reading Equation No.',I DO 2 J = 1,N,1 WRITE(*,*)'Enter the coefficient of the',J,'th variable now :' READ(*,*) COEFF(I,J) TEMPOR(I,J) = COEFF(I,J) 2 CONTINUE WRITE(*,*)'Enter the R.H.S. of the',I,'th equation now :' READ(*,*) EQUALS(I) TEMPOR(I,N+1) = EQUALS(I) 1 CONTINUE C C C Forming the upper triangular matrix : WRITE(*,*) 'Forming the upper triangular matrix : ' WRITE(*,*) ' ' K = 1 3 DO 4 L = K+1,N,1 IF (ABS(TEMPOR(L,K)).GT.ABS(TEMPOR(K,K))) THEN DO 5 M = 1,N+1,1 TEMPOR(21,M) = TEMPOR(K,M) TEMPOR(K,M) = TEMPOR(L,M) TEMPOR(L,M) = TEMPOR(21,M) 5 CONTINUE ENDIF 4 CONTINUE IF (ABS(TEMPOR(K,K)).LT.MINUTE) THEN WRITE(*,*)' ' WRITE(*,*)'Sorry, unable to solve this system of equations !' GO TO 1001 ENDIF DO 6 I = K+1,N,1 FACTOR = (-1.0)*TEMPOR(I,K)/TEMPOR(K,K) DO 7 J = 1,N+1,1 TEMPOR(I,J) = TEMPOR(I,J) + FACTOR * TEMPOR(K,J) 7 CONTINUE 6 CONTINUE K = K + 1 IF (K.LT.N) GO TO 3 IF (ABS(TEMPOR(N,N)).LT.MINUTE) THEN WRITE(*,*)' ' WRITE(*,*)'Sorry, unable to solve this system of equations !' GO TO 1001 ENDIF WRITE(*,*) 'Formed.' WRITE(*,*)' ' C C C Solving the upper triangular system of equations : WRITE(*,*)'Solving the upper triangular system of equations :' WRITE(*,*) ' ' RESULT(N) = TEMPOR(N,N+1)/TEMPOR(N,N) DO 8 I = N-1,1,-1 REMAIN = 0.0 DO 9 J = I+1,N,1 REMAIN = REMAIN + RESULT(J)*TEMPOR(I,J) 9 CONTINUE RESULT(I) = (TEMPOR(I,N+1) - REMAIN)/TEMPOR(I,I) 8 CONTINUE DO 10 I = 1,N,1 WRITE(*,*)'The',I,'th variable is : ', RESULT(I) 10 CONTINUE WRITE(*,*) ' ' WRITE(*,*)'Enter any number ( say, 0 ) to continue :' READ(*,*) EXACT C C C Verifying the results now : WRITE(*,*) 'Verifying the results now : ' WRITE(*,*) ' ' EXACT = 1.0 DO 11 I = 1,N,1 ALHS = 0.0 DO 12 J = 1,N,1 ALHS = ALHS + COEFF(I,J) * RESULT(J) 12 CONTINUE WRITE(*,*) 'Equation No.',I,'gives : ',ALHS,'=',EQUALS(I) IF (ALHS.NE.EQUALS(I)) THEN EXACT = 0.0 ENDIF 11 CONTINUE WRITE(*,*) ' ' IF (EXACT.EQ.0.0) THEN WRITE(*,*) 'So the results are not exact.' ENDIF IF (EXACT.EQ.1.0) THEN WRITE(*,*) 'So the results are exact.' ENDIF 1001 STOP END C T1 RULER 2 RULER 3 RULER 4 RULER 5 RULER 6 RULER 7 C2345 Finds the EMI for a loan from the Housing Dev. Fin. Corp., India 1 WRITE(*,*)'Give your inputs now : AMLOAN, PCRATE, YEARS' READ(*,*) AMLOAN, PCRATE, YEARS FACTOR = 1.0 + PCRATE/100.0 FINAMT = AMLOAN * ( FACTOR ** YEARS) EYI = FINAMT * ( FACTOR - 1.0)/ ( FACTOR ** YEARS - 1.0 ) IEMI = IFIX (EYI/12.0 + 1.0) 999 WRITE(*,*)'Your result is :' 1000 WRITE(*,*)'EMI = Rs.',IEMI 1001 STOP END C T1 RULER 2 RULER 3 RULER 4 RULER 5 RULER 6 RULER 7 C Calculates integral of a function by trapezoidal rule. C2345 To change the integrand, change statements 1 & 3 WRITE(*,*)'Give the lower and upper limit of x :' READ(*,*) DN, UP WRITE(*,*)'Give the number of divisions :' READ(*,*) DIV N = IFIX(DIV) ICOUNT = 0 RANGE = UP - DN DIFF = RANGE/DIV 1 SUM = 0.5 * DIFF * ( SIN(DN) + SIN(UP) ) 2 ICOUNT = ICOUNT + 1 IF(ICOUNT.GE.N) THEN GO TO 1000 ELSE X = DN + RANGE * (FLOAT(ICOUNT))/DIV 3 SUM = SUM + SIN(X) * DIFF GO TO 2 ENDIF 1000 WRITE(*,*)'The integral is :', SUM STOP END C T1 RULER 2 RULER 3 RULER 4 RULER 5 RULER 6 RULER 7 C Calculates integral of a function by trapezoidal rule. C2345 To change the integrand, change statements 1 & 3 WRITE(*,*)'Give the initial and final limit of x :' READ(*,*) STARTX, ENDX WRITE(*,*)'Give the No. of great divisions and of fine ones:' READ(*,*) GDIV, DIV NGREAT = IFIX(GDIV) N = IFIX(DIV) TOTSUM = 0.0 IGREAT = 0 GRANGE = ENDX - STARTX 100 DN = STARTX + GRANGE * FLOAT(IGREAT)/GDIV UP = DN + GRANGE/GDIV ICOUNT = 0 RANGE = UP - DN DIFF = RANGE/DIV 1 SUM = 0.5 * DIFF * ( EXP(-DN) + EXP(-UP) ) 2 ICOUNT = ICOUNT + 1 IF(ICOUNT.GE.N) THEN GO TO 1000 ELSE X = DN + RANGE * (FLOAT(ICOUNT))/DIV 3 SUM = SUM + EXP(-X) * DIFF GO TO 2 ENDIF 1000 TOTSUM = TOTSUM + SUM IGREAT = IGREAT + 1 WRITE(*,*)'The current value of integral is :', TOTSUM WRITE (*,*)'at the upper limit :', UP WRITE(*,*)'.' IF(IGREAT.GE.NGREAT) THEN WRITE(*,*)'The complete integral is :', TOTSUM ELSE GO TO 100 ENDIF STOP END C T1 RULER 2 RULER 3 RULER 4 RULER 5 RULER 6 RULER 7 C2345 To solve some other equation iteratively, change statement 1 WRITE(*,*)'Give your input now, i.e., X (it must not be zero)' READ(*,*)X ICOUNT = 1 1 Y = COS(X) RELERR = (Y-X)/X REABS = ABS(RELERR) IF (REABS.LT.0.000002) THEN X = (X + Y)/2.0 WRITE(*,*)'The solution is X =',X,'(At',ICOUNT,'th operation)' GO TO 1001 ELSE ICOUNT = ICOUNT + 1 ENDIF IF (ICOUNT.GT.1000) THEN WRITE(*,*)' One thousand operations have been performed.' WRITE(*,*)' Not yet converging to a solution.' GO TO 1001 ELSE X = Y GO TO 1 ENDIF 1001 STOP END C T1 RULER 2 RULER 3 RULER 4 RULER 5 RULER 6 RULER 7 C2345 Performs linear least-square fitting. SUMX = 0.0 SUMY = 0.0 SUMXY = 0.0 SUMXSQ = 0.0 SUMYSQ = 0.0 WRITE(*,*)'How many points are there ? ' READ(*,*)EN EN2 = EN - 2.0 WAEN2 = ANINT(ABS(EN2)) IF (WAEN2.NE.EN2) THEN GO TO 1000 ELSE N = IFIX(EN) ICOUNT = 0 ENDIF WRITE(*,*)' O.K., Give the pairs (x,y) now ' 1 ICOUNT = ICOUNT + 1 IF (ICOUNT.GT.N) THEN GO TO 999 ELSE WRITE(*,*)' Give a pair now : ' READ(*,*) X, Y SUMX = SUMX + X SUMY = SUMY + Y SUMXY = SUMXY + X*Y SUMXSQ = SUMXSQ + X*X SUMYSQ = SUMYSQ + Y*Y GO TO 1 ENDIF 999 DIFF = EN*SUMXY - SUMX*SUMY DIFFX = EN*SUMXSQ - SUMX*SUMX DIFFY = EN*SUMYSQ - SUMY*SUMY IF(DIFFX.EQ.0.0) GO TO 1000 IF(DIFFY.EQ.0.0) GO TO 1000 WRITE(*,*)'The number of data is :', N AVEX = SUMX/EN AVEY = SUMY/EN WRITE(*,*)'The averages are :', AVEX , AVEY DEVX = SQRT(DIFFX)/EN DEVY = SQRT(DIFFY)/EN WRITE(*,*)'The standard deviations are :', DEVX , DEVY CORREL = DIFF/SQRT(DIFFX*DIFFY) EM = DIFF/DIFFX C = (SUMY*SUMXSQ - SUMX*SUMXY)/DIFFX WRITE(*,*)'The coefficient of correlation is :', CORREL WRITE(*,*)'The least-square fitting is given by : ' WRITE(*,*)'m = ', EM, ' c = ',C GO TO 1001 1000 WRITE(*,*)' I am in no mood of a joke ! ' 1001 STOP END C T1 RULER 2 RULER 3 RULER 4 RULER 5 RULER 6 RULER 7 C2345 Performs a polynomial fitting for a curve given by points C C DIMENSION POINTS(20,2),COEFF(20,20),TEMPOR(21,21),RESULT(20) REAL MINUTE MINUTE = 1.0E-32 WRITE(*,*)'Enter the number of points ( maximum 20 ) :' READ(*,*)N CHECKN = ABS(FLOAT(N) - 11.0) IF (CHECKN.GT.9.0) THEN WRITE(*,*)' I am in no mood of a joke ! ' GO TO 1001 ENDIF C C C Reading the points : WRITE(*,*) 'Reading the points :' DO 101 I = 1,N,1 WRITE(*,*) ' ' WRITE(*,*)'Enter the 2 Coordinates of Point No.',I READ(*,*) POINTS(I,1),POINTS(I,2) TEMPOR(I,N+1) = POINTS(I,2) 101 CONTINUE C C C Forming the coefficient matrix : WRITE(*,*) 'Forming the coefficient matrix : ' WRITE(*,*) ' ' DO 102 I = 1,N,1 COEFF(I,1) = 1.0 TEMPOR(I,1) = 1.0 DO 103 J = 2,N,1 COEFF(I,J) = POINTS(I,1) ** (J-1) TEMPOR(I,J) = COEFF(I,J) 103 CONTINUE 102 CONTINUE WRITE(*,*) 'Formed.' WRITE(*,*)' ' C C C Forming the upper triangular matrix : WRITE(*,*) 'Forming the upper triangular matrix : ' WRITE(*,*) ' ' K = 1 3 DO 4 L = K+1,N,1 IF (ABS(TEMPOR(L,K)).GT.ABS(TEMPOR(K,K))) THEN DO 5 M = 1,N+1,1 TEMPOR(21,M) = TEMPOR(K,M) TEMPOR(K,M) = TEMPOR(L,M) TEMPOR(L,M) = TEMPOR(21,M) 5 CONTINUE ENDIF 4 CONTINUE IF (ABS(TEMPOR(K,K)).LT.MINUTE) THEN WRITE(*,*)' ' WRITE(*,*)'Sorry, unable to solve this system of equations !' GO TO 1001 ENDIF DO 6 I = K+1,N,1 FACTOR = (-1.0)*TEMPOR(I,K)/TEMPOR(K,K) DO 7 J = 1,N+1,1 TEMPOR(I,J) = TEMPOR(I,J) + FACTOR * TEMPOR(K,J) 7 CONTINUE 6 CONTINUE K = K + 1 IF (K.LT.N) GO TO 3 IF (ABS(TEMPOR(N,N)).LT.MINUTE) THEN WRITE(*,*)' ' WRITE(*,*)'Sorry, unable to solve this system of equations !' GO TO 1001 ENDIF WRITE(*,*) 'Formed.' WRITE(*,*)' ' C C C Solving the upper triangular system of equations : WRITE(*,*)'Solving the upper triangular system of equations :' WRITE(*,*) ' ' RESULT(N) = TEMPOR(N,N+1)/TEMPOR(N,N) DO 8 I = N-1,1,-1 REMAIN = 0.0 DO 9 J = I+1,N,1 REMAIN = REMAIN + RESULT(J)*TEMPOR(I,J) 9 CONTINUE RESULT(I) = (TEMPOR(I,N+1) - REMAIN)/TEMPOR(I,I) 8 CONTINUE DO 10 I = 1,N,1 WRITE(*,*)'The',I,'th variable is : ', RESULT(I) 10 CONTINUE WRITE(*,*) ' ' C C C Verifying the results now : WRITE(*,*) 'Verifying the results now : ' WRITE(*,*) ' ' EXACT = 1.0 DO 11 I = 1,N,1 ALHS = 0.0 DO 12 J = 1,N,1 ALHS = ALHS + COEFF(I,J) * RESULT(J) 12 CONTINUE WRITE(*,*) 'Equation No.',I,'gives : ',ALHS,'=',POINTS(I,2) IF (ALHS.NE.POINTS(I,2)) THEN EXACT = 0.0 ENDIF 11 CONTINUE WRITE(*,*) ' ' IF (EXACT.EQ.0.0) THEN WRITE(*,*) '( So the results are not exact. )' ENDIF IF (EXACT.EQ.1.0) THEN WRITE(*,*) '( So the results are exact. )' ENDIF WRITE(*,*) ' ' WRITE(*,*) 'Hence the polynomial suggested is :' WRITE(*,*) ' ' WRITE(*,*) RESULT(1) DO 104 K = 2,N,1 WRITE(*,*) 'PLUS',RESULT(K),' INTO X TO THE POWER',K-1 104 CONTINUE 1001 STOP END C T1 RULER 2 RULER 3 RULER 4 RULER 5 RULER 6 RULER 7 C2345 Finds whether a given natural number is prime or not. WRITE(*,*)'Give your input now i.e., the number : ' READ(*,*)A A2 = A - 2.0 AA2 = ABS(A2) WAA2 = ANINT (AA2) IF (WAA2.NE.A2) THEN WRITE(*,*)'Cannot you give a proper input ?' GO TO 1001 ELSE DIVSOR = 2.0 ENDIF 1 RATIO = A/DIVSOR IF(DIVSOR.GT.RATIO) THEN WRITE(*,*)' Prime' GO TO 1001 ELSE QUOTNT = ANINT(RATIO) ENDIF IF (QUOTNT.EQ.RATIO) THEN WRITE(*,*)' Not prime' GO TO 1001 ELSE DIVSOR = DIVSOR + 1.0 GO TO 1 ENDIF 1001 STOP END C T1 RULER 2 RULER 3 RULER 4 RULER 5 RULER 6 RULER 7 C2345 Performs quadratic least-square fitting. DIMENSION COEFF(3,3),EQUALS(3),TEMPOR(4,4),RESULT(3) REAL MINUTE MINUTE = 1.0E-32 SUMX = 0.0 SUMX2 = 0.0 SUMX3 = 0.0 SUMX4 = 0.0 SUMY = 0.0 SUMXY = 0.0 SUMX2Y = 0.0 WRITE(*,*)'How many points are there ? ' READ(*,*)EN EN3 = EN - 3.0 WAEN3 = ANINT(ABS(EN3)) IF (WAEN3.NE.EN3) THEN WRITE(*,*)' I am in no mood of a joke ! ' GO TO 1001 ELSE N = IFIX(EN) ICOUNT = 0 ENDIF WRITE(*,*)' Enter the Coordinates of the Points now :' WRITE(*,*) ' ' 1 ICOUNT = ICOUNT + 1 IF (ICOUNT.GT.N) THEN GO TO 999 ELSE WRITE(*,*)' Enter the Coordinates of the Point No.',ICOUNT READ(*,*) X, Y SUMX = SUMX + X SUMX2 = SUMX2 + X*X SUMX3 = SUMX3 + X*X*X SUMX4 = SUMX4 + X*X*X*X SUMY = SUMY + Y SUMXY = SUMXY + X*Y SUMX2Y= SUMX2Y+ X*X*Y GO TO 1 ENDIF C C C Forming the coefficient matrix : 999 WRITE(*,*) 'Forming the coefficient matrix :' WRITE(*,*) ' ' N = 3 COEFF(1,1) = EN COEFF(1,2) = SUMX COEFF(1,3) = SUMX2 COEFF(2,1) = SUMX COEFF(2,2) = SUMX2 COEFF(2,3) = SUMX3 COEFF(3,1) = SUMX2 COEFF(3,2) = SUMX3 COEFF(3,3) = SUMX4 EQUALS(1) = SUMY EQUALS(2) = SUMXY EQUALS(3) = SUMX2Y DO 101 I = 1,3,1 DO 102 J = 1,3,1 TEMPOR(I,J) = COEFF(I,J) 102 CONTINUE TEMPOR(I,4) = EQUALS(I) 101 CONTINUE WRITE(*,*) 'Formed.' WRITE(*,*)' ' C C C Forming the upper triangular matrix : WRITE(*,*) 'Forming the upper triangular matrix : ' WRITE(*,*) ' ' K = 1 3 DO 4 L = K+1,N,1 IF (ABS(TEMPOR(L,K)).GT.ABS(TEMPOR(K,K))) THEN DO 5 M = 1,N+1,1 TEMPOR(4,M) = TEMPOR(K,M) TEMPOR(K,M) = TEMPOR(L,M) TEMPOR(L,M) = TEMPOR(4,M) 5 CONTINUE ENDIF 4 CONTINUE IF (ABS(TEMPOR(K,K)).LT.MINUTE) THEN WRITE(*,*)' ' WRITE(*,*)'Sorry, unable to solve this system of equations !' GO TO 1001 ENDIF DO 6 I = K+1,N,1 FACTOR = (-1.0)*TEMPOR(I,K)/TEMPOR(K,K) DO 7 J = 1,N+1,1 TEMPOR(I,J) = TEMPOR(I,J) + FACTOR * TEMPOR(K,J) 7 CONTINUE 6 CONTINUE K = K + 1 IF (K.LT.N) GO TO 3 IF (ABS(TEMPOR(N,N)).LT.MINUTE) THEN WRITE(*,*)' ' WRITE(*,*)'Sorry, unable to solve this system of equations !' GO TO 1001 ENDIF WRITE(*,*) 'Formed.' WRITE(*,*)' ' C C C Solving the upper triangular system of equations : WRITE(*,*)'Solving the upper triangular system of equations :' WRITE(*,*) ' ' RESULT(N) = TEMPOR(N,N+1)/TEMPOR(N,N) DO 8 I = N-1,1,-1 REMAIN = 0.0 DO 9 J = I+1,N,1 REMAIN = REMAIN + RESULT(J)*TEMPOR(I,J) 9 CONTINUE RESULT(I) = (TEMPOR(I,N+1) - REMAIN)/TEMPOR(I,I) 8 CONTINUE DO 10 I = 1,N,1 WRITE(*,*)'The',I,'th variable is : ', RESULT(I) 10 CONTINUE WRITE(*,*) ' ' C C C Verifying the results now : WRITE(*,*) 'Verifying the results now : ' WRITE(*,*) ' ' EXACT = 1.0 DO 11 I = 1,N,1 ALHS = 0.0 DO 12 J = 1,N,1 ALHS = ALHS + COEFF(I,J) * RESULT(J) 12 CONTINUE WRITE(*,*) 'Equation No.',I,'gives : ',ALHS,'=',EQUALS(I) IF (ALHS.NE.EQUALS(I)) THEN ENDIF 11 CONTINUE WRITE(*,*) ' ' WRITE(*,*) 'Hence the quadratic polynomial suggested is :' WRITE(*,*) ' ' WRITE(*,*) 'Y equals ' WRITE(*,*) ' ' WRITE(*,*) ' ',RESULT(1) WRITE(*,*) 'PLUS',RESULT(2),' INTO X TO THE POWER 1 ' WRITE(*,*) 'PLUS',RESULT(3),' INTO X TO THE POWER 2 ' WRITE(*,*) ' ' 1001 STOP END C T1 RULER 2 RULER 3 RULER 4 RULER 5 RULER 6 RULER 7 C2345 Finds the real roots, if any, of a quadratic equation. 1 WRITE(*,*)'Give your inputs now : a, b,c ' READ(*,*)A,B,C IF (A.EQ.0.0) THEN WRITE(*,*) 'Equation not quadratic' GO TO 1001 ELSE B2 = B * B AC4 = 4.0 * A * C ENDIF IF ( B2.LT.AC4 ) THEN WRITE(*,*) 'Roots are complex' GO TO 1001 ELSE SR = SQRT(B2 - AC4) ROOT1 = ( -B + SR )/(2.0 * A) ROOT2 = ( -B - SR )/(2.0 * A) 999 WRITE(*,*)'Your results are :' 1000 WRITE(*,*)ROOT1,ROOT2 ENDIF 1001 STOP END C T1 RULER 2 RULER 3 RULER 4 RULER 5 RULER 6 RULER 7 C2345 Finds the final amount of an STDR at the State Bank of India. 1 WRITE(*,*)'Give your inputs now : DEPOSIT, PCRATE, YEARS' READ(*,*) DEPSIT, PCRATE, YEARS FACTOR = 1.0 + PCRATE/400.0 QUARTS = 4.0 * YEARS FINAMT = DEPSIT * (FACTOR ** QUARTS) FINAMT = ANINT(FINAMT) INTFIN = IFIX(FINAMT) 999 WRITE(*,*)'Your result is :' 1000 WRITE(*,*)'The final amount is Rs.', INTFIN 1001 STOP END C T1 RULER 2 RULER 3 RULER 4 RULER 5 RULER 6 RULER 7 C2345 Sums a given series : to change the series change statement 2 EN = 1.0 TERM = 1.0 SUM = 1.0 1 IF (EN.GT.10000.0) THEN WRITE(*,*)'Ten thousand operations were performed ;' WRITE(*,*)'Not yet converging to a solution.' WRITE(*,*) SUMOLD , SUM GO TO 1001 ELSE SUMOLD = SUM EN = EN + 1.0 2 TERM = TERM/(EN - 1.0) SUM = SUM + TERM ENDIF IF (SUM.EQ.SUMOLD) THEN 1000 WRITE(*,*)'The series converges to :', SUM GO TO 1001 ELSE GO TO 1 ENDIF 1001 STOP END C T1 RULER 2 RULER 3 RULER 4 RULER 5 RULER 6 RULER 7 C2345 Finds some statistical parameters for a simple set of data. ICOUNT = 0 SUMX = 0.0 SUMXSQ = 0.0 WRITE(*,*)' How many data are there ? ' READ(*,*)EN IF (EN.LT.2.0) THEN GO TO 1001 ELSE N = IFIX(EN) ENDIF 1 ICOUNT = ICOUNT + 1 IF (ICOUNT.GT.N) THEN GO TO 1000 ELSE WRITE(*,*)' Data Please ! ' READ(*,*) X SUMX = SUMX + X SUMXSQ = SUMXSQ + X*X GO TO 1 ENDIF 1000 AVE = SUMX/FLOAT(N) VAR = SUMXSQ/FLOAT(N) - AVE * AVE SD = SQRT(VAR) WRITE(*,*)'Number of data is',N WRITE(*,*)'Average is',AVE,' Population std. dev.is',SD WRITE(*,*)'Sum is',SUMX,' Sum of squares is',SUMXSQ 1001 STOP END