45
FACULTAD DE CIENCIA Y TECNOLOGIA RED NACIONAL UNIVERSITARIA SYLLABUS Facultad de Ciencia y Tecnología Ingeniería de Sistemas PRIMER SEMESTRE Ing. Adhemar Ramírez Gestión Académica I/2010 1

PROGRAMACION I.doc

Embed Size (px)

Citation preview

Page 1: PROGRAMACION I.doc

FACULTAD DE CIENCIA Y TECNOLOGIA

RED NACIONAL UNIVERSITARIA

SYLLABUS

Facultad de Ciencia y Tecnología

Ingeniería de Sistemas

PRIMER SEMESTRE

Ing. Adhemar Ramírez

Gestión Académica I/2010

1

Page 2: PROGRAMACION I.doc

FACULTAD DE CIENCIA Y TECNOLOGIA

UDABOLUNIVERSIDAD DE AQUINO BOLIVIA

Acreditada como PLENA mediante R.M. 288/01

VISIÓN DE LA UNIVERSIDAD

Ser la Universidad líder en calidad educativa.

MISIÓN DE LA UNIVERSIDAD

Desarrollar la Educación Superior Universitaria con calidad y competitividad al servicio de la sociedad.

2

Page 3: PROGRAMACION I.doc

FACULTAD DE CIENCIA Y TECNOLOGIA

SYLLABUS

Asignatura: Programación ICódigo: CMP 117Requisito: NingunoCarga Horaria: 80Créditos: 8

I. OBJETIVOS

Capacitar al estudiante en el enfoque y solución de problemas mediante algoritmos estructurados, así como la utilización del computador para la programación y ejecución de tales soluciones usando un lenguaje de programación de alto nivel.

II. OBJETIVOS ESPECIFICOS

Desarrollar en el estudiante la habilidad de plantear, paso a paso y usando estructuras lógicas, la solución ordenada de problemas típicos.

Capacitar al estudiante en la solución de problemas, mediante el uso de una maquina de cómputo y de un pseudo-lenguaje de programación o de una herramienta sencilla de computación.

III. PROGRAMA ANALÍTICO DE LA ASIGNATURA.

1. INTRODUCCION A LOS COMPUTADORES Y A LA COMPUTACION

1. Computadores.

1.1. ¿Que son?

1.2. Características

1.3. Elementos

1.4. Usuarios

1.5. Evolución Histórica

1.6. Clasificación

1.7. Lenguajes de programación

1.8. Virus y Anomalías

2. Computación

2.1. Definición

2.2. Dato

2.3. Programa

2.4. Información

3

Page 4: PROGRAMACION I.doc

FACULTAD DE CIENCIA Y TECNOLOGIA

1. ALGORITMOS

1. Técnicas Explicitas para resolver problemas y diseñar algoritmos.

1. ESPECIFICACION DE ALGORITMOS PSEUDOCODIGO

1. Constantes

2. Variables

3. Instrucciones de Asignación y de entrada/salida

4. Estructuras Secuénciales

5. Estructuras de Decisión

5.1. IF-ELSE

5.2. CASE

6. Estructuras de Repetición

6.1. For

6.2. While

6.3. Do-while

6.4. Problemas con FOR, WHILE, DO-WHILE

6.4.1. Series

6.4.2. Sumatorias, Productorias

6.4.3. Descomposición de Dígitos

6.4.4. Lotes de números

1. PROGRAMACIÓN EN PASCAL

1. Estructuras de un programa

2. Datos reales

3. Entrada/Salida

4. Procedimientos y Funciones

5. Otros tipos de datos simples

6. Estructuras de Decisión: IF, CASE

7. Repetición por Iteración: Estructuras

8. Archivos

9. Texto

10. Estructuras de datos: tipos definidos por el programador

1. ARREGLOS UNI, BI Y MULTIDIMENSIONAL

1. Arreglos Unidimensionales o vectores

2. Arreglos bidimensionales o matrices

3. Arreglos multidimensionales

1. REGISTROS

1. Conceptos fundamentales de registros

4

Page 5: PROGRAMACION I.doc

FACULTAD DE CIENCIA Y TECNOLOGIA

III. BIBLIOGRAFIA

LUIS JOYANES AGUILAR, “Problemas y metodología de la Programación”, Editorial McGraw-Hill. España,

LUIS JOYANES AGUILAR, “Fundamentos de La Programación”, Editorial Osborne/McGraw-Hill,Mexico,

RAMIRO AGUILAR , “Programación I” , Editorial UDABOL

EDUARDO ALCALDE L, MIGUEL GARCIA L, “Metodologías de Programación”, Editorial McGraw-Hill, México

JORGE CASTRO, “Curso de Programación”, Editorial McGraw-Hill, México

AHO A.V, HOPCROFT J. E Y ULLMAN J.D, “Estructuras de Datos y Algoritmos”, Editorial Addison-Wesley, Iberoamericana.

CAIRO, OSVALDO, “Metodología de Programación”, Editorial Alfaomega

WIRTH N, “Algoritmos y Estructuras de Datos”, Editorial Pretice-Hall.

IV. CONTROL DE EVALUACIONES

1° evaluación parcialFecha:Nota:

2° evaluación parcialFecha: Nota:

Examen finalFecha:Nota:

V. CRONOGRAMA DE BRIGADAS

APUNTES

5

Page 6: PROGRAMACION I.doc

FACULTAD DE CIENCIA Y TECNOLOGIA

6

Page 7: PROGRAMACION I.doc

FACULTAD DE CIENCIA Y TECNOLOGIA

WORK PAPER # 1

PROGRAMA DE CONTROL DE CALIDAD

No. DE PROCEDIMIENTO: No. DE HOJAS: 3

ELABORÓ Ing. Adhemar Ramirez CÓDIGO:

TÍTULO DEL WORK PAPER: La Computadora

DPTO.: Facultad de Ciencia y Tecnología

DESTINADO A:

DOCENTES ALUMNOS X ADMINIST. OTROS

OBSERVACIONES: Asignatura Programación I

FECHA DE DIFUSIÓN:

FECHA DE ENTREGA:

7

Page 8: PROGRAMACION I.doc

FACULTAD DE CIENCIA Y TECNOLOGIA

QUÉ ES UNA COMPUTADORA?

Una computadora es un dispositivo capaz de realizar cálculos y tomar decisiones lógicas a velocidades hasta miles de millones de veces más rápidas que las alcanzables por los seres humanos. Por ejemplo, muchas de las computadoras personales actuales pueden realizar decenas de millones de sumas por segundo, y los más sorprendente es que puede hacer todo eso sin cometer errores, se imaginan a una persona provista de una calculadora cuánto tiempo le tomaría realizar el mismo cálculo.

Componentes de una computadoraUna computadora de cualquier forma que se vea tiene dos tipos de componentes: El Hardware (Parte Física) y el Software (Parte Lógica).

HardwareLlamamos Hardware a la parte física de la computadora, pues vienen a ser las partes que podamos percibir con el sentido del tacto. El hardware que compone a una computadora es muy complejo, pues una pequeña pieza puede contener millones de transistores. Ejemplo de Hardware podría ser la Tarjeta Madre, Memoria Principal, CPU, etc.

Partes del Hardware de una computadoraEl Hardware esta compuesto por seis unidades o secciones básicas y son las siguientes:1. Unidad de entrada. Que es la sección de recepción de la computadora: obtiene información (datos y programas de computadora) y lo coloca a disposición de las demás unidades para que sea procesada. La información se introduce por medio del teclado o del Mouse (ratón). Otros dispositivos pueden ser los escáneres, los lápices ópticos, las pantallas touch screen, cámaras, etc.

2. Unidad de salida. La computadora muestra las respuestas a través de esta unidad, estas respuestas son el resultado del procesamiento que realiza la computadora con los datos que hemos introducido. Por ejemplo mediante un dispositivo de entrada como el teclado, podemos escribir palabras la cuales las podremos observar por un dispositivo de salida como el monitor o la pantalla.Otros dispositivos de salida son también la impresora, los parlantes, tarjetas de video.

3. Unidad de memoria. También se la conoce como memoria RAM, es el almacén primario de la computadora por lo que es relativamente de baja capacidad. Esta memoria es la más importante de la computadora, porque guarda información necesaria para que la computadora pueda arrancar y funcionar, en otras palabras guarda información de todos los programas que se ejecutan en una computadora incluyendo al Sistema Operativo.

4. Unidad aritmética y lógica (ALU). Esta es la parte de la computadora en donde se realizan los cálculos. sumas o restas. Aquí están también los mecanismos de decisión que permiten a la computadora, por ejemplo, comparar dos elementos de la unidad de memoria para determinar si son iguales o no.

8

Page 9: PROGRAMACION I.doc

FACULTAD DE CIENCIA Y TECNOLOGIA

5. Unidad central de procesamiento (CPU). Es el cerebro de la computadora, pues es el coordinador de la máquina y la parte encargada de supervisar el funcionamiento de las otras secciones. La CPU le dice a la unidad de entrada cuándo debe leerse información para introducirla en la unidad de memoria, le dice a la ALU cuando la información de la unidad de memoria debe utilizarse en los cálculos y le dice la unidad de salida cuando debe enviar la información que está es la unidad de memoria a ciertos dispositivos de salida.6. Unidad de almacenamiento secundario. Esta es el almacén de largo plazo y de alta capacidad de la computadora. Los programas y datos que nos están siendo utilizados por las otras unidades normalmente se colocan en dispositivos de almacenamiento secundario hasta que necesiten, posiblemente horas, días, meses o incluso años después. El acceso es más lento comparado con el de la memoria primaria o memoria RAM.

CUESTIONARIO:

1. ¿Defina el concepto de un Computador?_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

2. ¿Componentes de un computador?____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

3. ¿Identifique elementos de Hardware?____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

4. ¿Qué es el CPU?____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

5. ¿Qué unidades de almacenamiento existen?_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

9

Page 10: PROGRAMACION I.doc

FACULTAD DE CIENCIA Y TECNOLOGIA

WORK PAPER # 2

PROGRAMA DE CONTROL DE CALIDAD

No. DE PROCEDIMIENTO: No. DE HOJAS: 3

ELABORÓ Ing. Adhemar Ramirez CÓDIGO:

TÍTULO DEL WORK PAPER: Software

DPTO.: Facultad de Ciencia y Tecnología

DESTINADO A:

DOCENTES ALUMNOS X ADMINIST. OTROS

OBSERVACIONES: Asignatura Programación I

FECHA DE DIFUSIÓN

FECHA DE ENTREGA:

10

Page 11: PROGRAMACION I.doc

FACULTAD DE CIENCIA Y TECNOLOGIA

SOFTWARENos referimos con software a la parte lógica de la computadora a los procedimientos que el hardware realiza inducidos por el software y este a su vez por nosotros. El software es como un traductor que hace que nuestras órdenes se conviertan en realidad, manipulando el hardware o la parte física.El software esta compuesto por programas de computadora.

ProgramaUn programa es un conjunto de instrucciones lógicas que le dicen a la computadora que debe hacer, además un programa debe satisfacer las necesidades de los usuarios utilizando eficientemente los recursos disponibles. Los programas de tratan con mayor profundidad en el Tema 3.Los programas que escribiremos más adelante serán utilizando un lenguaje de programación muy popular como lo es el C++.

Código FuenteLe daremos el nombre de código fuente a los programas que escribamos en un determinado lenguaje de programación, que simplemente estará compuesto por instrucciones escritas por un programador. El código fuente no constituye software propiamente dicho pero es una instancia mediante la cual se llega al Software

Sistema Operativo Es el programa más importante que se ejecuta en una computadora. Cualquier computadora de propósito general debe operar con un sistema operativo para lograr ejecutar otros programas. El sistema operativo ejecuta las tareas básicas, como de reconocer entradas desde el teclado, enviar mensajes a pantalla, manteniendo rastro de los archivos y directorios en el disco, y controlar los dispositivos periféricos como las impresoras.Para grandes sistemas, el sistema operativo tiene una gran responsabilidad y cualidades. Es como un policía de transito, quien se asegura de que los diferentes programas que se ejecutan al mismo tiempo no interfieran unos con otros.También es responsable de la seguridad, asegurando que usuarios no autorizados accedan al sistema.El sistema operativo provee de una plataforma de software por encima de la cual otros programas, llamados aplicaciones, pueden ejecutarse. Los programas de aplicación tienen que crearse de acuerdo a la plataforma en donde se van a ejecutar. La elección de sistema operativo, entonces, determina el tipo de uso que se le va ha dar a la PC como también el tipo de aplicaciones que se puedan ejecutar.Para las PCs (computadoras personales) los más populares sistemas operativos son el DOS, OS/2, y Windows, además de otros de libre distribución como el Linux.

