Está en la página 1de 24

Capítulo 2:

Programación y
software

1
Programación y software

El Objetivo es conocer como usar la


computadora como una herramienta para
obtener soluciones numéricas para un modelo
dado de ingeniería.
Hay 2 maneras para hacerlo:
 Usar software disponible
 Desarrollar programas para ampliar las capacidades
de los software disponibles, tales como Excel y
Matlab.
Los Ingenieros no deberían limitarse; es
importante que sean capaces de usar ambas!
2
• Los programas computacionales son únicamente conjuntos de
instrucciones que dirigen a la computadora para realizar una
cierta tarea.
• Para ser capaz de desempeñar cálculos numéricos orientados
a la ingeniería, hay que familiarizarse con los siguientes tópicos
de programación:
– Representación de información sencilla (declaración de constantes,
variables y tipos)
– Representación de información más compleja (estructuras de datos,
arreglos y registros)
– Fórmulas matemáticas (asignación, reglas de prioridad y funciones
intrínsecas)
– Entrada/Salida
– Representación lógica (secuencia, selección y repetición)
– Programación modular (funciones y subrutinas)
• Nos enfocaremos en los últimos 2 tópicos, suponiendo que ya
se ha tenido algún contacto con la programación.
3
Programación estructurada
 Programación estructurada es un conjunto de reglas
que desarrollan en el programador los hábitos para
lograr un buen estilo.
Un código organizado y bien estructurado
Fácilmente compartible
Fáciles de depurar y de probar
Programas que toman menos tiempo desarrollar, probar y
actualizar
 La idea clave detrás de la programación estructurada
es que cualquier algoritmo numérico requiere tan
sólo de tres estructuras de control fundamentales:
secuencia, selección y repetición. 4
FIGURA 2.1
Símbolos usados en los diagramas de flujo.

5
FIGURA 2.2
Secuencia. a) Diagrama de flujo y
b) seudocódigo para la estructura secuencial.
• El código debe
realizarse instrucción
por instrucción, a
menos que se
indique otra cosa.
• La estructura se
puede expresar como
un diagrama de flujo
o como un
seudocódigo.

6
FIGURA 2.3
Diagrama de flujo y seudocódigo para estructuras de
Selección simple.
a) Selección con una alternativa (IF/THEN) y
b) Selección con dos alternativas (IF/THEN/ELSE).

• Selección.
ofrece un medio de
dividir el flujo del
programa en ramas
considerando el
resultado de un
condición lógica.

7
Repetición: proporciona una manera de llevar a cabo instrucciones
repetidamente. Las estructuras resultantes se llaman loops o ciclos.

FIGURA 2.4
Diagrama de flujo y
seudocódigo para
construcciones de
selección o ramificación.
a) Selección de
múltiples alternativas
(IF/THEN/ELSEIF)
b) Construcción CASE.

8
FIGURA 2.5

Loop DOEXIT o de
interrupción.

9
FIGURA 2.6
Construcción controlada por conteo o construcción DOFOR.

10
Ejemplo 2.1
Algoritmo para las raíces de la ecuación cuadrática.

11
Ejemplo 2.1
Solución.
 Para desarrollar el algoritmo usaremos un método que va de lo general a
lo particular (método top-down).
 Un algoritmo estructurado para realizar la tarea es:

 La construcción DOEXIT se utiliza para repetir el cálculo de la ecuación


cuadrática siempre que la condición sea falsa.
 La condición depende del valor de la variable de tipo carácter “respuesta”.
 Si “respuesta” es igual a ‘sí’ entonces se llevan a cabo los cálculos.
 Si no es así, si “respuesta” es igual a ‘no’, el loop termina.
12
Ejemplo 2.1
Solución.
 Aunque el algoritmo anterior funcionará bien en ciertos casos, todavía no
está completo.
 El algoritmo quizá no funcione para algunos valores de las variables.
 Si a = 0, se presentará inmediatamente un problema debido a la división
