You are on page 1of 12

CAPITULO II

TEMA I.- Conceptos Bsicos de la Arquitectura del Computador 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 :

1.1) Dispositivos De Entrada y Salida (Perifricos) Son dispositivos capaces de leer datos codificados. Algunos dispositivos fsicos de E/S son el teclado, cintas, discos magnticos, el monitor, la impresora, etc. 1.2) Memoria Central o Principal Aqu se almacenan: Los datos que se envan para procesarse desde los dispositivos de almacenamiento. Las instrucciones de programas que realizarn los procesos, y Los resultados obtenidos listos para ser enviados a un dispositivo de almacenamiento secundario. 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 1.3) La Unidad Central de Proceso UCP 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. 1.3.2 Unidad de Control Tiene las 3 funciones principales: Leer e interpretar las instrucciones. Las instrucciones se trasladan a partir del almacenamiento primario a la UC en donde se decodifica e interpreta. Esta indica a otros componentes del procesador que realicen las operaciones necesarias para ejecutar la instruccin. Dirigir las operaciones de los componentes internos del procesador. Controlar el flujo de los programas, datos de entrada y de salida del almacenamiento primario. 1.4) Dispositivos de Almacenamiento Secundario (Memoria Auxiliar) Dispositivos tales como cintas y discos magnticos para almacenar grandes cantidades de informacin. 1.5) Programa Almacenado 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: 2.1) Sistema Operativo Es un conjunto integrado de programas que se utilizan para administrar los recursos y operaciones de un sistema de computacin. 2.2) Programas de Traduccin (Lenguajes de programacin) Programas que transforma las instrucciones que preparan las personas en un lenguaje adecuado en los cdigos del lenguaje mquina que requieren las computadoras. 2.3) Programas de Aplicacin Programas que se escriben para realizar una tarea especfica. Ejm: Word para procesar textos; Power Point para procesar diapositivas; Excel para procesar formularios, facturas que impliquen ejecucin de clculos y operaciones matemticas. 3. ALGORITMO. PROGRAMA Y LENGUAJE DE PROGRAMACIN 3.1) Algoritmos: Conjuntos de pasos para resolver un problema. Son independientes del lenguaje de programacin en que se pueden expresar. 3.2) Programa: Conjunto de instrucciones (ordenes dadas a la computadora) que permiten ejecutar una determinada tarea, es decir es un medio para lograr un fin. Es el algoritmo que se expresa en un formato determinado (lenguaje de programacin) 3.3) Lenguajes de Programacin: Son lenguajes utilizados para desarrollar programas en computadoras. Los lenguajes ms utilizados son: C++, pascal, etc. Lenguaje Mquina .- Escritos en lenguajes directamente inteligibles por la computadora (cadenas de 0 y 1) Ejm: Direccin Contenido 100 0010 0000 0000 0100 Lenguaje de Bajo Nivel (Ensamblador) formado por instrucciones conocidas como nemotcnicas. Ejm: ADD m,n, p Programa fuente Programa ensamblador Programa Objeto

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 fuente Interprete Traduccin y

ejecucin lnea a lnea Compilador y fases: Compilacin proceso de Traduccin de programas fuente en programas objeto. Programa fuente Compilador Montador o Enlazador Programa objeto Programa ejecutable en lenguaje mquina

Programa Objeto

3.4) Fases en el proceso de programacin :


Definicin y anlisis del problema Diseo del algoritmo Codificacin del programa Depuracin y verificacin del programa Documentacin Mantenimiento TEMA II.- Algoritmos 1.- ETAPAS DE LA SOLUCIN DE UN PROBLEMA 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.
Fase de resoluc in del problem a Fase de im plementacin del problem a

Analisis del problema

D iseo del algoritmo

C odificacin del algoritm o

V erificacin del algoritmo

Ejecucin del program a

Validacin del program a

Programa de trabajo

1.1.- Fase de resolucin del problema Esta fase incluye, a su vez, el anlisis del problema asi como el diseo y posterior verificacin del algoritmo. 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.
Analis is del problem a

D efinic in del problem a

D atos de entrada

D atos de s alida R esultados

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 Es el conjunto de instrucciones que especifican la secuencia de operaciones a realizar, el orden para resolver un sistema especifico o clase de problema, se denomina algoritmo. En otras palabras un algoritmo es una formula para la solucin de un problema. Para realizar un proceso en la computadora se le debe suministrar al procesador un algoritmo adecuado, por ejemplo al cocinero debe drsele una receta, al pianista una partitura, y as sucesivamente considerando al cocinero y al pianista como procesadores. En la computadora el algoritmo ha de expresarse de una forma que recibe el nombre de programa, un programa se escribe en un lenguaje de programacin, y a la actividad de expresar un algoritmo en forma de programa se llama Programacin. Cada paso en el algoritmo esta expresado por medio de instrucciones, cada una de las cuales especifica las operaciones que debe realizar la computadora. Para llegar a la realizacin de un programa es necesario el diseo previo de un algoritmo, de modo que sin algoritmo no hay programa. Los algoritmos son independientes tanto del lenguaje de programacin en que se expresan como de la computadora donde se ejecutan, en cada problema el algoritmo se puede expresar en un lenguaje diferente de programacin y ejecutarse en una computadora distinta, sin embrago el algoritmo ser siempre el mismo. As por ejemplo en una analoga con la vida diaria, una receta de un plato de comida. Se puede expresar en espaol, ingles o francs, pero en cualquiera que sea el lenguaje, los pasos para la elaboracin de el, se realizara sin importar el idioma. En la ciencia de la computacin y en la programacin, los algoritmos mas importantes que los lenguajes de programacin o las computadoras. Un lenguaje de programacin es tan solo un medio para expresar un algoritmo y una computadora es solo un procesador para ejecutarlo. Tanto el lenguaje de programacin como la computadora son los medios para obtener un fin: conseguir que el algoritmo se ejecute y efecte el proceso correspondiente.

Dada la importancia del algoritmo en la ciencia de la computacin un aspecto muy importante ser el diseo de algoritmos. Para el diseo de la mayora de los algoritmos se requiere creatividad, lgica, secuencia y orden. En esencia la solucin de un problema se puede expresar mediante un algoritmo. 2.1.- Caractersticas de los algoritmos Las caractersticas fundamentales de que debe cumplir todo algoritmo son:

Un algoritmo debe ser preciso e indicar el orden de realizacin de cada paso. Un algoritmo debe ser definido si se sigue un algoritmo dos veces, se debe obtener el mismo resultado. Un algoritmo debe ser finito si se sigue un algoritmo se debe terminar en algn momento, o sea, debe tener un numero finito de pasos.

2.2.- Formas de representar los algoritmos 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. 2. 3. 4. 5. Lenguaje espaol. Formulas. Diagramas de flujo. Diagrama N-S (Nassi-Schneiderma). 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. Signfica 1. 3. S = x R2 Eleve R al cuadrado Multiplique el resultado del paso 1 por le paso 2

2. Reemplac el valor de el smbolo por 3.141592


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

Principales diagramas de flujo Nro. Diagrama Funcin

1 2 3

si

no

Terminal (representa el comienzo, inicio, y el final, fin de un programa. Puede representar tambin una parada o interrupcin programada que sea necesario realizar en un programa) Entrada / Salida (cualquier tipo de introduccin de datos en la memoria desde los perifricos, entrada, o registro de la informacin procesada en un perifrico salida) Proceso (cualquier tipo de operacin que pueda originar cambio de valor, formato o posicin de la informacin almacenada en la memoria, operaciones aritmticas, de transferencia, etc.) Decisin ( indica operaciones lgicas o de comparacin entre datos [normalmente dos] y en funcin del resultado de la misma determina cual de los distintos caminos alternativos del programa se debe seguir; normalmente tiene dos salida [SI , NO] Decisin mltiple (en funcin del resultado de la comparacin se seguir uno de los diferentes caminos de acuerdo con dicho resultado Conector (sirve para enlazar dos partes cuales quiera de un ordinograma a travs de un conector en la salida y otro conector en la entrada. Se refiere a la conexin en la misma pgina del diagrama) Lneas de conexin (indica el sentido de la ejecucin de las operaciones y a la vez como unin entre bloques Conector (conexin entre dos puntos del organigrama situados en paginas diferentes) Llamada a subrutina o a un proceso predeterminado ( una subrutina en un modulo independiente del programa principal, que trecibe un entrada precedente de dicho programa, realiza una tarea determinada y regresa, al terminar al programa principal) Pantalla (se utiliza en ocasiones en lugar del smbolo de E /S)

5 6 7 8 9

10

11

Impresora (se utiliza en ocasiones en lugar del smbolo de E /S)

12

Teclado (se utiliza en ocasiones en lugar del smbolo de E /S) Comentario (se utiliza para aadir comentarios clasificados a otros smbolos del diagrama de flujo. Se pueden dibujar a cualquier lado del smbolo)

13

Caractersticas de los diagramas de flujo En un diagrama de flujo debe tener: Debe tener una caja de terminal que indique el inicio Debe tener una caja de terminal que indique el final Si existen otras cajas normalmente son de proceso, decisin entrada /salida ,etc.

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

A>=0

NO

"EL N U M ER O E S PO SIT IVO

"EL N U M E RO ES N EG A T IVO "

FIN

Diagramas de Nassi-Schneiderman (N-S) El diagrama N-S de Nassi-Schneiderman (conocido tambin como Chapin) es como un diagrama de flujo en el que se omiten las flechas de unin y las cajas son contiguas. Las acciones sucesivas se escriben en cajas sucesivas y como en los diagramas de flujo se pueden escribir diferentes acciones en una caja. Ejemplo de diagrama de Nassi-Schneiderman (N-S)

Inicio Leer (a)


A>=0 T rue Escribir ("el num ero ingresado es pos itivo") Fals e Esc ribir ("el num ero ingresado es negativo")

fin
Pseudocdigo El pseudocdigo es un lenguaje de especificacin (descripcin de algoritmos). El uso de tal lenguaje hace el paso a la codificacin final ( esto es la traduccin al lenguaje de programacin final) El pseudocdigo naci como un lenguaje similar al ingles y era un medio de representar bsicamente las estructuras de control de programacin, se considera un primer borrador, el pseudocdigo no puede ser ejecutado por ninguna computadora. La ventaja del pseudocdigo es que en su uso, en la planificacin de un programa. Ejemplo de Pseudocdigo:

Inicio Leer un valor para A Si el valor de A es mayor o igual que Cero entonces Escribir que el nmero ingresado es positivo Sino Escribir que el nmero ingresado es negativo finsi fin 2.3.- Componentes de un algoritmo 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:

1. Entrada: Informacin dada al algoritmo 2. Proceso: Operaciones o clculos necesarios para encontrar la solucin del problema 3. Salida: Respuestas dadas por el algoritmo o resultados finales de los clculos.
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 Qu datos son de entrada? Cuntos datos se introducira? Cuantos son datos de entradas vlidos?

Especificaciones de salida Cules son los datos de salida? Cuntos datos de salida se produciran? Qu precisin tendrn los resultados? Se debe imprimir una cabecera?

El algoritmo en el primer diseo se podr representar con los siguientes pasos Paso 1 Paso 2 Pase 3 Entrada de base y altura desde perifrico de entrada por ejemplo teclado Clculo de la superficie, multiplicando la base por la altura 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. 1.- Algoritmo para hacer una tasa de te. Anlisis del problema Datos de salida: Datos de entrada: Datos auxiliares: Taza de te Bolsa de te, agua pitido de tetera, aspecto de la fusin.

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. inicio Tomar la tetera. Llenar de agua. Encender el fuego. Poner la tetera al fuego. Mientras no hierva el agua esperar. Tomar la bolsa de te Introducir en la tetera Mientras no este hecho el te esperar Echar el te a al taza. Fin. 2.- Disear un algoritmo para cambiar una rueda de coche. Anlisis del problema Datos de salida: Datos de entrada: Rueda reparada Rueda pinchada, rueda de repuesto, herramientas

Despus de desmontar la rueda se procede a reemplazar por el neumtico bueno u se procede a guardar todas las herramientas Inicio. Si gato del coche esta averiado llamar a la estacin de servicio y bifurcar al punto 11; en caso contrario, continuar el proceso. Levantar el coche con el gato. Aflojar y sacar los tornillos de las ruedas. Si NO todos los tornillos estn flojos y quitados, bifurcar al paso 4; en caso contrario, continuar el proceso. Quitar la rueda. Poner la rueda de repuesto. Poner los tornillos y apretarlos. Si NO estn puestos todos los tornillos volver al paso 8, en caso contrario continuar el proceso. Bajar el gato. Fin. 3.- Algoritmo para ir al cine Anlisis del problema Datos de salida: Datos de entrada: proyeccin Datos auxiliares: Ver la pelcula. Nombre de la pelcula, direccin de la sala, hora de Entrada, sitio.

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.

Inicio Tomar el peridico. Mientras no lleguemos a la cartelera pasar la hoja. Mientras no se acabe al cartelera leer pelcula. Si nos gusta recortarla. Elegir una de las pelculas seleccionadas Trasladarse a la sala Si NO hay entadas bifurcar al punto 16; caso contrario continuar Si hay cola, ponerse al ultimo. Mientras no llegue a la taquilla avanzar. Si NO hay entradas bifurcar al punto 16; caso contrario compra entrada Leer el lugar de la entrada Buscar lugar Sentarse Ver pelcula Fin Ejercicios Propuestos Compra una entrada para los toros. Colocar la mesa para comer. Cocer un huevo. Lavar los platos del almuerzo. Buscar el nmero telefnico de un compaero. Repara un pinchazo de bicicleta Pagar una multa de transito. Hacer palomitas de maz. Cambiar el vidrio roto de una ventana Hacer una llamada telefnica. Quitar un foco quemado del techo.

Que es Dfd?
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.

Diagrama de Flujo de Datos


Un diagrama de flujo de datos es una descripcin grfica de un procedimiento para la resolucin de un problema. Son frecuentemente usados para describir algoritmos y programas de computador. Los diagramas de flujo de datos estn conformados por figuras conectadas con flechas. Para ejecutar un proceso descrito por un diagrama de flujo de datos se comienza por el INICIO y se siguen las flechas de figura a figura, ejecutndose las acciones indicadas por cada figura; el tipo de figura indica el tipo de paso que representa. Los diagramas de flujo son frecuentemente usados debido a que pueden suprimir detalles innecesarios y tener un significado preciso, si son usados correctamente.

Algoritmo
Un algoritmo es un procedimiento para la resolucin de problemas de cualquier tipo por medio de determinada secuencia de pasos simples y no ambiguos. El concepto fue utilizado originalmente para el clculo matemtico pero ahora es ampliamente usado en programacin de computadoras.

You might also like