Lenguajes de alto nivel y lenguajes de bajo nivelLos programadores escriben instrucciones en diversos lenguajes de programación. La computadora puede entender directamente algunos de ellos, pero otros requieren pasos de traducción intermedios. Hoy día se utilizan cientos de lenguajes de computadora, los cuales pueden dividirse en tres tipos generales:

1. Lenguaje máquina

Una computadora sólo puede entender el lenguaje máquina. El lenguaje de máquina ordena a la computadora realizar sus operaciones fundamentales una por una. Dicho lenguaje es difícil de usar para lar persona porque trabajar con números no es muy cómodo además estos números están en formato binario.

2. Lenguajes de bajo nivel (ensamblador)

11

Page 12: PROGRAMACION I.doc

FACULTAD DE CIENCIA Y TECNOLOGIA

Para facilitar y agilizar su labor a los programadores, se buscaron nuevos lenguajes. El lenguaje ensamblador consiste en pequeñas abreviaturas de palabras en ingles. Se crearon los programar traductores para convertir los programas escritos en lenguaje ensamblador a lenguaje máquina a velocidades de computadora. Estos lenguajes aun requerían muchas instrucciones para realizar simples operaciones.

3. Lenguajes de alto nivel

Para acelerar, aún más, el proceso de programación se desarrollan los lenguajes de alto nivel en los que se podía escribir un enunciado para realizar tareas sustanciales. Los lenguajes de alto nivel permiten a los programadores escribir instrucciones que asemejan el ingles cotidiano y contiene notaciones matemáticas de uso común.

CUESTIONARIO:

1 ¿Qué es un programa?_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

2 ¿Defina un Sistema Operativo?_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

3 ¿Que es un código fuente?

_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

4 ¿Qué es un lenguaje de Bajo Nivel?

_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

5 ¿Explique la Diferencia entre lenguajes de alto y Bajo nivel?

_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

12

Page 13: PROGRAMACION I.doc

FACULTAD DE CIENCIA Y TECNOLOGIA

WORK PAPER # 3

PROGRAMA DE CONTROL DE CALIDAD

No. DE PROCEDIMIENTO: No. DE HOJAS: 4

ELABORÓ Ing. Adhemar Ramirez CÓDIGO:

TÍTULO DEL WORK PAPER: AMBIENTES DE PROGRAMACIÓN

DPTO.: Facultad de Ciencia y Tecnología

DESTINADO A:

DOCENTES ALUMNOS X ADMINIST. OTROS

OBSERVACIONES: Asignatura Programación I

FECHA DE DIFUSIÓN:

FECHA DE ENTREGA:

13

Page 14: PROGRAMACION I.doc

FACULTAD DE CIENCIA Y TECNOLOGIA

AMBIENTES DE PROGRAMACIÓN

Los programadores necesitan un ambiente de programación, es decir, una lugar en donde puedan plasmar sus ideas, un lugar en donde puedan escribir sus programas, en otras palabras donde puedan programar. Los ambientes de programación vienen a ser los diferentes leguajes de programación que existen, son muy variados, con muchas cualidades propias pero se puede realizar una misma tarea, muchas veces, con cualquiera de ellos. Existen lenguajes de programación de Alto y Bajo nivel; entre los más conocidos de Alto nivel podemos mencionar a C, C++, JAVA, Fortran, T. Pascal, etc.

Traductor de lenguajes de programaciónLos traductores son programas que traducen los programas en código fuente, escritos en lenguajes de alto nivel, a programas escritos en lenguaje máquina. Los traductores pueden ser de dos tipos: compiladores e interpretes

CompiladorUn compilador es un programa que lee el código escrito en un lenguaje (lenguaje origen), y lo traduce o traduce en un programa equivalente escrito en otro lenguaje (lenguaje objetivo). Como una parte fundamental de este proceso de traducción, el compilador le hace notar al usuario la presencia de errores en el código fuente del programa. Vea la figura de abajo.

El C++ es un lenguaje que utiliza un compilador y su trabajo es el de llevar el código fuente escrito en C++ a un programa escrito en lenguaje máquina.Entrando en más detalle un programa en código fuente es compilado obteniendo un archivo parcial (un objeto) que tiene

extensión obj luego el compilador invoca al linker que convierte al archivo objeto en un ejecutable con extensión exe

que como ya sabemos es un archivo que esta en formato binario (ceros y unos) y que puede funcionar por si solo.

Además el compilador de C++ al realizar su tarea realiza una comprobación de errores en el programa, es decir, revisa que todo este en orden por ejemplo variables y funciones bien definidas, revisa todo lo referente a cuestiones sintácticas, esta fuera del alcance del compilador que por ejemplo el algoritmo utilizado en el problema funcione bien.La siguiente figura muestra los pasos para tener un programa ejecutable desde el código fuente:

14

Page 15: PROGRAMACION I.doc

FACULTAD DE CIENCIA Y TECNOLOGIA

InterpreteLos interpretes en lugar de producir un Lenguaje objetivo, como en los compiladores, lo que hacen es realizar la operación que debería realizar el Lenguaje origen. Un interprete lee el código como esta escrito y luego lo convierte en acciones, es decir, lo ejecuta en ese instante.Existen lenguajes que utilizan un Interprete, como por ejemplo JAVA, y su interprete traduce en el instante mismo de lectura, el código en lenguaje máquina para que pueda ser ejecutado.La siguiente figura muestra el funcionamiento de un interprete.

Diferencia entre Compilador e InterpreteLos compiladores difieren de los interpretes en varios aspectos:Un programa que ha sido compilado puede correr por si solo, pues en el proceso de compilación se lo transformo en otro lenguaje (lenguaje máquina).Un interprete traduce el programa cuando lo lee, convirtiendo el código del programa directamente en acciones.La ventaja del interprete es que dado cualquier programa se puede interpretarlo en cualquier plataforma (sistema operativo), en cambio el archivo generado por el compilador solo funciona en la plataforma en donde se lo ha creado.Pero por otro lado un archivo compilado puede ser distribuido fácilmente conociendo la plataforma, mientras que un archivo interpretado no funciona si no se tiene el interprete.Hablando de la velocidad de ejecución una archivo compilado es de 10 a 20 veces más rápido que un archivo interpretado.

