METODOS NUMERICOS
Ingeniería Civil
ING.�CRISTIAN�CASTRO�P.
Facultad de Ingeniería de Minas, Geología y Civil
Departamento académico de ingeniería de minas y civil
CATEDRA 02
Capitulo II
Herramientas de Cálculo
ING.�CRISTIAN�CASTRO�P.
Que es el Software ?Programas de cómputo y su documentacion asociada
• Sistemas o Productos de software grandes y complejos.• Que contiene el software.• Que tipos de software hay ?• Cual es el costo del software.• Como se desarrolla el software ?• Como saber si un software tiene calidad.
Que tipos de software hay ?• Por su estructura:
• Funcionales.• Orientados a objetos.• Orientados a listas.• Orientados a componentes.
• Por su función:• Programas o Sistemas de Usuario• Interfaces Hombre-Maquina.• Herramientas de Software.• Librerias.• Sistemas de uso generico: Compiladores, S.O’s, Procesadores
de Texto, etc• Bases de Datos.• Sistemas basados en Web.
Que tipos de software hay ?• Por su plataforma de computo:
• Sistemas embebidos.• Sistemas de computo distribuido.• Sistemas de computo paralelo.• Sistemas de tiempo real.• Sistemas basados en Chips.• Wearable computing systems.• Sistemas de computo ubiquos.
TIPOS DE SOFTWARE• Software de sistemas
• Sistemas operativos• Lenguajes de programación
• Bajo nivel: Lenguaje máquina, Ensamblador• Alto nivel:
• Compilados: Lenguaje C, Pascal, Fortan• Interpretados: Basica, Visual Basic.
• Utilerías
• Software de aplicación• Especializados• De uso general
• Software del usuario final• Sistemas de bases de datos• Generadores de gráfica• Lenguajes de 4ª. Generación• Herramientas RAD• Sistemas adaptables• Sistemas de información geográfica
Que contiene el software ?
• El software contiene:• Líneas de código de algún lenguaje ?• Instrucciones de computadora.• Descripción de las estructuras de datos.• Algoritmos.• Procedimientos y funciones.• Componentes de software.
Características de los Productos de Software
• Mantenibles. Debe ser posible que el software evolucione y que siga
cumpliendo con sus especificaciones.• Confiabilidad.
El software no debe causar danos físicos o económicos enel caso de fallos.
• Eficiencia. El software no debe desperdiciar los recursos del sistema.
• Utilización adecuada. El software debe contar con una interfaz de usuario
adecuada y su documentación.
Características del proceso• Entendible
Se encuentra el proceso bien definido y es entendible ?.• Visible
El proceso es visible al exterior ?.• Soportable
Puede el proceso ser soportado por herramientas CASE ?.• Aceptable
El proceso es aceptado por aquellos involucrados en el ?.
Costos del Software
• Los costos del software a menudo dominan al costodel sistema. El costo del software en un PC es amenudo mas caro que la PC.
• Cuesta mas mantener el software que desarrollarlo.Para sistemas con una larga vida, este costo semultiplica.
• La Ingeniería de Software concierne a un desarrolloefectivo en cuanto a costes del software.
Costos
Eficiencia
REPRESENTACION DE LOS NUMEROS EN LA COMPUTADORA
• ENTEROS• REALES
SISTEMA DE ARITMETICA DE PUNTO FLOTANTE
Unidades de Medida de MemoriaNombre Abrev. Factor Tamaño en el SIkilo K 210 = 1024 103 = 1000
mega M 220 = 1 048 576 106 = 1 000 000
giga G 230 = 1 073 741 824 109 = 1 000 000 000
tera T 240 = 1 099 511 627 776 1012 = 1 000 000 000 000
peta P 250 = 1 125 899 906 842 624 1015 = 1 000 000 000 000 000
exa E 260 = 1 152 921 504 606 846 976 1018 = 1 000 000 000 000 000 000
zetta Z270 = 1 180 591 620 717 411 303 424
1021 = 1 000 000 000 000 000 000 000
yotta Y280 = 1 208 925 819 614 629 174 706 176
1024 = 1 000 000 000 000 000 000 000 000
Bronto B 290 = 1024 Yottabytes 1027 = 1 000 000 000 000 000 000 000 000
Ley de Moore
Equipo• Computadora
• Calculadora
Herramientas de Cálculo
Software• Desarrollo de programas
• Software matemático
• Hoja de cálculo
• Calculadora graficadora
Herramientas de Cálculo
NIVELES DE LENGUAJES DE PROGRAMACIÓN
Bajo Nivel
Lenguajes declarativos(4ª. Generación)
Lenguajes de alto nivel(Compilados o interpretados)
Lenguajes ensambladores
Lenguajes máquina
Alto Nivel
Herramientas de Cálculo
Módulos de un Algoritmo
Datos de entradaMódulo 1
Procesamiento de los datosMódulo 2
Impresión de resultadosMódulo 3
Algoritmo
Módulo 1: representa la operación que permite el ingreso de los datosdel problema
Módulo 2: representa la operación o conjunto de operacionessecuenciales, cuyo objetivo es obtener la solución del problema
Módulo 3 : representa una operación o conjunto de operaciones quepermite comunicar al exterior el o los resultados obtenidos
Herramientas de Cálculo
Algoritmo• Conjunto finito de instrucciones bien definidas para lograr
alguna tarea (objetivo), que dado un estado inicial, terminaráen un estado final una vez alcanzado un criterio.
Ejemplo 1: Torre de Hanoi http://www.wikipedia.org/
• El objetivo es mover todos los discos de su posición inicial a otra guía, obedeciendo las reglas:
• Sólo se puede mover un disco a la vez• Ningún disco se puede poner sobre un disco menor
¿Cuántos pasos para “n” discos?
Herramientas de Cálculo
Características de un Algoritmo
Donald E. Knuth Fundamental Algorithms Vol. 1, 2nd edition
• Finito• Definido con Precisión• Entradas• Salidas• Efectividad
Herramientas de Cálculo
+ Sumar
- Menos
* Multiplicación
/ División± Mas o menos
= Equivalente a
> Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que
<> Diferente de
Si
No
True
False
Common Language Runtime
Código fuente
C++, C#, VB o cualquier otro lenguaje
Compilación
Assembly
DLL o EXE(Strong name opcional)
Compilación
Herramientas de Cálculo
FORTRANALGOL 60 COBOL
50
60
70
80
90
SimulaSmalltalk
Pascal
AdaC
PL/I
LISP
ML
Miranda
Prolog
Historia
Lenguajes de Programación
Historia1950 1960 1970 1980 1990
Fortran(54)
PL/I(66)
Ada(95)
Java(96)
Basic(66)
C(72)
Pascal(70)
Cobol(58)
Algol(60)
Simula(67) Smalltalk(80)
C++(89)
ENSA
MB
LAD
OR
Eiffel (86)
Ada(83)
Lenguajes de Programación
PERSPECTIVA HISTÓRICA DE VARIOS LENGUAJES
Procedimiento de datos
Propósito General
Inteligencia artificial
Procesamiento de texto
Programación de sistemas
Área de aplicación
Origen lingüístico 1960 1970 1980
Científica
FORTRAN I FORTRAN II FORTRAN IV ANS
FORTRAN 77FORTRAN IV ANS
FORTRAN Pascal ANS
Pascal
Algebra
Inglés
Lambda
calculo
Algoritmo de Markov
Maquina de Von Neumann
Algol 58 Algol 60
Ensamblador yLenguajes maquina
PROLOG
BASICCOBOL 58
LISP
LISP 1,5
SNOBOL
SNOBOL 3SNOBOL 4
ICON
ANS AdaAda
ModulaModula-2
ANS BASIC
UCSD PascalAPL ANS
COBOL 68PL/I
ANS PL/IANS PL/I ANS PL/I
(G)
C
Lenguajes de Programación
PERSPECTIVA HISTÓRICA DE VARIOS LENGUAJES
Lenguajes de Programación
Lenguajes de Programación• Son herramientas que nos permiten crear programas y
software. Entre ellos tenemos Fortran, C, Delphi, Qbasic,Visual Basic, Pascal, Java, etc..
• Una computadora funciona bajo control de un programael cual debe estar almacenado en la unidad de memoria;tales como el disco duro.
• Los lenguajes de programación facilitan la tarea deprogramación, ya que disponen de formas adecuadasque permiten ser leídas y escritas por personas.
Lenguajes de Programación
Lenguajes de Programación• Los lenguajes de programación se representan en forma
simbólica y en manera de un texto los códigos que podránser leídos por una persona tales como:
1 celulares
2 cajeros Automáticos
3 los mp3
4 Calculadoras
Lenguajes de Programación
Lenguajes de ProgramaciónHay lenguajes de programación que utilizancompilador
QUE ES UN COMPILADOR……..?Un compilador es un programa que, a su vez, traduce unprograma escrito en un lenguaje de programación a otrolenguaje de programación
La razón principal para querer usar un compilador estraducir un programa de un lenguaje de alto nivel, a otrolenguaje de nivel inferior.
Lenguajes de Programación
Lenguajes de Programación
Los lenguajes de programación se determinansegún el nivel
Nivel Bajo
Nivel Medio
Nivel Alto
Lenguajes de Programación
¿Cuáles son los criterios usados?• Tres criterios usados comúnmente cuando se
evalúan los lenguajes de programación son:
• Cuán fácil se pueden leer y entender programas (readability)
• Cuán fácil se pueden escribir programas (writability)• Cuán confiables son los programas (reliability)
• Recuerde: no existe un lenguaje de programación que se pueda clasificar como el mejor de todos. Si existiera, todo el mundo lo usaría.
Comparación de Lenguajes
Muchas Gracias