Page 59 - Chapra y Canale. Metodos Numericos para Ingenieros 5edición_Neat
P. 59
2.2 PROGRAMACIÓN ESTRUCTURADA 35
DO
INPUT a, b, c
r1 = 0: r2 = 0: i1 = 0: i2 = 0
IF a = 0 THEN
IF b ≠ 0 THEN
r1 = –c/b
ELSE
DISPLAY “Solución trivial”
ENDIF
ELSE
discr = b – 4 * a * c
2
IF discr ≥ 0 THEN
r1 = (–b + Sqrt(discr))/(2 * a)
r2 = (–b – Sqrt(discr))/(2 * a)
ELSE
r1 = –b/(2 * a)
r2 = r1
i1 = Sqrt(Abs(discr))/(2 * a)
i2 = –i1
ENDIF
ENDIF
DISPLAY r1, r2, i1, i2
DISPLAY ‘¿Repetir? Conteste sí o no’
INPUT respuesta
IF respuesta = ‘no’ EXIT
ENDDO
El método que se utilizó en el problema anterior puede emplearse para desarrollar
un algoritmo para el problema del paracaidista. Recordemos que, dadas la condición
inicial para tiempo y velocidad, el problema consistía en resolver de manera iterativa la
fórmula
v = v + v d i t ∆ (2.2)
i+1 i
dt
Como sabemos, para lograr una buena precisión será necesario emplear incrementos
pequeños. Por lo que será necesario emplear la fórmula repetidas veces, desde el tiempo
inicial hasta el tiempo final. En consecuencia, un algoritmo para resolver este problema
estará basado en el uso de un loop.
Supongamos, por ejemplo, que empezamos los cálculos en t = 0 y queremos prede-
cir la velocidad en t = 4 s con incrementos de tiempo ∆t = 0.5 s. Entonces tendremos que
aplicar la ecuación (2.2) ocho veces, esto es,
n = 4 = 8
05.
donde n es el número de iteraciones del loop. Como este número es exacto, es decir, esta
división nos da un número entero, podemos usar como base del algoritmo un loop con-
trolado por contador. A continuación damos un ejemplo de seudocódigo.
6/12/06 13:43:42
Chapra-02.indd 35 6/12/06 13:43:42
Chapra-02.indd 35