15

Page 16: PROGRAMACION I.doc

FACULTAD DE CIENCIA Y TECNOLOGIA

CUESTIONARIO:

¿Qué es un compilador?_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

¿Qué es un Intérprete?_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

¿Diferencia entre Compilador e intérprete?_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

WORK PAPER # 4

16

Page 17: PROGRAMACION I.doc

FACULTAD DE CIENCIA Y TECNOLOGIA

PROGRAMA DE CONTROL DE CALIDAD

No. DE PROCEDIMIENTO: No. DE HOJAS: 3

ELABORÓ Ing. Adhemar Ramirez CÓDIGO:

TÍTULO DEL WORK PAPER: Lenguajes de Programación

DPTO.: Facultad de Ciencia y Tecnología

DESTINADO A:

DOCENTES ALUMNOS X ADMINIST. OTROS

OBSERVACIONES: Asignatura Programación I

FECHA DE DIFUSIÓN:

FECHA DE ENTREGA:

LENGUAJES DE PROGRAMACION

Al desarrollarse las primeras computadoras electrónicas, se vio la necesidad de programarlas, es decir, de almacenar en memoria la información sobre la tarea que iban a ejecutar. Las primeras se usaban como calculadoras simples; se les indicaban los pasos de cálculo, uno por uno.

John Von Neumann desarrolló el modelo que lleva su nombre, para describir este concepto de "programa almacenado". En este modelo, se tiene una abstracción de la memoria como un conjunto de celdas, que almacenan simplemente

17

Page 18: PROGRAMACION I.doc

FACULTAD DE CIENCIA Y TECNOLOGIA

números. Estos números pueden representar dos cosas: los datos, sobre los que va a trabajar el programa; o bien, el programa en sí. ¿Cómo es que describimos un programa como números? Se tenía el problema de representar las acciones que iba a realizar la computadora, y que la memoria, al estar compuesta por switches correspondientes al concepto de bit, solamente nos permitía almacenar números binarios.

La solución que se tomó fue la siguiente: a cada acción que sea capaz de realizar nuestra computadora, asociarle un número, que será su código de operación (opcode) . Por ejemplo, una calculadora programable simple podría asignar los opcodes: 1 = SUMA, 2 = RESTA, 3 = MULTIPLICA, 4 = DIVIDE.

Supongamos que queremos realizar la operación 5 * 3 + 2, en la calculadora descrita arriba. En memoria, podríamos "escribir" el programa de la siguiente forma: Localidad Opcode Significado Comentario 0 5 5 En esta localidad, tenemos el primer número de la fórmula 1 3 * En esta localidad, tenemos el opcode que representa la multiplicación. 2 3 3 En esta localidad, tenemos el segundo número de la fórmula 3 1 + En esta localidad, tenemos el opcode que representa la suma. 4 2 2 En esta localidad, tenemos el último número de la fórmula

Podemos ver que con esta representación, es simple expresar las operaciones de las que es capaz el hardware (en este caso, nuestra calculadora imaginaria), en la memoria.

La descripción y uso de los opcodes es lo que llamamos lenguaje de máquina . Es decir, la lista de códigos que la máquina va a interpretar como instrucciones, describe las capacidades de programación que tenemos de ella; es el lenguaje más primitivo, depende directamente del hardware, y requiere del programador que conozca el funcionamiento de la máquina al más bajo nivel.

los lenguajes más primitivos fueron los lenguajes de máquina. Esto, ya que el hardware se desarrolló antes del software, y además cualquier software finalmente tiene que expresarse en el lenguaje que maneja el hardware.

La programación en esos momentos era sumamente tediosa, pues el programador tenía que "bajarse" al nivel de la máquina y decirle, paso a pasito, cada punto de la tarea que tenía que realizar. Además, debía expresarlo en forma numérica; y por supuesto, este proceso era propenso a errores, con lo que la productividad del programador era muy limitada. Sin embargo, hay que recordar que en estos momentos, simplemente aún no existía alternativa.

El primer gran avance que se dio, como ya se comentó, fue la abstracción dada por el Lenguaje Ensamblador, y con él, el nacimiento de las primeras herramientas automáticas para generar el código máquina. Esto redujo los errores triviales, como podía ser el número que correspondía a una operación, que son sumamente engorrosos y difíciles de detectar, pero fáciles de cometer. Sin embargo, aún aquí es fácil para el programador perderse y cometer errores de lógica, pues debe bajar al nivel de la forma en que trabaja el CPU, y entender bien todo lo que sucede dentro de él.

Con el desarrollo en los 50s y 60s de algoritmos de más elevado nivel, y el aumento de poder del hardware, empezaron a entrar al uso de computadoras científicos de otras ramas; ellos conocían mucho de Física, Química y otras ramas similares, pero no de Computación, y por supuesto, les era sumamente complicado trabajar con lenguaje Ensamblador en vez de fórmulas. Así, nació el concepto de Lenguaje de Alto Nivel, con el primer compilador de FORTRAN (FORmula TRANslation), que, como su nombre indica, inició como un "simple" esfuerzo de traducir un lenguaje de fórmulas, al lenguaje ensamblador y por consiguiente al lenguaje de máquina. A partir de FORTRAN, se han desarrollado innumerables lenguajes, que siguen el mismo concepto: buscar la mayor abstracción posible, y facilitar la vida al programador, aumentando la productividad, encargándose los compiladores o intérpretes de traducir el lenguaje de alto nivel, al lenguaje de computadora.

Hay que notar la existencia de lenguajes que combinan características de los de alto nivel y los de bajo nivel (es decir, Ensamblador). Mi ejemplo favorito es C: contiene estructuras de programación de alto nivel, y la facilidad de usar librerías que también son características de alto nivel; sin embargo, fue diseñado con muy pocas instrucciones, las cuales son sumamente sencillas, fáciles de traducir al lenguaje de la máquina; y requiere de un entendimiento apropiado

18

Page 19: PROGRAMACION I.doc

FACULTAD DE CIENCIA Y TECNOLOGIA

de cómo funciona la máquina, el uso de la memoria, etcétera. Por ello, muchas personas consideramos a lenguajes como C (que fue diseñado para hacer sistemas operativos), lenguajes de nivel medio.

CUESTIONARIO:

1.¿Desarrolle el proceso de Código de Operación?

_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

19

Page 20: PROGRAMACION I.doc

