Traductor

lunes, 31 de marzo de 2014

BIENVENIDOS!


El Computador 


El computador u ordenador tal y como le conocemos actualmente, es el resultado de la evolución de las máquinas creadas por el hombre a lo largo de la historia, para potenciar el cálculo manual, reemplazándolo por el cálculo automático, más rápido, preciso y cómodo. 
 Para entender la estructura y funciones de cada uno de los principales elementos que componen un computador, vamos a establecer una analogía entre la forma de operar de éste, y el cálculo manual (ver figura 1). 
A la hora de realizar un cálculo manualmente, ponemos en juego los siguientes elementos: 
• Cerebro, con una triple función: 
• Controlar, dando las ordenes precisas al resto de elementos que intervienen en el cálculo. 

Figura 1 Analogía cálculo manual - cálculo automático.


• Realizar los cálculos oportunos. 
• Memorizar tanto lo que queremos hacer y cómo hacerlo, como los datos y resultados. 
• Sentidos, mediante los cuales nos comunicamos con el exterior. Cuando la información es de entrada, realizan la conversión de ésta a un formato que sea entendido por el cerebro (ej. vista: luz→impulsos eléctricos).
 Cuando la información va hacia el exterior realizan la conversión inversa (ej. habla: impulsos eléctricos→señal audible). 
 Un ordenador se compone básicamente de los mismo elementos, para ser más exactos, de una analogía de cada uno de ellos, como se puede ver en la figura 1. Cada elemento del ordenador realiza la misma función que su homólogo en el cálculo manual. 
 Según lo visto, podemos definir al ordenador como aquella máquina capaz de adquirir, representar, tratar y transmitir información. 
 El único lenguaje que entiende el ordenador es el binario, o sea, el construido mediante un alfabeto con dos símbolos {0,1}, el denominado alfabeto binario. La representación, por lo tanto, consiste en transformar cualquier información a este lenguaje. 
 Una vez representada la información, su tratamiento es el conjunto de procesos llevados a cabo para la resolución de un determinado problema. 
Los computadores están formados básicamente por el HARDWARE Y SOFTWARE;

Hardware: Se define como todo aquello que constituye la parte física o material de un ordenador. Es decir, los circuitos electrónicos y todos los componentes mecánicos tales como discos duros, impresoras, monitores, unidades de cinta, circuitos impresos, etc

Software: Se define como la parte lógica o de programación de una máquina. Es el conjunto de algoritmos y su representación en la computadora, es decir, los programas. La esencia del software la constituyen el conjunto de instrucciones que forman el programa, no los medios físicos en los que se registran. El software es algo no material y que puede ser fácilmente modificado. 


Arquitectura:



Arquitectura de hardware: Un computador desde la perspectiva del hardware, está constituido por una serie de dispositivos 
cada uno con un conjunto de tareas definidas. Los dispositivos de un computador se dividen     según la tarea que realizan en: dispositivos de entrada, dispositivos de salida, dispositivos de 
comunicaciones, dispositivos de almacenamiento y dispositivo de cómputo. 



Dispositivos de entrada: Son aquellos que permiten el ingreso de datos a un computador. 
Entre estos se cuentan: teclados, ratones, scanners, micrófonos, cámaras fotográficas, cámaras 
de vídeo, controles de juegos, lápices ópticos, y guantes de realidad virtual. 



  • 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 rápido, usada como puente entre la UCP y la memoria RAM, para evitar las demoras en la consulta de la memoria RAM.
Dispositivos de salida. Son aquellos que permiten mostrar información procesada por el computador. Entre otros están, las pantallas de video, impresoras, audífonos, plotters, guantes de realidad virtual, gafas y cascos virtuales.

Dispositivos de Salida

Dispositivos de almacenamiento. Son aquellos de los cuales el computador puede guardar información nueva y/o obtener información previamente almacenada. Entre otros están los discos flexibles, discos duros, unidades de cinta, CD-ROM, CD-ROM de re-escritura y DVD.

 
Dispositivos de Almacenamiento.

Dispositivos de comunicación: Son aquellos que le permiten a un computador comunicarse con otros. Entre estos se cuentan los modems, tarjetas de red y enrutadores.

  Módem

Dispositivo de computo: Es la parte del computador que le permite realizar todos los cálculos y tener el control sobre los demás dispositivos. Esta formado por tres elementos fundamentales, la unidad central de proceso, la memoria y el bus de datos y direcciones.

 Diagrama esquemático del dispositivo de computo

La unidad central de proceso (UCP): es el ‘cerebro’ del computador, esta encargada de realizar todos los cálculos, utilizando para ello la información almacenada en la memoria y de controlar los demás 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.

Unidad Central de Proceso.

