Vous êtes sur la page 1sur 16

Prof. Analista de Sistemas: Claudia Vlez M.P.

1771
Inst. Sup. Dr . Ramn Carrillo
pg. 1
http://www.virtual.unal.edu.co/cursos/ingenieria/2001839/modulo/contenido_1.
htm
1.2 ESTRUCTURA DE UN COMPUTADOR
Un COMPUTADOR es una mquina que permite y realiza clculos de manera automtica. Se
divide fundamentalmente en dos partes: el hardware y el software. El HARDWARE es la
parte fsica de un computador, es decir, la parte que realiza los clculos; El SOFTWARE es la
parte lgica del computador, es decir, la parte que le dice al hardware que haga . Usando
una metfora se puede decir que:
Un computador es como un ser humano: el hardware es el cuerpo y el software es la
mente
1.2.1 Arquitectura de hardware
1.2.2 Arquitectura de software
1.2.1 ARQUITECTURA DE HARDWARE
Un computador desde la perspectiva del hardware, esta constituido por una serie de
dispositivos cada uno con un conjunto de tareas definidas. Los dispositivos de un computador
se dividen segn la tarea que realizan en: dispositivos de entrada, salida,

Figura 11. Arquitectura de Hardware
Dispositivos de entrada: Son aquellos que permiten el ingreso de datos a un computador.
Entre estos se cuentan, los teclados, ratones, scaners, micrfonos, cmaras fotogrficas,
cmaras de video, game pads y guantes de realidad virtual.
Prof. Analista de Sistemas: Claudia Vlez M.P. 1771
Inst. Sup. Dr . Ramn Carrillo
pg. 2

Figura 12. Dispositivos de Entrada
Dispositivos de salida. Son aquellos que permiten mostrar informacin procesada por el
computador. Entre otros estn, las pantallas de video, impresoras, audfonos, plotters,
guantes de realidad virtual, gafas y cascos virtuales.

Figura 13. Dispositivos de Salida
Dispositivos de almacenamiento. Son aquellos de los cuales el computador puede
guardar informacin nueva y/o obtener informacin previamente almacenada. Entre otros
estn los discos flexibles, discos duros, unidades de cinta, CD-ROM, CD-ROM de re-escritura
y DVD.

Figura 14. Dispositivos de Almacenamiento.
Prof. Analista de Sistemas: Claudia Vlez M.P. 1771
Inst. Sup. Dr . Ramn Carrillo
pg. 3
Dispositivos de comunicacin: Son aquellos que le permiten a un computador comunicarse
con otros. Entre estos se cuentan los modems, tarjetas de red y enrutadores.

Figura 15. Modem
Dispositivo de computo: Es la parte del computador que le permite realizar todos los
clculos y tener el control sobre los demas dispositivos. Esta formado por tres elementos
fundamentales, la unidad central de proceso, la memoria y el bus de datos y direcciones.

Figura 16. Diagrama esquemtico del dispositivo de computo
La unidad central de proceso (UCP)[1]: es el cerebro del computador, esta encargada
de realizar todos los clculos, utilizando para ello la informacin almacenada en la memoria y
de controlar los dems dispositivos, procesando las entradas y salidas provenientes y/o
enviadas a los mismos. Mediante el bus de datos y direcciones, la UCP se comunica con los
diferentes dispositivos enviando y obteniendo tales entradas y salidas.

Figura 17. Unidad Central de Proceso.
Para realizar su tarea la unidad central de proceso dispone de una unidad aritmtico lgica,
una unidad de control, un grupo de registros y opcionalmente una memoria cache para datos
y direcciones.
Prof. Analista de Sistemas: Claudia Vlez M.P. 1771
Inst. Sup. Dr . Ramn Carrillo
pg. 4
La unidad aritmtico lgica (UAL)[2] es la encargada de realizar las operaciones
aritmticas y lgicas requeridas por el programa en ejecucin, la unidad de control es la
encargada de determinar las operaciones e instrucciones que se deben realizar, el grupo de
registros es donde se almacenan tanto datos como direcciones necesarias para realizar las
operaciones requeridas por el programa en ejecucin y la memoria cache se encarga de
mantener direcciones y datos intensamente usados por el programa en ejecucin.
La memoria esta encargada de almacenar toda la informacin que el computador esta
usando, es decir, la informacin que es accedida (almacenada y/o recuperada) por la UCP y
por los dispositivos. Existen diferentes tipos de memoria, entre las cuales se encuentran las
siguientes:

RAM (Random Access Memory): Memoria de escritura y lectura, es la memoria principal
del computador. Solo se mantiene mientras el computador est encendido.