FACULTAD DE CIENCIA Y TECNOLOGIA

WORK PAPER # 5

PROGRAMA DE CONTROL DE CALIDAD

No. DE PROCEDIMIENTO: No. DE HOJAS: 4

ELABORÓ Ing. Adhemar Ramirez CÓDIGO:

TÍTULO DEL WORK PAPER: ESTRUCTURA DE DATOS

DPTO.: Facultad de Ciencia y Tecnología

DESTINADO A:

DOCENTES ALUMNOS X ADMINIST. OTROS

OBSERVACIONES: Asignatura Programación I

FECHA DE DIFUSIÓN:

FECHA DE ENTREGA

20

Page 21: PROGRAMACION I.doc

FACULTAD DE CIENCIA Y TECNOLOGIA

ESTRUCTURA DE DATOS

1. Tipos de datos, estructuras de datos y tipos abstractos de datos La abstracción es un mecanismo fundamental para la comprensión de fenómenos o situaciones que implican gran cantidad de detalles. La idea de abstracción es uno de los conceptos más potentes en el proceso de resolución de problemas. Se entiende por abstracción la capacidad de manejar un objeto (tema o idea) como un concepto general, sin considerar la enorme cantidad de detalles que pueden estar asociados con dicho objeto. Sin abstracción no sería posible manejar, ni siquiera entender, la gran complejidad de ciertos problemas. Por ejemplo, sería inimaginable pensar en el presidente de una gran multinacional que viese la empresa en términos de cada trabajador individual o de cada uno de los objetos que fabrica, en vez de departamentos especializados.

El proceso de abstracción presenta dos aspectos complementarios: i. descartar los aspectos relevantes del objeto ii. ignorar aspectos irrelevantes del mismo (la irrelevancia depende del nivel de abstracción, ya que si se pasa a

niveles más concretos, es posible que ciertos aspectos pasen a ser relevantes).

Se puede decir que la abstracción permite estudiar los fenómenos complejos siguiendo un método jerárquico, es decir, por sucesivos niveles de detalle. Generalmente, se sigue un sentido descendente, desde los niveles más generales a los niveles más concretos.

Los programas son objetos complejos que pueden contener varios miles de instrucciones, cada una de las cuales puede dar lugar a un error del programa y que, por lo tanto, necesitan mecanismos de definición que eviten en la medida de lo posible que el programador cometa errores. Así, los lenguajes de programación de alto nivel permiten al programador abstraerse del sin fin de detalles de los lenguajes ensambladores y permiten trabajar de manera independiente respecto a las máquinas sobre las que finalmente se hará funcionar el programa.

En el proceso de programación se puede extender el concepto de abstracción tanto a las acciones, mediante la llamada abstracción procedural (uso de procedimientos), como a los datos, mediante los llamados tipos abstractos de datos.

La idea de programación procedural aparece ya en los primeros lenguajes de alto nivel (Fortran y Cobol) a través de la utilización de subrutinas. La aparición de la llamada programación estructurada profundiza más en la descomposición del programa en procedimientos. Los procedimientos permiten generalizar el concepto de operador, de manera que el programador es libre de definirse sus propios operadores y aplicarlos sobre datos que no tienen porque ser necesariamente simples, como hacen habitualmente los constructores de expresiones de los lenguajes de programación.

Los procedimientos permiten encapsular partes de un algoritmo (modularizar), localizando en una sección del programa aquellas proposiciones relacionadas con cierto aspecto del mismo. De forma que, la abstracción procedural destaca qué hace le procedimiento ignorando cómo lo hace. El programador, como usuario de un procedimiento, sólo necesita conocer la especificación de la abstracción (el qué), limitándose a usar el procedimiento con los datos apropiados. Por lo tanto, la abstracción produce un ocultamiento de información.

La aplicación a los datos de las ideas de abstracción y de ocultación de información ha tardado más tiempo en producirse. El concepto de tipo abstracto de datos, propuesto hacia 1974 por John Guttag y otros, vino a desarrollar este aspecto. Análogamente a los procedimientos, los llamados tipos abstractos de datos constituyen un mecanismo que permite generalizar y encapsular los aspectos relevantes sobre la información (datos) que maneja el programa.

Hay que tener en cuenta que no se deben confundir los conceptos de tipo de datos, estructura de datos y tipo abstracto de datos. Todos ellos constituyen diferentes niveles en el proceso de abstracción referida a los datos. Los datos son las propiedades o atributos (cualidades o cantidades) sobre hechos u objetos que procesa el ordenador. El tipo de datos, en un lenguaje de programación, define el conjunto de valores que una determinada variable puede tomar, así como las operaciones básicas sobre dicho conjunto. Los tipos de datos pueden variar de un lenguaje a otro, tanto los tipos simples como los mecanismos para crear tipos compuestos. Los tipos de datos constituyen un primer nivel de abstracción, ya que no se tiene en cuenta cómo se representa realmente la información sobre la memoria de la

21

Page 22: PROGRAMACION I.doc

FACULTAD DE CIENCIA Y TECNOLOGIA

máquina. Para el usuario, el proceso de representación es invisible. El programador no manipula directamente las cadenas de bits que constituyen los datos, sino que hace uso de las operaciones previstas para cada tipo de datos.

Por ejemplo: el tipo simple entero (integer en Pascal e int en C) define un conjunto de valores enteros comprendidos en un determinado intervalo. (en el caso de Pascal por la constante MAXINT), para los que están definidas las operaciones suma, resta, multiplicación y división entera (entre otras). De esta manera al escribirse los programas independientemente de la representación última de los datos en la memoria, si cambiase, por ejemplo, la forma de representar la información en los ordenadores (si por ejemplo, dejaran de trabajar en base dos y pasaran a base tres), los programas escritos en lenguajes de alto nivel sólo necesitarían ser recompilados para ejecutarse correctamente en las nuevas máquinas.

La memoria del ordenador es una estructura unidimensional (secuencia de elementos) formada por celdas iguales que pueden almacenar números binarios con un número fijo de cifras (bits). Cada tipo de datos tiene asociada una función de transformación que permite pasar los datos del formato en que se manejan en un programa al formato de la memoria y viceversa. De manera que cambiar la representación en memoria de los datos sólo implica modificar la función de transformación, el programador no ve afectado para nada su trabajo, que se encuentra en un nivel superior de abstracción.

