Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Arquitectura y Algoritmos
Arquitectura y Algoritmos
Una computadora es una maquina electrnico mecnica la cual se utiliza para procesar informacin,
desempear algn trabajo, etc
La computadora posee esencialmente dos partes:
Hardware.- Es el conjunto de componentes fsicos de una computadora (equipo Fsico)
Software.- es el conjunto de programas que controlan el funcionamiento de una computadora (equipo Lgico)
1. HARDWARE
Conjunto de componentes fsicos de una computadora. Se compone de :
Almacena programas y datos durante su ejecucin Las memorias se pueden clasificar en dos grupos:
a) Las de lectura solamente ROM (Read Only Memory), la informacin est grabada en el de
manera permanente e inalterable.
b) Las de lectura y escritura. RAM (Random Acess Memory) a diferencia de los ROM pierden su
contenido de informacin al faltarles la corriente elctrica. Adems permiten leer, escribir o
modificar un dato cuantas veces sea necesario. Constituye la parte modular del almacenamiento
primario.
La RAM es como un estante con varios casilleros (celdas de almacenamiento), en cada uno de los
cuales se colocar un dato. Cada uno de estos casilleros pueden contener (segn el diseo interno de la
computadora) un grupo especifico de bits (llamado palabra) que se transfiere y maneja con una sola
operacin. As se tiene maquinas que trabajan con 8 a 64 bits por palabra. Cada localizacin de palabra tiene
asociado un nombre llamado direccin. En la RAM cualquier localizacin se alcanza especificando su
direccin.
El tiempo para accesar una palabra se llama tiempo de acceso a la memoria que es un tiempo fijo, del
orden de los nanosegundos (10-9 s).
La capacidad de memoria de una computadora se mide por bloques de 1024 caracteres, unidad que se
representa con la letra K.
Ejm:
Una mquina cuya memoria principal tenga 65536 caracteres de 8 bits cada uno se indica como
64 K (64 x 1024 = 65536).
1 M = 1024 k 1 G = 1024 M
Ejm:
Una mquina con HD 1.28 Gb = 1.28 *1024 * 1024 * 1024 = 1374389535 b
Conjunto de circuitos electrnicos que permiten ejecutar clculos sencillos como suma y
multiplicacin. Es el cerebro de la computadora, consta de 2 partes principales:
Unidad de Control UC
Unidad Aritmtica y lgica UAL
1. 3.1 Unidad Aritmtica y Lgica
Realiza clculos (+ , - , * , / ) y todas las operaciones lgicas (comparaciones: < , > , <> , = ).
Cualquier operacin aritmtica / lgica se realiza trayendo los operandos necesarios a la UAL donde
se realiza la operacin.
Dispositivos tales como cintas y discos magnticos para almacenar grandes cantidades de
informacin.
Para que una computadora procese datos es necesario instruirla. Esto es depositar un programa en la
memoria central, es decir la computadora posee un programa almacenado para proceso de datos.
Este programa contiene las instrucciones de las operaciones que debe realizar el procesador. La
Unidad de control hace efectiva cada instruccin del programa almacenado.
El programa almacenado necesita estar depositado en memoria en un cdigo legible para la mquina.
Estos cdigos son interpretados por la UC para llevar a cabo el proceso.
En resumen la operacin de una computadora puede describirse as:
La computadora acepta la informacin (programas y datos) a travs de una unidad de entrada y
la transfiere a la memoria.
Bajo control de un programa, la informacin almacenada en la memoria se recupera y lleva a
una unidad aritmtica y lgica para que sea procesada.
La informacin procesada sale de la computadora a travs de una unidad de salida.
Una unidad de control dirige todas las actividades dentro de la mquina.
2. SOFTWARE
Conjunto de programas que controlan el funcionamiento de la computadora. Estos pueden ser:
Lenguaje de Bajo Nivel (Ensamblador) formado por instrucciones conocidas como nemotcnicas.
Ejm:
ADD m,n, p
Programa
Programa fuente Programa Objeto
ensamblador
Lenguajes de Alto Nivel.- Diseados para que las personas escriban y entiendan los programas ms
fcilmente que los lenguajes anteriores Son portables, es decir pueden ser ejecutados en diferentes tipos de
computadoras.
Ejm: Basic
Cobol
Fortran
Lisp
C
Pascal, etc.
3.4) Traductores de Lenguaje Programas que traducen los programas fuentes hechos en lenguaje de alto nivel
a cdigo mquina. Pueden ser:
Intrprete
Programa
Montador o
Programa Objeto ejecutable en
Enlazador
lenguaje mquina
La principal razn para que las personas aprendan lenguajes de programacin es utilizar la
computadora como herramienta para la solucin de problemas. Dos fases son muy identificadas para lograr la
solucin de problemas:
Fase de resolucin del problema
Fase de implementacin (realizacin) en un lenguaje de programacin.
Analisis del
problema
Validacin del
programa
Programa de
trabajo
Anlisis del problema. El primer paso para la solucin de un problema es el anlisis del mismo. Se debe
examinar cuidadosamente el problema a fin de obtener una idea clara sobre lo que se solicita y determinar los
datos necesarios para conseguirlo.
Analisis del
problema
Diseo del algoritmo. Puede ser definido como la secuencia ordenada de pasos, sin ambigedades, que
conducen a la solucin de un problema.
Verificacin de algoritmos. Una vez terminado de escribir un algoritmo es necesario comprobar que realiza
las tareas para las que se ha diseado y produce el resultado correcto y esperado. Para esto aplicamos la
Prueba de escritorio. Comprobacin manual usando datos significativos que abarquen todo el posible rango
de valores.
1.2.- Fase de implementacin
Una vez que el algoritmo esta diseado, representado grficamente mediante una herramienta de
programacin (Diagrama de flujo, diagrama de N-S o pseudocdigo) y verificado se debe pasar a esta fase de
codificacin, traduccin de un algoritmo a un determinado lenguaje de programacin, que deber ser
completada con la ejecucin y comprobacin del programa en una computadora.
2. CONCEPTO DE ALGORITMO
Para representar un algoritmo se debe utilizar algn mtodo que permita independizar dicho
algoritmo del lenguaje de programacin elegido. Ello permitir que un algoritmo pueda ser codificado
indistintamente en cualquier lenguaje. Para conseguir este objetivo se precisa que el algoritmo sea
representado grficamente o numricamente, de modo que las sucesivas acciones dependan de la sintaxis de
ningn lenguaje de programacin, es decir su codificacin.
Los mtodos usuales para representar un algoritmo son:
1. Lenguaje espaol.
2. Formulas.
3. Diagramas de flujo.
4. Diagrama N-S (Nassi-Schneiderma).
5. Lenguaje de codificacin de algoritmos (Pseudocodigo).
Los mtodos 1 y 2 no suelen ser fciles de transportar en un programa. Una descripcin en espaol
narrativa no es satisfactorio ya que es demasiado prolija y generalmente ambigua, una formula, sin embargo
es un buen sistema de representacin, por ejemplo la formula para halla el rea de un circulo.
S = x R2
Signfica
1. Eleve R al cuadrado
2. Reemplac el valor de el smbolo por 3.141592
3. Multiplique el resultado del paso 1 por le paso 2
Sin embargo no es frecuente que un algoritmo pueda ser expresado por medio de una formula.
Diagramas de flujo
Un diagrama de flujo (FlowChart) es una de las tcnicas de representacin de algoritmos mas antigua
y a la vez mas utilizada, un diagrama de flujo en un diagrama que utiliza los smbolos (cajas) estndares,
cada caja representa un comando. En su interior de las cajas los pasos a seguir por el algoritmo unidos por
flechas entre si, denominadas lneas de flujo que indican la secuencia en que se deben ejecutar
Se puede escribir mas de un paso del algoritmo en una sola caja excepto en al del inicio y fin, el uso de
las flechas significa que la caja no necesita estar escrita debajo de su predecesora, sin embargo abusar
demasiado de esta flexibilidad conduce a diagramas de flujo complicados e ininteligibles.
Ejemplo de diagrama de flujo:
INICIO
SI NO
A>=0
FIN
Inicio
Leer (a)
A>=0
True False
fin
Pseudocdigo
Para disear un algoritmo se debe comenzar por identificar las tareas mas importantes para resolver
le problema y disponerlas en le orden en el que han de ser ejecutadas. Los pasos en esta primera descripcin
de actividades debern ser refinados aadiendo detalles a los mismo e incluso, algunos de ellos, pueden
requerir un refinamiento adicional antes que podamos obtener un algoritmo claro preciso y completo. Este
mtodo de diseo de los algoritmos en etapas, yendo de los conceptos generales a los de detalle a travs de
refinamientos sucesivos, se conoce como mtodo descendente (Top Down). En un algoritmo se debe
considerar tres partes:
Como ejemplo imagnese que desea desarrollar un algoritmo que calcule la superficie de un rectngulo
proporcionndole su base y altura. Lo primero que deber hacer es plantearse y contestar a las siguientes
preguntas:
Especificaciones de entrada
Especificaciones de salida
Paso 1 Entrada de base y altura desde perifrico de entrada por ejemplo teclado
Paso 2 Clculo de la superficie, multiplicando la base por la altura
Pase 3 Salida por pantallas de base, altura y superficie.
Como habamos mencionado antes el algoritmo debe ser independiente de cualquier lenguaje de
programacin particular pero fcilmente traducible a alguno de ellos.
EJERCICIOS PARA EL TEMA II.
Despus de echar agua en al tetera, se pone al fuego y se espera a que el agua hierva (hasta que
suene el pitido de la tetera). Introducimos el te y se deja un tiempo hasta que este hecho.
1. inicio
2. Tomar la tetera.
3. Llenar de agua.
4. Encender el fuego.
5. Poner la tetera al fuego.
6. Mientras no hierva el agua esperar.
7. Tomar la bolsa de te
8. Introducir en la tetera
9. Mientras no este hecho el te esperar
10. Echar el te a al taza.
11. Fin.
1. Inicio.
2. Si gato del coche esta averiado llamar a la estacin de servicio y bifurcar al punto 11; en caso
contrario, continuar el proceso.
3. Levantar el coche con el gato.
4. Aflojar y sacar los tornillos de las ruedas.
5. Si NO todos los tornillos estn flojos y quitados, bifurcar al paso 4; en caso contrario, continuar
el proceso.
6. Quitar la rueda.
7. Poner la rueda de repuesto.
8. Poner los tornillos y apretarlos.
9. Si NO estn puestos todos los tornillos volver al paso 8, en caso contrario continuar el proceso.
10. Bajar el gato.
11. Fin.
Ejercicios Propuestos
Dfd es un software diseado para construir y analizar algoritmos . Usted puede crear diagramas de flujo de
datos para la representacin de algoritmos de programacin estructurada a partir de las herramientas de
edicin que para ste propsito suministra el programa. Despus de haber ingresado el algoritmo
representado por el diagrama, podr ejecutarlo, analizarlo y depurarlo en un entorno interactivo diseado para
ste fin. La interfaz grfica de Dfd, facilita en gran medida el trabajo con diagramas ya que simula la
representacin estndar de diagramas de flujo en hojas de papel.
Los diagramas de flujo son frecuentemente usados debido a que pueden suprimir detalles innecesarios y tener
un significado preciso, si son usados correctamente.
Algoritmo