ROM (Read Only Memory): Memoria de solo lectura, es permanente y no se afecta por el
encendido o apagado del computador. Generalmente almacena las instrucciones que le
permite al computador iniciarse y cargar (poner en memoria RAM) el sistema operativo.

Cache: Memoria de acceso muy rpido, usada como puente entre la UCP y la memoria
RAM, para evitar las demoras en la consulta de la memoria RAM.
El bus de datos y direcciones permite la comunicacin entre los elementos del
computador. Por el bus de datos viajan tanto las instrucciones como los datos de un
programa y por el bus de direcciones viajan tanto las direcciones de las posiciones de
memoria donde estn instrucciones y datos, como las direcciones lgicas asignadas a los
dispositivos.
[1] La unidad central de proceso es ms conocida como CPU por sus siglas en ingls Central
Process Unit.
[2] La unidad aritmtico lgica es ms conocida como ALU por sus siglas en ingls Arithmetic
Logic Unit.

1.2.2 ARQUITECTURA DE SOFTWARE
Un computador desde la perspectiva del software, esta :

Un sistema operativo.

Un conjunto de lenguajes a diferente nivel con los cuales se comunica con el
usuario y con sus dispositivos. Entre estos estn los lenguajes de mquina,
los ensambladores y los de alto nivel.

Un conjunto de aplicaciones de software.

Un conjunto de herramientas de software.

Prof. Analista de Sistemas: Claudia Vlez M.P. 1771
Inst. Sup. Dr . Ramn Carrillo
pg. 5
1.2.2.1 Definiciones Bsicas
Software: El hardware por si solo no puede haga nada, pues es necesario que exista el
software, que es un conjunto de instrucciones que le dicen al hardware que haga .
Lenguaje de programacin: Es un conjunto de reglas y estndares que es utilizado para
escribir programas de computadoras que puedan ser entendidos por ellas. .
Programa: Es la representacin de algn algoritmo en un lenguaje de programacin
especfico.
1.2.2.2 Lenguaje de Mquina
Es el nico lenguaje que entiende el hardware (mquina) y usa exclusivamente el sistema
binario. Este lenguaje es especfico para cada hardware (procesador, dispositivos, etc.)[1].
El programa es almacenado en memoria y es tanto cdigos de instruccin como datos. La
estructura de una instruccin en lenguaje mquina es la siguiente:
CODIGO ARGUMENTO(S)

Figura 18. Lenguaje de mquina
1.2.2.3 Lenguaje Ensamblador
Es un lenguaje que usa mnemnicos (palabras cortas escritas con caracteres alfanumricos),
para codificar las operaciones. Los datos y/o direcciones son codificados generalmente como
nmeros en un sistema hexadecimal. Generalmente es especfico (aunque no nico) para
cada lenguaje de mquina.
La estructura de una instruccin en este lenguaje es la siguiente:
MNEMONICO ARGUMENTO(S)
Un ENSAMBLADOR es un software, generalmente escrito en lenguaje de mquina,
que es capaz de traducir de lenguaje ensamblador a lenguaje de mquina, mientras que
unCARGADOR es un software que almacena en memoria el programa en lenguaje de
mquina generado por el ensamblador.
Prof. Analista de Sistemas: Claudia Vlez M.P. 1771
Inst. Sup. Dr . Ramn Carrillo
pg. 6

Figura 19. Lenguaje Ensamblador.
1.2.2.4 Lenguaje de Alto Nivel
Lenguaje basado en una estructura gramatical que permite el anidamiento de instrucciones
(instrucciones dentro de instrucciones). Cuenta con un conjunto de palabras reservadas
(escritas en lenguaje natural), para codificar estructuras de control y/o instrucciones. Estos
lenguajes permiten el uso de smbolos aritmticos y/o relacionales para describir clculos
matemticos, y generalmente representan las cantidades numricas mediante sistema
decimal.
Gracias a su estructura gramatical, estos lenguajes permiten al programador olvidar el
direccionamiento de memoria (donde cargar datos y/o instrucciones en la memoria), ya que
este se realiza mediante el uso de conceptos como el de variable; De esta manera, permiten
la realizacin de programas independiente del Hardware.
Los COMPILADORES e INTERPRETES son software capaz de traducir de un lenguaje de
alto nivel al lenguaje ensamblador especfico de una mquina. Los primeros toman todo el
programa en lenguaje de alto nivel, lo pasan a lenguaje ensamblador y luego lo ejecutan.
Los ltimos toman instruccin por instruccin, la traducen y la van ejecutando.

Figura 20. Lenguaje de Alto Nivel.