Los tipos de datos que un programador utiliza en un lenguaje de alto nivel suelen ser de dos tipos: predefinidos por el lenguaje y definidos por el usuario. Esta última posibilidad contribuye a elevar el nivel del lenguaje, pues permite definir tipos de datos más próximos al problema que se desea resolver. Además, la posibilidad de especificar tipos estructurados introduce la idea de genericidad. El lenguaje suministra constructores genéricos de tipos mediante los cuales el programador puede definir tipos concretos. Sin embargo, al programador no se le permite definir cuáles son las operaciones permitidas para los nuevos tipos de datos.

Entre el nivel de los tipos de datos y el nivel de los tipos abstractos nos encontramos con las llamadas estructuras de datos. Las estructuras de datos son conjuntos de variables, quizás de tipos distintos, relacionadas (conectadas) entre sí de diversas formas y las operaciones definidas sobre esa agrupación. Ejemplos de estructuras de datos las podemos encontrar en muchos ámbitos, desde las matemáticas (estructuras algebraicas: grupo, anillo o cuerpo) hasta el mundo de los negocios (estructura de una empresa). Los elementos de una estructura de datos dependen del lenguaje de programación a través de los tipos de datos que los definen. Sin embargo, la estructura en sí, que está definida por el tipo de relación entre los elementos, no depende del lenguaje de programación empleado.

Las estructuras de datos se caracterizan por el tipo de los elementos de la estructura, las relaciones definidas sobre los elementos y las operaciones permitidas sobre la estructura. Operaciones típicas sobre estructuras de datos suelen ser: acceder a los elementos (por la posición que ocupan o por la información que contienen), buscar elementos, insertar o borrar elementos, modificar las relaciones entre los elementos, etc...

Al nivel de las estructuras de datos, ya no tienen relevancia las operaciones que se puedan realizar sobre los componentes individuales de la misma, solamente la tienen las operaciones que implican a la estructura globalmente.

En el nivel más alto de abstracción estarían los tipos abstractos de datos, estos se pueden ver como modelos matemáticos sobre los que se definen una serie de operaciones. El tipo abstracto de datos (en adelante TAD) es una colección de valores y operaciones que se definen mediante una especificación que es independiente de cualquier representación. Para representar el modelo matemático básico de un TAD se emplean estructuras de datos y las operaciones definidas en el modelo se representan mediante procedimientos. Por ejemplo, se podría definir el TAD número complejo como un objeto con dos componentes que son números reales y sobre el que se define las operaciones suma y producto de números complejos. En una definición de este tipo no importa si en un programa concreto se utiliza una estructura tipo registro con dos campos para representar los datos o bien una estructura tipo array con dos elementos. Desde el punto de vista formal ese tipo de información es irrelevante. Así mismo, no es necesario conocer cómo se realizan las operaciones definidas formalmente, sólo importa qué hacen para poder usarlas correctamente.

CUESTIONARIO:

22

Page 23: PROGRAMACION I.doc

FACULTAD DE CIENCIA Y TECNOLOGIA

1. ¿Qué es un tipo de Dato?_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

2. ¿Qué es la estructura de datos?_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

3. ¿Qué es el TAD?

_________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

23

Page 24: PROGRAMACION I.doc

FACULTAD DE CIENCIA Y TECNOLOGIA

PROGRAMA DE CALIDAD UDABOLDIF – 001

EVALUACIÓN HEURISTICA

¿En qué consiste?La evaluación heurística es una variante de la inspección de usabilidad donde los especialistas en usabilidad juzgan si cada elemento de la interfaz de usuario sigue los principios de usabilidad establecidos. Este método forma parte del que se conoce como "discount usability engineering" o "ingeniería de la usabilidad rebajada".Evaluación heurística resulta casi un nombre estrafalario para significar que un grupo de expertos escudriñan la interfaz y evalúan cada uno de sus elementos ante una lista de principios, heurísticas, comúnmente aceptadas. Inicialmente, esta lista fue muy larga, dando lugar a tediosas sesiones de evaluación y expertos agotados que casi terminaron con el propósito inicial de ahorrar tiempo y dinero en el test. Nielsen redujo la lista a un número de diez, resultando suficiente y aceptable para cualquier evaluación de diseños.

¿Cómo lo llevo a cabo?

Hay que conseguir a los expertosEs preciso reunir a un cierto número de expertos para realizar la evaluación. Desde luego, cuanto mayor sea el número de expertos ante la interfaz, mayor será el número de errores que se podrán encontrar, pero el coste se disparará. En un análisis sobre seis de sus estudios, Nielsen concluyó que se podría encontrar la mayoría de los problemas de usabilidad con un número de evaluadores entre tres y cinco.Son precisas algunas consideraciones acerca de la selección de los expertos. Lógicamente, se buscan expertos, gente que sepa lo que hace, con un amplio historial en la evaluación de la usabilidad y en el diseño de interfaces hombre-computadora (IHC). Además, el experto en cuestión habría de dominar todo lo referente al producto objeto del estudio. De conseguir a alguien así, habríamos avanzado muchísimo. Un ejemplo podría ser una aplicación del tipo "calcule usted mismo sus impuestos" (¿podría encontrar a un experto en HCI que domine la contabilidad?).

Los expertos evalúan por su cuenta y después comparan sus hallazgosUna vez que se dispone de los especialistas, estos han de proceder a efectuar la evaluación individualmente. Necesitan fijarse en la interfaz ellos solos y que sus compañeros no influyan de ninguna forma en ellos. Asimismo, será preciso asignarles los papeles y los escenarios a utilizar de modo que puedan adquirir la disposición mental y la perspectiva apropiada cuando hayan de interactuar con el producto. Si los usuarios del producto van a disponer de elementos como manuales o ayudas en línea, los evaluadores también habrán de disponer de ellos. De hecho, se les requiere para evaluar el conjunto total de nuestro producto.El experto revisará la interfaz al menos dos veces, fijándose en cada elemento de la misma (cada menú, control, botón,...) y evaluando su diseño, localización e implementación de acuerdo con la lista de heurísticas.

24

Page 25: PROGRAMACION I.doc

FACULTAD DE CIENCIA Y TECNOLOGIA

PROGRAMA DE CALIDAD UDABOLDIF – 002

INTRODUCCION A LA INFORMATICA

