Catedra Metodos Numericos 2015

Anuncio
CATEDRA 0
2
Facultad de Ingeniería de Minas, Geología y Civil
Departamento académico de ingeniería de minas y civil
METODOS
NUMERICOS
Ingeniería Civil
ING. CRISTIAN CASTRO P.
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:
•
•
•
•
Utilerías
Software de aplicación
•
•
•
Compilados: Lenguaje C, Pascal, Fortan
Interpretados: Basica, Visual Basic.
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 en
el 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 costo
del sistema. El costo del software en un PC es a
menudo mas caro que la PC.
Costos
• Cuesta mas mantener el software que desarrollarlo.
Para sistemas con una larga vida, este costo se
multiplica.
• La Ingeniería de Software concierne a un desarrollo
efectivo en cuanto a costes del software.
Eficiencia
REPRESENTACION DE LOS NUMEROS
EN LA COMPUTADORA
• ENTEROS
• REALES
SISTEMA DE ARITMETICA DE PUNTO FLOTANTE
Unidades de Medida de Memoria
Nombre
Abrev.
Factor
Tamaño en el SI
kilo
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
E
260 =
1 152 921 504 606 846 976
1018 = 1 000 000 000 000 000 000
Z
270 =
1 180 591 620 717 411 303 42
4
1021 =
1 000 000 000 000 000 000 000
yotta
Y
280 =
1024 =
1 208 925 819 614 629 174 70
1 000 000 000 000 000 000 000 000
6 176
Bronto
B
290 = 1024 Yottabytes
exa
zetta
1027 =
1 000 000 000 000 000 000 000 000
Ley de Moore
Herramientas de Cálculo
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
Lenguajes declarativos
(4ª. Generación)
Alto Nivel
Lenguajes de alto nivel
(Compilados o interpretados)
Lenguajes ensambladores
Bajo Nivel
Lenguajes máquina
Herramientas de Cálculo
Módulos de un Algoritmo
Algoritmo
Datos de entrada
Módulo 1
Procesamiento de los datos
Módulo 2
Impresión de resultados
Módulo 3
Módulo 1: representa la operación que permite el ingreso de los datos
del problema
Módulo 2: representa la operación o conjunto de operaciones
secuenciales, cuyo objetivo es obtener la solución del problema
Módulo 3 : representa una operación o conjunto de operaciones que
permite 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/
¿Cuántos pasos para “n” discos?
•
•
•
El objetivo es mover todos los discos de su posición inicial a o
tra 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
Herramientas de Cálculo
•
•
•
•
•
Características de un
Algoritmo
+
Sumar
-
Menos
Donald E. Knuth Fundamental Algorithms
Vol. 1, 2nd edition
*
Multiplicación
/
División
±
Mas o menos
=
Equivalente a
>
Mayor que
<
Menor que
>=
Mayor o igual que
<=
Menor o igual que
<>
Diferente de
Finito
Definido con Precisión
Entradas
Salidas
Efectividad
Si
No
True
False
Herramientas de Cálculo
Compilación
Common Language Runtime
Assembly
Código fuente
Compilación
C++, C#, VB o
cualquier otro
lenguaje
(Strong name opcional)
DLL o EXE
Lenguajes de Programación
Historia
50
60
70
80
90
FORTRAN
ALGOL 60
PL/I
Simula
Pascal
Smalltalk
C
Ada
COBOL LISP
Prolog
ML
Miranda
Lenguajes de Programación
1950
1960
1970
1980
PL/I(66)
Historia
Eiffel (86)
Ada(95)
Ada(83)
Cobol(58)
ENSAMBLADOR
1990
Pascal(70)
Java(96)
Algol(60)
C(72)
Fortran(54)
Simula(67)
Basic(66)
C++(89)
Smalltalk(80)
Lenguajes de Programación
PERSPECTIVA HISTÓRICA DE VARIOS LENGUAJES
Área de
aplicación
Origen
lingüístico
1960
1970
ANS
FORTRAN I FORTRAN II FORTRAN IV
Científica
Algebra
Algol 58 Algol 60
FORTRAN IV ANS
BASIC
Procedimiento de datos
Inglés
COBOL 58
APL
Propósito General
Lambda
Inteligencia artificial
calculo
Programación de
sistemas
Algoritmo de
Markov
Maquina de
Von Neumann
FORTRAN 77
FORTRAN Pascal
ANS
ANS
BASIC
COBOL 68
ANS
PL/I
PL/I
ANS
UCSD Pascal
Pascal
LISP
ANS PL/I
(G)
PROLOG
LISP 1,5
Procesamiento de texto
1980
SNOBOL 3
SNOBOL
ICON
SNOBOL 4
C
Ensamblador y
Lenguajes maquina
ANS Ada
Ada
Modula
Modula-2
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 programa
el cual debe estar almacenado en la unidad de memoria;
tales como el disco duro.
• Los lenguajes de programación facilitan la tarea de
programación, ya que disponen de formas adecuadas
que 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án
ser 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ón
Hay lenguajes de programación que utilizan
compilador
QUE ES UN COMPILADOR……..?
Un compilador es un programa que, a su vez, traduce un
programa escrito en un lenguaje de programación a otro
lenguaje de programación
La razón principal para querer usar un compilador es
traducir un programa de un lenguaje de alto nivel, a otro
lenguaje de nivel inferior.
Lenguajes de Programación
Lenguajes de Programación
Los lenguajes de programación se determinan
según el nivel
Nivel Bajo
Nivel Medio
Nivel Alto
Comparación de Lenguajes
¿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 (re
adability)
• 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.
Muchas Gracias
Descargar