1.2.2.5 Sistema Operativo
Es el software encargado de administrar los recursos del sistema, para esto ofrece un
conjunto de primitivas (funciones y procedimientos) a otro software, que le permiten a este
ultimo ser tan independiente de la arquitectura de hardware como le sea posible. Se dice que
un software es para el sistema operativo <nombre>, si utiliza las primitivas que el sistema
Prof. Analista de Sistemas: Claudia Vlez M.P. 1771
Inst. Sup. Dr . Ramn Carrillo
pg. 7
operativo <nombre> proporciona. Adicionalmente, un sistema operativo ofrece un conjunto de
comandos a los humanos sean o no programadores, para interactuar con la mquina.
Los sistemas operativos pueden ser escritos en lenguaje de alto nivel, como UNIX que fue
escrito en C, en lenguaje ensamblador y/o en lenguaje mquina. Algunos de los sistemas
operativos ms conocidos son UNIX, LINUX, Microsoft Windows.

1.2.2.6 Aplicaciones y Herramientas
Una APLICACION es un software construido para que el computador realice una tarea
especfica y con el cual no se puede construir otro software. Ejemplos de aplicaciones son los
procesadores de texto como Microsoft Word y Word Perfect y las hojas electrnicas de
clculo como Microsoft Excel y Lottus.
Una HERRAMIENTA es un software construido especialmente para el desarrollo de nuevo
software, (tanto de aplicaciones como de herramientas). Ejemplos de herramientas son los
compiladores como Turbo C y Turbo Pascal, las herramientas CASES y los ambientes
integrados de desarrollo.

Figura 21. Arquitectura de Software Completa.

[1] En el Anexo A se expone el concepto de sistema de numeracin, y en el Anexo B se
muestra como el sistema de numeracin binario es utilizado para representar datos en un
computador digital.

Prof. Analista de Sistemas: Claudia Vlez M.P. 1771
Inst. Sup. Dr . Ramn Carrillo
pg. 8

Figura 21. Arquitectura de Software Completa.

[1] En el Anexo A se expone el concepto de sistema de numeracin, y en el Anexo B se
muestra como el sistema de numeracin binario es utilizado para representar datos en un
computador digital.

2.1 ALGORITMOS
Un ALGORITMO es una secuencia finita bien definida de tareas bien definidas, cada una
de las cuales se puede realizar con una cantidad de recursos finitos.
Se dice que una tarea esta bien definida, si se sabe de manera precisa las acciones
requeridas para su realizacin. Aunque los recursos que debe utilizar cada tarea deben ser
finitos estos no estn limitados, es decir, si una tarea bien definida requiere una cantidad
inmensa (pero finita) de algn recurso para su realizacin, dicha tarea puede formar parte de
un algoritmo. Adems, se dice que una secuencia de tareas esta bien definida si se sabe el
orden exacto de ejecucin de cada una de las mismas.
EJECUTAR un algoritmo es realizar las tareas del mismo, en el orden especificado y utilizando
los recursos disponibles.
2.1.1 Caractersticas de un algoritmo
2.1.1 CARACTERISTICAS DE UN ALGORITMO
Las caractersticas que debe poseer una secuencia de tareas para considerarse algoritmo
son: precisin, definitud y finitud.
Precisin Definitud o determinismo Finitud
El algoritmo debe
indicar el orden
Si se sigue el algoritmo dos o ms
veces con los mismos datos de
El algoritmo debe terminar
en algn momento y debe
Prof. Analista de Sistemas: Claudia Vlez M.P. 1771
Inst. Sup. Dr . Ramn Carrillo
pg. 9
exacto de ejecucin
de cada tarea.
entrada, se deben obtener los
mismos datos de salida.
usar una cantidad de
recursos finita.

Dada una cantidad de datos de entrada de un algoritmo, se dice que la cantidad de un
recurso usada por dicho algoritmo para su ejecucin determina la complejidad del
algoritmorespecto a tal recurso. Cuando se implementa un algoritmo en un computador
digital, los recursos con los que se cuenta son tiempo de proceso y memoria. Por lo tanto,
a un algoritmo implementado en un computador digital se le pueden calcular sus
complejidades temporal y espacial.[1]
[1] El estudio de la complejidad de un algoritmo respecto a sus recursos es conocido como
algoritmia, la cual no es tratada en este curso.


Ejercitacin de Algoritmos

Prof. Analista de Sistemas: Claudia Vlez M.P. 1771
Inst. Sup. Dr . Ramn Carrillo
pg. 10