Definición:Informática es la ciencia del tratamiento automático (por realizarse mediante máquinas - hoy en día electrónicas -) y racional (está controlado mediante ordenes que siguen el razonamiento humano) de la información. Este término apareció en Francia en 1962 uniendo las palabras 'information' y automatique', en los países anglosajones se utiliza la frase Ciencia de las Computadoras (Computer Science). La informática se ocupa entre otros de los siguientes temas:El desarrollo de nuevas máquinas (ordenadores y periféricos)

o El desarrollo de nuevos métodos de trabajo (sistemas operativos) o El desarrollo de nuevas aplicaciones informáticas (software o programas)

Elementos constitutivos

La parte física, también denominada hardware, formada por: Unidad Central de Proceso Unidades de memoria auxiliar Unidades de entrada Unidades de salida

La parte lógica, también denominada software (programas), formada por: Sistema Operativo (programas para que el ordenador tenga capacidad de trabajar) Aplicaciones (programas que hacen que el ordenador trabaje)

Las personas, estas se dividen en dos grandes grupos: El personal informático: personas encargadas de controlar y manejar las máquinas para que den un buen

servicio: o El Personal de dirección (Director, Jefe del área de desarrollo, Jefe del área de explotación) o El Personal de análisis y programación (Jefe de proyectos, Analistas, Programadores) o El Personal de explotación (Operadores, Grabadores de datos)

Los usuarios

PROGRAMA DE CALIDAD UDABOLDIF – 003

LA MEMORIA

25

Page 26: PROGRAMACION I.doc

FACULTAD DE CIENCIA Y TECNOLOGIA

La Memoria Principal está formada por circuitos integrados (chips), en ellos la información se almacena en estados de tensión (+5 V) al que hacemos corresponder un uno, y no tensión (0 V) al que le corresponde un cero, por tanto el sistema de almacenamiento sólo posee dos posibles valores y por ello se denomina binario. Ésta es por lo tanto la menor cantidad de información que podemos almacenar en un ordenador, y se denomina bit (o cero o uno), y al conjunto de ocho bits se le denomina Byte u Octeto. Podemos imaginar la memoria como un conjunto de casillas, cada una con una dirección que la identifica, donde se almacenan los datos y las instrucciones correspondientes a los programas. Para conocer la ubicación de cada dato estas casillas deben estar convenientemente numeradas, es lo que se denomina dirección de memoria. En cada casilla podremos almacenar una determinada cantidad de bits según el ordenador, 8bits (1 Byte), 16 bits, 32 bits,.. .El número de bits que almacena un ordenador en cada casilla de la memoria y que puede manipular en cada ciclo se la denomina longitud de palabra ("word" en inglés). La siguiente tabla muestra, a modo de ejemplo, varias posiciones de memoria en un ordenador cuya longitud de palabra es de 8 bits, por tanto en cada dirección de memoria se almacena 1 Byte.

Dirección de memoria Dato almacenado

0 = 00000000 010110101 = 00000001 010011002 = 00000010 110110013 = 00000011 001011104 = 00000100 10001101etc etc

Figura 3 La cantidad de Bytes que se pueden almacenar en la memoria de un ordenador es bastante elevada y por ello se utilizan prefijos, así 1 KiloByte o KB corresponde a 210 = 1024 Bytes (y no 1000 KB), 1 MegaByte o MB = 1024 KB, 1 GigaByte o GB = 1024 MB, 1 TeraByte o TB = 1024 GB. La memoria se comunica con el resto de la CPU mediante unos canales denominados "Buses". Existen tres, el Bus de datos por donde circulan los datos, el Bus de direcciones encargado de indicar la posición de un dato concreto almacenado en memoria, y el Bus de control por donde circulan las instrucciones de los procesos que lleva a cabo el ordenador. Por tanto, para localizar un dato en la memoria principal, la dirección que ocupa éste debe circular por el bus de direcciones. Según cual sea la amplitud del bus de direcciones y la longitud de palabra, así será el tamaño de la memoria que puede gestionar el ordenador. Es decir, el número de casillas o direcciones de memoria que pueden ser indicadas y el tamaño de la información que contienen. Para un bus de direcciones de 8 bits el ordenador podrá gestionar 28 = 256 posiciones de memoria y en cada una de ellas podremos almacenar 8 bits si esta es la longitud de palabra de ese ordenador. La siguiente figura (Figura 3) muestra la memoria de un ordenador con una longitud de palabra de 8 bits y un bus de direcciones también de 8 bits. Deberían existir 28 = 256 casillas - desde la 00000000 hasta la 11111111 (en lenguaje binario), cada una conteniendo un dato de 8 bits de tamaño , en total 256 x 8 = 2048 bits o 256 Bytes. Los datos contenidos en las casillas de memoria no tienen evidentemente ninguna relación con la dirección de estas, ya que van variando conforme se ejecuta el programa o se producen entradas de nuevos datos.

PROGRAMA DE CALIDAD UDABOLDIF – 004

PERIFERICOS

26

Page 27: PROGRAMACION I.doc

FACULTAD DE CIENCIA Y TECNOLOGIA

Compuesto como su nombre indica por una serie de teclas que representan letras, números y otros caracteres especiales. Al presionar un carácter en el teclado se produce un tren de impulsos que ingresa en el ordenador a través de un cable. Todo tren de impulsos está constituido por estados de tensión eléctrica y no tensión, unos y ceros, es decir, por bits. Para codificar los caracteres se suele usar el estándar ASCII ( American Standard Code for Information Interchange ) o el EBCDIC menos extendido. En ambos, cada carácter esta codificado mediante ocho bits, así por ejemplo utilizando ASCII la letra A sería 01000001, la B 01000010 y la C 01000011.

Para intentar asegurar la fiabilidad en la transmisión, se añade un bit adicional denominado bit de paridad, si el ordenador que empleamos es de paridad par se añadirá un uno o un cero a cada carácter para que el total de unos trasmitidos sea par. Por ejemplo, si pulsamos la letra C, el número de unos correspondiente a su código ASCII es tres, y en este caso, añadiríamos un uno adicional para que el total de unos transmitidos sea cuatro, es decir par. Si pulsáramos la letra A, el total de unos sería dos y por tanto par y en este caso se añadiría un cero.