Para realizar su tarea la unidad central de proceso dispone de una unidad aritmético lógica, una unidad de control, un grupo de registros y opcionalmente una memoria cache para datos y direcciones.
La unidad aritmético lógica (UAL Es la encargada de realizar las operaciones aritméticas y lógicas requeridas por el programa en ejecución, 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 ejecución y la memoria cache se encarga de mantener direcciones y datos intensamente usados por el programa en ejecución.

La memoria esta encargada de almacenar toda la información que el computador esta usando, es decir, la información 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:
El bus de datos y direcciones permite la comunicación 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 están instrucciones y datos, como las direcciones lógicas asignadas a los dispositivos.

La unidad central de proceso es más conocida como CPU por sus siglas en inglés Central Process Unit.

 La unidad aritmético lógica es más conocida como ALU por sus siglas en inglés Arithmetic Logic Unit.


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 están los lenguajes de máquina, los  ensambladores y los de alto nivel.

Un conjunto de aplicaciones de software.

Un conjunto de herramientas de software.
      Lenguaje de Máquina
Lenguaje Ensamblador
Lenguaje de Alto Nivel

 DIAGRAMAS DE FLUJO
pseudocodigo
Inicio
acción 1
acción 2
.
.
.
acción n
Fin
si condición entonces
acción1
acción2
.
.
.
acción n
si condición entonces
acción1
acción2
.
.
.
en caso contrario
acción1
acción2
para ver.Entera inicial hasta final hacer
acción1
acción2
.
.
.
acción n
mientras condición hacer
acción1
acción2
.
.
.
acción n
repita
acción1
acción2
.
.
.
acción n
Hasta que condición
casos selector de
valor1 : acción1
acción2


valor2 : acción1
acción2
...
valor n : acción1
acción2
 EJEMPLOS DE ALGORITMOS
Inicio
Dormir 
haga 1 hasta que suene el despertador (o lo llame la mamá).
Mirar la hora.
¿Hay tiempo suficiente?

Si hay, entonces
    Bañarse.
    Vestirse.
    Desayunar.

Sino
      Vestirse.
Cepillarse los dientes.
Despedirse de la mamá y el papá.
   ¿Hay tiempo suficiente?

Si, Caminar al paradero.
SinoCorrer al paradero.
Hasta que pase un bus para la universidad haga :
    Esperar el bus
    Ver a las demás personas que esperan un  bus.
Tomar el bus.

Mientras no llegue a la universidad haga 
    Seguir en el bus.
    Pelear mentalmente con el conductor.
Timbrar.
Bajarse.
Entrar a la universidad. 

Fin
Inicio
PASO 1.  Aflojar los tornillos de la rueda pinchada con la llave inglesa.
PASO 2.    Ubicar el gato mecánico 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
Inicio
PASO 1. Colocar los números el primero encima del segundo, de tal manera que las unidades, decenas, centenas, etc., de los números queden alineadas. Trazar una línea debajo del segundo número.
PASO 2.  Empezar por la columna más a la derecha.
PASO 3.  Sumar los dígitos 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 línea las unidades de la suma. Si no es mayor anotar la suma debajo de la línea.
PASO 5.  Si hay más columnas a la izquierda, pasar a la siguiente columna a la izquierda y volver a 3.
PASO 6.  El número debajo de la línea es la solución.
Fin




Lenguaje de programación:

Es un conjunto de reglas y estándares que es utilizado para escribir programas de computador (software), que puedan ser entendidos por él. 

Es el único lenguaje que entiende el hardware (máquina) y usa exclusivamente el sistema binario. Este lenguaje es específico para cada hardware (procesador, dispositivos, etc.).
El programa es almacenado en memoria y es tanto códigos de instrucción como datos. La estructura de una instrucción en lenguaje máquina es la siguiente:

CÓDIGO ARGUMENTO(S)
  Lenguaje de máquina

Es un lenguaje que usa mnemónicos (palabras cortas escritas con caracteres alfanuméricos), para codificar las operaciones. Los datos y/o direcciones son codificados generalmente como números en un sistema hexadecimal. Generalmente es específico (aunque no único) para cada lenguaje de máquina.
La estructura de una instrucción en este lenguaje es la siguiente: 
MNEMONICO ARGUMENTO(S)
Un ENSAMBLADOR es un software, generalmente escrito en lenguaje de máquina, que es capaz de traducir de lenguaje ensamblador a lenguaje de máquina, mientras que uCARGADOR es un software que almacena en memoria el programa en lenguaje de máquina generado por el ensamblador.
Lenguaje Ensamblador.

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 símbolos aritméticos y/o relacionales para describir cálculos matemáticos, y generalmente representa las cantidades numéricas 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 realización de programas independiente del Hardware.
Los COMPILADORES e INTERPRETES son software capaz de traducir de un lenguaje de alto nivel al lenguaje ensamblador específico de una máquina. Los primeros toman todo el programa en lenguaje de alto nivel, lo pasan a lenguaje ensamblador y luego lo ejecutan. Los últimos toman instrucción por instrucción, la traducen y la van ejecutando.
 Lenguaje de Alto Nivel.


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 realización. Aunque los recursos que debe utilizar cada tarea deben ser finitos estos no están limitados, es decir, si una tarea bien definida requiere una cantidad inmensa (pero finita) de algún recurso para su realización, dicha tarea puede formar parte de un algoritmo. Además, se dice que una secuencia de tareas esta ‘bien definida’ si se sabe el orden exacto de ejecución de cada una de las mismas.

EJECUTAR un algoritmo es realizar las tareas del mismo, en el orden especificado y utilizando los recursos disponibles.



REPRESENTACIÓN DE UN ALGORITMO


Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico.
La descripción de un algoritmo usualmente se hace en tres niveles:
1.Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.
2.Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución.
3. Implementación. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones.
También es posible incluir un teorema que demuestre que el algoritmo es correcto, un análisis de complejidad o ambos.




Los algoritmos pueden ser creados de dos formas:

1)Pseudocódigo.- Es un conjunto pequeño y claro de instrucciones; en secuencia, que permite llevar a cabo una tarea.