Ejercitacin de algoritmos
PROBLEMA: Realizar la suma de los nmeros 2448 y 5746.
ALGORITMO:
Inicio
PASO 1. Colocar los nmeros el primero encima del segundo, de tal
manera que las unidades, decenas, centenas, etc., de los nmeros
queden alineadas. Trazar una lnea debajo del segundo nmero.
PASO 2. Empezar por la columna ms a la derecha.
PASO 3. Sumar los dgitos de dicha columna.
PASO 4. Si la suma es mayor a 9 anotar un 1 encima de la siguiente
columna a la izquierda y anotar debajo de la lnea las unidades de la
suma. Si no es mayor anotar la suma debajo de la lnea.
PASO 5. Si hay ms columnas a la izquierda, pasar a la siguiente
columna a la izquierda y volver a 3.
PASO 6. El nmero debajo de la lnea es la solucin.
Fin
PROBLEMA: Cambiar la rueda pinchada de un automvil teniendo un gato mecnico en buen estado,
una rueda de reemplazo y una llave inglesa.
ALGORITMO:
Inicio
PASO 1. Aflojar los tornillos de la rueda pinchada con la llave inglesa.
PASO 2. Ubicar el gato mecnico en su sitio.
PASO 3. Levantar el gato hasta que la rueda pinchada pueda girar
libremente.
PASO 4. Quitar los tornillos y la rueda pinchada.
PASO 5. Poner rueda de repuesto y los tornillos.
PASO 6. Bajar el gato hasta que se pueda liberar.
PASO 7. Sacar el gato de su sitio.
PASO 8. Apretar los tornillos con la llave inglesa.
Fin
Resuelve los siguientes problemas utilizando algoritmos.


Prof. Analista de Sistemas: Claudia Vlez M.P. 1771
Inst. Sup. Dr . Ramn Carrillo
pg. 11

Ejercicios para realizar en clase
1. Realizar un algoritmo que permita saber de dos valores cual es el
2. Menor.
3. Desarrolle un algoritmo que permita ordenar dos nmeros de menor a mayor
4. Desarrolle un algoritmo que permita determinar si un nmero es positivo.
5. Desarrolle un algoritmo que permita determinar si un nmero es negativo.
6. Desarrolle un algoritmo que permita determinar si un nmero es neutro.
7. Desarrolle un algoritmo que calcule el descuento del 10% de un importe.
8. Desarrolle un algoritmo que permita calcular Promedio de Notas

Ahora a pensar dos algortimos e intercambiamos entre los compaeros.

Prof. Analista de Sistemas: Claudia Vlez M.P. 1771
Inst. Sup. Dr . Ramn Carrillo
pg. 12

3. METODOLOGIA DE PROGRAMACION UN-PROGRAMA
El desarrollo de un programa que resuelva un problema dado es una tarea compleja, ya que es
necesario tener en cuenta de manera simultnea muchos elementos. Por lo tanto, es
indispensable usar una metodologa de programacin.
Una metodologa de programacin es un conjunto o sistema de mtodos, principios y reglas que
permiten enfrentar de manera sistemtica el desarrollo de un programa que resuelve un
problema algortmico. Estas metodologas generalmente se estructuran como una secuencia de
pasos que parten de la definicin del problema y culminan con un programa que lo resuelve.


A continuacin se presenta de manera general los pasos de una metodologa:

El Dilogo
Con la cual se busca comprender totalmente el problema a
resolver.

La Especificacin
Con la cual se establece de manera precisa las entradas, salidas
y las condiciones que deben cumplir.

Diseo
En esta etapa se construye un algoritmo que cumpla con la
especificacin.

Codificacin Se traduce el algoritmo a un lenguaje de programacin.

Prueba y Verificacin
Se realizan pruebas del programa implementado para determinar
su validez en la resolucin del problema.
Nota: Los ejemplos incluidos en esta seccin presentados en pseudocdigo son solo para ilustrar
la metodologa
mas no se espera que el estudiante los comprenda.








Prof. Analista de Sistemas: Claudia Vlez M.P. 1771
Inst. Sup. Dr . Ramn Carrillo
pg. 13


3.1 DIALOGO
En el primer paso en el proceso de solucin a un problema se debe determinar de manera clara
y concisa la siguiente informacin:
1. Los objetos conocidos, es decir, aquellos objetos de los cuales poseemos informacin total
o parcial til en la bsqueda de los objetos desconocidos.
2. Las condiciones, aquellas relaciones establecidas entre los objetos conocidos y los
desconocidos. Para esto se deben encontrar entre otras, la dependencia entre los valores de los
objetos desconocidos de los valores de los objetos conocidos y que restricciones le impone el
planteamiento del problema a dichos objetos.
3. Los valores posibles que pueden tomar los objetos desconocidos.
Ejemplo. Sean los puntos P=(a,b) y Q=(c,d) que definen una recta, encontrar un segmento de
recta perpendicular a la anterior que pase por el punto medio de los puntos dados.
OBJETOS
DESCONOCIDOS
Un segmento de recta.