1. El Ratón o Mouse: Los más habituales son los ratones mecánicos, en estos en su parte inferior se encuentra una bola que rueda al deslizar el ratón sobre la superficie de la mesa o de una alfombrilla, el movimiento de la bola se transmite a dos ejes perpendiculares y de éstos a unas ruedas dentadas con un sistema óptico que permite captar el giro de cada una de estas ruedas, de aquí, mediante la electrónica del ratón, estos valores de movimiento serán enviados por el puerto serie (COM 1, COM 2,..) - por el puerto serie los datos se transmiten bit a bit -, o de un bus especial para el ratón, hacia la CPU, que mediante el programa adecuado podrá situar el cursor en la pantalla. Al pulsar el botón o botones del ratón, la CPU sabrá, por tanto, sobre que elemento de la pantalla se está actuando.

2. El Escáner: Permite convertir información gráfica en una imagen digitalizada o mapa de bits ("Bitmap"). La imagen que se desea digitalizar se coloca en el escáner, en éste la imagen es recorrida por un haz luminoso, y la luz reflejada es recogida por un dispositivo tipo CCD (del mismo tipo que el que incorporan las cámaras de vídeo) que convierte la señal luminosa en señal eléctrica, posteriormente esta información se convierte en señales digitales que ingresaran en el ordenador.

3. La tableta digitalizadora: Consiste en un tablero de dibujo que puede ser recorrido por un lápiz, los movimientos del lápiz se convierten en informaciones digitales y se envían al ordenador a través del puerto serie.

4. Otros periféricos de entrada: Lectores de códigos de barras, Lectores de fichas perforadas (en desuso).

5. Periféricos de salida:

6. La pantalla: Consiste, en los equipos de sobremesa, en un tubo de rayos catódicos, en éste tres haces de electrones correspondiendo a los tres colores básicos (rojo, verde y azul) inciden sobre una rejilla tras la cual está situada una pantalla de fósforo que se ilumina. Estos haces recorren la pantalla de izquierda a derecha y de arriba a abajo formando la imagen. Hecho esto se sitúan de nuevo en la esquina superior izquierda para formar una nueva imagen. Cada uno de estos tres haces da lugar a un punto de color básico (rojo, verde o azul), la agrupación de los tres puntos de color básicos da lugar a un punto de la imagen denominado píxel. Los círculos en negro que agrupan a tres puntos de color representan un pixel y el diámetro de éste el tamaño del pixel; la doble flecha indica la distancia entre pixels, ambos elementos decisivos en la calidad de un monitor. Por último, respecto al monitor cabe destacar la frecuencia con que estos haces forman una imagen, cuanto mayor sea ésta mayor será la calidad de la imagen, y la máxima resolución con que pueda trabajar, número de pixels horizontales y verticales.

IMPRESORAS: Saltando de la pantalla al papel

27

Page 28: PROGRAMACION I.doc

FACULTAD DE CIENCIA Y TECNOLOGIA

Después del monitor o pantalla, las impresoras son el dispositivo de salida de datos más importante de un computador. Pero antes de comprar una impresora, es fundamental tener muy claro para qué tipo de tareas la necesita. A veces, una muy simple es suficiente para sacar documentos en casa. Diferente es la situación si se desea realizar algún tipo de trabajo e imprimir por ejemplo, gráficos o fotografías y por supuesto, si se requiere para uso de oficina. Las tres características más importantes en una impresora son: -Resolución: determina la mayor o menor calidad de la hoja o documento que se imprima. -Velocidad: se mide en caracteres por segundo (cps) o en páginas por minuto (ppm), y está estrechamente ligada a la carga de trabajo. En ambos casos, mientras mayor sea el número de cps o ppm, mejor es la impresora. -Tipos de letras: también llamadas "fonts", pueden ser internas, es decir, que vienen con el equipo, o incorporadas, o sea, que se agregan por medio de un programa. Sin embargo, en la medida que la impresora tenga fonts internas, podrán ser utilizadas independientemente de las capacidades del programa que ocupe su computador. Aunque existen varios tipos de impresoras, las más usadas y también las más apropiadas para trabajar en la casa, son tres: Impresoras de matriz de punto: Funcionan con un cabezal formado por varias agujas o "pines", que impactan sobre una cinta móvil, de manera similar a la operación de las máquinas de escribir. Son ideales para sacar formularios con copias, listados, guías, facturas, y en general todo tipo de documentos que se requieran imprimir con rapidez sin importar tanto su resolución. Suelen trabajar con papel continuo (hojas unidas entre sí) y generalmente no incluyen muchos tipos de letras, las que además, vienen en tamaño fijo. Impresoras de inyección de tinta: su resolución es buena y ofrecen una excelente alternativa en términos de calidad y precio. Comparadas con las impresoras de matriz de punto más baratas, éstas ofrecen una velocidad similar, cercana a los 240 cps e imprimen entre 4 a 6 ppm. Sirven para imprimir gráficos, informes y transparencias en color. Impresoras láser: ofrecen la mejor calidad de impresión aunque también son las más caras. Utilizan un rayo láser para dibujar con cargas eléctricas, la imagen que se va a imprimir, sobre un tambor metálico rotatorio. Este, a su vez, pasa por un depósito con partículas de tinta seca (toner) que se adhieren a las zonas electrificadas y luego son transferidas al papel. Por último, el papel pasa por una zona de alta temperatura (horno) que fija el toner.

28

Page 29: PROGRAMACION I.doc

FACULTAD DE CIENCIA Y TECNOLOGIA

 PROGRAMA DE CALIDAD UDABOLDIF – 005

HISTORIA DE LA COMPUTACION

COMPUTADORAMáquina capaz de efectuar una secuencia de operaciones mediante un programa, de tal manera, que se realice un procesamiento sobre un conjunto de datos de entrada, obteniéndose otro conjunto de datos de salida.

TIPOS DE COMPUTADORASSe clasifican de acuerdo al principio de operación de Analógicas y Digitales.

COMPUTADORA ANALÓGICA

1. Aprovechando el hecho de que diferentes fenómenos físicos se describen por relaciones matemáticas similares (v.g. Exponenciales, Logarítmicas, etc.) pueden entregar la solución muy rápidamente. Pero tienen el inconveniente que al cambiar el problema a resolver, hay que realambrar la circuitería (cambiar el Hardware).

COMPUTADORA DIGITAL

1. Están basadas en dispositivos biestables, i.e., que sólo pueden tomar uno de dos valores posibles: ‘1’ ó ‘0’. Tienen como ventaja, el poder ejecutar diferentes programas para diferentes problemas, sin tener que la necesidad de modificar físicamente la máquina.

29