Sie sind auf Seite 1von 24

MTODOS NUMRICOS Y APLICACIONES COMPUTACIONALES

Apuntes
1.

Introduccin a la computacin

2.

Lenguajes de programacin

3.

Sistema operativo

4.

La resolucin de problemas con computadora

5.

Mtodos numricos y su importancia

6.

Algoritmo

1. Introduccin a la computacin

Definicin de computadora: una computadora es un dispositivo


electrnico utilizado para procesar informacin y obtener resultados.
La computadora es una maquina capaz de realizar y controlar a gran
velocidad clculos y procesos complicados que requieren una toma
rpida de decisiones. Su funcin consiste, por tanto, en tratar la
informacin que se le suministra y proveer los resultados requeridos.
Tipos de computadoras analgico y digital: vamos a ver un ejemplo
que nos permita distinguir entre codificacin analgica y codificacin
digital. Imaginemos un sistema computarizado de control de la
climatizacin de un edificio, que emplea como dato la temperatura
exterior, mediad por un termmetro. La lectura obtenida debe ser
codificada y transmitida mediante conductores elctricos a la
computadora. Podemos hacer la codificacin de distintas formas:
Podemos establecer un convenio de proporcionalidad entre la
temperatura y la tensin de salida, de modo que a cada grado
centgrado corresponda un voltio de tensin. Con este tipo de
codificacin, con un solo valor de tensin a la salida, obtendramos la
informacin. Por ejemplo, a una temperatura de 20,5 c
corresponderan 20,5 v. A este tipo de codificacin se le denomina
analgica. Otro tipo de codificacin que podramos emplear seria la
digital. Para ello tomaramos cada cifra de la lectura obtenida y la
transmitiramos como un dato distinto. Tendramos que establecer un
convenio que indicara l numero d cifras que transmitiran, la
posicin de la coma decimal, y la equivalencia entre las cifras y las
tensiones que les representan. Si adoptramos el convenio de
transmitir tres cifras, una de ellas despus de la coma y una
proporcionalidad de un voltio por unidad, para transmitir el valor de
20,5 c enviaramos una tensin de 2 v, luego una de 0 v, y ms tarde
una de 5 v. Este tipo de codificacin seria de tipo digital decimal, ya
que las cifras que transmitimos pertenecen al tipo de numeracin de
nominada digital.
Elementos que integran una computadora:
o Hardware: son todos aquellos componentes fsicos de una
computadora, todo lo visible y tangible. El hardware realiza las
4 actividades fundamentales: entrada, procesamiento, salida y
almacenamiento secundario. Se han desarrollado mucha
jerigonza en el campo de la computacin. l termino hardware
se refiere a los aspectos fsicos de los aparatos o equipos. Los
usos del hardware incluyen la conversin de datos primos a una
forma aceptable de entrada para la computadora; transferir los
datos e instrucciones de un lugar a otro dentro de la

computadora y los instrumentos de control. El hardware


incluye en la computadora es en s, los aparatos de
almacenamiento externo (como cintas, discos y tambores
magnticos) y el equipo de entrada-salida (como las lectoras de
tarjetas, impresoras y terminales).
COMPONENTES DEL HARDWARE:
Unidad de control: realiza las funciones de direccin
central, interpreta las instrucciones, indica las
acciones que ha de realizar, y asigna las tareas a
las distintas partes del conjunto.
Unidad central de proceso (c.p.u.): la unidad central
de proceso u.c.p dirige y controla el proceso de
informacin realizado por la computadora. La u.c.p.
consta de dos componentes: unidad de control y
unidad aritmtica lgica. La unidad de control
coordina las actividades de la computadora y
determina que operaciones se deben realizar y en
que orden; la unidad aritmtica lgica realiza
operaciones aritmticas y lgicas.
Memoria central: la memoria es de dos tipos: rom y
ram. La memoria rom (siglas que corresponden a la
expresin inglesa read only memory, es decir,
memoria de solo lectura) no puede alterarse, viene
prefijada fsicamente por el fabricante. La memoria
ram (siglas de la expresin inglesa random access
memory, o sea, memoria de acceso aleatorio) es la
que el usuario puede utilizar libremente.
Perifricos: los perifricos son elementos que
forman parte del sistema fsico del equipo. Los
fundamentales son el teclado, el monitor, la unidad
lectora de disco, la impresora, el ratn o mouse, el
escner, la palanca de control (joystick) y el
acoplador acstico o mdem, entre otros.
Dispositivos de entrada: son maquinas que
convierten los datos y programas en una forma que
la c.p.u. puede entender y procesar. Los dispositivos
de salida son maquinas que convierten los datos
procesados en una forma que los usuarios pueden
comprender. Los dispositivos de almacenamiento
secundario son maquinas que pueden poner
fcilmente a disposicin de la c.p.u. datos y
programas usados con frecuencia. Dispositivos de

entrada salida son aquellos que nos permiten