OBJETOS CONOCIDOS Los puntos P y Q.

CONDICIONES
El segmento de recta debe pasar por el punto medio entre P y Q, y
debe ser perpendicular a la recta trazada entre P y Q.

Ejemplos de problemas
Realizar la suma de los siguientes nmeros: 1245893467 y 3464895786.
OBJETOS
DESCONOCIDOS
Un nmero natural.
OBJETOS CONOCIDOS Dos nmeros naturales 1245893467 y 3464895786.
CONDICIONES
El nmero desconocido es igual a la suma de los dos nmeros
dados.

3. Un granjero tiene cincuenta animales entre conejos y gansos.
Si la cantidad de pies de los animales es ciento cuarenta, cuntos
conejos y cuantos gansos tiene el granjero?
OBJETOS
DESCONOCIDOS
La cantidad de conejos y la cantidad de
gansos.
OBJETOS
CONOCIDOS
La cantidad total de animales, cantidad de
pies totales.
CONDICIONES
La suma de los conejos y los gansos es igual
a cincuenta. La suma de los pies de los
conejos (cuatro por cada uno) y de los
gansos (dos por cada uno) es igual a ciento
cuarenta.
Prof. Analista de Sistemas: Claudia Vlez M.P. 1771
Inst. Sup. Dr . Ramn Carrillo
pg. 14

Para los siguientes problemas, determine los objetos conocidos, desconocidos, las
condiciones.

1. Si Juan tiene el doble de la edad de Pedro y la suma de las edades de los dos es 33 aos,
Cuntos aos tiene Juan y cuntos tiene Pedro?.

2. Qu figura se forma al unir los puntos marcados con nmeros consecutivos con una lnea?


3. Calcular el costo de una serie de productos comprados en el supermercado.
Ahora Selecciona cada uno de los algoritmos resueltos la clase anterior e identifica: los objetos
conocidos, desconocidos, las condiciones.






















Prof. Analista de Sistemas: Claudia Vlez M.P. 1771
Inst. Sup. Dr . Ramn Carrillo
pg. 15

3.2 ESPECIFICACIN

3.2.1 PASOS PARA LA ESPECIFICACIN DE ALGORITMOS
Especificar
Entradas
Las entradas corresponden a los objetos conocidos. Se debe indicar claramente la descripcin, cantidad y tipo de las mismas.

Especificar Salidas
Las salidas corresponden a los objetos desconocidos del
problema. Se debe indicar claramente la cantidad, descripcin
y tipo de las mismas.

Especificar Condiciones
Se describe claramente como dependen las salidas de las
entradas, se puede usar lenguaje matemtico o informal.



3.2.2 EJEMPLOS DE ESPECIFICACIN
PROBLEMA 1: Construir un algoritmo que calcule el promedio de 4 notas.
ESPECIFICACION A: (SIN DIAGRAMA DE CAJA NEGRA)
Entradas N
1
,N
2
,N
3
,N
4
(notas parciales) de tipo Real.

Salidas Final (nota final) de tipo Real.

Condiciones





PROBLEMA 2: Construir un algoritmo que determine el mayor de tres nmeros
enteros.
ESPECIFICACION A
Entradas A,B,C (nmeros de entrada) de tipo Real.

Salidas Mayor (valor mayor) de tipo Real.

Condiciones Mayor debe ser el valor mximo de A, B y C.
Prof. Analista de Sistemas: Claudia Vlez M.P. 1771
Inst. Sup. Dr . Ramn Carrillo
pg. 16


Ejercitacin
Especificar entrada, salida y condiciones en cada ejercicio, junto al diagrama de caja negra.
1. Realizar un algoritmo que permita saber de dos valores cual es el
2. Menor.
3. Desarrolle un algoritmo que permita ordenar dos nmeros de menor a mayor
4. Desarrolle un algoritmo que permita determinar si un nmero es positivo.
5. Desarrolle un algoritmo que permita determinar si un nmero es negativo.
6. Desarrolle un algoritmo que permita determinar si un nmero es neutro.
7. Desarrolle un algoritmo que calcule el precio final de una compra con el descuento
del 15%, si fue de contado, caso contrario no recibe el descuento.
8. Desarrolle un algoritmo que permita el pago de una multa, si es pago voluntario,
paga solo $250, sino $750.


Escribir el enunciado de un ejercicio y entregarlo al docente.

Vous aimerez peut-être aussi