entre cero.
 Si inspeccionamos cuidadosamente la ecuación veremos que aquí
se pueden presentar dos casos:
 Si b ≠ 0, la ecuación se reduce a una ecuación lineal con una raíz
real, –c/b
 Si b = 0, entonces no hay solución. Es decir, el problema es trivial.
 Si a ≠ 0, entonces, según sea el valor del discriminante, d = b2– 4ac, se
pueden presentar también dos casos,
 Si d ≥ 0, habrá dos raíces reales.*
 Si d < 0, habrá dos raíces complejas. 13
* Si d = 0, las dos raíces reales tienen el mismo valor x = –b/2a.
Ejemplo 2.1
Solución.
 Se resuelve con el siguiente algoritmo:

14
Ejemplo paracaidista
 Si el intervalo es divisible exactamente entre el incremento.:

15
Ejemplo paracaidista
 Para tomar en cuenta el otro caso, en el código anterior, en lugar del área
sombreada se puede usar un loop de decisión.

16
Programación modular
 Los programas de computación se dividen en
subprogramas más pequeños, o módulos que pueden
desarrollarse y probarse por separado.
 La principal cualidad de los módulos es que son tan
independientes y autosuficientes como sea posible.
 Ventajas del diseño modular son:
El uso de unidades pequeñas e independientes hace que la
lógica subyacente sea más fácil de seguir y de entender
La depuración y la prueba de un programa se simplifican
debido a que los errores se pueden encontrar con facilidad
El mantenimiento y la modificación del programa es más
sencillo
Permiten tener una biblioteca de módulos útiles para usos
posteriores en otros programas 17
FIGURA 2.7
Seudocódigo para una función que resuelve una ecuación
diferencial usando el método de Euler.

18
EXCEL
 Las hojas de cálculo son un tipo especial de software para
matemáticas que permite al usuario ingresar y realizar cálculos
en renglones y columnas de datos.
 Cuando se modifica un valor de la hoja, hay que actualizar
todos los cálculos; las hojas de cálculo son ideales para hacer
análisis del tipo “¿y qué pasa si...? ”
 Excel cuenta con varios recursos numéricos interconstruidos
como resolución de ecuaciones, ajuste de curvas y
optimización.
 Incluye también VBA como un lenguaje de macro que sirve
para hacer cálculos numéricos
 Tiene varias herramientas para la visualización como
diagramas y gráficas tridimensionales, que son un valioso
complemento para el análisis numérico.
19
FIGURA 2.8
Estructuras de control
fundamentales en
a) seudocódigo y
b) VBA de Excel.

20
MATLAB
 MATLAB es el principal producto de software de Mathworks, Inc.,
fundada por los analistas numéricos Cleve Moler y John N. Little.
 Como su nombre lo indica, MATLAB se desarrolló originalmente como
un laboratorio para matrices. Hoy, el elemento principal de MATLAB
sigue siendo la matriz.
 La manipulación matemática de matrices se ha realizado muy
adecuadamente en un ambiente interactivo fácil de utilizar.
 A esta manipulación matricial, MATLAB agrega varias funciones
numéricas, cálculos simbólicos y herramientas para visualización.
 MATLAB tiene diferentes funciones y operadores que permiten la
adecuada realización de los métodos numéricos que aquí
desarrollamos.
 Además, se pueden escribir programas como los llamados archivos M
(m-files) que sirven para realizar cálculos numéricos.
 El uso normal de MAT LA B está estrechamente relacionado con la
21
programación
FIGURA 2.9
Estructuras de control fundamentales en
a) seudo-código y
b) lenguaje de programación en
MATLAB.

22
23
OTROS LENGUAJES Y BIBLIOTECAS

• Fortran 90 (IMSL*)
• C++

* IMSL (International Mathematical and Statistical Library)


24

También podría gustarte