introducir y que tambin nos muestra informacin.
o El software (los programas): conjunto de instrucciones
codificadas, que son interpretadas y ejecutadas por la
computadora. Archivos y programas que se encuentran en una
computadora. Se emplean para hacer referencia a los
programas que se ejecutan en una p.c. las operaciones que
debe realizar el software son especificadas por una lista de
instrucciones, llamadas programas o software, el software se
divide en dos grupos: software del sistema y software de
aplicaciones.
Usos de las computadoras: las computadoras tienen infinidad de usos
entre los cuales podemos citar los siguientes: Investigacin.
Educacin. Contabilidad. Oficinas. Hogar.
2. Lenguajes de programacin
Los lenguajes de programacin cierran el abismo entre las
computadoras, que slo trabajan con nmeros binarios, y los
humanos, que preferimos utilizar palabras y otros sistemas de
numeracin. Mediante los programas se indica a la computadora qu
tarea debe realizar y como efectuarla, pero para ello es preciso
introducir estas ordenes en un lenguaje que el sistema pueda
entender. En principio, el ordenador slo entiende las instrucciones en
cdigo mquina, es decir, l especifico de la computadora. Sin
embargo, a partir de stos se elaboran los llamados lenguajes de alto
y bajo nivel. Una computadora trabaja siempre con un conjunto muy
reducido de instrucciones las cuales forman el cdigo o lenguaje de
maquina. Estas instrucciones se codifican de forma binaria e indican
al procesador las operaciones elementales a realizar, como mover
una palabra de una posicin a otra de memoria. Los programas
realizados directamente en lenguaje maquina son los que permiten al
programador obtener mas rendimiento de la computadora, tanto en
velocidad como en versatilidad. En realidad, este cdigo es
raramente utilizado por los programadores, ya que tiene el
inconveniente de estar formado por interminables listas de unos y
ceros, totalmente incomprensibles para una persona. En los aos
cuarenta era el nico cdigo de programacin utilizado, pero pronto
se crearon los primeros programas ensambladores.

El ensamblador es un programa capaz de traducir el lenguaje


ensamblador a lenguaje maquina. El lenguaje ensamblador no es mas
que una representacin ms comprensible para las personas de las
instrucciones del cdigo maquina. Sin embargo, el lenguaje
ensamblador cuenta con una desventaja importante: sigue limitado
por el pequeo numero de instrucciones elementales que es capaz de
realizar el procesador. El lenguaje de maquina y el lenguaje
ensamblador tuvieron su momento de apogeo con las computadoras
de la primera generacin lentas y con una memoria muy limitada.
A mediados de los aos cincuenta apareci un nuevo tipo de
lenguajes de programacin denominados de alto nivel. En estos
lenguajes se escriben las instrucciones en notaciones mucho ms
resumidas que en el lenguaje ensamblador. La computadora es
totalmente incapaz de trabajar directamente con un programa de
lenguaje de alto nivel. Un programa llamado compilador debe traducir
cada instruccin a cdigo maquina. La gran ventaja de los lenguajes
de alto nivel es, adems de su brevedad, el hecho de no trabajar con
posiciones de memoria. Sino con nombres de variables. Es el
programa compilador quien traducira el programa que hemos
escrito, llamado programa o cdigo fuente, a cdigo maquina
ejecutable. El programa obtenido, llamado cdigo objeto, es el que
debemos suministrar a la computadora cada vez que deseemos
hacerla trabajar.
Posteriormente ha aparecido un nuevo tipo de lenguajes que no
deben ser tratados por el compilador antes de ser ejecutados; nos
referimos a los lenguajes interpretados. En estos lenguajes se trabaja
siempre con el cdigo fuente, es decir el programa escrito en
lenguaje de alto nivel, y un programa interprete. Este ultimo contiene
una serie de subprogramas o subrutinas en cdigo maquina que se va
a ejecutando a medida que se leen nuestras instrucciones. Este tipo
de lenguajes tiene la gran ventaja de que el programa puede conocer
el funcionamiento del programa a medida que lo escribe, pues no
tiene que esperar al final para realizar la compilacin a fin de probar
el cdigo objeto.
Los lenguajes de programacin sirven para escribir programas que
permitan la comunicacin usuario / maquina. Unos programas
especiales llamados traductores convierten las instrucciones escritas
en lenguajes de programacin en instrucciones escritas en lenguajes
que esta pueda entender. Los programas de utilidad facilitan el uso
de la computadora; los programas que realizan tareas concretas se
denominan programas de aplicacin. Se debe diferenciar entre el acto

de crear un programa y la accin de la computadora cuando ejecuta


