Metodo

Páginas: 6 (1499 palabras) Publicado: 5 de enero de 2013
CHAPTER 2
2.1
IF x < 10 THEN IF x < 5 THEN x = 5 ELSE PRINT x END IF ELSE DO IF x < 50 EXIT x = x - 5 END DO END IF

2.2 Step 1: Start Step 2: Initialize sum and count to zero Step 3: Examine top card. Step 4: If it says “end of data” proceed to step 9; otherwise, proceed to next step. Step 5: Add value from top card to sum. Step 6: Increase count by 1. Step 7: Discard top card Step 8: Returnto Step 3. Step 9: Is the count greater than zero? If yes, proceed to step 10. If no, proceed to step 11. Step 10: Calculate average = sum/count Step 11: End 2.3
start

sum = 0 count = 0

count > 0 INPUT value F

T

average = sum/count value = “end of data” F sum = sum + value count = count + 1 T

end

2.4 Students could implement the subprogram in any number of languages. Thefollowing Fortran 90 program is one example. It should be noted that the availability of complex variables in Fortran 90, would allow this subroutine to be made even more concise. However, we did not exploit this feature, in order to make the code more compatible with Visual BASIC, MATLAB, etc.
PROGRAM Rootfind IMPLICIT NONE INTEGER::ier REAL::a, b, c, r1, i1, r2, i2 DATA a,b,c/1.,5.,2./ CALL Roots(a,b, c, ier, r1, i1, r2, i2) IF (ier .EQ. 0) THEN PRINT *, r1,i1," i" PRINT *, r2,i2," i" ELSE PRINT *, "No roots" END IF END SUBROUTINE Roots(a, b, c, ier, r1, i1, r2, i2) IMPLICIT NONE INTEGER::ier REAL::a, b, c, d, r1, i1, r2, i2 r1=0. r2=0. i1=0. i2=0. IF (a .EQ. 0.) THEN IF (b 0) THEN r1 = -c/b ELSE ier = 1 END IF ELSE d = b**2 - 4.*a*c IF (d >= 0) THEN r1 = (-b + SQRT(d))/(2*a) r2 = (-b -SQRT(d))/(2*a) ELSE r1 = -b/(2*a) r2 = r1 i1 = SQRT(ABS(d))/(2*a) i2 = -i1 END IF END IF END

The answers for the 3 test cases are: (a) −0.438, -4.56; (b) 0.5; (c) −1.25 + 2.33i; −1.25 − 2.33i. Several features of this subroutine bear mention: • The subroutine does not involve input or output. Rather, information is passed in and out via the arguments. This is often the preferred style, becausethe I/O is left to the discretion of the programmer within the calling program. • Note that an error code is passed (IER = 1) for the case where no roots are possible.

2.5 The development of the algorithm hinges on recognizing that the series approximation of the sine can be represented concisely by the summation,


i =1

n

x (2i − 1)!

2i −1

where i = the order of theapproximation. The following algorithm implements this summation: Step 1: Start Step 2: Input value to be evaluated x and maximum order n Step 3: Set order (i) equal to one Step 4: Set accumulator for approximation (approx) to zero Step 5: Set accumulator for factorial product (fact) equal to one Step 6: Calculate true value of sin(x) Step 7: If order is greater than n then proceed to step 13 Otherwise,proceed to next step Step 8: Calculate the approximation with the formula 2i-1 x approx = approx + ( −1) i-1 factor Step 9: Determine the error

%error =

true − approx 100% true

Step 10: Increment the order by one Step 11: Determine the factorial for the next iteration factor = factor • (2 • i − 2) • (2 • i − 1) Step 12: Return to step 7 Step 13: End

2.6
start

INPUT x, n

i=1 true =sin(x) approx = 0 factor = 1

i>n

T

F

approx = approx + ( - 1) i - 1

x2 i - 1 factor

error =

true − approx 100% true
OUTPUT i,approx,error

i=i+1

factor=factor(2i-2)(2i-1) end

Pseudocode:
SUBROUTINE Sincomp(n,x) i = 1 true = SIN(x) approx = 0 factor = 1 DO IF i > n EXIT approx = approx + (-1)i-1•x2•i-1 / factor error = Abs(true - approx) / true) * 100 PRINT i, true,approx, error i = i + 1 factor = factor•(2•i-2)•(2•i-1) END DO END

2.7 The following Fortran 90 code was developed based on the pseudocode from Prob. 2.6:
PROGRAM Series IMPLICIT NONE INTEGER::n REAL::x n = 15 x = 1.5 CALL Sincomp(n,x) END SUBROUTINE Sincomp(n,x) IMPLICIT NONE INTEGER::n,i,fac REAL::x,tru,approx,er i = 1 tru = SIN(x) approx = 0. fac = 1 PRINT *, " order true approx error" DO...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Metodos De Metodos
  • El Método
  • Metodo
  • El Método
  • Metodo
  • Metodos
  • Metodos
  • Metodos

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS