You are on page 1of 12

CAPITULO II

TEMA I.- Conceptos Básicos de la Arquitectura del Computador

Una computadora es una maquina electrónico mecánica la cual se utiliza para procesar información,
desempeñar algún trabajo, etc
La computadora posee esencialmente dos partes:
Hardware.- Es el conjunto de componentes físicos de una computadora (equipo Físico)
Software.- es el conjunto de programas que controlan el funcionamiento de una computadora (equipo Lógico)

1. HARDWARE
Conjunto de componentes físicos de una computadora. Se compone de:

1.1) Dispositivos De Entrada y Salida (Periféricos)


Son dispositivos capaces de “leer” datos codificados. Algunos dispositivos físicos de E/S son el
teclado, cintas, discos magnéticos, el monitor, la impresora, etc.

1.2) Memoria Central o Principal


Aquí se almacenan:
 Los datos que se envían para procesarse desde los dispositivos de almacenamiento.
 Las instrucciones de programas que realizarán los procesos, y
 Los resultados obtenidos listos para ser enviados a un dispositivo de almacenamiento
secundario.

Almacena programas y datos durante su ejecución Las memorias se pueden clasificar en dos grupos:
a) Las de lectura solamente ROM (Read Only Memory), la información 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 información al faltarles la corriente eléctrica. Además 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 (según el diseño interno de la
computadora) un grupo especifico de bits (llamado palabra) que se transfiere y maneja con una sola
operación. Así se tiene maquinas que trabajan con 8 a 64 bits por palabra. Cada localización de palabra tiene
asociado un nombre llamado dirección. En la RAM cualquier localización se alcanza especificando su
dirección.
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 máquina 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 máquina con HD 1.28 Gb = 1.28 *1024 * 1024 * 1024 = 1374389535 b

1.3) La Unidad Central de Proceso UCP

Conjunto de circuitos electrónicos que permiten ejecutar cálculos sencillos como suma y
multiplicación. Es el cerebro de la computadora, consta de 2 partes principales:
 Unidad de Control UC
 Unidad Aritmética y lógica UAL
1. 3.1 Unidad Aritmética y Lógica

Realiza cálculos (+ , - , * , / ) y todas las operaciones lógicas (comparaciones: < , > , <> , = ).
Cualquier operación aritmética / lógica se realiza trayendo los operandos necesarios a la UAL donde
se realiza la operación.

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 instrucción.
 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 magnéticos para almacenar grandes cantidades de
información.

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 instrucción del programa almacenado.
El programa almacenado necesita estar depositado en memoria en un código legible para la máquina.
Estos códigos son interpretados por la UC para llevar a cabo el proceso.
En resumen la operación de una computadora puede describirse así:
 La computadora acepta la información (programas y datos) a través de una unidad de entrada y
la transfiere a la memoria.
 Bajo control de un programa, la información almacenada en la memoria se recupera y lleva a
una unidad aritmética y lógica para que sea procesada.
 La información procesada sale de la computadora a través de una unidad de salida.
 Una unidad de control dirige todas las actividades dentro de la máquina.

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 computación.

2.2) Programas de Traducción (Lenguajes de programación)


Programas que transforma las instrucciones que preparan las personas en un lenguaje adecuado en
los códigos del lenguaje máquina que requieren las computadoras.

2.3) Programas de Aplicación


Programas que se escriben para realizar una tarea específica.
Ejm:
Word para procesar textos;
Power Point para procesar diapositivas;
Excel para procesar formularios, facturas que impliquen ejecución de cálculos y operaciones
matemáticas.

3. ALGORITMO. PROGRAMA Y LENGUAJE DE PROGRAMACIÓN


3.1) Algoritmos: Conjuntos de pasos para resolver un problema. Son independientes del lenguaje de
programación 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 programación)
3.3) Lenguajes de Programación: Son lenguajes utilizados para desarrollar programas en computadoras. Los
lenguajes más utilizados son: C++, pascal, etc.

Lenguaje Máquina .- Escritos en lenguajes directamente inteligibles por la computadora (cadenas de 0 y 1)


Ejm:
Dirección Contenido
100 0010 0000 0000 0100

Lenguaje de Bajo Nivel (Ensamblador) formado por instrucciones conocidas como nemotécnicas.
Ejm:
ADD m,n, p

Programa
Programa fuente Programa Objeto
ensamblador

Lenguajes de Alto Nivel.- Diseñados para que las personas escriban y entiendan los programas más
fácilmente 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 código máquina. Pueden ser:

Intérprete

Programa fuente Interprete Traducción y


ejecución línea a
línea

Compilador y fases: Compilación proceso de Traducción de programas fuente en programas objeto.

Programa fuente Compilador Programa objeto

Programa
Montador o
Programa Objeto ejecutable en
Enlazador
lenguaje máquina

3.4) Fases en el proceso de programación:

 Definición y análisis del problema


 Diseño del algoritmo
 Codificación del programa
 Depuración y verificación del programa
 Documentación
 Mantenimiento

TEMA II.- Algoritmos

1.- ETAPAS DE LA SOLUCIÓN DE UN PROBLEMA

La principal razón para que las personas aprendan lenguajes de programación es utilizar la
computadora como herramienta para la solución de problemas. Dos fases son muy identificadas para lograr la
solución de problemas:
 Fase de resolución del problema
 Fase de implementación (realización) en un lenguaje de programación.

Fase de resolución del problema Fase de implementación del problema

Analisis del
problema

Diseño del Codificación del


algoritmo algoritmo

Verificación del Ejecución del


algoritmo programa

Validación del
programa

Programa de
trabajo

1.1.- Fase de resolución del problema


Esta fase incluye, a su vez, el análisis del problema asi como el diseño y posterior verificación del
algoritmo.

Análisis del problema. El primer paso para la solución de un problema es el análisis 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

Definición del Datos de Datos de salida


problema entrada Resultados

Diseño del algoritmo. Puede ser definido como la secuencia ordenada de pasos, sin ambigüedades, que
conducen a la solución de un problema.

Verificación de algoritmos. Una vez terminado de escribir un algoritmo es necesario comprobar que realiza
las tareas para las que se ha diseñado y produce el resultado correcto y esperado. Para esto aplicamos la
Prueba de escritorio. Comprobación manual usando datos significativos que abarquen todo el posible rango
de valores.
1.2.- Fase de implementación

Una vez que el algoritmo esta diseñado, representado gráficamente mediante una herramienta de
programación (Diagrama de flujo, diagrama de N-S o pseudocódigo) y verificado se debe pasar a esta fase de
codificación, traducción de un algoritmo a un determinado lenguaje de programación, que deberá ser
completada con la ejecución y comprobación 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 solución de un problema.
Para realizar un proceso en la computadora se le debe suministrar al procesador un algoritmo
adecuado, por ejemplo al cocinero debe dársele 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 programación, y a la actividad de expresar un algoritmo en forma de
programa se llama Programación. 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 realización de un programa es necesario el diseño previo de un algoritmo, de modo
que sin algoritmo no hay programa.
Los algoritmos son independientes tanto del lenguaje de programación en que se expresan como de
la computadora donde se ejecutan, en cada problema el algoritmo se puede expresar en un lenguaje diferente
de programación y ejecutarse en una computadora distinta, sin embrago el algoritmo será siempre el mismo.
Así por ejemplo en una analogía con la vida diaria, una receta de un plato de comida. Se puede expresar en
español, ingles o francés, pero en cualquiera que sea el lenguaje, los pasos para la elaboración de el, se
realizara sin importar el idioma.
En la ciencia de la computación y en la programación, los algoritmos mas importantes que los
lenguajes de programación o las computadoras. Un lenguaje de programación es tan solo un medio para
expresar un algoritmo y una computadora es solo un procesador para ejecutarlo. Tanto el lenguaje de
programación como la computadora son los medios para obtener un fin: conseguir que el algoritmo se ejecute
y efectúe el proceso correspondiente.
Dada la importancia del algoritmo en la ciencia de la computación un aspecto muy importante será el
diseño de algoritmos. Para el diseño de la mayoría de los algoritmos se requiere creatividad, lógica, secuencia
y orden. En esencia la solución de un problema se puede expresar mediante un algoritmo.

2.1.- Características de los algoritmos

Las características fundamentales de que debe cumplir todo algoritmo son:

 Un algoritmo debe ser preciso e indicar el orden de realización 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 algún momento, o sea,
debe tener un numero finito de pasos.

2.2.- Formas de representar los algoritmos

Para representar un algoritmo se debe utilizar algún método que permita independizar dicho
algoritmo del lenguaje de programación elegido. Ello permitirá que un algoritmo pueda ser codificado
indistintamente en cualquier lenguaje. Para conseguir este objetivo se precisa que el algoritmo sea
representado gráficamente o numéricamente, de modo que las sucesivas acciones dependan de la sintaxis de
ningún lenguaje de programación, es decir su codificación.
Los métodos usuales para representar un algoritmo son:

1. Lenguaje español.
2. Formulas.
3. Diagramas de flujo.
4. Diagrama N-S (Nassi-Schneiderma).
5. Lenguaje de codificación de algoritmos (Pseudocodigo).

Los métodos 1 y 2 no suelen ser fáciles de transportar en un programa. Una descripción en español
narrativa no es satisfactorio ya que es demasiado prolija y generalmente ambigua, una formula, sin embargo
es un buen sistema de representación, por ejemplo la formula para halla el área de un circulo.

S =  x R2
Signífica

1. Eleve R al cuadrado
2. Reemplacé el valor de  el símbolo 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 técnicas de representación de algoritmos mas antigua
y a la vez mas utilizada, un diagrama de flujo en un diagrama que utiliza los símbolos (cajas) estándares,
cada caja representa un comando. En su interior de las cajas los pasos a seguir por el algoritmo unidos por
flechas entre si, denominadas líneas de flujo que indican la secuencia en que se deben ejecutar

Principales diagramas de flujo

Nro. Diagrama Función


Terminal (representa el comienzo, “inicio”, y el final, “fin” de un
1 programa. Puede representar también una parada o interrupción
programada que sea necesario realizar en un programa)
Entrada / Salida (cualquier tipo de introducción de datos en la memoria
2 desde los periféricos, “entrada, o registro de la información procesada
en un periférico “salida”)
Proceso (cualquier tipo de operación que pueda originar cambio de
3 valor, formato o posición de la información almacenada en la memoria,
operaciones aritméticas, de transferencia, etc.)
Decisión ( indica operaciones lógicas o de comparación entre datos
si no [normalmente dos] y en función del resultado de la misma determina
4
cual de los distintos caminos alternativos del programa se debe seguir;
normalmente tiene dos salida [SI , NO]
Decisión múltiple (en función del resultado de la comparación se
5
seguirá uno de los diferentes caminos de acuerdo con dicho resultado
Conector (sirve para enlazar dos partes cuales quiera de un ordinograma
6 a través de un conector en la salida y otro conector en la entrada. Se
refiere a la conexión en la misma página del diagrama)
Líneas de conexión (indica el sentido de la ejecución de las operaciones
7
y a la vez como unión entre bloques
Conector (conexión entre dos puntos del organigrama situados en
8
paginas diferentes)
Llamada a subrutina o a un proceso predeterminado ( una subrutina en
un modulo independiente del programa principal, que trecibe un entrada
9
precedente de dicho programa, realiza una tarea determinada y regresa,
al terminar al programa principal)

10 Pantalla (se utiliza en ocasiones en lugar del símbolo de E /S)

11 Impresora (se utiliza en ocasiones en lugar del símbolo de E /S)

12 Teclado (se utiliza en ocasiones en lugar del símbolo de E /S)

Comentario (se utiliza para añadir comentarios clasificados a otros


13 símbolos del diagrama de flujo. Se pueden dibujar a cualquier lado del
símbolo)

Características 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, decisión 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 NO
A>=0

"EL NUMERO ES "EL NUMERO ES


POSITIVO NEGATIVO"

FIN

Diagramas de Nassi-Schneiderman (N-S)

El diagrama N-S de Nassi-Schneiderman (conocido también como Chapin) es como un diagrama de


flujo en el que se omiten las flechas de unión 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

True False

Escribir ("el numero ingresado es Escribir ("el numero ingresado es


positivo") negativo")

fin
Pseudocódigo

El pseudocódigo es un lenguaje de especificación (descripción de algoritmos). El uso de tal lenguaje


hace el paso a la codificación final ( esto es la traducción al lenguaje de programación final)
El pseudocódigo nació como un lenguaje similar al ingles y era un medio de representar básicamente
las estructuras de control de programación, se considera un primer borrador, el pseudocódigo no puede ser
ejecutado por ninguna computadora. La ventaja del pseudocódigo es que en su uso, en la planificación de un
programa.
Ejemplo de Pseudocódigo:
Inicio
Leer un valor para A
Si el valor de A es mayor o igual que Cero entonces
Escribir que el número ingresado es positivo
Sino
Escribir que el número ingresado es negativo
finsi
fin

2.3.- Componentes de un algoritmo

Para diseñar 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 descripción
de actividades deberán ser refinados añadiendo 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
método de diseño de los algoritmos en etapas, yendo de los conceptos generales a los de detalle a través de
refinamientos sucesivos, se conoce como método descendente (Top Down). En un algoritmo se debe
considerar tres partes:

1. Entrada: Información dada al algoritmo


2. Proceso: Operaciones o cálculos necesarios para encontrar la solución del problema
3. Salida: Respuestas dadas por el algoritmo o resultados finales de los cálculos.

Como ejemplo imagínese que desea desarrollar un algoritmo que calcule la superficie de un rectángulo
proporcionándole 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?


- ¿Cuántos datos se introducira?
- ¿Cuantos son datos de entradas válidos?

Especificaciones de salida

- ¿Cuáles son los datos de salida?


- ¿Cuántos datos de salida se produciran?
- ¿Qué precisión tendrán los resultados?
- ¿Se debe imprimir una cabecera?

El algoritmo en el primer diseño se podrá representar con los siguientes pasos

Paso 1 Entrada de base y altura desde periférico de entrada por ejemplo teclado
Paso 2 Cálculo de la superficie, multiplicando la base por la altura
Pase 3 Salida por pantallas de base, altura y superficie.

Como habíamos mencionado antes el algoritmo debe ser independiente de cualquier lenguaje de
programación particular pero fácilmente traducible a alguno de ellos.
EJERCICIOS PARA EL TEMA II.

1.- Algoritmo para hacer una tasa de te.

Análisis del problema


Datos de salida: Taza de te
Datos de entrada: Bolsa de te, agua
Datos auxiliares: pitido de tetera, aspecto de la fusión.

Después 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.

2.- Diseñar un algoritmo para cambiar una rueda de coche.

Análisis del problema


Datos de salida: Rueda reparada
Datos de entrada: Rueda pinchada, rueda de repuesto, herramientas

Después de desmontar la rueda se procede a reemplazar por el neumático bueno u se procede a


guardar todas las herramientas

1. Inicio.
2. Si gato del coche esta averiado llamar a la estación 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 están 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 están puestos todos los tornillos volver al paso 8, en caso contrario continuar el proceso.
10. Bajar el gato.
11. Fin.

3.- Algoritmo para ir al cine

Análisis del problema


Datos de salida: Ver la película.
Datos de entrada: Nombre de la película, dirección de la sala, hora de
proyección
Datos auxiliares: Entrada, sitio.
Después 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 el periódico.
3. Mientras no lleguemos a la cartelera pasar la hoja.
4. Mientras no se acabe la cartelera leer película.
5. Si nos gusta recortarla.
6. Elegir una de las películas seleccionadas
7. Trasladarse a la sala
8. Si NO hay entadas bifurcar al punto 16; caso contrario continuar
9. Si hay cola, ponerse al último.
10. Mientras no llegue a la taquilla avanzar.
11. Si NO hay entradas bifurcar al punto 16; caso contrario compra entrada
12. Leer el lugar de la entrada
13. Buscar lugar
14. Sentarse
15. Ver película
16. Fin

Ejercicios Propuestos

1. Compra una entrada para los toros.


2. Colocar la mesa para comer.
3. Cocer un huevo.
4. Lavar los platos del almuerzo.
5. Buscar el número telefónico de un compañero.
6. Repara un pinchazo de bicicleta
7. Pagar una multa de transito.
8. Hacer palomitas de maíz.
9. Cambiar el vidrio roto de una ventana
10. Hacer una llamada telefónica.
11. Quitar un foco quemado del techo.
¿Que es Dfd?

Dfd es un software diseñado para construir y analizar algoritmos . Usted puede crear diagramas de flujo de
datos para la representación de algoritmos de programación estructurada a partir de las herramientas de
edición que para éste propósito suministra el programa. Después de haber ingresado el algoritmo
representado por el diagrama, podrá ejecutarlo, analizarlo y depurarlo en un entorno interactivo diseñado para
éste fin. La interfaz gráfica de Dfd, facilita en gran medida el trabajo con diagramas ya que simula la
representación estándar de diagramas de flujo en hojas de papel.

Diagrama de Flujo de Datos

Un diagrama de flujo de datos es una descripción gráfica de un procedimiento para la resolución de un


problema. Son frecuentemente usados para describir algoritmos y programas de computador. Los diagramas
de flujo de datos están 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,
ejecutándose 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 resolución de problemas de cualquier tipo por medio de


determinada secuencia de pasos simples y no ambiguos. El concepto fue utilizado originalmente para el
cálculo matemático pero ahora es ampliamente usado en programación de computadoras.

You might also like