las instrucciones del programa. La creacin de un programa se hace
inicialmente en papel y a continuacin se introduce en la
computadora y se convierte en lenguaje entendible por la
computadora. La entrada puede tener una variedad de formas, tales
como nmeros o caracteres alfabticos. La salida puede tambin
tener formas, tales como datos numricos o caracteres, seales para
controlar equipos o robots, etc.
Clasificacin de lenguajes:
o Lenguaje maquina: son aquellos cuyas instrucciones son
directamente entendibles por la computadora y no necesitan
traduccin posterior para que la u.c.p. pueda comprender y
ejecutar el programa. Se expresan en trminos de la unidad
de memoria ms pequeas, el bit. Estas instrucciones sern
fciles de leer por la computadora y difciles por un
programador, y viceversa. Esta razn hace difcil escribir
programas en cdigo o lenguaje maquina y requiere buscar
otro lenguaje para comunicarse con la computadora, pero
que sea ms fcil de escribir y leer por el programador.
o Lenguajes de bajo nivel (ensambladores): la programacin
en lenguaje maquina es difcil, por ello se necesitan
lenguajes que permitan simplificar este proceso. Los
lenguajes de bajo nivel han sido diseados para ese fin.
Estos lenguajes son generalmente dependientes de la
maquina, dependen de un conjunto de instrucciones
especificas de la computadora. Un lenguaje tpico de bajo
nivel es el lenguaje ensamblador. En este lenguaje las
instrucciones se escriben en cdigos alfabticos conocidos
como nemotcnicos. Las palabras nemotcnicas son mucho
ms fciles de recordar que las secuencias de dgitos 0 y 1.
Una instruccin tpica en ensamblador pueden ser: add x,y,z
o Lenguajes de alto nivel: los lenguajes de programacin de
alto nivel son aquellos en los que las instrucciones o
sentencias a la computadora son escritas con palabras
similares a los lenguajes humanos, lo que facilita la escritura
y la fcil comprensin por el programador. Los lenguajes de
programacin son en general- transportables, esto significa
que un programa escrito en un lenguaje de alto nivel se
puede escribir con poca o ninguna modificacin en
diferentes tipos de computadora, otra propiedad es que son
independientes de la maquina, esto es, las sentencias del
programa no dependen del diseo o hardware de una

computadora especifica. Los programas escritos en lenguaje


de alto nivel no son entendibles directamente por la
maquina, necesitan ser traducidos a instrucciones en
lenguaje maquina. Los programas que realizan esta
traduccin se llaman compiladores, y los programas escritos
en una lenguaje de alto nivel se llaman programas fuente. El
proceso de traduccin de un programa fuente se denomina
compilacin y tras la fase de enlace se obtiene un programa
ejecutable directamente por la computadora.
Clasificacin de lenguajes de alto nivel:
o Lenguaje Basic: proviene de las siglas beginners all-purpose
symbolic instruction code (cdigo de instruccin simblico
de uso general para principiantes).se creo en el dartmouth
college en combinacin con el primer sistema de tiempo
compartido en el mundo. Al paso de los aos, el lenguaje
Basic se ha convertido en uno de los lenguajes de
programacin ms populares y de ms fcil acceso para
almacenes especializados. Debido a que resulta fcil de
utilizar y que las necesidades de almacenamiento de su
traductor de lenguajes son pequeas, trabaja con eficiencia
en casi todas las computadoras personales. Existen muchas
versiones del lenguaje Basic.
Caractersticas: casi toda caracterstica principal se
relaciona con su facilidad de uso para los principiantes. Entre
estas caractersticas se encuentran la nominacin
simplificada de variables, el formato opcional, el modo de
programacin conversacional y el fcil diagnostico.
Limitaciones: las versiones de Basic no estn diseadas
para facilitar los programas estructurados. Existen tantas
versiones de Basic, un programa desarrollado en una
computadora puede requerir modificaciones sustanciales
para ejecutarse en otra mquina.
o Lenguaje cobol: su nombre proviene de las siglas de
commmon bussiness-oriented language (lenguaje comn
orientado a los negocios)fue introducido por primera vez en
los inicios de la dcada de 1960, y es el principal lenguaje de
procesamiento de datos empresariales que se utiliza
actualmente. Hasta que apareci, no haba un lenguaje
particularmente adecuado para las aplicaciones comerciales
de las empresas como nomina, facturacin, cuentas por
pagar y cobrar, etc. Representantes de los principales
productores de computadoras se entrevistaron en

Washington con usuarios de la industria y del gobierno para


estudiar este producto. Subsecuentemente formaron un
comit para delinear un lenguaje, y el resultado fue cobol.
Caractersticas: muchas caractersticas diferencian al
cobol de otros lenguajes. Casi todas ellas se relacionan con
su orientacin al procesamiento de datos de negocios,
incluso la independencia de la mquina, la auto
documentacin y la orientacin a la entrada y salida.
Limitaciones: debido a que los programas escritos en cobol
utilizan largos nombres como los del idioma ingles y
especifican los formatos con mucho detalle, tienden a ser
extensos. Asimismo, se necesita un traductor de lenguaje
grande y complejo para convertir los programas en lenguaje
de mquina, lo cual hace al cobol difcil de implantar en
muchas computadoras ms pequeas. Debido a su
orientacin al procesamiento de datos de negocios, no
resulta adecuado para ingeniera.
o Lenguaje fortran: su nombre proviene de formula translator
(traductor de formulas), data del ao de 1954 y el lenguaje
comercial de alto nivel superviviente ms antiguo. Fue
diseado por cientficos y esta orientado hacia la resolucin
de problemas cientficos y de ingeniera. Las aplicaciones de
procesamiento de datos de negocios requieren complicadas
operaciones de entrada / salida y clculos relativamente
simples. Las aplicaciones cientficas y de ingeniera, en
contraste, requieren clculos complejos y operaciones de
entrada / salida relativamente simples. El fortran ha probado
ser de utilidad en ciertos tipos de aplicaciones de negocios.
Pero seguir siendo el lenguaje popular cientfico y de
ingeniera por muchos aos.
Limitaciones: el lenguaje fortran se cre mucho antes de
que la programacin estructurada comenzara a recibir
considerable atencin, de modo que es un tanto dbil en
esta rea si se compara con algunos de los lenguajes ms
recientes. La lgica de los programas escritos en lenguaje
fortran es ms difcil de seguir que la lgica de algunos otros
lenguajes, y es inferior al cobol para aplicaciones de
procesamiento de datos de negocios. Pero seguir siendo un
lenguaje popular cientfico y de ingeniera por muchos aos.
o Lenguaje pascal: el lenguaje pascal, as llamado en honor al
matemtico blaise pascal, es un lenguaje de programacin

relativamente nuevo. Fue creado hacia 1970 por el profesor


niklaus wirth de zurich Suiza.
Caractersticas: el pascal se cre principalmente para
cubrir la necesidad de un vehculo de enseanza que
alentara la programacin estructurada. Sus caractersticas
principales son su orientacin estructurada fcil de aprender
y su eficiencia de memoria.
Limitaciones: la mayor debilidad del lenguaje pascal es que
tiene capacidades marginales de entrada y salida. De este
modo, no es tan adecuado como el cobol para las
aplicaciones de procesamiento de datos de negocios como
lenguaje de resolucin de problemas, sin embargo se espera
que d cerrada competencia al fortran y al Basic.
o Lenguaje pl / 1: pl/1 (siglas en ingls de programming
language 1) fue introducido a mediados de la dcada de
1960 por IBM como lenguaje de propsito general. Es decir,
fue diseada para aplicaciones de procesamiento de datos
tanto cientficos como de negocios. Es un lenguaje
extremadamente poderoso, con grandes capacidades de
programacin estructurada con fines de enseanza se han
creado variantes de pl/1, como pl/c.
o Lenguaje apl: apl (siglas en ingls de a programming
language) fue creado en 1967, bajo los auspicios de IBM, con
el objeto de realizar con rapidez trabajos de resolucin de
problemas. Es un lenguaje extraordinariamente compacto y
solo puede utilizarse en un teclado especial. Al igual que
Basic, es un lenguaje altamente interactivo apl tiene dos
modos de operacin: calculadora y programa.

Lenguajes de muy alto nivel: los lenguajes de muy alto nivel ofrecen
la atractiva ventaja de ser relativamente fciles de aprender y utilizar.
Algunos de estos lenguajes se denominan amigables para el usuario,
debido a que permiten a usuarios finales con poco o ningn
adiestramiento formal en programacin trabajar sin sufrimiento en el
sistema computacional con ciertos tipos de aplicaciones interactivas
despus de slo unas cuantas horas de capacitacin. Comparados
con los lenguajes de alto nivel, sin embargo, los de muy alto nivel
carecen de flexibilidad: cada uno est diseado para resolver
nicamente un tipo especfico de problema. Algunos lenguajes de
muy alto nivel son:
generador de informes, software de
procesamiento de palabras., hojas electrnicas de trabajo, paquetes
de gratificacin.

3. Sistema operativo
Concepto de sistema operativo: conjunto de programas que sirven de
interpretes entre el usuario y la computadora. Un sistema operativo
consta de una serie de programas que controlan todas las actividades
que la computadora realiza, su funcin, consiste en controlar el
trabajo que la computadora efecta. El sistema operativo controla la
posibilidad o imposibilidad de ejecucin de un programa. El sistema
operativo controla la entrada de programas en la memoria, permite el
acceso del programa a la zona de memoria requerida y abre paso o
no a la entrada de mas programas en la memoria.
Clasificacin de los sistemas operativos:
o OS/2: de todos los sistemas operativos os/2 ser tal vez el de
mayor impacto durante la presente dcada, o quizs sea
superado solo por unix. Al parecer, os/2 va a dominar en el
mercado del IBM ps/2 y en el de los computadores
compatibles con el at, en tanto que unix dominara en el
mercado de las estaciones de trabajo avanzadas y de los
sistemas abiertos. Con base en el xito de MS-dos, al que
IBM llama dos, IBM y Microsoft acordaron desarrollar juntos
os/2 como sistema operativo de las siguientes generaciones
para la lnea IBM ps/2 de computadores personales,
sucesores del bim PC. Os/2 es un sistema operativo mas
potente y por tanto mas complejo que dos. La arquitectura
del ps/2 incluye micro channel, el canal asncrono interno
propiedad de IBM.
o Apple macintosh: un computador personal que se diseo
pensando en el usuario novato. qu significa que un
computador sea amable con el usuario?, qu tcnicas
pueden hacer a un computador fcil de usar?, qu
consideraciones en el rea de los sistemas operativos son
importantes para el diseo del sistema amable con el
usuario?. El presente anlisis supone que el lector esta
familiarizado hasta cierto punto con el macintosh y algunas
de sus caractersticas fundamentales, como el control del
ratn, las ventanas, los mens despegables y los grficos
con iconos. La interfaz con el usuario de macintosh orientado
a los grficos y al razn hizo que la computacin personal se
volviera mucho mas amable y cmoda. Resulta interesante
que IBM no introdujo una interfaz grafica de potencia
comparable hasta la aparicin del administrador de
presentacin de os/2 en 1988. Cuando fue anunciado en
1984, el macintosh acaparo la atencin de la industria, pero

no tenia las caractersticas necesarias para el xito en