2)Diagrama de flujo.- Es la representación de la secuencia, a través de símbolos, de la tarea que se va a realizar.

Un ejemplo de algoritmo es el que realizamos para cambiar una llanta a un automóvil:

Inicio
Aflojar tornillos de las llantas
levantar el coche con el gato
Sacar los tornillos de las llantas
Quitar la llanta
Poner la llanta de repuesto
Poner los tornillos
Bajar el gato
Apretar los tornillos
fin


Se basan en la utilización de diversos símbolos para representar operaciones específicas. Se les llama diagramas de flujo porque los símbolos utilizados son.

SIMBOLOGIA UTILIZADA EN LOS DIAGRAMAS DE FLUJO
SÍMBOLO                          FUNCIÓN






Es un lenguaje de especificación de algoritmos. El uso de tal lenguaje hace el paso de codificación final (esto es, la traducción a un lenguaje de programación) relativamente fácil.
El pseudocódigo nació como un lenguaje similar al lenguaje natural y era un medio para representar básicamente las estructuras de control de programación estructurada. Se considera un primer borrador, dado que el pseudocódigo tiene que traducirse posteriormente a un lenguaje de programación.
La ventaja del pseudocódigo es que en su uso en la planificación de un programa, el programador se puede concentrar en la lógica y en las estructuras de control y no preocuparse de las reglas de un lenguaje específico. Es también fácil modificar el pseudocódigo si se descubren errores o anomalías en la lógica del programa, además de todo esto es fácil su traducción a lenguajes como PascalC o Basic.
El pseudocódigo utiliza para representar las acciones sucesivas palabras reservadas (similares a sus homónimos en los lenguajes de programación), tales como inicio, fin, si-entonces-sino, mientras, repita-hasta….etc

Secuencia
Decisión
Simple

Doble
Interacción
Fija

Condicional al inicio

Condicional al final

Selección





1. PROBLEMA: Un estudiante se encuentra en su casa (durmiendo) y debe ir a la universidad (a tomar la clase de programación!!), ¿qué debe haga el estudiante?
ALGORITMO:
Inicio



Dormir
haga 1 hasta que suene el despertador (o lo llame la mamá).
Mirar la hora.
¿Hay tiempo suficiente?
Si hay, entonces 
Bañarse.
Vestirse.
Desayunar.
Sino,
Vestirse.
Cepillarse los dientes.
Despedirse de la mamá y el papá.
¿Hay tiempo suficiente?
Si, Caminar al paradero.
Sino, Correr al paradero.
Hasta que pase un bus para la universidad haga :
Esperar el bus
Ver a las demás personas que esperan un bus.
Tomar el bus.
Mientras no llegue a la universidad haga :
Seguir en el bus.
Pelear mentalmente con el conductor.
Timbrar.
Bajarse.
Entrar a la universidad. 
Fin


2. PROBLEMA: Cambiar la rueda pinchada de un automóvil teniendo un gato mecánico 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 mecánico 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

3. PROBLEMA: Realizar la suma de los números 2448 y 5746.
ALGORITMO:


Inicio

PASO 1. Colocar los números el primero encima del segundo, de tal manera que las unidades, decenas, centenas, etc., de los números queden alineadas. Trazar una línea debajo del segundo número.

PASO 2. Empezar por la columna más a la derecha.
PASO 3. Sumar los dígitos 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 línea las unidades de la suma. Si no es mayor anotar la suma debajo de la línea.
PASO 5. Si hay más columnas a la izquierda, pasar a la siguiente columna a la izquierda y volver a 3.
PASO 6. El número debajo de la línea es la solución.
Fin