ambientes de negocios. Hoy da, los diversos modelos
macintosh abarcan toda la gama desde sistemas de
computo personales a nivel bsico, pasando por sistemas de
negocios a gran escala, hasta estaciones de trabajo de alto
rendimiento para ingeniera.
o VM: una maquina virtual es una ilusin de una maquina real.
La crea un sistema operativo de maquina virtual, el cual
hace que una sola maquina real aparente ser varias
maquinas reales. Desde el punto de vista del usuario, las
maquinas virtuales pueden parecer maquinas reales ya
existentes, o pueden ser drsticamente diferentes. El
concepto ha mostrado su vala y se han desarrollado muchos
sistemas operativos de maquina virtual. De ellos, el de uso
mas generalizado es vm de IBM.
o MVS: mvs es uno de los dos sistemas operativos primarios
de IBM para macrocomputadores; el otro es vm, descrito
anteriormente. IBM produce cerca de la mitad de los
macrocomputadores que se fabrican cada ao en el mundo.
Los sistemas de macrocomputadores han tendido a
conservar su naturaleza centralizada en vez de volverse
distribuidos, y a menudo dan apoyo a cientos o hasta miles
de usuarios. Con la enorme capacidad de manejo de
direcciones de mvs/esa, es probable que mvs siga siendo el
principal sistema operativo para procesamiento por lotes de
IBM para sus macrocomputadores, al menos durante la
presente dcada, aunque sin duda enfrentara una fuerte
competencia por parte de vm en el caso de los ambientes
interactivos.
o MS-DOS: MS-dos apareci en 1981. Fue el primer sistema
operativo para microcomputadores de 16 bit. En 1988 se
haban vendido mas de 10 millones de copias, y el numero
crece rpidamente conforme se coloca en el mercado el
sistema personal 2 de IBM. El crecimiento y el xito de MSdos no pueden separarse del desarrollo del computador
personal de IBM: el IBM PC. El primer computador verdadero
fue el Altar, desarrollado en 1975 por mits. Se basaba en el
microprocesador 8080 de intel y contaba con 256 bytes de
memoria. Se venda por 397 dlares sin teclado, pantalla,
disco o cinta. Estaba dirigido principalmente a personas cuyo
pasatiempo era la computacin. Bill Gates y Paul Allen de
Microsoft desarrollaron una versin de Basic para el Altar.

Allen se fue a trabajar a mits y pidi a Gates que desarrollara


una versin de Basic que trabajara con discos flexibles. Esta
tarea obligo a la creacin de un sistema de administracin
de archivos basado en el empleo de una tabla de asignacin
de archivos residente en memoria, no en disco, que
finalmente se convirti en el fundamento de MS-dos.
o UNIX: los sistemas operativos unix desarrollados en bell
laboratories se encuentran entre los xitos notables en el
campo de los sistemas operativos. Los sistemas unix ofrecen
un ambiente amable para el desarrollo de programas y el
procesamiento de textos. Facilitan la combinacin de unos
programas con otros, lo cual fomenta un enfoque modular,
de piezas de construccin y orientado a las herramientas,
para el diseo de programas. Una vez transportado un
sistema operativo unix a otra maquina un enorme acervo de
programas de utilidad general queda disponible en la
maquina de destino; esta ha sido la clave del xito de los
sistemas unix, de los cuales se han embarcado mas de un
milln. Es posible que dichos sistemas lleguen a convertirse
en los sistemas operativos mas utilizados a nivel mundial.
Usos de los sistemas operativos: los sistemas operativos se usan para
poder utilizar nuestra computadora ya que ellos se encargan de
administrar todos los recursos de la misma y as hacerla mas
eficiente y utilizable.

4. La resolucin de problemas con computadora


El proceso de resolucin de un problema con una computadora
conduce a la escritura de un programa y a su ejecucin en la misma.
Aunque el proceso de disear programas es un proceso creativo, se
pueden considerar una serie de fases o pasos comunes, que
generalmente deben seguir todos los programadores. Las fases de
resolucin de un problema con computadora son:
o Anlisis del problema: esta fase requiere una clara
definicin, donde se contemple exactamente lo que debe
hacer el programa y el resultado o solucin deseada. Dado
que se busca una solucin por computadora, se precisan
especificaciones detalladas de entrada y salida. Para poder
definir bien un problema es conveniente responder a las
siguientes preguntas:

qu entrada se requiere (tipo y cantidad)?

cul es la salida deseada (tipo y cantidad)?

qu mtodo produce la salida deseada?

o Diseo del algoritmo: En la etapa de anlisis del proceso


de programacin se determina que hace el programa. En la
etapa de diseo se determina como hace el programa la
tarea solicitada. Los mtodos mas eficaces para el proceso
de diseo se basan en el conocido por divide y vencers. Es
decir, la resolucin de un problema complejo se realiza
dividiendo el problema en sub problemas y a continuacin
dividir estos sub problemas en otros de nivel mas bajo, hasta
que pueda ser implementada una solucin en la
computadora. Este mtodo se conoce tcnicamente como
diseo descendente o modular. El proceso de romper el
problema en cada etapa y expresar cada paso en forma mas
detallada se denomina refinamiento sucesivo. Cada sub
problema es resuelto mediante un modulo que tiene un solo
punto de entrada y un solo punto de salida. Cualquier
programa bien diseado consta de un programa principal
que llama subprogramas que a su vez pueden llamar a otros
subprogramas. Los programas estructurados de esta forma
se dice que tienen un diseo modular y el mtodo de romper
el programa en mdulos mas pequeos se llama
programacin modular. El proceso que convierte los
resultados del anlisis del problema en un diseo modular

con refinamientos sucesivos que permitan una posterior


traduccin a un lenguaje se denomina diseo del algoritmo.
El diseo del algoritmo es independiente del lenguaje de
programacin en el que se vaya a codificar posteriormente.
HERRAMIENTAS DE PROGRAMACIN:
Diagramas de flujo: un diagrama de flujo (flowchart) es una
representacin grafica de un algoritmo. Los smbolos
utilizados han sido normalizados por el instituto
norteamericano de normalizacin (ANSI), y los mas
frecuentes empleados se muestran a continuacin:

Terminal

Proceso / Subprograma
Conectores

Entrada / Salida

Decisin

Seudo cdigo: el seudo cdigo es una herramienta de


programacin en la que las instrucciones se escriben en
palabras similares al ingles o espaol; que facilitan tanto la
escritura como la lectura de programas. En esencia, el seudo
cdigo se pueden definir como un lenguaje de
especificaciones de algoritmos. Aunque no existen reglas
para escritura del seudo cdigo en espaol, se ha recogido
una notacin estndar que ya es muy empleada en los libros
de programacin en espaol. Las palabras reservadas
bsicas se representaran en letras negritas minsculas.
Estas palabras son traducciones libre de palabras reservadas
de lenguajes como Basic, pascal, etc.
o Codificacin: codificacin es la escritura en un lenguaje de
programacin
de
la
representacin
del
algoritmo
desarrollada en las etapas precedentes. Dado que el diseo
de un algoritmo es independiente del lenguaje de
programacin utilizado para su implementacin, el cdigo
puede ser escrito con igual facilidad en un lenguaje o en
otro. Para realizar la conversin del algoritmo en programa
se deben sustituir las palabras reservadas en espaol por
sus homnimos en ingles, y las operaciones y instrucciones
correspondientes indicadas en lenguaje natural expresarlas
en el lenguaje de programacin correspondiente. Aunque,
lgicamente, no comprenda las sentencias del programa
anterior, es necesario observar las siguientes caractersticas
bsicas.

1.

Cabecera del programa. Nombre del programa,


autor, fecha de creacin, etc.
2.
Lista de variables. Es obligatoria su declaracin en
pascal.
3.
Legibilidad. Los programas deben ser lo mas
legibles posibles, por ello el espaciado y las
sangras se deben utilizar con frecuencia.
4.
Diseo modular. Este simple programa solo consta
de un modulo principal.
5. Documentacin. Los programas deben incluir
comentarios internos, en forma de lneas con
separadores o bien por * *.
o Compilacin y ejecucin: una vez que el algoritmo se ha
convertido en un programa fuente, es preciso introducirlo en
memoria mediante el teclado y almacenarlo posteriormente
en un disco. Esta operacin se realiza con un programa
editor, posteriormente el programa fuente se convierte en
un archivo de programa que se guarda en disco. El programa
fuente debe ser traducido a lenguaje maquina. Este proceso
se realiza con el compilador y el sistema operativo que se
encarga prcticamente de la compilacin. Si tras la
compilacin se presentan errores en el programa fuente, es
preciso volver a editar el programa, corregir los errores y
compilar de nuevo. Este proceso se repite hasta que no se
producen errores, obtenindose el programa objeto que
todava no es ejecutable directamente. Suponiendo que no
existen errores en el programa fuente, se debe instruir el
sistema operativo para que realice la fase de montaje o
enlace, carga, del programa objeto con las libreras del
programa del compilador. El proceso de montaje produce un
programa ejecutable. Cuando el programa ejecutable se ha
creado, se puede ya ejecutar desde el sistema operativo con
solo teclear su nombre. Suponiendo que no existen errores
durante la ejecucin, se obtendr la salida de resultados del
programa. Las instrucciones u ordenes para compilar y
ejecutar un programa pueden variar segn el tipo de
compilador.
o Verificacin y Depuracin: la verificacin o depuracin de
un programa es el proceso de ejecucin del programa con
una amplia variedad de datos de entrada, llamados datos de
test o prueba, que determinaran si el programa tiene
errores. Para realizar la verificacin se debe desarrollar una

amplia gama de datos de test: los valores normales de


entrada, valores extremos de entrada que comprueben los
limites del programa y valores de entrada que comprueben
los aspectos especiales del programa. La depuracin es el
proceso de encontrar los errores del programa y corregir o
eliminar dichos errores. Cuando se ejecuta un programa, se
pueden producir tres tipos de errores:
1. Errores de compilacin. Se producen normalmente por
un uso incorrecto de las reglas del lenguaje de
programacin y suelen ser errores de sintaxis. Si existe
un errores de sintaxis, la computadora no puede
comprender la instruccin, no se obtendr el programa
objeto y el compilador imprimir una lista de todos los
errores encontrados durante la compilacin.
2. Errores de ejecucin. Estos errores se producen por
instrucciones que la computadora puede comprender
pero no ejecutar. Ejemplos tpicos son: divisin por cero
y races cuadradas de nmeros negativos. En estos
casos se detiene la ejecucin del programa y se
imprime un mensaje de error.
3. Errores lgicos. Se producen en la lgica del programa
y la fuente del error suele ser el diseo del algoritmo.
Estos errores son los mas difciles de detectar, ya que
el programa puede funcionar y no producir errores de
compilacin ni ejecucin, y solo pueden advertir el
error por la obtencin de resultados incorrectos. En
este caso se debe volver a la fase de diseo del
algoritmo, modificar el algoritmo, cambiar el programa
fuente y compilar y ejecutar una vez mas.
o Documentacin y mantenimiento: la documentacin de
un programa consta de las descripciones de los pasos a dar
en el proceso de resolucin de un problema. La importancia
de la documentacin debe ser destacada por su decisiva
influencia en el producto final. Programas pobremente
documentados son difciles de leer, mas difciles de depurar
y casi imposibles de mantener y modificar. La
documentacin de un programa puede ser interna y externa.
La documentacin interna es la que se incluye dentro del
cdigo del programa fuente mediante comentarios que
ayudan a la comprensin del cdigo. Todas las lneas de
programas que comiencen con un smbolo { o con un
smbolo ( * son comentarios. El programa no los necesita y la
computadora los ignora. Estas lneas de comentarios solo
sirven para hacer los programas mas fciles de comprender.

La documentacin externa incluye anlisis, diagramas de


flujo y/o seudo cdigos, manuales de usuario con
instrucciones para ejecutar el programa y para interpretar
los resultados. La documentacin es vital cuando se desea
corregir posibles errores futuros o bien cambiar el programa.
Tales cambios se denomina mantenimiento del programa.
Despus de cada cambio la documentacin debe ser
actualizada para facilitar cambios posteriores. Es practica
numerar las sucesivas versiones de los programas 1.0, 1.1,
2.0, 2.1, etc, (si los cambios introducidos son importantes, se
varia el primer digito [1.0, 2.0,. . .], en caso de pequeos
cambios solo se varia el segundo digito [2.0, 2.1,. . .].)

5. Mtodos numricos y su importancia


El anlisis numrico trata de disear mtodos para aproximar, de una
manera eficiente, las soluciones de problemas expresados
matemticamente. La eficiencia del mtodo depende tanto de la
precisin que se requiera como de la facilidad con la que pueda
implementarse. En una situacin practica, el problema matemtico se
deriva de un fenmeno fsico sobre el cual se han hecho algunas
suposiciones para simplificarlo y para poderlo representar
matemticamente. Generalmente cuando se relajan las suposiciones
fsicas llegamos a un modelo matemtico mas apropiado pero, al
mismo tiempo, mas difcil o imposible de resolver explcitamente. Ya
que normalmente de todos modos el problema matemtico no
resuelve el problema fsico exactamente, resulta con frecuencia mas
apropiado encontrar una solucin aproximada del modelo matemtico
mas complicado que encontrar una solucin exacta del modelo
simplificado. Para obtener tal aproximacin se idea un mtodo
llamado algoritmo. El algoritmo consiste en una secuencia de
operaciones algebraicas y lgicas que producen la aproximacin al
problema matemtico y se espera que tambin al problema fsico,
con una tolerancia o precisin predeterminada.
Como la eficiencia de un mtodo depende de su facilidad de
implementacin, la eleccin del mtodo apropiado para aproximar la
solucin de un problema esta influenciada significativamente por los
cambios tecnolgicos en calculadoras y computadoras. Hace
veinticinco aos, antes del uso generalizado del equipo digital de
computo, no se podan aplicar los mtodos que requeran una gran
cantidad de computo, sin embargo, desde entonces, los adelantos en
el equipo de computo han hecho que estos mtodos sean mas y mas
atractivos. El factor limitante en la actualidad es generalmente la
capacidad de almacenamiento de la computadora, a pesar de que el
costo asociado con los tiempos de computo es, desde luego, tambin
un factor importante, la disponibilidad de computadoras personales y
de calculadoras programables de bajo costo es tambin un factor que
influye en la eleccin de un mtodo de aproximacin, ya que estas
pueden usarse para resolver muchos problemas relativamente
simples.
Las ideas bsicas sobre las cuales se apoyan la mayora de las
tcnicas numricas actuales se conocen ya desde hace algn tiempo,
al igual que los mtodos usados para predecir las cotas del error
mximo que se puede producir al aplicar los mtodos. Por lo tanto,
es de inters primordial determinar la manera en la que estos

mtodos se han desarrollado y como puede estimarse su error, ya


que, sin duda, algunas variaciones de estas tcnicas se usaran en el
futuro para desarrollar y aplicar procedimientos numricos
independientemente de la tecnologa.
El objetivo principal del anlisis numrico es encontrar soluciones
aproximadas a problemas complejos utilizando solo las operaciones
mas simples de aritmtica. En pocas palabras, se trata sencillamente
de resolver problemas difciles mediante muchos pasos fciles. Ello
significa identificar los procedimientos por medio de los cuales las
computadoras pueden hacer ese trabajo por nosotros. Los problemas
provienen de diversas reas de las matemticas, sobre todo del
lgebra y el anlisis; en ocasiones los limites o fronteras entre ellas
no estn bien definidos. Gran parte de la teora bsica la toma el
analista de esas reas.

6. Algoritmo
El objetivo del anlisis numrico es resolver problemas numricos
complejos utilizando solo operaciones simples de la aritmtica, con el
fin de desarrollar y evaluar mtodos para calcular resultados
numricos a partir de los datos proporcionados. Los mtodos de
calculo se denominan algoritmos.
Nuestros esfuerzos se centran en la bsqueda de algoritmos. Para
algunos problemas aun no se ha encontrado un algoritmo
satisfactorio, mientras que para otros hay varios, por lo que
deberemos elegir de entre ellos. Son varias las razones para elegir un
algoritmo en vez de otro; dos criterios evidentes son la rapidez y la
precisin. La rapidez es una ventaja evidente, aunque en el caso de
problemas pequeos dicha ventaja se ve casi eliminada por la
capacidad de la computadora. En problemas de grande escala, la
rapidez es aun un factor principal y un algoritmo lento tiene que
rechazarse por impractico. As, siendo otros factores iguales, es
seguro que el mtodo mas rpido ser el elegido.
Dado que una computadora esta compuesta de dispositivos que
realizan operaciones lgicas y aritmticas; los procedimientos
matemticos deben de simplificarse a tal grado que sean accesibles
para procesarse en una computadora. Este es uno de los objetivos
principales para el estudio de los mtodos numricos.
Las aplicaciones de los mtodos numricos son prcticamente
ilimitadas y se requieren conocimientos de la materia en disciplinas
tan variadas como: economa, contabilidad, mercadotecnia, fsica e
ingeniera industrial, civil, elctrica, mecnica, qumica, etc.
Asimismo, proporciona la formacin de criterios de decisin para la
eleccin
del
mtodo
adecuado,
dependiendo
del
equipo
computacional con el que nos estemos auxiliando, pudiendo ser este
desde una gran computadora hasta una calculadora de bolsillo
(programable o no), pasando por equipos orientados hacia uno o mas
usuarios, ya que el comportamiento de los procesos diferir mucho
dependiendo del equipo.

Un algoritmo es el procedimiento matemtico que nos indica la serie


de pasos y decisiones que vamos a tomar para la solucin de un
problema, debe producir un resultado en un tiempo finito. Los
mtodos que utilizan algoritmos se denominan mtodos algortmicos,
en oposicin a los mtodos que implican algn juicio o interpretacin
que se denominan mtodos heuristicos. Los mtodos algortmicos se
pueden implementar en computadoras; sin embargo, los procesos
heuristicos no han sido convertidos facilmente en las computadoras.
En los ltimos aos las tcnicas de inteligencia artificial han hecho
posible la implementacin del proceso heurstica en computadoras.
Ejemplos de algoritmos son: instrucciones para montar en una
bicicleta, hacer una receta de cocina, obtener el mximo comn
divisor de dos nmeros, etc. Los algoritmos se pueden expresar por
formulas, diagramas de flujo o n-s y seudo cdigos. Esta ultima
representacin es la mas utilizada en lenguajes estructurados como
turbo pascal.
Caractersticas de un algoritmo:
1. Finito: siempre debe terminar en un numero determinado de
pasos.
2. Definido: las acciones deben definirse sin ambigedad.
3. Entrada: puede tener una o varias entradas.
4. Salida: debe tener una o mas salidas.
5. Efectividad: todas las operaciones deben ser lo suficientemente
bsicas para que puedan hacerse exactamente en un determinado
tiempo, no mayor que el que tome una persona empleando lpiz y
papel.
Se debe tener en cuenta:
Precisin: determinacin, exactitud, puntualidad, concisin.
Exactitud: puntualidad y fidelidad en la ejecucin de una
cosa.
Cifras significativas: se dice que el numero p* aproxima a p
con t dgitos significativos (o cifras) si t es el entero mas
grande o negativo para el cual p p* < 5 x 10 p
Error absoluto: es la diferencia entre el valor exacto (un
numero determinado, por ejemplo) y su valor redondeado o
calculado: error absoluto = exacto calculado
Error relativo: es el error absoluto dividido entre un numero
positivo adecuado. Error relativo = exacto calculado
Error de redondeo: cuando se usa una calculadora o una
computadora digital para calcular clculos numricos, se

debe considerar un error inevitable, el llamado error de


redondeo. Este error se origina porque la aritmtica
realizada en una maquina involucra nmeros con solo un
numero finito de nmeros, con el resultado de que muchos
clculos se realizan con aproximaciones redondeadas de los
nmeros verdaderos.
Error de truncamiento: el termino error de truncamiento
generalmente se refiere al error involucrado al usar sumas
finitas o truncadas para aproximar la suma de una serie
infinita.
Error significativo: tener presente este tipo de error significa
que el numero de cifras significativas (es decir, que tengan
sentido y que sean validas) es algunas veces menor de los
esperado. Ocurre con mayor frecuencia cuando se restan
nmeros casi iguales, pero tambin puede ocurrir cuando
varios nmeros de magnitud y signo diferentes se suman o
cuando se emplea un divisor relativamente pequeo.
Error propagado: puede definirse como el error de salida
provocado por un error en la entrada, suponiendo que todos
los clculos intermedios se efectan exactamente (en
particular, sin error de redondeo). Incluye la evaluacin de
funciones cuando el valor del dominio es aproximado, etc.
Por supuesto, en una situacin realista todos los tipos de
error pueden intervenir, de modo que la salida de un proceso
contendr el error propagado mas los errores generados en
el proceso.

Das könnte Ihnen auch gefallen