Sunteți pe pagina 1din 100

UNIVERSIDAD NACIONAL DE

SANTIAGO DEL ESTERO

Facultad de Ciencias Exactas y


Tecnologías
Departamento de Informática

Asignatura: INFORMÁTICA

EQUIPO CATEDRA

Greta Chéquer – Profesor Adjunto


Mario Montalvetti - J.T.P.
Carmen Silva - J.T.P.

2011
Informática

UNIDAD 1
INFORMÁTICA

La necesidad de información ha crecido en los últimos años, de forma considerable. En


cualquier rama de las Ciencias, de las Letras, de las Artes, se hace preciso manejar grandes
cantidades de datos, y el tratamiento de toda esta información puede ser realidad, gracias a
una nueva máquina: el computador. A este crecimiento de la información lo llamamos fenómeno
de Polución Informativa. El computador ha sido efecto y a la vez causa de la polución
informativa. Es efecto porque la necesidad de dar tratamiento a tantos datos, con sus cada vez
mayores exigencias en cuanto a rapidez y costos, ha impulsado el desarrollo de nuevas
técnicas, cuyo resultado ha sido la aparición de las últimas generaciones de potentes
computadores. Es causa pues su capacidad de tratamiento de los datos, a velocidades
increíbles, y con un costo por unidad cada vez mas reducido, ha permitido llegar a los actuales
niveles de información. Estos nuevos datos que se han obtenido, pueden a su vez volver a ser
procesados por lo que el volumen de información crece. El computador es un generador rápido
y masivo de información.
Pero lo que se necesita no es solamente poder manejar en menos tiempo mayor cantidad de
información, sino que la misma sea aprovechable, es decir útil para la toma de decisiones.
Surge así la Informática, vocablo de origen francés compuesto de dos palabras: Información -
Automática, siendo la informática la disciplina del tratamiento automático y racional de la
información.
Para definir información, primero vamos a diferenciarla de datos.
Datos: son símbolos que describen hechos o entidades. La palabra en plural “datos” se refiere
a más de un símbolo. Los símbolos que representan datos pueden ser:
 letras del alfabeto;
 números;
 dibujos;
 etc.
Cuando estamos en presencia de un conjunto de símbolos agrupados ordenadamente, se trata
de datos que indican hechos o entidades.
Un hecho es un acontecimiento, un suceso, que ocurre en un momento determinado:
 el debate sobre una ley para un legislador;
 la compra de mercaderías para un comerciante;
 etc.
Una entidad es una persona, lugar o cosa.
 un alumno;
 una calle;
 una máquina.

-2-
Informática

Por otra parte, la información no es un dato o conjunto de datos cualesquiera. La información


es el significado que le da a esos símbolos quien lo interpreta. Es una colección de datos
significativos que describen hechos o entidades.
Para que un conjunto de símbolos sea significativo, se requiere que sea:
 reconocible;
 íntegramente disponible;
 inequívoco;
 relevante.
Los símbolos que representan datos son reconocibles cuando pueden ser correctamente
interpretados. La interpretación que efectúe la persona que haga uso de esos datos, va a
depender de:
 sus conocimientos anteriores;
 las reglas de comprensión que ha adquirido durante su vida;
 factores externos a esa persona.
Por ejemplo, cuando encontramos escrito “9 de julio de 1816”, interpretamos lo que ello
significa; pero si lo ve escrito un niño pequeño, lo más seguro es que no le encuentre
significado.
Otro aspecto que influye sobre un conjunto de datos para que éste sea significativo es la
integridad. Los datos requeridos deben estar disponibles en su totalidad para poder constituir
una información específica o responder a una pregunta puntual. Por ejemplo el nombre
completo de una persona cuando llena un formulario para solicitar empleo.
Otro elemento importante que determina la interpretación inequívoca de los datos es el
contexto. Veamos por qué se requiere conocer el contexto para entender e interpretar datos.
Si vemos el número “195” escrito en un papel sin ningún otro elemento, podríamos decir que se
trata de un número de patente, de un precio, etc. Sólo si se conoce el contexto se podría
identificar su significado.
Finalmente, decimos que los datos son relevantes cuando son los que pueden dar respuesta a
determinado requerimiento, o bien cuando son necesarios para tomar una decisión.
Cuando una persona u organización debe tomar una decisión, necesita información para
hacerlo adecuadamente. Si esa información requerida no es adecuada, la decisión tampoco lo
será. Por ejemplo: para trasladarme a un determinado lugar, aunque conozca la calle y el
número donde quiero ir, necesito conocer qué líneas de colectivos pasan por allí. No me
serviría de nada conocer el tamaño o color del vehículo, ni el nombre del conductor, ni si hay
sol. Pero sí necesitaría conocer el itinerario, éste es un dato pertinente, los otros no.

Continuando con el análisis de la definición de Informática, comúnmente se cree que


automática y mecánica son sinónimos. Pero debemos decir que automática es todo aquello
que está sujeto a reglas llamadas algoritmos.

-3-
Informática

Definiciones de Informática
La Real Academia Francesa la define como la ciencia del tratamiento racional de la
información, especialmente por máquinas automáticas, considerada como el soporte de los
conocimientos humanos y de las comunicaciones, en los dominios técnico, económico y social.
La Real Academia Española dice que: informática es el conjunto de técnicas y disciplinas
científicas que estudia el tratamiento de la información por medios de computadores.

La Informática como disciplina científica


De acuerdo a Mario Bunge, quien afirma que la ciencia puede caracterizarse como el
conocimiento racional, sistemático, exacto, verificable y por consiguiente falible, debemos
convenir que la informática es una ciencia porque esta compuesta por conocimiento de validez
universal y utiliza para su estudio el método científico.
La Informática tiene como teoría central a la “teoría de la computabilidad” o de los algoritmos y
su estructura se apoya en una red de teorías presupuestas que constituyen su “corpus”.
Las principales son:
 La Teoría General de Sistemas
 La Cibernética
 La Teoría de la Información
 La teoría de los lenguajes formales
 Las teorías matemáticas y lógicas (probabilidad, teoría de juegos y decisiones,
teorías de modelos, de grafos, difusa, etc.)

La Teoría General de Sistemas: la teoría de la organización y la práctica administrativa han


experimentado cambios sustanciales en años recientes. La información proporcionada por las
ciencias de la administración y la conducta ha enriquecido a la teoría tradicional. Estos
esfuerzos de investigación y de conceptualización a veces han llevado a descubrimientos
divergentes. Sin embargo, surgió un enfoque que puede servir como base para lograr la
convergencia, el enfoque de sistemas, que facilita la unificación de muchos campos del
conocimiento. Dicho enfoque ha sido usado por las ciencias físicas, biológicas y sociales, como
marco de referencia para la integración de la teoría organizacional moderna.
El primer expositor de la Teoría General de los Sistemas (TGS) fue Ludwing von Bertalanffy, en
el intento de lograr una metodología integradora para el tratamiento de problemas científicos.
La meta de la Teoría General de los Sistemas no es buscar analogías entre las ciencias, sino
tratar de evitar la superficialidad científica que ha estancado a las ciencias. Para ello emplea
como instrumento, modelos utilizables y transferibles entre varios continentes científicos, toda
vez que dicha extrapolación sea posible e integrable a las respectivas disciplinas.
Cibernética: Norbert Wiener (1894-1964) creó la Cibernética como una nueva disciplina para
tratar una gran variedad de fenómenos de la naturaleza viviente y de los sistemas tecnológicos
que utilizan concretamente el mecanismo de la retroalimentación. La teoría aspira a mostrar

-4-
Informática

qué mecanismos retroalimentadores fundan el comportamiento teleológico o intencionado de


las máquinas construidas por el hombre, así como el de los seres vivos y los sistemas sociales,
para luego, en base a este conocimiento, poder controlar aquellas máquinas y esos seres vivos
y sistemas sociales. Podríamos entonces considerar a la cibernética como la ciencia del control
por retroalimentación (o por feed-back). Precisamente la etimología del término 'cibernética' nos
remite a 'kubernetes', que significa timonel, es decir individuo que controla el rumbo de un
proceso. La cibernética, basada en el principio de retroalimentación o de líneas causales
circulares, es un enfoque sistémico que proporciona mecanismos para la persecusión de metas
y el comportamiento autocontrolado.
La relación de la cibernética con la TGS es que la cibernética es uno de los varios enfoques de
sistemas posibles, es decir, como teoría de los mecanismos de control fundada en los
conceptos de información y retroalimentación, es sólo una parte de la TGS. Resumamos
algunas diferencias:
a) Los sistemas cibernéticos son un caso especial -por importantes que sean- de los sistemas
que exhiben autorregulación, y se refieren específicamente a las regulaciones secundarias, es
decir, regulaciones basadas en mecanismos preestablecidos y caminos fijos, como el control
neurohormonal.
La cibernética concibe al sistema como una 'caja negra' definida sólo por entradas y salidas,
permaneciendo el genuino mecanismo regulador desconocido. La TGS tiene una visión más
amplia, ya que además investiga estos íntimos mecanismos reguladores, llamados
regulaciones primarias.
b) Mientras la TGS trata de sistemas cerrados y abiertos, la cibernética trata sólo de sistemas
cerrados, ya que un sistema de retroalimentación es cerrado termodinámica y cinéticamente.
Desde ya, al estudiar sistemas cerrados considerará también las características propias de este
tipo de sistemas, como por ejemplo la idea de que en ellos la información sólo puede disminuir,
nunca aumentar como en los sistemas abiertos, y la idea de que en ellos se puede alcanzar un
grado superior de organización pero sólo 'reactivamente' (por aprendizaje), no 'activamente'
como en los sistemas abiertos.
Teoría de la Información: estudia la transmisión de esa información. Es decir le interesa la
información, en tanto esta tiene la función de satisfacer necesidades. Es el estudio de la
transmisión de grandes volúmenes de información, procesados en el menor tiempo posible
para facilitar la toma de decisiones adecuadas y útiles a los fines de la organización.
Teoría de la Computabilidad: Esta teoría identificada por algunos autores con la Teoría de
Algoritmos, fue elaborada en los años 1930 y 1940 gracias a descubrimientos de lógicos
matemáticos como Gödel, Church, Kleene, Markov y otros.
El objetivo de desarrollar algoritmos para resolver problemas ha sido siempre considerado por
los matemáticos como especialmente interesante e importante. Normalmente, un algoritmo sólo
es aplicable a un grupo muy reducido de problemas. Tal es, por ejemplo, el algoritmo de
Euclides, que determina el máximo común divisor de dos números, o el bien conocido
procedimiento que se usa para obtener la raíz cuadrada de un número natural en notación

-5-
Informática

decimal. El propósito inicial de la teoría de la computabilidad es hacer precisa la noción intuitiva


de función calculable; esto es, una función cuyos valores pueden ser calculados de forma
automática o efectiva mediante un algoritmo. Así podemos obtener una comprensión más clara
de esta idea intuitiva; y sólo de esta forma podemos explorar matemáticamente el concepto de
computabilidad y los conceptos relacionadas con ella. Surge así una teoría que producirá
resultados positivos y negativos (estamos pensando en resultados de no computabilidad o de
indecibilidad).
La teoría de la computabilidad puede caracterizarse como la búsqueda de respuestas para las
siguientes preguntas:
1) ¿Qué pueden hacer los computadores (sin restricciones de espacio, tiempo o dinero )?
2) ¿Cuáles son las limitaciones inherentes a los métodos automáticos de cálculo?

Todas estas teorías y disciplinas se relacionan cada vez más con otras prestándose
mutuamente diversos esquemas de análisis y explicación o suscitando problemas que
dependen de las teorías generales y que pueden utilizarse en variados campos de aplicación.
Las diversas interdependencias y retroacciones que existen entre ellas tienden a intensificarse
cada vez más, contribuyendo al progreso del campo o dominio de la Informática.

Áreas de aplicación de la Informática


Se podría decir, sin riesgo de equivocación, que en la actualidad, es prácticamente imposible
encontrar un sólo campo de las ciencias, las letras, las artes, los negocios, etc., donde no haya
sido aplicada la tecnología informática.
Aplicaciones científicas y de investigación: el computador nació con una vocación científica, por
lo tanto, los primeros equipos de proceso de datos fueron aplicados a este campo, estando
confinados en universidades y centros de investigación; aún ahora, sigue siendo la
investigación científica de tipo espacial, nuclear, etc., la que necesita los equipos más
potentes. Inteligencia artificial, detección y control de radiaciones, aeronáutica, simulación,
métodos foto digitales de observación por medio de satélites, son algunos ejemplos entre la
infinidad de aplicaciones de tipo científico donde el computador es pieza fundamental.
En el campo de los negocios: en el mundo de la administración de empresas, encuentran los
constructores de equipos informáticos sus principales clientes, tanto en máquinas grandes,
pequeñas y medianas. Bancos, empresas comerciales, de ingeniería, supermercados,
distribuidoras, químicas, despachos de abogados, clínicas, veterinarias, etc. son usuarios de
computador, unas veces disponiendo de sus propios equipos, otras acudiendo a empresas de
servicios, o disponiendo de terminales conectadas a un gran computador. En cuanto a las
aplicaciones específicas más habituales en las organizaciones empresariales, se acostumbra a
distinguir entre las clásicas -muchas veces llamadas de proceso de datos las de tipo avanzado
de ayuda a la decisión, y aquellas de tiempo real.
Entre las primeras podemos citar las nóminas, contabilidad, control de producción, cuentas de
clientes, etc. Las aplicaciones avanzadas están destinadas a ayudar a la dirección en la toma

-6-
Informática

de decisiones, e incluso algunas de ellas, por ejemplo control de inventarios, están diseñadas
para tomar ciertas decisiones sencillas de tipo repetitivo. Entre ellas se destacan las técnicas
de modelización y simulación, programación lineal, análisis de redes, etc. que se aplican en
áreas como análisis de mercados, planificación de producción y de inversiones, política de
personal, etc.
La utilización del computador en tiempo real es necesaria para la gestión de reservas de
pasajes, en los bancos para las cuentas corrientes, etc.
El computador en la administración pública: las aplicaciones del computador en la
administración pública son muy parecidas a las de las empresas, pero existen también ciertas
áreas específicas del sector público como las de policía, estadística, control de tráfico, salud
pública, medio ambiente, etc.
En la administración pública, los volúmenes de datos a tratar son mucho mayores que en otras
áreas, y es preciso el mantenimiento de enormes registros con un doble enfoque: estadístico y
administrativo. Por esta razón predominan los grandes sistemas informáticos destinados a
gestionar grandes archivos y bases de datos (registros de población, de establecimientos y
empresas, impuestos, automóviles, bancos de datos económicos, seguridad social, etc. En la
administración local, también está muy extendido el uso de los sistemas electrónicos, aunque
en este caso los equipos son mucho más pequeños y las aplicaciones son, además de las
clásicas (nóminas, contabilidad, personal, etc.), las específicas (urbanización, utilización del
suelo, gestión de recursos, redes de cables, escuelas, hospitales, y bibliotecas).
Control de procesos: Esta clase de aplicaciones son muy distintas de las habituales de gestión
de organizaciones, pero tienen un gran interés y se van extendiendo cada día más. Plantas
químicas, estaciones generadoras de energía eléctrica o depuradoras de aguas, control de
tráfico, control automático de vuelos, sistemas de defensa aérea, etc, son una muestra de las
áreas de aplicación de los computadores en este campo del control de procesos.

Otras áreas de aplicación


Artes: La generación de formas por computador en la pintura, escultura, películas y otras
expresiones artísticas, está bastante extendida. También las composiciones musicales
producidas por computador.
Sistemas documentales: el almacenamiento y recuperación de información bibliográfica en
cualquier rama del conocimiento humano (medicina, derecho, ciencias, etc.) es una de las
aplicaciones con mayor interés práctico.
Medicina: el equipo de proceso de datos desempeña una doble función, ya que además de la
gestión y el control administrativo, es también un valioso auxiliar de los facultativos y del
personal sanitario en la vigilancia y atención de enfermos sometidos a cuidados intensivos, a
los que pueden ir siguiendo en sus signos vitales para avisar ante cualquier fallo o anormalidad.
La ayuda al diagnóstico es una aplicación que esta siendo desarrollada: el computador puede
realizar una interrogación muy sistemática sobre los síntomas que padece el enfermo,

-7-
Informática

poniéndolos a disposición del médico que en caso de duda consultará muy fácilmente miles de
casos clínicos que le ayudarán en su diagnóstico.
Periodismo: además de las diversas ayudas que se puede encontrar en los bancos de datos y
en los sistemas documentales, la edición de periódicos y revistas se suele hacer actualmente
por métodos de fotocomposición, en los cuales la gestión y ajuste de la información que ha de
incluirse en la publicación se hace por medio de un minicomputador el cual se ocupa de hacer
el ajuste de las páginas, insertar anuncios, incluir informaciones de última hora, permitir las
correcciones de errores, etc.
Educación: la instrucción por computador, es una de las formas más extendidas de la
aplicación de los computadores en el campo de la enseñanza. En este tipo de métodos, el
computador establece un diálogo con el alumno, sometiéndolo a diversos ejercicios, corrigiendo
las respuestas del estudiante, suministrándole informaciones complementarias que le ayuden a
comprender y a aprender las distintas materias, etc. Las materias más diversas: estadística,
idiomas, matemáticas, física e incluso los propios lenguajes de programación pueden ser
actualmente enseñados por los computadores.

A continuación se dan a conocer algunos conceptos básicos los cuales serán utilizados a lo
largo de este módulo.

Conceptos básicos

Computadora: Máquina compuesta de elementos físicos (en su mayoría de origen electrónico)


capaz de aceptar unos datos de entrada, realizar con ellos operaciones lógicas y aritméticas
con gran velocidad y precisión, y proporcionar los resultados a través de algún medio de salida;
todo ello es llevado a cabo sin la intervención de un operador humano y bajo el control de un
programa de instrucciones previamente almacenado en la propia computadora. Por
consiguiente, un computador puede ser considerado como un sistema que acepta unas
entradas (datos e instrucciones) y devuelve unas salidas (datos de salida o resultados). Según
esta definición, una calculadora (no programable) no sería un ordenador, ya que requiere el
control directo del usuario y sólo puede realizar operaciones aritméticas. De la propia definición
también se deduce que todo ordenador siempre actúa con dos tipos de informaciones: datos
(que pueden ser de entrada o de salida) e instrucciones.

-8-
Informática

Programa: Conjunto de órdenes o instrucciones escritas en un determinado lenguaje de


programación que se le dan a una computadora para realizar un proceso determinado. Las
órdenes que integran un programa indican a la computadora las tareas que han de ser
realizadas para llevar a cabo el proceso requerido.
Aplicación informática: Conjunto de programas, junto con la documentación asociada a los
mismos, que permiten la completa realización de un determinado tipo de trabajo (tratamiento de
textos, facturación, contabilidad, gestión de nóminas, etc.).
Sistema informático: Conjunto de elementos necesarios para la realización y explotación de
aplicaciones informáticas.

Elementos constituyentes de un sistema informático


Los cuatro elementos que conforman un sistema informático y que, por consiguiente, hacen
posible el desarrollo y aprovechamiento de aplicaciones informáticas son:
 Hardware: Conjunto de materiales físicos que componen el sistema informático, es decir, la
propia computadora, los dispositivos externos a la misma, así como todo material físico
relacionado con ellos (conexiones, cables, etc.).
 Software: Parte lógica del sistema informático que dota al equipo físico de la capacidad para
realizar cualquier tipo de tareas. De acuerdo a esta definición, el software integraría al conjunto
de programas ejecutables sobre el hardware junto con los documentos y datos asociados a los
mismos.
 Personal informático: Conjunto de personas que desempeñan las distintas funciones
relacionadas con la utilización y explotación de las computadoras en una determinada empresa
u organización.
 Firmware: Conjunto de instrucciones que las computadoras llevan pregrabadas de fábrica en
su propio circuito (se trata de un concepto intermedio entre software y hardware).

CLASIFICACIÓN DE LAS COMPUTADORAS


Cualquier sistema de tratamiento automático de la información debe representar ésta mediante
magnitudes físicas. De acuerdo a la forma en que se representen estas magnitudes físicas
tenemos dos tipos de sistemas: los sistemas analógicos, en los cuales las magnitudes físicas,

-9-
Informática

pueden tomar un valor cualquiera dentro de un rango prefijado (por ejemplo, utilizando señales
de tensión que pueden tomar un valor cualquiera en el intervalo cerrado [0V, 10V]), y sistemas
digitales, caracterizados porque las magnitudes físicas utilizadas para representar la
información sólo toman valores discretos (por ejemplo, mediante señales de tensión que sólo
pueden tomar los valores 0V y -5V). Concretamente, los ordenadores entran dentro de un tipo
de sistema digital en el que sólo se permiten dos valores (son sistemas digitales binarios).
Antes de introducir las formas de clasificar las computadoras más frecuentes, mostramos una
clasificación de las máquinas capaces de realizar cálculos (máquinas de calcular), dentro de las
cuales, naturalmente, se encuentran los ordenadores. Esta clasificación sigue como criterio el
modo de representación y procesamiento de los datos:
 Máquinas de calcular analógicas: Son sistemas analógicos en los que los
datos se representan por señales eléctricas proporcionales a los valores de las variables
representadas. Se utilizan sobre todo para resolver ecuaciones matemáticas. Para su
funcionamiento, requieren el cableado manual de una serie de módulos (cada uno realiza un
cálculo con las señales de entrada) y la posterior medición de las salidas analógicas.
 Máquinas de calcular digitales: Los datos se representan por señales
eléctricas discretas con dos posibles valores (son sistemas digitales). Dentro de este tipo se
encuentran los ordenadores, que, si bien presentan mayor lentitud que las máquinas
analógicas, son más precisos y poseen un área de aplicación mucho más amplia.
 Máquinas híbridas: Poseen tanto unidades de tipo analógico como digital.
A continuación se presenta una clasificación de las computadoras muy difundida que atiende al
uso o propósito para el que fue construida una computadora:
 Computadora de uso general: Dentro de este grupo, tenemos aquellos
ordenadores que pueden utilizarse para múltiples aplicaciones (gestión administrativa, cálculo
científico-técnico, etc.), dependiendo del programa que ejecuten.
 Computadora de uso específico: Tienen una única aplicación concreta
(videojuegos, computadora de un robot, control de tráfico, etc.). Ejecutan sólo unos pocos
programas y sus unidades de EIS se encuentran perfectamente adaptadas para la aplicación.
La mayoría son ordenadores embebidos o sistemas empotrados, que forman parte de un
sistema mayor, pero no es posible acceder a ellos directamente (relojes, videocámaras,
microondas, etc.).
En la actualidad, como consecuencia de los avances tecnológicos en la miniaturización de los
equipos electrónicos, se ha impuesto en importancia y popularidad un tipo muy especial de
ordenador, el microordenador. Un microordenador se caracteriza por tener como CPU un
microprocesador que no es más que uno o varios circuitos integrados que realizan la función
propia de esta unidad funcional (CPU). Además de mantener un tamaño reducido, los
microordenadores consiguen mantener unas buenas características de potencia y aportan
prestaciones adicionales, como son la manejabilidad, fácil transportabilidad, bajo costo, etc.

- 10 -
Informática

Tipos de computadoras atendiendo al poder de cómputo


Una de las clasificaciones más usuales de los ordenadores tiene en cuenta la potencia o poder
de cómputo. Como es de suponer, en esta clasificación intervienen factores como la longitud de
palabra, la velocidad de funcionamiento, la capacidad de memoria y el número de terminales
interactivos conectables. A continuación, introducimos los tipos de computadoras que
consideramos de acuerdo a esta clasificación en orden decreciente de potencia. Como es
lógico, dada la dificultad de llevar a cabo cualquier clasificación y la gran variedad de
computadoras existentes, puede que las fronteras entre algunas de las categorías que aquí
presentamos no estén lo suficientemente claras.

SUPERCOMPUTADORAS
Éste es el tipo de computadora más potente que existe, caracterizándose fundamentalmente
por su gran rapidez y su gran longitud de palabra. La mayoría de las supercomputadoras
disponen de varios procesadores trabajando en paralelo, consiguiendo velocidades del orden
de billones de operaciones por segundo. Se utilizan para realizar cálculos complejos a gran
velocidad sobre un gran volumen de datos (simulación de procesos complejos, como la fisión
nuclear, la contaminación del aire de una ciudad, modelos atmosféricos para predicción
meteorológica, etc.). Estas computadoras tan potentes generan una enorme cantidad de calor,
que ha de ser disipado de alguna forma. Para solucionar este problema, los principales
fabricantes de supercomputadoras toman determinadas opciones para su diseño y
construcción. Las supercomputadoras pueden costar de 10 a 30 millones de dólares, y tienen
un altísimo consumo de energía eléctrica.

MACROCOMPUTADORAS (MAINFRAMES)
Son grandes computadoras de uso general con amplias posibilidades de procesamiento;
memoria y E/S. Al igual que las supercomputadoras, requieren una instalación especial dentro
de un entorno controlado y se utilizan para el procesamiento de grandes cantidades de datos
en grandes empresas y organizaciones (bancos, compañías aéreas, agencias estatales, etc.).
Su potencia de cálculo es inferior a la de una supercomputadora (varios millones de
operaciones por segundo). Destacan por permitir la utilización concurrente por gran número de
usuarios conectados a través de terminales; estos usuarios se conectan a una mainframe para
aprovechar su gran capacidad de almacenamiento masivo (donde se albergan grandes bases
de datos centrales). Suelen costar entre 200.000 dólares y varios millones de dólares.

MINICOMPUTADORAS
Surgieron con la idea de disminuir los costes de las mainframes, aun a costa de sacrificar las
prestaciones, ya que muchas organizaciones y compañías necesitan la potencia de una
macrocomputadora, pero no pueden pagarla. Son similares a una mainframe, pero a escala
reducida en precio y prestaciones (número de terminales y capacidad de disco). Estos equipos
son utilizados por empresas de tipo medio y suelen costar entre 20.000 y 250.000 dólares.

- 11 -
Informática

ESTACIONES DE TRABAJO (WORKSTATIONS)


Se utilizan en forma monousuario y disponen de pantalla, ratón y teclado. Son
microordenadores con potente CPU, que actúan conectados a redes para usar los recursos de
ordenadores de mayor potencia. La principal diferencia entre una estación de trabajo y un
ordenador personal es que la primera está basada en una filosofía de diseño de CPU,
denominada RISC, que permite un procesamiento más rápido de las instrucciones. Por otro
lado, las estaciones de trabajo suelen utilizar el sistema operativo UNIX y su uso se centra en
aplicaciones científico-técnicas (ingeniería y gráficas).

ORDENADORES PERSONALES (PC)


Con este nombre se suele designar a la familia de microordenadores compatibles con el PC de
IBM y la línea Macintosh de APPLE. Son microordenadores de fácil manejo que se suelen
utilizar en forma monousuario. Suelen presentar unidades de disco flexible y disco rígido. Se
caracterizan por su gran compatibilidad y bajo costo (entre 500 y 7.500 dólares), lo cual hace
que la mayor gama de equipos hardware y de aplicaciones software que existe en el mercado
se orienten a este grupo de computadoras. Existen versiones portátiles que permiten un fácil y
cómodo transporte sin perder ninguna de las cualidades de un PC clásico.

CALCULADORAS PROGRAMABLES
Se trata de un equipo de pequeño tamaño que funciona a pilas. Posee un teclado sencillo como
unidad de entrada y un visualizador óptico como unidad de salida. Para programar estas
máquinas se hace uso de un lenguaje simple y reducido, y la capacidad de memoria disponible
suele ser bastante pequeña (algunos Kbs).

APLICACIONES DE LA INFORMÁTICA
CARACTERÍSTICAS QUE MOTIVAN LA INFORMATIZACIÓN
En los comienzos de la informática, debido al alto costo de las computadoras, estas máquinas
sólo eran utilizadas por grandes instituciones (Departamento de Defensa de EEUU,
instituciones gubernamentales, universidades, etc.) para realizar tareas numéricas complejas.
Ñ0 obstante, con el tiempo, el coste de los equipos ha ido disminuyendo continuamente y, de
forma paralela, se han ido descubriendo nuevos usos de las computadoras. Hoy en día existen
pocas actividades humanas en las cuales no tenga incidencia de forma directa o indirecta la
informática.
Para mostrar las amplias posibilidades de la informática, presentamos las características que
podrían reunir las aplicaciones para las cuales sería útil la informatización:
 Necesidad de un gran volumen de datos. Esta característica se da en todas
aquellas aplicaciones relacionadas con el procesamiento de datos administrativos (gestión de
cuentas bancarias, procesamiento de las nóminas de los empleados de un banco, gestión de
películas y clientes en un videoclub, etc.).

- 12 -
Informática

 Existencia de datos comunes a múltiples procesos. Cuando en una


organización son utilizados los mismos datos para distintas aplicaciones, la gestión automática
de dichos datos puede evitar que se encuentren físicamente repetidos en varios sectores o
departamentos de esa organización. De esta forma, se evitan problemas de actualización de
los datos y se reduce el espacio físico de almacenamiento de los mismos. Así, por ejemplo, los
datos sobre empleados de un banco pueden estar almacenados junto con los datos personales
de los clientes del mismo, indicando su relación con el banco (cliente, empleado o ambos),
pudiéndose usar para distintas aplicaciones (abono de nómina, control de carga laboral de los
empleados, gestión de clientes, etc.).
 Realización repetitiva de tareas rutinarias sobre una gran cantidad de datos. La
computadora puede procesar iterativamente las mismas instrucciones sobre gran cantidad de
datos distintos. Por ejemplo la confección automática de cartas para cada cliente de un banco.
 Tratamiento de información geográficamente distribuida. La información que
procesa una gran computadora puede encontrarse distribuida por distintos terminales (por
ejemplo, cajeros automáticos o sucursales bancarias) e incluso la información puede ser
procesada por distintas computadoras distribuidas en red.
 Necesidad de alta precisión y rapidez en la realización de cálculos de cualquier
complejidad (simulación espacial, control de procesos industriales, predicciones
meteorológicas, etc.).

NUEVAS TENDENCIAS Y METODOLOGÍAS


Como muestra de la amplitud de posibilidades que ofrece la informática, introducimos en este
apartado algunas metodologías y técnicas novedosas que están consiguiendo introducir la
tecnología informática en tareas que parecen poco automatizables a primera vista.

INTELIGENCIA ARTIFICIAL
La inteligencia artificial (I.A.) es una metodología que estudia el uso de la computadora para
imitar el comportamiento inteligente propio del hombre (razonamiento, visión, aprendizaje, etc.).
Los programas de I.A. tienen respuestas cercanas a las humanas. Dentro de esta disciplina, el
modelo más interesante lo forman los denominados sistemas expertos (también denominados
sistemas basados en el conocimiento), con los que se pretende que la computadora actúe en
campos específicos como lo haría un experto humano en dicho dominio. Ejemplos: diagnóstico
médico, concesión de préstamos bancarios, etc. También es importante hablar dentro del área
de la I.A. de una nueva rama de estudio denominada redes neuronales artificiales. Dentro de
este campo, se pretende simular la estructura del proceso cerebral, es decir, imitar las
funciones propias de la neurona biológica en orden a obtener aplicaciones de reconocimiento
de patrones con capacidad de aprendizaje.

- 13 -
Informática

INFORMÁTICA GRÁFICA
La informática gráfica es uno de los campos de más interés y que crece más rápidamente
dentro de la informática. Este campo incluye una serie de principios de diseño y de uso
orientados a conseguir la visualización de imágenes por computadora con una apariencia lo
más cercana posible a la realidad. Para ello, los sistemas gráficos incluyen componentes
hardware y software que permiten realizar fácilmente acciones como desplegar gráficos en dos
o tres dimensiones, modificar su tamaño, rotarlos, deformarlos, etc. En general, la informática
gráfica reúne múltiples áreas de aplicación, entre las que se incluyen: diseño con ayuda del
ordenador (CAD), realización de diagramas y modelos gráficos, arte gráfico por ordenador,
animación por ordenador, diseño de interfaces gráficas de usuario, tratamiento de imágenes
digitales, etc.

REALIDAD VIRTUAL
Esta es una de las aplicaciones más emocionantes de la tecnología computacional moderna,
que se encamina a la habilidad de recrear lugares físicos y fenómenos que tienen apariencia
real. Para ello, se utilizan los sentidos del cuerpo , el sonido y el movimiento para simular
objetos o lugares reales. Se utiliza para todo tipo de tareas en las que interese la simulación de
procesos reales, como pruebas de aerodinámica de los aviones, exploración planetaria virtual,
exploración del interior de edificios no construidos, salones de videojuegos, etc.
Algunas de las aplicaciones más importantes
A continuación se citan algunas de las aplicaciones más importantes de la informática en la
actualidad.

PROCESAMIENTO DE DATOS ADMINISTRATIVOS


Éste es el área de aplicación de mayor impacto; de hecho, sin ordenadores, la economía se
paralizaría por completo. En este campo se incluye todo lo relacionado con la automatización
de las funciones típicas de gestión empresarial, como son la gestión de personal, proceso de
nóminas y contabilidad, facturación, control de inventario, gestión bancaria, problemas de
optimización, investigación de mercado, etc.
También dentro del ámbito administrativo han tenido gran importancia las aplicaciones
relacionadas con la automatización del trabajo de oficina que han dado lugar a la aparición de
una nueva técnica, la ofimática. Asociadas a la ofimática se encuentran las aplicaciones de
tratamiento de textos, gestión de datos, hoja de cálculo, correo electrónico, agenda electrónica,
desarrollo de presentaciones y otras aplicaciones relacionadas.
Por último, es necesario resaltar el gran desarrollo e importancia que están teniendo las
aplicaciones de sistemas de información empresarial (Management Information System - MIS).
Un MIS es un sistema o conjunto de reglas y procedimientos que proporcionan información
fiable a las personas de una organización. Estos sistemas resultan imprescindibles en las
empresas modernas y competitivas, ya que ayudan a la toma de decisiones a partir del análisis
de todos los datos relacionados con el negocio.

- 14 -
Informática

APLICACIONES INDUSTRIALES Y DE INGENIERíA


El ordenador ha tenido también un importante papel como herramienta para facilitar los
procesos de diseño y fabricación de productos. Dentro de este área, sus principales usos son
trazado de planos, control de procesos industriales, robótica industrial, minería, etc. También
aquí se incluyen las aplicaciones de diseño asistido por ordenador (Computer-Aided Design-
CAD), fabricación asistida por ordenador (Computer-Aided Manufacturing-CAM) y diseño,
fabricación y prueba con ayuda del ordenador (Computer-Aided Design Manufacturing And
Testing-CADMAT).

APLICACIONES TÉCNICO-CIENTÍFICAS
El ordenador es utilizado ampliamente por los científicos como herramienta imprescindible. En
el campo de la investigación, cabe destacar el uso de los ordenadores para acceder a grandes
bases de datos distribuidas por diversos lugares, desarrollar teorías, recoger y validar datos.
También aquí se incluyen todas las aplicaciones relativas al uso de la computadora para la
resolución de modelos complejos (simulación, análisis de datos experimentales, etc.) y cálculos
matemáticos (cálculo numérico, etc.), dentro de las cuales podemos citar: predicción
meteorológica, control ambiental, control de tráfico, control de comunicaciones, control sísmico,
etc.

APLICACIONES MÉDICAS Y BIOLÓGICAS


Actualmente, se utilizan los ordenadores en todas las tareas médicas. Se incluyen aplicaciones
de investigación médica (biológica y farmacéutica), ayuda al diagnóstico y tratamiento de
enfermedades, bases de datos de historiales clínicos de pacientes, control de pacientes en
cuidados intensivos, ecografía, etc.

APLICACIONES MILITARES
El uso del ordenador por parte de los gobiernos en aplicaciones militares ha precedido a las
demás aplicaciones. De hecho, el primer ordenador, el ENIAC, fue usado en un principio para
calcular trayectorias balísticas ante diferentes condiciones, y el mayor consumidor de
informática del mundo es el Departamento de Defensa de Estados Unidos. Dentro de este tipo
de aplicaciones, destacan los sistemas computerizados de radar, los misiles autodirigidos, el
espionaje militar por satélite artificial, los sistemas de seguridad y defensa computerizados, etc.

APLICACIONES EDUCATIVAS
En los últimos años, los ordenadores personales han iniciado una revolución en el área
educativa, individuos de todas las edades pueden utilizar los ordenadores para conseguir un
beneficio intelectual. Hoy en día, se pueden encontrar computadoras, en aulas de clase,
museos y bibliotecas. Además, el ordenador se está convirtiendo en un instrumento esencial en
el proceso de aprendizaje.

- 15 -
Informática

No obstante, el impacto de las computadoras en la educación puede ser contemplado desde


dos puntos de vista. Por una parte, se plantea la necesidad de incluir la informática como
materia en los planes de estudios, dada la importancia de que una persona esté formada en el
uso y aprovechamiento de la tecnología computacional. Por otra parte, el ordenador constituye
un complemento muy útil en la formación del estudiante mediante técnicas como CAI
(Computer Assisted Instruction - Enseñanza con ayuda del ordenador) y CAL (Computer
Assisted Leaming - Aprendizaje con ayuda del ordenador), que proporcionan características
didácticas muy importantes.

APLICACIONES EN EL ARTE Y HUMANIDADES


Aquí se incluyen aspectos relacionados con el arte, como son la composición de cuadros,
creación de dibujos animados, música por ordenador, industria cinematográfica, etc., así como
el análisis automático de textos de cualquier naturaleza, la traducción automática, etc.

LAS TECNOLOGÍAS DE LA INFORMACIÓN Y LA COMUNICACIÓN


Impulsados por los vertiginosos avances científicos y por la globalización económica y cultural,
con el cambio de siglo hemos entrado en una nueva era, "la sociedad de la información", en la
que las nuevas tecnologías, y muy especialmente Internet han impulsado profundos cambios
en muchas de las actividades humanas.
En el mundo educativo, además de la consolidación de la "escuela paralela" y de la necesidad
universal de una alfabetización digital y de una formación a lo largo de toda la vida, se van
produciendo cambios notables en los centros docentes: infraestructuras, contenidos, recursos,
metodologías, y se va perfilando un nuevo paradigma para la enseñanza.
Las nuevas tecnologías, y sobre todo el ciberespacio, nos proporciona innumerables medios
para la renovación de la enseñanza en todos los niveles educativos: web de centro, web
docente, pizarra digital, deberes web. Además, aunque parezca paradójico, las nuevas
tecnologías también se pueden utilizar para recuperar y reforzar las viejas tradiciones y la
cultura más específica de cada territorio.

LA IMPORTANCIA DE LAS TIC EN LA SOCIEDAD DE LA INFORMACIÓN.


La importancia que en el mundo actual tiene la información (por su volumen, por su
omnipresencia en todas las actividades humanas, por los nuevos espacios económicos y
culturales que genera) es la razón por la que se dice que estamos en la “sociedad de la
información”.
Y en esta sociedad de la información (SI), como veremos, los nuevos instrumentos que
proporcionan las tecnologías de la información y la comunicación (TIC) resultan esenciales e
indispensables para casi todas nuestras actividades.
Con el nombre de tecnologías de la información, se conoce al conjunto de tecnologías que
permiten la adquisición, la producción, el almacenamiento, el procesamiento y la transmisión de

- 16 -
Informática

datos y otras informaciones por medio de señales de naturaleza acústica, óptica y


electromagnética.
Las TIC engloban: la microelectrónica, la informática y las telecomunicaciones.
La microelectrónica forma parte de un tronco común que tiene a la electricidad como origen y a
lo electrónico como antecedente más inmediato. El objetivo de la Informática es poder
manipular automáticamente la información. El avance de ambos han hecho posible que se
pueda hablar de las telecomunicaciones desde una nueva dimensión. El hecho más importante
que ha permitido una mejora significativa en la calidad de los servicios de telecomunicaciones,
es sin duda, la incorporación de las técnicas digitales a los equipos de comunicación.
La posibilidad de descomponer cualquier tipo de señal analógica (voz, datos, música, etc) en
una señal digital, es decir en una sucesión de unos y ceros, permite que toda la información
pueda ser tratada por una computadora. El cruce entre la Informática y las telecomunicaciones
da origen a la telemática.

LA SOCIEDAD DE LA INFORMACIÓN
La cambiante sociedad actual, modelada por los continuos avances científicos (bioingeniería,
nuevos materiales, microelectrónica) y por la tendencia a la globalización económica y cultural
(gran mercado mundial, pensamiento único neoliberal, apogeo tecnológico, información digital),
que cuenta con una difusión masiva de la informática, la telemática y los medios audiovisuales
de comunicación en todos los estratos sociales y económicos, nos proporciona nuevos canales
de comunicación y medios de información, modelos de comportamiento social, actitudes,
valores, hábitos, estructuras narrativas, formas de organizar la información, simbologías,
configurando así nuestras visiones del mundo en que vivimos e influyendo en nuestros
comportamientos.
Frente a una primera revolución industrial sustentada en la máquina de vapor, y una segunda
apoyada en la utilización masiva de la electricidad, la actual tercera revolución (que supone el
auge del sector terciario) tiene como núcleo básico y materia prima la información y nuestra
creciente capacidad para gestionarla, especialmente en los campos de tratamiento de la
información simbólica a través de las TIC y el tratamiento de la información de la materia viva
mediante la ingeniería genética y la biotecnología.
Por otra parte, en la sociedad de la información aparece una nueva forma de cultura, la cultura
de la pantalla que se superpone a la cultura del contacto personal y la cultura del libro. Además,
junto al entorno físico, real, con el que interactuamos, ahora disponemos también del
ciberespacio, entorno virtual, que multiplica y facilita nuestras posibilidades de acceso a la
información y de comunicación con los demás.
Los principales aportes de las TIC a las actividades humanas se concretan en una serie de
funciones que facilitan la realización de nuestros trabajos porque, sean éstos los que sean,
siempre requieren una cierta información para realizarlo, un determinado proceso de datos y a
menudo también la comunicación con otras personas. Esto es lo que nos ofrecen las TIC:

- 17 -
Informática

 Fácil acceso a todo tipo de información, sobre cualquier tema y en cualquier


formato (textual, icónico, sonoro), especialmente a través de la televisión e Internet pero
también mediante el acceso a las numerosas colecciones de discos en soporte CD-ROM y
DVD: sobre turismo, temas legales, datos económicos, enciclopedias generales y temáticas de
todo tipo, películas y vídeos digitales (se están digitalizando en soporte DVD toda la producción
audiovisual), bases de datos fotográficas, etc.
 Instrumentos para todo tipo de proceso de datos. Los sistemas informáticos,
integrados por ordenadores, periféricos y programas, nos permiten realizar cualquier tipo de
proceso de datos de manera rápida y fiable: escritura y copia de textos, cálculos, creación de
bases de datos, imágenes. Para ello disponemos de programas especializados: procesadores
de textos, editores gráficos, hojas de cálculo, gestores de bases de datos, editores de
presentaciones multimedia y de páginas web.
 Canales de comunicación inmediata, sincrónica y asíncrona, para difundir
información y contactar con cualquier persona o institución del mundo mediante la edición y
difusión de información en formato web, el correo electrónico, servicios de mensajería
inmediata, foros virtuales, videoconferencias.
 Almacenamiento de grandes cantidades de información en pequeños soportes
de fácil transporte (discos, tarjetas, redes)
 Automatización de tareas, mediante la programación de las actividades que
queremos que realicen los ordenadores, que constituyen el cerebro y el corazón de todas las
TIC. Ésta es una de las características esenciales de las computadoras, que en definitiva son
“máquinas que procesan automáticamente la información siguiendo las instrucciones de un
programa".
 Interactividad. Las computadoras nos permiten “dialogar” con programas de
gestión, videojuegos, materiales formativos multimedia, sistemas expertos específicos. Esta
interacción es una consecuencia de que las mismas sean máquinas programables y sea
posible definir su comportamiento determinando las respuestas que deben dar ante las distintas
acciones que realicen ante ellos los usuarios.
 Homogeneización de los códigos empleados para el registro de la información
mediante la digitalización de todo tipo de información: textual, sonora, icónica y audiovisual.
Con el uso de los equipos adecuados se puede captar cualquier información, procesarla y
finalmente convertirla a cualquier formato para almacenarla o distribuirla.

- 18 -
Informática

UNIDAD 2
SOFTWARE DE UNA COMPUTADORA
INTRODUCCIÓN
El software de un sistema informático está constituido por el conjunto de programas ejecutables
en dicho sistema y todo lo relacionado con los mismos. Dentro del software se incluyen: el
sistema operativo, las interfaces de usuario, los lenguajes de programación, las herramientas o
utilidades, las aplicaciones de cualquier especialidad, tipo o contenido, etc.
Como parte integrante del software de un sistema, se han señalado las herramientas o
utilidades aquí puede ser incluido software tan variado como programas de hoja de cálculo,
tratamiento de textos, aplicaciones de uso común, los gestores de bases de datos, los
paquetes de todo en uno, los paquetes de gestión así como otros paquetes de utilidades.
Las computadoras tienen la capacidad de realizar muy diversas tareas siempre que tengan el
software adecuado. Los ordenadores permiten realizar tareas que antes necesitaban un
personal muy especializado en diversos campos (mecanografía, delineación, analistas
financieros, programadores, etc.) para poder llevarlas a cabo. Actualmente, la gran mayoría de
esas tareas pueden ser realizadas mediante un ordenador personal, el software adecuado y
una persona entrenada mínimamente en ese software.
Una primera clasificación del software nos permite diferenciar dos grandes categorías: software
de sistema y software de aplicación.

SOFTWARE DE SISTEMA
Llamamos software de sistema al conjunto de programas que se encargan de controlar el
funcionamiento de los programas que se ejecutan y de la gestión interna de los recursos físicos
de la computadora. Como es natural, el sistema operativo forma parte del software de sistema
pero, además, se incluyen aquí el software de programación y el software de diagnóstico y
mantenimiento.
Software de programación
Está formado por los programas y utilidades que facilitan la construcción de aplicaciones de
usuarios. Aquí incluiríamos a los intérpretes, los compiladores, los montadores, los módulos de
gestión de ficheros, los cargadores, etc. Algunos ejemplos de utilidades son:
 Los compiladores traducen un programa escrito en lenguaje de alto nivel a un lenguaje
ensamblador.
 Los ensambladores traducen el lenguaje ensamblador a lenguaje máquina, pero
todavía no son ejecutables, ya que hay llamadas a módulos que se desconoce donde están.

 Los montadores se encargan de la unión de todos los módulos, generando un nuevo


fichero ejecutable.
 El cargador se encarga de llevar el programa ejecutable a memoria y prepararlo para
su ejecución.

- 19 -
Informática

 El distribuidor carga en el contador de programa la dirección física donde se encuentra


la primera instrucción.
 Utilidades de rastreo o depuración de errores. Son utilidades que nos permiten ejecutar
los programas de diversas formas (línea a línea, detenerse en alguna línea, etc) para hacer un
seguimiento de las variables y así poder encontrar posibles errores.

Software de diagnóstico y mantenimiento


Es el software utilizado por el personal encargado de la puesta a punto de los equipos. Con
este software se pretende localizar averías de un periférico o encontrar el mal funcionamiento
de un paquete software.
Un ejemplo de prueba de chequeo de la memoria puede consistir en escribir en todas las
posiciones de memoria un valor determinado, posteriormente se leen todas estas posiciones y
se comprueba donde no coincida el valor leído con el escrito. Esto nos determina las
posiciones que se encuentran en un mal estado. Un sistema parecido se puede usar para
comprobar la memoria masiva.

SOFTWARE DE APLICACIÓN
El software de aplicación lo forman los programas que controlan el funcionamiento de la
computadora para realizar una tarea específica (esta tarea es denominada normalmente
aplicación). Dentro de este tipo de software se incluyen el software estándar y el software a
medida.
El software estándar o herramientas informáticas hace referencia a aquellas aplicaciones
de uso general especialmente diseñadas para su lanzamiento al mercado. Estas aplicaciones
pueden ser utilizadas por gran número de usuarios y sobre diferentes sistemas. Algunas de
estas aplicaciones de uso común son el tratamiento de textos, las hojas de cálculo, la gestión
de base de datos, comunicaciones, gráficos, los paquetes integrados, etc. Por su extensión,
desarrollamos este tipo de software en la siguiente sección.
El software a medida está constituido por aquellas aplicaciones específicas que se refieren a
actividades más especializadas. En este caso, una aplicación de este tipo es desarrollada para
un/unos usuario/s concreto/s y para un sistema específico. Aquí se incluyen los programas
realizados por los propios usuarios, una aplicación de control del tráfico en el área de Londres,
un sistema experto para el reconocimiento de yacimientos de minerales, un programa para
llevar la contabilidad y la gestión de clientes de una empresa concreta, etc.

LENGUAJES DE PROGRAMACION. TRADUCTORES


INTRODUCCIÓN
En los últimos tiempos, el hardware de computadoras ha sufrido un desarrollo vertiginoso. No
obstante, el aprovechamiento de los avances tecnológicos no es óptimo si no se dispone del
software adecuado. Con este fin, se han diseñado diversos tipos de lenguajes de

- 20 -
Informática

programación, unos de propósito general y otros de aplicación específica en alguna de las


áreas del ámbito informático.
Un lenguaje de programación es un conjunto de símbolos junto a un conjunto de reglas para
combinar dichos símbolos que se usan para expresar programas. Los lenguajes de
programación, como cualquier tipo de lenguaje, se componen de un léxico (conjunto de
símbolos permitidos o vocabulario), una sintaxis (reglas que indican cómo realizar las
construcciones del lenguaje) y una semántica (reglas que permiten determinar el significado de
cualquier construcción del lenguaje).
Para que una computadora pueda procesar un programa escrito en un determinado lenguaje
de programación, es necesario realizar previamente una traducción del programa al lenguaje
que entienda dicha computadora según una serie de fases.

LENGUAJE MÁQUINA
El lenguaje máquina es el único lenguaje que entiende directamente dicho ordenador. Por
esta razón, su estructura está totalmente adaptada a los circuitos de la máquina y muy alejada
de la forma de expresión y análisis de los problemas propia de los humanos. Esto hace que la
programación en este lenguaje resulte tediosa y complicada, requiriéndose un conocimiento
profundo de la arquitectura física del ordenador. Frente a esto, el código máquina hace posible
que el programador utilice la totalidad de los recursos que ofrece el ordenador, obteniéndose
programas muy eficientes (es decir, que aprovechan al máximo los recursos existentes) en
tiempo de ejecución y en ocupación de memoria.

Las principales características del lenguaje máquina son las siguientes:


 Las instrucciones se expresan en el alfabeto binario (están codificadas en binario como
cadenas de ceros y unos), pudiéndose utilizar códigos intermedios (octal y hexadecimal). Esta
característica hace que un programa en lenguaje máquina sea difícil de entender y, como
consecuencia, difícil de modificar.
 Los datos se referencian por medio de las direcciones de memoria donde se encuentran (no
aparecen nombres de variables o de constantes).
 Las instrucciones realizan operaciones muy simples. El programador debe ingeniárselas para
expresar cada una de las operaciones que desea realizar en términos de las instrucciones
elementales de las que dispone.
 El lenguaje máquina depende y está íntimamente ligado a la CPU del ordenador. Esto hace
que los programas en lenguaje máquina no sean transferibles de un modelo de ordenador a
otro (un programa en lenguaje máquina sólo se puede ejecutar en el procesador para el cual
está destinado), es decir, que exista baja portabilidad.
 En un programa en lenguaje máquina no pueden incluirse comentarios que faciliten la
legibilidad del mismo.
Estas limitaciones son resueltas en parte por el lenguaje ensamblador y prácticamente en su
totalidad por los lenguajes simbólicos de alto nivel.

- 21 -
Informática

LENGUAJE ENSAMBLADOR
El lenguaje ensamblador constituye el primer intento de sustitución del lenguaje máquina por
uno más cercano al usado por los humanos. Este acercamiento a las personas se plasma en
las siguientes aportaciones:
 Uso de una notación simbólica o nemotécnica para representar los códigos de
operación. De esta forma, se evitan los códigos numéricos, tan difíciles de manejar.
Normalmente, los códigos nemotécnicos están constituidos por abreviaturas de las operaciones
en inglés (dado el origen anglosajón de los fabricantes). Así, por ejemplo, la suma se
representa en la mayoría de los ensambladores por ADD.
 Direccionamiento simbólico. En lugar de utilizar direcciones binarias absolutas, los
datos pueden ser identificados con nombres como COSTE, TOTAL, X,Y,Z, etc.
 Se permite el uso de comentarios entre las líneas de instrucciones, haciendo posible la
redacción de programas más legibles.
Aparte de esto, el lenguaje ensamblador presenta la mayoría de los inconvenientes del
lenguaje máquina, como son su repertorio muy reducido de instrucciones, el rígido formato de
las instrucciones, la baja portabilidad y la fuerte dependencia del hardware. Por otro lado,
mantiene la ventaja del uso óptimo de los recursos hardware, permitiendo la obtención de un
código muy eficiente.
Este tipo de lenguajes hacen corresponder a cada instrucción en ensamblador una instrucción
en código máquina. Esta traducción es llevada a cabo por un programa traductor denominado
ensamblador.
Para solventar en cierta medida la limitación que supone poseer un repertorio de instrucciones
tan reducido, se han desarrollado unos ensambladores especiales denominados
macroensambladores. Los lenguajes que traducen los macroensambladores disponen de
macroinstrucciones cuya traducción da lugar a varias instrucciones máquina y no a una sola.
Por ejemplo, existen macroinstrucciones para multiplicar, dividir, transferir bloques de memoria
principal a disco, etc.
Dado que el lenguaje ensamblador está fuertemente condicionado por la arquitectura del
ordenador que soporta, los programadores no suelen escribir programas de tamaño
considerable en ensamblador. Más bien usan este lenguaje para afinar partes importantes de
programas escritos en lenguajes de más alto nivel. El lenguaje ensamblador sigue siendo
importante, ya que da al programador el control total de la máquina, y como resultado genera
un código compacto, rápido y eficiente.

LENGUAJES DE ALTO NIVEL


Los esfuerzos encaminados a hacer la labor de programación independiente de la máquina
dieron como resultado la aparición de los lenguajes de programación de alto nivel. Estos
lenguajes, más evolucionados, usan palabras y frases relativamente fáciles de entender y

- 22 -
Informática

proporcionan también facilidades para expresar alteraciones del flujo de control de una forma
bastante sencilla e intuitiva.
Las características fundamentales de los lenguajes de alto nivel son las siguientes:
 Son independientes de la arquitectura física de la computadora. Esto permite utilizar los
mismos programas en computadoras de arquitecturas diferentes (portabilidad) y, además, no
es necesario conocer el hardware específico de la máquina.
 Al igual que ocurre con el lenguaje ensamblador, la ejecución de un programa en lenguaje de
alto nivel requiere de una traducción del mismo al lenguaje máquina de la computadora donde
va a ser ejecutado.
 Por lo general, una sentencia en un lenguaje de alto nivel da lugar, al ser traducida, a varias
instrucciones en lenguaje máquina. Además, determinados componentes del programa pueden
ser referenciados con un nombre simbólico para facilitarla comprensión de las personas.
 Utilizan notaciones cercanas a las usadas por las personas en un determinado ámbito. Se
pretende la mayor aproximación posible al lenguaje natural o al lenguaje algebraico. Para ello,
las instrucciones vienen expresadas mediante texto, es posible introducir comentarios en las
líneas de las instrucciones y la escritura de programas está usualmente basada en reglas
parecidas a las humanas. Todas estas características dan lugar a programas más legibles y de
más fácil modificación y puesta a punto.
 Se suelen incluir instrucciones potentes de uso frecuente que son ofrecidas por el lenguaje de
programación. Por ejemplo, se suelen ofrecer funciones matemáticas de uso común (seno,
coseno, conversión de entero a real, etc.), operadores específicos de entrada/salida,
operadores de tratamiento de cadenas de caracteres, etc.
 Existe gran cantidad de lenguajes de alto nivel actualmente en uso, y se han desarrollado
diferentes versiones de algunos de ellos. Esta heterogeneidad constituye el principal problema
que presentan estos lenguajes.
 Los lenguajes de alto nivel, a diferencia de los lenguajes máquina y ensamblador, no permiten
aprovechar completamente los recursos internos de la máquina.
Todas estas características ponen de manifiesto un acercamiento a las personas y un
alejamiento de la máquina. Por esta razón, los programas escritos en lenguaje de alto nivel no
pueden ser directamente interpretados por la computadora, siendo necesario realizar
previamente su traducción a lenguaje máquina. Para ello, se han de utilizar unos programas
traductores (previamente desarrollados para cada computadora) que se encarguen de
realizar dicho proceso de traducción. Hay dos tipos de traductores de lenguajes de alto nivel
que vamos a considerar: los compiladores y los intérpretes.

TRADUCTORES. COMPILADORES E INTÉRPRETES


Como la computadora puede interpretar y ejecutar únicamente el código máquina, existen
programas especiales, denominados traductores, que traducen programas escritos en un
lenguaje de programación al lenguaje máquina de la computadora. Un traductor es un
metaprograma que toma como entrada un programa (o parte de un programa) escrito en

- 23 -
Informática

lenguaje simbólico denominado programa fuente y proporcionan como salida otro programa
semánticamente equivalente, escrito en un lenguaje comprensible por el hardware de la
computadora denominado programa objeto. Aquí veremos dos tipos de traductores, los
compiladores y los intérpretes, los cuales representan dos aproximaciones muy distintas a la
tarea de permitir el funcionamiento de los programas escritos en un determinado lenguaje de
programación de alto nivel.
Un compilador traduce completamente un programa fuente, generando un programa objeto
(semánticamente equivalente) escrito en lenguaje máquina. Como parte importante de este
proceso de traducción, el compilador informa al usuario de la presencia de errores en el
programa fuente, pasándose a la creación del programa objeto sólo en el caso de que no
hayan sido detectados errores en el programa fuente (por lo general, suele cancelarse la
compilación cuando se detectan errores). El programa fuente suele estar contenido en un
fichero, y el programa objeto puede almacenarse como otro fichero en memoria masiva para
ser ejecutado posteriormente, sin necesidad de volver a realizar la traducción. Una vez
traducido un programa, su ejecución es independiente de su compilación.
Un intérprete permite que un programa fuente escrito en un determinado lenguaje vaya
traduciéndose y ejecutándose directamente sentencia a sentencia por la computadora. El
intérprete capta una sentencia fuente, la analiza y la interpreta, dando lugar a su ejecución
inmediata. Por consiguiente, en este caso no se crea ningún archivo o programa objeto
almacenable en memoria masiva para posibles ejecuciones futuras.
Si utilizamos un intérprete para traducir un programa cada vez que necesitamos ejecutar el
programa tenemos que volver a analizarlo, ya que no se genera un archivo objeto. En cambio,
con un compilador, aunque sea más lenta, la traducción sólo debe realizarse una vez.

La principal ventaja de los intérpretes frente a los compiladores es que resulta más fácil
localizar y corregir errores de los programas (depuración de programas), ya que la ejecución de
un programa bajo un intérprete puede interrumpirse en cualquier momento para conocer los
valores de las distintas variables y la instrucción fuente que acaba de ejecutarse. Por este
motivo, los intérpretes resultan más pedagógicos para aprender a programar, ya que el alumno
puede detectar y corregir más fácilmente sus errores (son famosos los intérpretes del lenguaje
de programación BASIC, un lenguaje (muy usado para enseñar a programar).

EL PROCESO DE COMPILACIÓN
Por ser los compiladores el tipo de traductor más utilizado en la actualidad desarrollamos el
proceso de compilación, que consiste en la traducción de un programa fuente, escrito en

- 24 -
Informática

lenguaje de alto nivel, a su correspondiente programa objeto, escrito en lenguaje máquina,


dejándolo listo para la ejecución con poca o ninguna preparación adicional.
Previamente al proceso de compilación de un programa, se crea el mencionado programa
fuente utilizando cualquier aplicación disponible con capacidades de edición de textos. Para
llevar a cabo la compilación de un programa, dicho programa debe residir en memoria principal
simultáneamente con el compilador. El resultado de 1a compilación puede dar lugar a la
aparición de errores, en cuyo caso no se genera el programa objeto, sino que se realiza lo que
se denomina listado de compilación, que no es más que un informe indicando la naturaleza y
situación de los errores en el programa fuente. El listado de compilación permite ver los errores
detectados por el compilador para volver al programa editor, corregirlos y empezar de nuevo el
proceso.
Una vez finalizada la compilación y obtenido el programa objeto, es necesario someterlo a un
proceso de montaje donde se enlazarán los distintos módulos que 1o componen, en caso de
tratar con programas que poseen subprogramas (los cuales pueden ser compilados
separadamente). Además, se incorporan las denominada rutinas de biblioteca en caso de
solicitarlas el propio programa. Este proceso de montaje es realizado por un programa
denominado montador o encuadernador, que también recibe el nombre de editor de enlace o
linker.

La compilación es un proceso complejo que consume a veces un tiempo muy superior a la


propia ejecución del programa. Este proceso consta en general de dos etapas fundamentales:
la etapa de análisis del programa fuente y la etapa de síntesis del programa objeto. Cada una
de estas etapas conlleva la realización de varias fases.

- 25 -
Informática

El compilador utiliza internamente una tabla de símbolos para introducir determinados datos
que necesita. Esta tabla interviene prácticamente en todas las fases del proceso de
compilación; así mismo, el compilador posee un módulo de tratamiento de errores que
permite determinar las reacciones que se deben producir ante la aparición de cualquier tipo de
error.
Los tipos de errores que puede tener un programa son los siguientes:
 Errores lexicográficos. Son errores que se producen por la aparición de cadenas que no se
ajustan al patrón de ningún símbolo elemental del lenguaje. Estos errores son detectados por el
escáner en el tiempo en que se ejecuta el análisis lexicográfico.
 Errores sintácticos. Son aquellos errores que aparecen cuando se violan las reglas de sintaxis
del lenguaje.
 Errores semánticos. Son detectados generalmente durante la fase de generación de código
intermedio y se detectan cuando aparece una sentencia sintácticamente correcta, pero que
carece de sentido dentro del contexto del programa fuente.
 Errores lógicos. Son los debidos a la utilización de un algoritmo o expresión incorrecta para el
problema que se trata de resolver. Se detectan en la fase de pruebas de un programa por
medio de la utilización de una estrategia de pruebas bien estudiada.
 Errores de ejecución. Son errores relacionados con desbordamientos, operaciones
matemáticamente irresolubles, etc. Ejemplos de este tipo de errores son: división por 0, cálculo
de la raíz cuadrada de un número negativo, leer en un fichero no abierto o sin información, salir
o exceder el rango de una tabla, bucles infinitos, etc.
En ocasiones, se indican al programador determinados errores que pueden existir, pero que no
perjudican al resto del proceso de compilación e incluso pueden permitir el funcionamiento del
programa final. Estos mensajes de error se denominan advertencias o warnings. Un ejemplo
típico de warning puede venir dado por la declaración de una variable que no se usa en ningún
bloque del programa.

CLASIFICACIÓN DE LOS LENGUAJES DE PROGRAMACIÓN


Los lenguajes de programación se pueden clasificar de acuerdo a diversos criterios. El criterio
más simple que se puede considerar hace referencia a la proximidad del lenguaje con la
máquina o con el lenguaje natural. De acuerdo a este criterio, existen tres niveles de lenguajes
de programación:
 Lenguajes de bajo nivel: Lenguajes máquina.
Lenguajes de nivel medio: Lenguajes ensambladores y macroensambladores.
 Lenguajes de alto nivel: A los que ya hemos hecho referencia.
Dado que los lenguajes de programación, en cierto modo, han sufrido un desarrollo paralelo a
la evolución de las computadoras, podemos clasificar los lenguajes de programación
atendiendo a su desarrollo histórico desde el comienzo de las computadoras. Esta
clasificación distingue cinco generaciones de lenguajes:
 Primera generación: Lenguajes máquina.

- 26 -
Informática

 Segunda generación: Ayudas a la programación como son los ensambladores.


 Tercera generación: Lenguajes de alto nivel imperativos que siguen vigentes
en la actualidad, como PASCAL, MODULA-2, FORTRAN, COBOL, C y ADA.
 Cuarta generación (4G): Lenguajes o entornos de programación orientados
básicamente a aplicaciones de gestión y bases de datos, como SQL, NATURAL, etc.
 Quinta generación: Lenguajes orientados a aplicaciones en inteligencia
artificial, como LISP y PROLOG.

Clasificaciones de los lenguajes de alto nivel


Dado que los lenguajes de alto nivel son los más ampliamente usados, consideraremos
clasificaciones centradas concretamente en estos lenguajes. De forma muy general, los
lenguajes de alto nivel se pueden dividir en lenguajes de propósito general, que pueden ser
empleados en cualquier tipo de aplicaciones (C y ADA) y lenguajes de propósito especial. No
obstante, esta clasificación es demasiado general, por lo que consideraremos la clasificación
desde el punto de vista del campo de aplicación al que pertenece el lenguaje:
 Aplicaciones científicas: En este tipo de aplicaciones predominan las operaciones numéricas
o matriciales propias de algoritmos matemáticos. Lenguajes adecuados para este tipo de
aplicaciones son FORTRAN y PASCAL.
 Aplicaciones de procesamiento de datos: En estas aplicaciones son frecuentes las
operaciones de creación, mantenimiento y consulta sobre ficheros y bases de datos. Dentro de
este campo, estarían aplicaciones de gestión empresarial, como programas de nóminas,
contabilidad, facturación, control de inventario, etc. Lenguajes aptos para este tipo de
aplicaciones son COBOL y SQL.
 Aplicaciones de tratamiento de textos: Estas aplicaciones están asociadas al manejo de
textos en lenguaje natural. Un lenguaje muy adecuado para este tipo de aplicaciones es el C.
 Aplicaciones en inteligencia artificial: Dentro de este campo, destacan las aplicaciones en
sistemas expertos, juegos, visión artificial y robótica. Los lenguajes más populares dentro del
campo de la inteligencia artificial son LISP y PROLOG.
 Aplicaciones de programación de sistemas: En este campo se incluirían la programación de
software de interfaz entre el usuario y el hardware, como son los módulos de un sistema
operativo y los traductores. Tradicionalmente, para estas aplicaciones se utilizaba el lenguaje
ensamblador, no obstante, en la actualidad se muestran muy adecuados los lenguajes ADA,
MODULA-2 y C.
Otra forma de clasificar los lenguajes de alto nivel tiene en cuenta el estilo de programación
que fomentan, es decir, la filosofía de construcción de programas:
 Lenguajes imperativos o procedurales: Estos lenguajes establecen cómo debe ejecutarse una
tarea, dividiéndola en partes que especifican cómo realizar cada una de las subtareas
asociadas. Estos lenguajes se fundamentan en el uso de variables para almacenar valores y el
uso de instrucciones que indican las operaciones a realizar sobre los datos almacenados. La

- 27 -
Informática

mayoría de los lenguajes de alto nivel son de este tipo: FORTRAN, BASIC, PASCAL, ADA,
MODULA-2, C, etc.
 Lenguajes declarativos: En este caso, el proceso por el cual se ejecuta el programa no
aparece de forma explícita en el programa, el programador no tiene que indicar el proceso
detallado de cómo realizar la tarea. De hecho, en estos lenguajes los programas se construyen
mediante descripciones de funciones (lenguajes funcionales, como LISP) o expresiones lógicas
que indican las relaciones entre determinadas estructuras de datos (lenguajes de programación
lógica, como PROLOG).
 Lenguajes orientados a objetos: El diseño de los programas se centra más en los datos y su
estructura. Los programas consisten en descripciones de unidades denominadas objetos que
encapsulan los datos y las operaciones que actúan sobre ellos. El lenguaje más usado dentro
de este tipo es el C++.
 Lenguajes orientados al problema: Este tipo de lenguajes están diseñados para problemas
específicos, principalmente de gestión. En estos lenguajes, los programas están formados por
sentencias que ordenan qué se quiere hacer. Generalmente, estos lenguajes suelen ser
generadores de aplicaciones que permiten automatizar en la medida de lo posible la tarea de
desarrollo de software de aplicaciones de gestión.

EJEMPLOS DE LENGUAJES DE ALTO NIVEL


FORTRAN
En 1953, John Backus, un empleado de IBM, propuso el desarrollo de un nuevo lenguaje de
programación, el FORTRAN. Por aquella época, todos los programadores escribían en
lenguaje ensamblador. Las razones de Backus se basaban en el alto coste del tiempo que
dedicaban a su trabajo los programadores, debido en su mayor parte a las grandes dificultades
que acarreaba la escritura de programas en ensamblador. La propuesta de Backus fue
aceptada y en 1954 un equipo empezó a trabajar en el desarrollo de FORTRAN bajo control de
IBM. El objetivo principal del grupo era la producción de un lenguaje que pudiera traducirse de
forma eficaz a lenguaje máquina.
FORTRAN significa FORmula TRANsíator (traductor de fórrnulas) y está considerado como el
primer lenguaje de alto nivel. Por ser el primero, alcanzó una gran popularidad desde su
primera versión en 1957. FORTRAN se estandarizó y mejoró en 1966 (se aumentó la
portabilidad del lenguaje) y nuevamente en 1977 (FORTRAN77) y en 1990 (FORTRAN9O es la
versión actual).
FORTRAN fue diseñado para su uso en aplicaciones científicas y técnicas (matemáticas,
ciencia e ingeniería). Se caracteriza por su potencia en los cálculos matemáticos, pero está
limitado en todo 10 relativo al tratamiento de datos no numéricos, por lo cual no resulta
adecuado para aplicaciones de gestión, manejo de ficheros, tratamiento de caracteres y edición
de informes. Por esta razón, no ha sido usado extensamente en el ámbito del microordenador,
pero sigue siendo un lenguaje común en aplicaciones de investigación, ingeniería y educación.

- 28 -
Informática

COBOL
El nombre COBOL proviene de la frase Common Business Oriented Language (lenguaje
general para los negocios). El COBOL es el lenguaje más utilizado en aplicaciones de gestión y
fue creado en 1960 por un cómite patrocinado por el departamento de defensa de Estados
Unidos con el fin de disponer de un lenguaje universal para aplicaciones comerciales.
A lo largo de su existencia, el COBOL ha sufrido diversas actualizaciones para llegar a su
última versión, COBOL ANS-85. En parte gracias al apoyo del gobierno de Estados Unidos,
COBOL fue ganándose una amplia aceptación como lenguaje estandarizado, lo cual ha hecho
que se haya convertido en uno de los lenguajes más populares.
Las características más interesantes de este lenguaje son las siguientes: se asemeja al
lenguaje natural (se hace un gran uso del inglés sencillo), es autodocumentado y ofrece
grandes facilidades en el manejo de ficheros, así como en la edición de informes escritos.
Entre sus inconvenientes se encuentran sus rígidas reglas de formato de escritura, la
necesidad de escribir todos los elementos al máximo detalle, la extensión excesiva en sus
sentencias (a veces resulta demasiado engorroso y reiterativo) y la inexistencia de funciones
matemáticas.
Uno de los mayores obstáculos con los que se ha enfrentado COBOL ha sido la visión negativa
que de él tiene la comunidad universitaria relacionada con la computación. No obstante, el
futuro de COBOL parece asegurado debido a las enormes inversiones que se han hecho en el
software existente y a que existen versiones simples de COBOL para muchos
microordenadores.

BASIC
El lenguaje BASIC fue diseñado en 1965 para proporcionar a los principiantes, un lenguaje fácil
de aprender, como se indica en su nombre Beginner's Alí-purpose Symbolic Instruction Code
(Código simbólico de propósito general para principiantes).
En sus comienzos, se enfocó para la enseñanza a estudiantes que pretenden introducirse en el
mundo de la programación y ha conseguido convertirse en el lenguaje educativo más popular
del mundo.
El principal objetivo que se pretendía al diseñar BASIC era la facilidad de uso y aprendizaje,
incluso a costa de la eficiencia. Eso era un tanto atrevido en una época en la que el tiempo del
ordenador era más caro que el tiempo de los usuarios. Actualmente, en un mundo en el que los
microprocesadores son baratos, éste es un objetivo con mucho sentido desde un punto vista
comercial.
Las principales aportaciones de BASIC son las de ser un lenguaje interpretado (traducido por
un programa intérprete) así como ser de uso interactivo. Esto, unido a la popularización de los
microordenadores, ha hecho que este lenguaje se extienda con rapidez e incluso que
aparezcan gran diversidad de versiones que extienden y adaptan el lenguaje original,

- 29 -
Informática

haciéndolo útil para aplicaciones técnicas y de gestión (la encarnación más moderna de BASIC,
Visual BASIC, soporta las características y métodos orientados a objetos).
Debido a la popularidad del BASIC, existe gran cantidad de ayudas para el programador de
BASIC: libros, revistas, intérpretes, compiladores, etc.

PASCAL
El PASCAL recibe su nombre en honor al filósofo y matemático francés Blaise PASCAL, que
inventó la primera máquina de tipo mecánico para sumar. Este lenguaje fue desarrollado en
1970 por el matemático suizo Nicklaus Wirth. Los motivos fundamentales que movieron a su
creación son, por un lado, proporcionar un lenguaje adecuado para la enseñanza de los
conceptos y técnicas de programación, y por otra parte, desarrollar implementaciones del
lenguaje que funcionen de forma fiable y eficiente sobre los ordenadores disponibles. Estos
objetivos han sido alcanzados en gran medida y, además, con el tiempo, ha llegado a ser un
lenguaje muy utilizado en todo tipo de aplicaciones. En la actualidad, PASCAL está disponible
en muchos microordenadores (existe una versión estándar de PASCAL a nivel internacional) y
su uso es muy amplio en las universidades para aplicaciones científicas y de ingeniería.
PASCAL se ha diseñado para ilustrar conceptos clave en programación, como los de tipo de
datos, programación estructurada (es un lenguaje muy estructurado) y diseño descendente. El
PASCAL trata de proporcionar un mecanismo para implementar cada uno de los conceptos de
programación. De hecho, este lenguaje se ha convertido en el predecesor de otros lenguajes
más modernos, como MODULA-2 y ADA.

C
El lenguaje C fue creado en 1972 por Dennis Ritehie, que junto con Ken Thompson había
diseñado anteriormente el sistema operativo UNIX, y su intención al desarrollar el lenguaje C
fue conseguir un lenguaje idóneo para la programación de sistemas que fuese independiente
de la máquina para utilizarlo en la implementación del sistema operativo UNIX. Desde
entonces, tanto el UNIX como el C han tenido un enorme desarrollo y proliferación, hasta
convertirse en un estándar industrial para el desarrollo de software.
El C es un lenguaje moderno de propósito general que combina las características de un
lenguaje de alto nivel (programación estructurada, tipos y estructuras de datos, recursividad,
etc.) con una serie de características más propias de lenguajes de más bajo nivel. Esta
cualidad del C hace posible que el programador use la programación estructurada para resolver
tareas de bajo nivel, obteniendo un código ejecutable veloz y eficiente. Debido a sus
características de más bajo nivel, mucha gente considera al C como un lenguaje de nivel
medio.
Debido a esta libertad de programación que proporciona este lenguaje, se ha vuelto muy
popular y es el lenguaje más usado entre los desarrolladores profesionales de software de
aplicaciones comerciales (procesamiento de textos, bases de datos, aplicaciones científico-
técnicas, etc.). Además C, es un lenguaje pequeño (posee pocas instrucciones) y conciso (no

- 30 -
Informática

presenta instrucciones redundantes). El coste de un lenguaje tan potente y útil es que no es


particularmente fácil de aprender. De hecho, la programación segura y fiable en este lenguaje
requiere un conocimiento bastante profundo del mismo.

C++
C++, el sucesor del lenguaje C, fue desarrollado por Bjarne Stroustup en los laboratorios Bell a
principio de la década de los ochenta. En el lenguaje C, ~'C++" es una orden que equivale a
C:=C+1, por lo que se entiende que con C++ el lenguaje C se eleva hacia su siguiente nivel.
C++ introduce la programación orientada a objetos en C. Los objetos proporcionan una forma
completamente nueva de ver los programas, una nueva filosofía de programación.
Al igual que C, C++ es un lenguaje muy poderoso y eficiente. Sin embargo, C++ es aún más
difícil de aprender que C. Dado que C es un subconjunto de C++, aprender C++ significa
aprender todo acerca de C y después aprender la filosofía de la programación orientada a
objetos y el uso que hace C++ de la misma. No obstante, aunque este aprendizaje puede
resultar difícil incluso para programadores de C expertos, cada año más programadores de C
adoptan C++.

MODULA-2
A finales de los años 70, Nicklaus Wirth, creador del lenguaje PASCAL, dirige el desarrollo del
lenguaje MODULA-2 (que en un principio se denominó simplemente MODULA), con la
intención de incluir las necesidades de la programación de sistemas y dar respuesta a las
críticas recibidas con respecto a las carencias del lenguaje PASCAL.
Además de incluir las características del PASCAL, él nuevo lenguaje incorpora las principales
carencias del mismo, como son la posibilidad de compilación separada, creación de bibliotecas,
programación concurrente, mejora del manejo de cadenas de caracteres, procedimientos de
entrada/salida y de gestión de la memoria, etc. Además, posee grandes facilidades para la
programación de sistemas.
Este lenguaje también posee cualidades didácticas, por lo cual ha sido ampliamente aceptado
en la comunidad universitaria como herramienta idónea para la enseñanza de la programación.

ADA
El lenguaje ADA constituye el último intento de obtener un único lenguaje para todo tipo de
aplicaciones (un auténtico lenguaje de propósito general), e incluye los últimos avances en
técnicas de programación. Su diseño fue encargado por el Departamento de Defensa de
Estados Unidos y su estandarización fue publicada en 1983. El nombre de ADA se debe a
Augusta Ada Byron, condesa de Lovelace, considerada la primera programadora de la historia.
Entre las características del lenguaje se encuentran la compilación separada, la programación
concurrente, la programación estructurada, su buena mantenibilidad, características de tiempo
real, etc. El principal inconveniente de este lenguaje es su gran extensión, que puede complicar
su uso.

- 31 -
Informática

LISP
El LISP es un lenguaje de programación pequeño y conciso, diseñado en 1959 por John McC
arthy en el MIT (Instituto Tecnológico de Masachussets) para trabajar en inteligencia artificial.
Este lenguaje toma su nombre de procesamiento de listas, en inglés LISt Processing.
LISP está pensado para resolver problemas de manipulación de símbolos (que resultan de gran
interés en inteligencia artificial). Los símbolos son los elementos básicos de este lenguaje, y
representan objetos arbitrarios del dominio de interés que se esté tratando.
El LISP es un lenguaje funcional, ya que todo programa (o subprogama) en LISP se puede ver
como una función de alto nivel que se aplica sobre otras funciones de más bajo nivel para
obtener determinados resultados. Para realizar operaciones elementales pueden utilizarse
funciones de una biblioteca.
Por sus características, este lenguaje no se parece en nada a otros lenguajes de programación.
A pesar de ello, es un lenguaje fácil de aprender y es el más común dentro de las aplicaciones
en inteligencia artificial.
Un problema inicial del LISP fue que no se podía ejecutar de forma eficiente en muchos
ordenadores. Por esta razón, han ido apareciendo una serie de terminales dedicados al LISP,
con hardware y software de bajo nivel diseñados para soportar este lenguaje de forma
eficiente. En la actualidad, existen versiones estándar de LISP, como Common LISP, DG
Common LISP y LISP portable estándar.

PROLOG
El PROLOG (PROgramming LOGic) fue desarrollado a partir del trabajo realizado en la década
de los años sesenta, principalmente en universidades europeas. PROLOG ha sido el lenguaje
más utilizado para inteligencia artificial en Europa. Es un lenguaje basado en la lógica,
apropiado para un gran número de aplicaciones en bases de datos e inteligencia artificial.
El PROLOG permite al programador expresar una serie de tareas en base a la descripción de
los objetos que intervienen en la misma (hechos y reglas) y las relaciones lógicas que existen
entre ellos (predicados), en lugar de hacerlo mediante un algoritmo. PROLOG lleva incorporada
la programación de operaciones y todo el esfuerzo de programación consiste en especificar
adecuadamente los hechos y las reglas para después establecer preguntas que podrán ser
inferidas de forma automática.
Frente al resto de los lenguajes empleados en sistemas expertos, PROLOG permite desarrollar
sistemas expertos a personas sin demasiada idea de programación, ya que no requiere
programar ningún algoritmo. Debido a esta facilidad de uso, una importante aplicación de
PROLOG es la educación, donde puede emplearse para enseñar lógica, técnicas de resolución
de problemas y se suele utilizar en gran número de bases de datos educativas.

- 32 -
Informática

HARDWARE: ESTRUCTURA FUNCIONAL DE UNA COMPUTADORA


El hardware de un sistema informático está compuesto por todos los elementos del mismo con
entidad física, es decir, los cables, los circuitos, los dispositivos electromecánicos, etc. Aquí se
presenta una clasificación, desde un punto de vista funcional, de los componentes de un
ordenador. Un esquema de la estructura de un ordenador típico, se presenta en la siguiente
figura:

Datos o instrucciones

Datos o
instruccio Datos
nes

La computadora central
Es el elemento más importante de la computadora, ya que maneja todo el procesamiento,
coordinando y realizando todas las operaciones del sistema informático. Podemos distinguir, a
su vez, dos unidades funcionales dentro de la computadora central: la unidad de memoria
principal y la unidad central de procesamiento (CPU):
 Memoria principal, central o interna: Es el elemento encargado de
almacenar los programas y los datos necesarios para que el sistema informático lleve a cabo
alguna tarea. Para que un programa pueda ser ejecutado en una computadora, al menos parte
del mismo debe encontrarse en memoria principal, junto con los datos que deban ser
procesados. Estas memorias presentan gran rapidez y se componen de celdas direccionadas,
de forma que cada operación de lectura o escritura en memoria exige la especificación de la
dirección sobre la cual se va a realizar dicha operación. Existen dos tipos de memoria principal:
la memoria RAM, que permite realizar tanto operaciones de lectura como de escritura y es
volátil (si se desconecta el ordenador, se pierde toda la información almacenada), y la memoria
ROM, que sólo permite lecturas y es permanente (no necesita ser alimentada con corriente
para mantener la información almacenada).

- 33 -
Informática

 Unidad central de procesamiento (CPU): También denominada


procesador, es el elemento encargado del control y ejecución de las operaciones del sistema.
Se puede considerar como el cerebro del ordenador y está compuesto, a su vez, de dos
unidades:
 La unidad de control: Es el elemento encargado de coordinar todas las
actividades de la computadora. Para ello, se comunica con todas las demás unidades e
interpreta y ejecuta ordenadamente las instrucciones del programa en curso.
 La unidad aritmético-lógica (ALU): Está constituida por los circuitos
electrónicos necesarios para la realización de operaciones elementales de tipo aritmético
(suma, resta, multiplicación, etc.) y lógico (comparaciones, operación OR, operación AND, etc.).

Unidades de entrada
Son aquellos dispositivos encargados de aceptar datos de entrada e instrucciones del exterior y
transformarlos en señales binarias eléctricas susceptibles de ser procesadas directamente por
el ordenador. Ejemplos típicos de unidades de entrada son el teclado y el mouse (ratón).

ESTRUCTURA DE UNA COMPUTADORA


CONEXIÓN ENTRE LAS UNIDADES DE UNA COMPUTADORA
Las unidades que forman la computadora central (memoria, unidad de control y unidad
aritmético-lógica) se encuentran alojadas en lo que se denomina placa base. A través de ella,
se ponen en contacto las distintas partes de un ordenador.
La conexión entre los elementos de una computadora se realiza a través de buses (conjunto de
hilos que proporcionan un camino para el flujo de datos entre los distintos elementos y que
transmiten simultáneamente información en paralelo).
Los buses que interconectan las distintas unidades funcionales de un ordenador pueden ser de
tres tipos:
 Bus de datos: Transporta los datos que se transfieren entre unidades.
Suele ser bidireccional, es decir, los mismo hilos se utilizan para transmitir información hacia
adentro o hacia afuera de una unidad, pero siempre en instantes diferentes. Conviene matizar
la diferencia entre el bus de datos interno y el bus de datos externo:
o Bus de datos interno: Se utiliza para transferir datos entre los
elementos de la computadora central (CPU + memoria principal).
o Bus de datos externo: Se puede considerar como una
prolongación del bus de datos interno. Pone en comunicación el procesador con el resto de las
unidades (periféricos).
 Bus de direcciones: Transporta la dirección de la posición de memoria o
del periférico que interviene en el tráfico de información (de dónde procede el dato o a dónde
se dirige). Permite la comunicación entre el procesador y las celdas de la memoria RAM.
Cuando el procesador quiere leer el contenido de una celda de memoria, envía por el bus de
direcciones la dirección de la celda que quiere leer, recibiendo a través del bus de datos el

- 34 -
Informática

contenido de la misma. El tamaño de este bus define la cantidad de memoria RAM que la CPU
puede gestionar (con 10 bits se pueden direccionar 2 10 Bytes = l.024 Bytes = 1KBytes; con 16
bits  216 Bytes = 65.536 Bytes = 65 KBytes; con 32 bits  4.294.967.296 = 4 GBytes).
 Bus de control: Contiene hilos que transportan las señales de control y
las señales de estado, indicando la dirección de la transferencia de datos, controlando la
temporización de eventos durante la transferencia, transmitiendo las señales de interrupción,
etc.

MEMORIA
Tipos de memoria
La memoria es la unidad donde se almacenan tanto los datos como las instrucciones. Existen
dos tipos básicos de memoria, diferenciados principalmente por su velocidad:

 Memoria principal, central o interna: Es la que actúa a mayor velocidad,


estando ligada directamente a las unidades más rápidas de la computadora. Para que un
programa pueda ser ejecutado, debe estar almacenado en la memoria principal. Está formada
por multitud de celdas o posiciones (palabras de memoria) de un determinado número de bits y
numeradas de forma consecutiva. A la numeración de las celdas se le denomina dirección de
memoria y mediante esta dirección se puede acceder de forma directa a cualquiera de ellas,
independientemente de su posición; por ello, se dice que la memoria principal es una memoria
de acceso directo o memoria accesible por dirección.
 Memoria masiva auxiliar, secundaria o externa: Trata de solventar las
deficiencias de la memoria principal en cuanto a volatilidad y pequeña capacidad de esta
última. Aunque la memoria interna es muy rápida, no tiene gran capacidad para almacenar
información. Para guardar información de forma masiva, se utiliza la memoria auxiliar (discos
magnéticos, cintas magnéticas, discos ópticos, etc.). Además, la información almacenada en
memoria secundaria permanece indefinidamente hasta que el usuario expresamente la borre.
Otra ventaja de este tipo de memoria es el precio. En la memoria externa el coste por bit es
notablemente inferior que en la memoria interna.
La memoria interna está formada por dos tipos de memoria:
 La memoria ROM (Read Only Memory - Memoria de sólo lectura): En la
que sólo se permite leer y es permanente, es decir, al desconectar el ordenador, la información
no se pierde. Algunos chips de ROM tienen su contenido grabado permanentemente desde el
momento en que se fabricaron. Otros están inicialmente en blanco y pueden grabarse con el
equipo apropiado. Estas son las memorias programables de sólo lectura o PROM
(Programmable Read Only Mernory). Algunas PROM pueden borrarse para programarse de
nuevo empleando el equipo apropiado para este propósito. Éstas son las memorias
programables de sólo lectura que pueden borrarse o EPROM (Erasable Programmable Read
Only Memoiy). En cualquiera de estos casos, los chips de ROM, una vez instalados en un

- 35 -
Informática

ordenador, sólo pueden leerse. Las instrucciones y los datos de la ROM permanecen allí una
vez que se apaga el ordenador. Cualquier intento de escribir en la ROM no causa ningún
efecto, excepto provocar un error que será detectado por el sistema operativo.
 La memoria RAM (Random Access Memory - Memoria de acceso
aleatorio): En la que se puede leer y escribir. Esta memoria es volátil, al desconectar el
ordenador la información almacenada en la RAM desaparece, de forma que al volver a
conectar la máquina, la zona de memoria RAM se encuentra vacía.
Un factor importante para medir la potencia de la memoria es la velocidad de respuesta. Se
tienen tres parámetros relacionados con la velocidad:
 Tiempo de acceso, t: Es el tiempo máximo que se tarda en leer o escribir el
contenido de una posición de memoria.
 Tiempo de ciclo, tc: Es el tiempo mínimo entre dos lecturas consecutivas.
 Ancho de Banda, AB: Es el número de palabras que se transfieren entre
memoria y CPU por unidad de tiempo: AB = 1/tc

Esquema general de una unidad de memoria


La principal función de la unidad de memoria consiste en gestionar los procesos que se
encargan de almacenar y recuperar la información. El esquema general de una unidad de
memoria es el siguiente:
 Registro de dirección de memoria: Antes de realizar una operación de lectura/escritura (L/E),
se ha de colocar en este registro la dirección de la celda que va a intervenir en la operación.
Dependiendo del número de bits que contenga el registro de dirección, se tendrá una
determinada capacidad de memoria (si el registro de dirección es de 8 bits, se podrán codificar
hasta 28=256 direcciones de memoria distintas).
 Decodificador de dirección o selector de memoria: Se activa cada vez que se produce una
orden de L/E, conectando la celda de memoria, cuya dirección se encuentra en el registro de
dirección, con el registro de datos y posibilitando la transferencia de los datos en un sentido u
otro.
 Registro de datos: En él se almacena el dato que se ha leído de memoria o el dato que se va
a escribir en memoria.
También existen líneas de control mediante las cuales se transmiten órdenes procedentes de la
unidad de control (señal de escritura/lectura, de funcionamiento, de estado).

- 36 -
Informática

Secuencia de pasos para leer/escribir un dato


Para la lectura de un dato almacenado en memoria, se siguen estos pasos:
 Se pasa la dirección al registro de dirección.
 Mediante el decodificador se accede a la dirección.
 Se pasa el dato que está en esa dirección al registro de datos.
Para la escritura de un dato en memoria, se siguen estos pasos:
 Se transfiere la dirección en la que se va a escribir al registro de dirección.
 Se transfiere el dato al registro de datos.
 Se decodifica la dirección.
 Se pasa el contenido del registro de datos a la dirección que contiene el registro de dirección.

Jerarquía de memoria
Para que un programa pueda ser ejecutado, debe encontrarse en memoria principal. Puede
ocurrir que el tamaño del programa sea mayor que el de la propia memoria principal. En estos
casos se utiliza la técnica llamada memoria virtual, que consiste en guardar el programa y sus
datos en memoria masiva y mantener en memoria principal únicamente la parte de ellos que
está implicada en ese momento en la ejecución.
Otro problema que se plantea es que la CPU capta instrucciones y datos de la memoria
principal, almacenando en ella los resultados de las operaciones. Sin embargo, la velocidad a
la que opera la CPU es del orden de 10 veces superior a la de la memoria principal. Con esto
se desperdiciaría mucho tiempo de CPU esperando que la memoria principal realice su función.
En realidad, esto no suele ser así, sino que se introduce entre la CPU y la memoria principal
una memoria llamada caché. La memoria caché es una pequeña memoria rápida que se coloca
entre la memoria principal y la CPU, de forma que esta última se comunica directamente con

- 37 -
Informática

ella y no con la memoria principal. El problema de las memorias caché es que son más caras y
tienen menos capacidad.

Las prestaciones de una memoria, sea del tipo que sea, se miden mediante cuatro parámetros:
 Capacidad de almacenamiento, s
 Tiempo de acceso, t
 Ancho de banda, b
 Costo, c
En general, en una memoria se cumple que a mayor velocidad, se tiene un mayor ancho de
banda, mayor costo y menor capacidad. Así, los registros de la CPU son los más rápidos y los
que tienen mayor ancho de banda, sin embargo son los más caros y los que tienen menor
capacidad. A medida que descendemos en la pirámide de la figura, va aumentando el tiempo
de acceso (la velocidad es menor) y la capacidad, y disminuyen el ancho de banda y el precio.

UNIDAD CENTRAL DE PROCESAMIENTO


La unidad central de procesamiento, también denominada procesador central o CPU (Centra1
Proccessing Unit), es el verdadero cerebro de la computadora. Su misión consiste en controlar
y coordinar o realizar todas las operaciones del sistema. Para ello, extrae, una a una, las
instrucciones del programa ubicado en memoria principal, las analiza y emite las órdenes para
su completa realización. Físicamente está formada por circuitos de naturaleza electrónica que
se encuentran integrados en un chip denominado procesador. Funcionalmente, la unidad de
procesamiento central está constituida por dos elementos: la unidad aritmético-lógica y la
unidad de control.

Unidad aritmético-lógica (unidad de procesamiento)


La ALU (Arithmetic Logic Unit) es la unidad encargada de realizar las operaciones elementales
de tipo aritmético y lógico. Para comunicarse con otras unidades utiliza el bus de datos. La

- 38 -
Informática

operación a realizar por la ALU (suma, resta, desplazamientos, comparaciones, etc.) se decide
mediante señales de control enviadas desde la unidad de control.
Los elementos que componen la ALU son los siguientes:
 Circuito operacional (COP): Formado por los circuitos necesarios para la realización de las
operaciones con los datos procedentes del registro de entrada. También acepta como entrada
órdenes para seleccionar el tipo de operación que debe realizar.
 Registro de entrada (RE): Contiene los datos u operandos que intervienen en una instrucción
antes de que se realice la operación por parte del circuito operacional. También se emplea
como almacenamiento de resultados intermedios o finales de las operaciones.
 Registro de estado (RS): Engloba un conjunto de biestables (indicadores) en los que se deja
constancia de condiciones que se dieron en la última operación realizada y que habrán de ser
tenidas en cuenta en operaciones posteriores (indicadores de signo, de cero, de
desbordamiento, etc.). Al registro de estado también se le conoce con el nombre de palabra de
estado.
 Registro acumulador (RA): Contiene los datos que se están tratando en cada momento.
Almacena los resultados de las operaciones realizadas por el circuito operacional. Está
conectado con los registros de entrada para realimentación en el caso de operaciones
encadenadas. También tiene una conexión directa con el bus de datos para envío de resultados

a la memoria principal o a la UC.


Esquema de la unidad aritmético-lógica

Unidad de control
La unidad de control (UC) se encarga de administrar todos los recursos de la computadora,
controlando y dirigiendo la información a las distintas unidades en el momento adecuado
mientras el procesador ejecuta cada una de las instrucciones de un programa. De forma más
específica, las funciones de la UC son:
 Controlar la secuencia en que se ejecutan las instrucciones.
 Controlar el acceso del procesador (CPU) a la memoria principal.
 Regular las temporizaciones de todas las operaciones que ejecuta la CPU.

- 39 -
Informática

 Enviar señales de control y recibir señales de estado del resto de las unidades.
Para realizar estas funciones, la unidad de control consta de los siguientes elementos :
 Contador de programa (CP): Contiene en cada momento la dirección de memoria donde se
encuentra la instrucción siguiente a ejecutar. Al iniciar la ejecución de un programa toma la
dirección de su primera instrucción. Incrementa su valor en uno de forma automática cada vez
que concluye una instrucción, salvo que la instrucción que esté ejecutando sea de salto o de
ruptura.
 Registro de instrucción (Rl): Dedicado a memorizar temporalmente la instrucción que la UC
está interpretando o ejecutando en ese momento. El programa que se está ejecutando reside
en memoria principal y la UC va buscando y captando las instrucciones secuencialmente para
interpretarlas y generar las órdenes de ejecución. La captación de una instrucción implica leerla
en la memoria y almacenarla en el registro de instrucción. La instrucción que se está
ejecutando lleva consigo un código de operación (COP) y unos operandos o la dirección de los
mismos.
 Decodificador (D): Es el que interpreta realmente la instrucción. Se encarga de extraer el
código de operación de la instrucción en curso, lo analiza y emite las señales necesarias al
resto de los elementos para su ejecución a través del secuenciador.
 Reloj (R): Proporciona una sucesión de impulsos eléctricos o ciclos a intervalos constantes
que marcan los instantes en que han de comenzar los distintos pasos de que consta cada
instrucción.
 Secuenciador (S): En este dispositivo se generan órdenes muy elementales (microórdenes),
que sincronizadas por el reloj hacen que se vaya ejecutando poco a poco la instrucción que
está cargada en el registro de instrucción.

Esquema de la unidad dc control (extraído de Alcalde)

FUNCIONAMIENTO DE LAS COMPUTADORAS


Para que un programa pueda ser ejecutado por un ordenador, éste ha de estar almacenado en
memoria principal. La unidad central de proceso tomará una a una sus instrucciones e irá
realizando las tareas necesarias para completar la ejecución del programa. Se denomina ciclo
de instrucción al conjunto de acciones que se llevan a cabo en la realización de una instrucción.
Se compone de dos fases:
 Fase de búsqueda o captación: Se transfiere la instrucción que corresponde ejecutar desde la
memoria principal a la unidad de control.

- 40 -
Informática

 Fase de ejecución: Consiste en la realización de todas las acciones que conlleva la propia
instrucción.
Para iniciar la ejecución de un programa, se ubica en el contador de programa (CP) la dirección
de memoria donde comienza dicho programa. La unidad de control envía una microorden para
que el contenido del CP (la dirección de la primera instrucción) sea transferido al registro de
dirección de memoria. El decodificador de memoria interpretará la dirección conectando la
celda de memoria indicada en el registro de dirección de memoria con el registro de datos de
memoria. Después de un tiempo determinado (tiempo de acceso a memoria), aparecerá en el
registro de datos de memoria el contenido de la dirección indicada, es decir, la instrucción que
va a ser procesada. A través del bus se transfiere la instrucción desde el registro de datos de
memoria al registro de instrucción de la unidad de control (Rl). A continuación, el decodificador
de la unidad de control procede a interpretar la instrucción que acaba de llegar al Rl e informa
al secuenciador. Por último, el CP se incrementará automáticamente en uno, de tal forma que
quede apuntando a la siguiente instrucción del programa en memoria. Si la instrucción en
ejecución es de ruptura de secuencia (de salto o bifurcación), el CP se cargará con la dirección
que corresponda.
Hasta este punto se ha considerado sólo la fase de búsqueda, que es común a todas las
instrucciones. Después tiene lugar la fase de ejecución, que es específica del código de
operación de cada instrucción. El secuenciador envía una microorden a la ALU para que
ejecute la operación de que se trate, almacenándose el resultado de la operación en el registro
acumulador. Una vez concluida la ejecución de la instrucción en curso, la unidad de control
vuelve a repetir el ciclo completo para cada una de las instrucciones que forman el programa
en ejecución; es decir, capta una nueva instrucción (cuya dirección se encuentra en el CP y la
transfiere al Rl) y después la decodifica y la ejecuta. Este ciclo se repite iterativamente hasta
que concluye la ejecución del programa.

PERIFÉRICOS
Las funciones principales de un ordenador son relativas a la entrada, proceso y salida de
información, pudiendo resumirse en procesamiento y comunicaciones. Estas funciones son
realizadas por unidades especializadas, encomendándose las comunicaciones al equipo
periférico (dispositivos que relacionan el ordenador con el mundo exterior) y el proceso a la
computadora central.

DEFINICIÓN Y OBJETIVOS
El núcleo principal de una computadora es la CPU, pero para que ésta funcione correctamente
es necesario que los datos e informaciones estén soportados en un medio físico al que el
propio ordenador tenga acceso. Estos elementos se denominan soportes de información. Un
medio o soporte de información es un material físico empleado para almacenar datos de
forma que la computadora pueda manejarlos o proporcionarlos a las personas de una manera
inteligible (papel de impresora, disco magnético, etc.).

- 41 -
Informática

Asimismo, es necesario disponer de dispositivos conectados a la computadora capaces de leer


la información en estos soportes o de escribirla en ellos, según se trate de realizar operaciones
de lectura o escritura. A estos dispositivos se les denomina periféricos o dispositivos de entrada
y/o salida (dispositivos de E/S). Un periférico es una máquina empleada para transferir datos
desde o hacia un determinado medio de información, generalmente para su almacenamiento o
recuperación (impresora, unidad de disco magnético, etc.).
Se denomina periférico tanto a las unidades o dispositivos a través de los cuales la CPU se
comunica con el mundo exterior, como a los sistemas que almacenan o archivan información.
Los periféricos que se pueden conectar a un ordenador se clasifican según las funciones que
van a realizar en los siguientes grupos:
 Unidades de entrada: A través de las cuales poder dar a la
computadora los programas que queremos que ejecute y los datos correspondientes.
 Unidades de salida: Con las que obtenemos los resultados de los
programas ejecutados.
 Unidades de memoria masiva auxiliar: Que faciliten el
funcionamiento y utilización del ordenador.
En algunas ocasiones, un mismo periférico incluye unidades de entrada y de salida. En este
caso se denomina unidad mixta.
Los objetivos que deben cumplir los periféricos son los siguientes:
 Servir de medio de comunicación eficaz entre el usuario y la
computadora, de forma que los datos de salida sean comprensibles para las personas y los
datos e instrucciones de entrada lo sean para la computadora.
 Permitir el almacenamiento de informaciones necesarias para ser
procesadas o que interesa guardar durante un período de tiempo.
Cada periférico suele estar formado por dos partes claramente diferenciadas en cuanto a su
misión y funcionamiento:
 Una parte mecánica: Formada básicamente por dispositivos
electromecánicos que se controlan a través de elementos electrónicos.
 Una parte electrónica o controlador de periférico: Que se encarga
de interpretar las órdenes que le llegan de la CPU para la recepción (si es un dispositivo de
salida) o transmisión (si es un dispositivo de entrada) de datos y de generar las señales de
control para la activación de los elementos electromecánicos.

ORGANIZACIÓN DE ENTRADAS/SALIDAS
Los periféricos son las unidades de las que dispone un ordenador para comunicarse con el
exterior. El principal problema que plantea esta comunicación consiste en la conexión de los
periféricos con la CPU debido a que las características de los dispositivos de E/S suelen diferir
notablemente de las del procesador (velocidad de transmisión, longitud de palabra, códigos y
niveles electrónicos para representar los datos, etc.). Para hacer compatibles estas
características entre periféricos y CPU, se usan los denominados controladores de

- 42 -
Informática

periféricos (circuitos de interfaz). Cada periférico necesita su propio controlador para


comunicarse con la CPU (ver Figura). El controlador está formado por un conjunto de circuitos
de adaptación y se encarga de la transferencia de datos entre la CPU y el periférico, recibiendo
señales de control de la UC y generando señales de estado para la CPU y señales de control
para el periférico. La transferencia de información se realiza físicamente a través de puertos de
E/S, que son registros que se conectan directamente a uno de los buses de la computadora.
Cada puerto tiene asociada una dirección o código, de forma que el procesador ve al periférico
como un puerto o un conjunto de puertos.
Los objetivos de un controlador son los siguientes:

 Selección o direccionamiento del periférico. La CPU sitúa en el bus de


direcciones la dirección del puerto con el que quiere comunicarse. Sólo un puerto debe estar
conectado eléctricamente al bus de datos en un momento concreto. El controlador identifica si
la dirección del bus de direcciones se corresponde con su código para dar paso al intercambio
de información.
 Almacenamiento temporal. El controlador dispone de uno o varios
puertos de datos para almacenar temporalmente los datos a transferir.
 Sincronización. La velocidad a la que opera la CPU es muy superior a
la de un periférico. El controlador sincroniza el flujo de información para que no se den
problemas de pérdida de datos a través del envío y recepción de señales de control y de
estado.
 Control del periférico. La CPU debe ser capaz de interrogar al
controlador para conocer su estado o enviar órdenes.
 Conversión de datos. Consiste en la adaptación de las características
eléctricas y lógicas de las señales empleadas por el dispositivo de E/S y el bus.
 Detección de errores. Las transferencias de datos son operaciones
sensibles a error. En el controlador se realizan funciones como inclusión/detección de paridad.
 Gestión de transmisión de bloques de información. Existen periféricos
que intercambian información mediante un conjunto de palabras y no con palabras aisladas. En
estos casos, el controlador puede disponer de un contador que controle el número de palabras
recibidas/enviadas.
En los primeros ordenadores, la CPU controlaba las operaciones
elementales de E/S. Con el tiempo, y para descargar al procesador de estas funciones, las
operaciones de E/S pasaron a realizarlas los controladores, siendo éstos cada vez más
complejos (algunos incluyen memoria y un procesador para uso exclusivo de operaciones de
E/S).

- 43 -
Informática

DISPOSITIVOS DE ENTRADA
Transmiten información desde el mundo exterior al procesador y a la memoria del ordenador
mediante la transformación de los datos en señales eléctricas codificadas (código binario). Así,
la CPU y la memoria reciben la información adecuadamente preparada para su tratamiento.
Lectora de tarjetas perforadas
Las tarjetas perforadas fueron, hasta finales de los años setenta, el soporte de información que
más se utilizó. La tarjeta perforada es una cartulina dura, rectangular, en la que la información
se representa con caracteres grabados por medio de perforaciones que realizan máquinas
auxiliares denominadas perforadoras. Las tarjetas que se van a leer se depositan en las
unidades lectoras de tarjetas y pasan secuencialmente por un dispositivo de lectura que
convierte la presencia o ausencia de perforación en un impulso eléctrico.
Teclado
Los teclados son similares a los de una máquina de escribir, correspondiendo cada tecla a uno
o varios caracteres, funciones u órdenes. Para seleccionar uno de los caracteres, puede ser
necesario pulsar simultáneamente dos o más teclas, una de ellas correspondiente al carácter
(mayúsculas, minúsculas, Alt, etc.). El teclado dispone de un conjunto de teclas agrupadas en 4
bloques:
 Teclado principal o alfanumérico: Contiene los caracteres
alfabéticos, numéricos y especiales, como en una máquina de escribir convencional, con
alguno más.
 Teclado numérico: Es habitual que las teclas correspondientes a los
dígitos decimales, signos de operaciones básicos y punto decimal estén repetidas para facilitar
al usuario la introducción de datos numéricos.
 Teclas de gestión de imagen o de control: Sobre la pantalla se
visualiza una marca o cursor (indicador de posición). También se suelen denominar con el
nombre de teclas del cursor. El cursor indica la posición donde aparecerá el siguiente carácter
que tecleemos. Las teclas de gestión de imagen permiten modificar la posición de dicho cursor
en la pantalla.
 Teclas de función: Normalmente distribuidas en una hilera en la parte
superior del teclado. El número más usual de teclas de función es 12 (F1, F2,..., F12). Son
teclas cuyas funciones están definidas por el usuario o predefinidas por una aplicación. Así, la
tecla F1 tiene funciones diferentes dependiendo de la aplicación que se esté ejecutando. En la
mayoría de las aplicaciones Windows, por ejemplo, al pulsar la tecla F1 se abre una ventana de
ayuda.
Cuando se presiona una tecla, un pequeño chip dentro de la computadora o del teclado,
llamado controlador del teclado, se percata de que una tecla ha sido presionada y coloca un
código en parte de su memoria, denominada memoria temporal del teclado (buffer), que indica
qué tecla fue seleccionada. El controlador envía una petición de interrupción a la CPU y cuando
la CPU la acepte pasa el carácter del buffer a la CPU.

- 44 -
Informática

Lápiz óptico
Físicamente tiene la forma de una pluma o lápiz, de uno de cuyos extremos sale un cable que
se conecta al monitor. El otro extremo tiene una abertura por la que puede pasar la radiación
luminosa de la pantalla. El lápiz contiene un pulsador, transmitiéndose información hacia el
monitor únicamente en el caso de estar presionado.
Detector de caracteres magnéticos
Se utiliza en talones y cheques bancarios. En estos documentos se imprimen unos caracteres
con tinta magnetizable. El dispositivo que lee los cheques o talones contiene una microbobina
que va barriendo el carácter y generando un potencial proporcional a la cantidad de tinta del
carácter.
Detector de barras impresas (códigos de barras)
Los códigos de barras se están convirtiendo en la forma estándar de representar información
en los productos de mercado. Cuando se fabrica un producto, se imprime en su envoltorio una
etiqueta con información sobre el mismo según un código formado por un conjunto de barras
separadas por zonas en blanco. La forma de codificar cada dígito decimal consiste en variar el
grosor relativo de las barras negras y blancas.
Sistemas de adquisición de datos analógicos
La mayor parte de las variables físicas de la naturaleza (temperatura, luminosidad, etc.) son
señales o funciones que varían continuamente con el tiempo. Estas señales, con sensores o
detectores, pueden convertirse en señales eléctricas analógicas. Existen sensores específicos
para cada magnitud (temperatura, presión, luminosidad, humedad, humo, sonido, sensores de
señales fisiológicas, etc.). Una vez convertida la señal original en señal eléctrica, es necesario
transformarla en datos aptos para ser tratados por la computadora (datos binarios). Esto se
hace con unos circuitos electrónicos específicos denominados conversores analógico/digital
(conversores A/D).
Escáner de imágenes
Es un sistema para digitalización de documentos basado en la exploración de documentos
mediante procedimientos optoelectrónicos. El escáner transforma la información contenida en
una página en una señal eléctrica que es transmitida al ordenador. El sistema considera a una
página dividida en una fina retícula de celdas o puntos de imagen, que son iluminados por una
fuente de luz. Esta luz se refleja en cada celda, y una malla de sensores optoelectrónicos
convierte la luz reflejada en una carga eléctrica (en una señal analógica). Las señales
analógicas obtenidas como consecuencia del barrido de la página, son digitalizadas por un
conversor A/D, conformando así la imagen captada para poder ser almacenada y procesada.
Cuanto más fina es la retícula considerada por el sistema, mayor resolución o mayor
información se tiene sobre la figura y de mayor calidad será la imagen captada.
La página que lee un escáner siempre es una imagen gráfica, aunque el contenido sea una
carta o un articulo de una revista. Es decir, la salida que genera el escáner es siempre un
fichero en formato gráfico (PCX, TIFF, BMP, etc.). El usuario que ha utilizado el escáner para

- 45 -
Informática

leer el documento original sólo podrá modificarlo utilizando un programa de tratamiento de


imágenes.
Si lo que el usuario quiere es modificar el texto del documento original con un procesador de
textos o un programa de autoedición, entonces necesitará un programa de reconocimiento
óptico de caracteres (OCR) para convertir esa imagen que nos entrega el escáner en un fichero
ASCII o en un formato propio de un procesador de textos.
El OCR está basado en el uso de un dispositivo de exploración óptica (escáner) que puede
reconocer la letra impresa. El OCR tiene que analizar la imagen punto a punto para identificar
todos los posibles caracteres. Algunos programas OCR son capaces de identificar cualquier
tipo de letra y tamaño, e incluso distinguen los caracteres en negrita y cursiva, y otros pueden
llegar a reconocer letra manuscrita siempre que esté suficientemente clara (como en
administraciones postales para procesos de clasificación). Para llevar a cabo esta tarea, el
OCR compara los caracteres que encuentra en la página con definiciones internas de los
caracteres que él tiene definidos. Es decir, el OCR ve un carácter y trata de igualarlo a lo que
asume que debería parecerse dicho carácter. Para realizar esta función, utiliza un catálogo de
patrones.
El software de OCR es muy complejo, porque es muy difícil hacer que una computadora
reconozca un número ilimitado de caracteres tipográficos y fuentes. Los requisitos básicos que
debe cumplir un programa OCR son la fiabilidad y la velocidad de interpretación de caracteres.
Algunos programas que nos encontramos en el mercado son OmniPage, WordScan, Perceive,
TextPert, Recognita, etc.
Reconocimiento de voz
Es uno de los campos de investigación más relevantes en la actualidad, pero aún no está muy
desarrollado. Se pretende una comunicación directa del hombre con el ordenador.
Básicamente, los dispositivos de reconocimiento de voz pretenden convertir el lenguaje
humano al lenguaje máquina. Tratan de reconocer fonemas o palabras dentro de un repertorio
o vocabulario muy reducido. Para ello, lo que hace al detectar un sonido es extraer
características o parámetros de dicho sonido y compararlo con los parámetros de las palabras
que es capaz de reconocer. Si se consigue identificar el sonido como una palabra del
vocabulario memorizado en el ordenador, se transmite a la memoria intermedia del dispositivo
el código binario identificador de la misma. Si el sonido no se identifica, se le indica al usuario
mediante algún mecanismo (indicador luminoso). Existen sistemas que sólo reconocen la voz
de un locutor determinado (necesitan un aprendizaje previo), y otros que son independientes de
la persona que hable (reconocen menos palabras).
Ratón
El ratón es un dispositivo de entrada que sirve para introducir información gráfica o seleccionar
coordenadas (x,y) de una pantalla. Dispone de uno o más pulsadores con los que el usuario
envía órdenes a la computadora, relacionadas con el punto seleccionado en la pantalla.
Internamente está constituido por una bola que puede girar libremente y unos rodillos
perpendiculares entre sí. Cuando el ratón se desplaza sobre una superficie, la bola se mueve y

- 46 -
Informática

hace girar los rodillos en un sentido u otro. Esta información es transmitida a través de un cable
a la computadora y el programa gestor del ratón puede determinar la distancia, dirección y
sentido del desplazamiento desde que se inició el último movimiento. Los ratones detectan
movimientos relativos. En la pantalla aparece un cursor que se mueve en el mismo sentido en
el que se desplaza el ratón a través de una superficie, indicando el punto sobre el que se
actuará.
El dispositivo que acabamos de describir se conoce con el nombre de ratón mecánico, sin
embargo existen también los denominados ratones ópticos. A diferencia del ratón mecánico,
que puede deslizarse por cualquier superficie que permita el movimiento de su bola, en el ratón
óptico el movimiento se tiene que realizar sobre una tablilla especial de material reflectante. El
ratón contiene dos focos luminosos que proyectan dos haces sobre la tablilla, la cual los refleja
y pasan a través de dos orificios para ser detectados por un par de fotosensores. Este tipo de
ratón es menos propenso a fallos y averías, pero presenta el inconveniente de necesitar la
tablilla para el desplazamiento y de ser más caro.
Con ordenadores portátiles o en situaciones en las que hay poco espacio para desplazar el
ratón suelen utilizarse ratones estacionarios (trackball), que se usan con la bola hacia arriba, dé
forma que ésta se desplaza con el dedo pulgar y no haciéndola rodar por una superficie.
Palanca manual de control (Joystick)
Está constituida por una caja de la que sale una palanca o mando móvil. El usuario puede
actuar sobre el extremo de la palanca y a cada posición de ella le corresponde sobre la pantalla
un punto de coordenadas (x,y). La caja o la varilla dispone de un pulsador que debe ser
presionado para que exista una interacción entre el programa y la posición de la varilla. Este
dispositivo es muy utilizado en videojuegos y aplicaciones gráficas.
Digitalizadores
También denominados tablas digitalizadoras o tabletas gráficas, permiten transferir
directamente gráficas, figuras, planos, mapas, etc. al ordenador. Esto se hace pasando una
pieza móvil (lápiz o cursor) por encima de la línea a digitalizar (como si se estuviese calcando),
automáticamente se pasan las coordenadas de los puntos que forman la imagen. Partiendo de
un dibujo, se obtiene una representación digital de él. Los digitalizadores constan de un tablero
donde se ubica el dibujo a digitalizar.

DISPOSITIVOS DE SALIDA
Transmiten información desde el procesador y la memoria del ordenador al exterior mediante la
transformación de señales eléctricas binarias en un lenguaje inteligible para los humanos
(normalmente caracteres escritos o visualizados).
Perforadora de tarjetas
Su misión consiste en recibir datos de la computadora o de las personas y realizar las
correspondientes perforaciones. Suele llevar incorporada otra unidad verificadora de tarjetas,
que repite las perforaciones para comprobar la información que debe contener la tarjeta.

- 47 -
Informática

Monitor
La forma más cómoda de recibir información es a través de la vista. Los monitores constituyen
el sistema más cómodo y usual de captar las salidas de una computadora.
La imagen de pantalla de ordenador se forma con multitud de puntos denominados puntos de
imagen o píxeles. La imagen se forma físicamente con la activación selectiva de unos
elementos denominados puntos de pantalla. Un punto de pantalla se iluminará más cuanto
mayor sea la activación del elemento correspondiente.
Cuando la pantalla se utiliza para visualizar texto, se considera dividida en celdas con un
determinado número de píxeles de ancho y largo para representar un carácter.
Un monitor está constituido por dos elementos básicos:
 Controlador de vídeo o controlador gráfico. La mayor parte de los
monitores no activan los puntos de pantalla de una forma continua, sino que lo hacen de forma
periódica y durante un corto intervalo de tiempo. Esta actualización periódica se llama refresco
de pantalla, e implica un recorrido o barrido de la pantalla. Los códigos de los caracteres que
van llegando son analizados por los circuitos que constituyen el controlador de vídeo. La
mayoría de estos caracteres son para visualizarlos en pantalla, y el controlador los almacena
directamente en una memoria denominada memoria o buffer de video.
 Pantalla de vídeo. Las pantallas tradicionales contienen un tubo de
rayos catódicos (similar a los de TV) y son de tipo curvo. Cerca de la parte trasera de la
cubierta del monitor se encuentra un cañón de electrones, el cual dispara un rayo de electrones
a través de una bobina magnética, que apunta el rayo a la parte frontal del monitor. La cara
interna del tubo está recubierta con miles de puntos de fósforo. Los electrones al estrellarse
sobre el fósforo hacen que éste se ilumine. Un CRT es básicamente un tubo de vacío con un
cátodo (el emisor del haz de electrones) y un ánodo (la pantalla recubierta de fósforo) que
permite a los electrones viajar desde el terminal negativo (cátodo) hasta el positivo (ánodo). Los
monitores monocromos utilizan un único haz de electrones y un único tipo de fósforo, mientras
que los monitores en color emplean tres haces y fósforo de tres colores distintos, uno por cada
color básico (rojo, verde y azul). Los colores usuales en las pantallas monocromáticas son
blanco, verde y ámbar sobre fondo negro. Las pantallas planas son menos voluminosas y
menos pesadas (aunque más caras), por lo que se utilizan preferentemente para ordenadores
portátiles. Normalmente están compuestas por dos cristales planos unidos a presión y los
elementos activos se sitúan entre ambos (pantallas de cristal líquido).
Impresoras
Son periféricos que escriben la información de salida sobre papel. Junto con el monitor son los
dispositivos de salida más utilizados. Existen multitud de tipos y modelos. Se clasifican según
dos criterios:
 Por el modo de impresión de los caracteres:
o Impresoras con impacto. Son aquellas que para imprimir los caracteres
precisan golpear sobre el papel el carácter preformado en relieve o configurado en una cabeza
de escritura. La ventaja de este tipo de impresoras es que se pueden realizar varias copias

- 48 -
Informática

simultáneas del documento intercalando papel carbón. Como inconveniente, puede


considerarse el excesivo ruido producido con el golpeo.
o Impresoras sin impacto. Se eliminan los movimientos mecánicos y el
impacto, con lo que se consiguen mayores velocidades y desaparece el ruido. No se pueden
obtener copias simultáneas. Utilizan técnicas basadas en fenómenos térmicos, electrostáticos,
químicos, así como el rayo láser.
 Por el número de caracteres que pueden escribir simultáneamente:
o Impresoras de caracteres. Realizan la impresión carácter a
carácter de forma secuencial. Son dispositivos lentos que consiguen velocidades de hasta 600
cps.
o Impresora de líneas. Realizan la impresión línea a línea, de
forma que seleccionando previamente los caracteres que se han de imprimir en una línea, con
un único golpe se imprimen simultáneamente todos los caracteres que la componen. Se
consideran rápidas, alcanzando velocidades de hasta 2.400 1pm o 5.113 cps.
o Impresoras de páginas. Imprimen una página de una vez. Son
las más rápidas. Se consiguen velocidades de 88.000 cps que son aproximadamente 570 ppm
(10 pps).
A continuación se describen algunos de los tipos de impresoras más
importantes entre las existentes en el mercado:
 Impresora de margarita, de cilindro, de bola. Son impresoras con
impacto y de tipo carácter. La velocidad de impresión no supera los 50 cps. La cabeza de
impresión es una margarita con hojas, un cilindro o una bola que contiene los caracteres en
relieve. El mecanismo donde se encuentran preformados los caracteres gira hasta que el
carácter que se quiere imprimir se encuentra delante de un martillo que lo golpea, produciendo
la impresión.
 Impresora de matriz de puntos o de agujas. Constan de una cabeza de
impresión en la que por medio de unos electroimanes que llevan en su interior unos punzones
se configura el carácter a imprimir. Pertenecen al tipo de impresoras de carácter y de impacto.
Existen impresoras con más de una cabeza de matriz de puntos. En este caso se considera
como impresora de línea. La velocidad oscila entre 180 y 500 cps.
 Impresoras de banda de acero. Son de tipo impacto y de línea. Los
caracteres se encuentran modelados en ruedas, en tambores, en barras o en cadenas y la
forma del molde pasa al papel al impactar sobre él un martillo. La velocidad de impresión está
entre 600 y 2.400 1pm.
 Impresoras térmicas. Son similares a las impresoras de agujas. Se
imprime sobre un papel especial termosensible que se ennegrece al aplicar calor. El calor se
transfiere desde el cabezal por una matriz de pequeñas resistencias. Al pasar una corriente
eléctrica por las resistencias, se calientan, formándose los puntos en el papel. Pueden ser de
caracteres o de líneas, y son impresoras sin impacto. La velocidad oscila entre 100 y 2.000 cps.
 Impresoras de inyección de tinta. Utiliza tinta líquida que sale por una

- 49 -
Informática

boquilla en forma de gotas. La tinta se carga eléctricamente y está guiada hacia el papel por
medio de placas de desviación para formar el carácter deseado. La calidad de impresión es
buena, debido a que los caracteres están formados por docenas de pequeños puntos de tinta,
pudiéndose utilizar varios colores de tinta y tipos de letra que se controlan desde el programa.
Su velocidad oscila entre 60 y 660 cps.
 Impresoras láser. Tienen una gran Importancia debido a su gran
velocidad, calidad de impresión, bajo precio y uso de papel normal. Son impresoras de páginas
y sin impacto. La página a imprimir se transfiere al papel por contacto, desde un tambor que
contiene la imagen impregnada en tóner (polvo de carbón). El tambor está recubierto de un
material fotoconductor. La imagen se forma haciendo incidir sobre el tambor un rayo láser. La
velocidad de las impresoras láser va desde 4 a 350 ppm.
Síntesis de voz
Son unidades que dan los resultados de los programas emitiendo sonidos similares al habla
humana. Funcionan a base de almacenar muestras codificadas digitalmente de sonidos clave.
Las palabras se construyen mediante la unión de estas muestras a través de algún algoritmo.
Registradores gráficos (Plotters)
Estos dispositivos producen salidas en forma de planos, dibujos, mapas, esquemas e imágenes
en general. El plotter dispone de una o varias plumas que se mueven sobre la superficie del
papel bajo el control del procesador (requieren un software especial para su control). Hoy en
día, la importancia de los registradores gráficos ha decrecido, debido a que en muchas
ocasiones pueden ser sustituidos por impresoras gráficas. Su uso se suele reservar para
dibujos de gran tamaño (AO) o que requieran diversidad de colores. Actualmente, se
comercializan plotters con tecnología de inyección de tinta.

DISPOSITIVOS MIXTOS
Los dispositivos mixtos incluyen simultáneamente unidades de entrada y unidades de salida.
Pantallas sensibles al tacto
Son unidades de E/S similares a una pantalla convencional en la que se incluye un dispositivo
capaz de reconocer la zona donde se aplica una presión (por ejemplo, el contacto con el dedo).
En general, se utiliza para representar información realizando operaciones mediante un grupo
de opciones localizadas a lo largo de la pantalla, de forma que una de ellas puede ser
reconocida por el contacto. Puede ser útil para usuarios principiantes, tales como niños de
corta edad. Es frecuente también encontrar este tipo de dispositivos en algunos comercios y
lugares públicos para suministrar información de cualquier índole (precios de artículos, horarios
de transportes, etc.).
Robots
Permiten la entrada de datos a través de dispositivos muy variados, como sensores, teclados,
analizadores de voz, etc. La salida la realizan por medio de movimientos, síntesis de voz,
displays. En general, son dispositivos que mezcla distintas unidades de entrada y salida en una
única máquina.

- 50 -
Informática

Terminales punto de venta


Son unidades de E/S especiales para aplicaciones muy concretas de tipo comercial. Constan
por lo general de un teclado, una impresora y una caja de monedas y billetes controlada por el
propio teclado. Funcionan por un software hecho a medida y las funciones que realizan son
búsqueda y actualización automática de precios, gestión de compras, impresión de factura o
tique de venta, reconocimiento de código de barras, etc. Actualmente ha sustituido a las
clásicas máquinas registradoras.
Terminales de operaciones financieras
También denominados cajeros automáticos, son unidades conectadas a una computadora
central de una entidad financiera para la realización de operaciones de los clientes con la
mencionada entidad.

DISPOSITIVOS DE MEMORIA MASIVA AUXILIAR


Los sistemas de memoria masiva son periféricos que sirven para almacenar información
permanente de manera que se pueda recuperar de forma automática y eficiente. Estos
dispositivos tratan de solventar los problemas de la memoria principal: volatilidad y capacidad.
La información contenida en un dispositivo de memoria masiva se transfiere desde o hacia la
CPU y la memoria principal a través de bloques o registros físicos de información. Cada bloque
contiene una cantidad fija de información. Se denomina tiempo de acceso al tiempo medio que
se tarda en acceder a cualquier registro físico. Si para acceder a un bloque concreto es
necesario que la cabeza vaya leyendo uno a uno los bloques que hay desde el principio hasta
el registro deseado, se dice que el dispositivo es de acceso secuencial. Si, por el contrario, la
cabeza lectora puede situarse directamente en un registro dado, se dice que el dispositivo es
de acceso directo. Estos últimos son más rápidos que los secuenciales.
Tambor magnético
Es un dispositivo de acceso directo. Se utilizó en la década de los años setenta, aunque ya ha
quedado obsoleto debido a que no es intercambiable y está muy superado en prestaciones por
los discos. Está constituido por un cilindro recubierto de un material magnetizable. La
información va grabada en la superficie externa del tambor, en circunferencias llamadas pistas,
cada pista se considera dividida en sectores. El tambor está girando a una velocidad constante
y las cabezas se sitúan a lo largo de la generatriz del cilindro, esperando a que el sector al que
quiere acceder se sitúe delante de ellas. El tiempo de acceso máximo es de 17 ms.
Cinta magnética
Consiste en un plástico muy flexible, recubierto de un material magnetizable. La cinta se
encuentra enrollada y la lectura y grabación se efectúan haciéndola pasar por una estación de
lectura/escritura. Las cintas son un soporte de información muy barato y de gran capacidad,
pero son muy lentas (acceso secuencial). Actualmente, la principal misión de las cintas es
obtener copias de seguridad (backup) o almacenar información obsoleta (ficheros históricos).
A pesar de su lento sistema de acceso, la cinta fue uno de los primeros medios ampliamente
utilizados para almacenamiento masivo. Las primeras macrocomputadoras utilizaban sistemas

- 51 -
Informática

de cinta de carrete. La mayoría de las cintas modernas se empaquetan en casetes o cartuchos


de diferentes tamaños, desde grandes cartuchos de 8 por 5 pulgadas hasta microcasetes de no
más de 2 pulgadas de largo. La capacidad de almacenamiento de las cintas no depende de su
tamaño, encontrándonos grandes casetes con capacidades de 40 a 60 MBytes, mientras que
algunos de los más pequeños pueden guardar más de 5 GBytes de información.
Disco magnético
Es un soporte de almacenamiento de información de acceso directo. Aunque son más caros
que las cintas, tienen la ventaja de que consiguen tiempos de acceso menores (10 a 100 ms).
Se fundamentan en la grabación magnética de información en las superficies de un plato
circular o disco recubierto de una capa de óxido magnetizable. El disco puede ser de un
plástico flexible (floppy disk o disquetes), o puede ser rígido (disco duro o hard disk). En ambos
casos, la información se graba en circunferencias concéntricas, denominadas pistas, que
suelen considerarse numeradas correlativamente desde afuera hacia adentro, empezando por
cero. El disco se considera dividido en arcos llamados sectores, por lo que cada pista se
compone de sectores . Los principales tipos de discos son:
 Discos de cabezas fijas. Son discos que tienen una cabeza de
lectura/escritura por cada pista, con lo que se consigue un tiempo de acceso relativamente
bajo, ya que viene fijado únicamente por la velocidad del giro del plato.
 Paquetes de discos. Son unidades compuestas por varios platos que
giran solidariamente alrededor de un eje común. Las cabezas de lectura/escritura son móviles,
existiendo una por superficie. Existen unidades de discos en que éstos son intercambiables. No
se utilizan en la actualidad, pero han servido de base para los discos Winchester.
 Discos Winchester. Son paquetes de discos en los que, con objeto de
reducir los efectos de la suciedad ambiental, los platos están herméticamente cerrados y son
fijos (no intercambiables). Las cabezas van más próximas a la superficie que el resto de las
unidades, lográndose grandes densidades de grabación. Las unidades de disco duro actuales
son de tecnología Winchester.
 Disquetes. Son pequeños discos cuyos platos son flexibles, ya que
están constituidos por un material plástico. Son intercambiables. Los primeros disquetes eran
de 8", pero en la actualidad los más utilizados son los de 3½" que han desplazado a los de 5¼".
La lectura y grabación se efectúa introduciendo el disquete en una unidad de disco de su
mismo tipo. Dependiendo del tipo de disquete, la grabación se puede efectuar a densidad
normal, doble densidad o alta densidad. Estas diferencias se deben a la calidad del plato y al
método de grabación
Disco óptico

- 52 -
Informática

Con el nombre genérico de discos ópticos se designa un conjunto muy diverso de dispositivos
de almacenamiento basados en la tecnología láser. Aquí se incluyen unidades para discos
compactos de música, unidades para discos CD-ROM de datos, unidades de disco óptico
regrabables y unidades de discos magneto-ópticos. En los soportes de almacenamiento la
información es grabada en espiral.
El primer formato de discos compactos apareció al principio de la década de los años ochenta,
cuando Philips y Sony definieron las características de los discos compactos de música. Este
primer formato se conoce con el nombre de CD-A, CD-Audio o CD-DA (Digital Audio) y es el
utilizado en los discos compactos de música que se pueden comprar en cualquier tienda. Las
unidades de CD que se incluyen en los equipos de música sólo pueden leer CD con formato
CD-A, es decir, discos compactos de música.
A partir de 1.984, y basándose en el CD-A, comienzan a aparecer una serie de discos ópticos
que permiten almacenar todo tipo de información:
 CD-ROM (Compact Disk Read Only Memory - Disco Compacto de sólo
lectura). Son soportes de sólo lectura, ya que el proceso de grabación resulta muy complejo. La
información se registra en una superficie donde se generan minúsculas perforaciones
denominadas pits, capaces de ser detectadas mediante la incisión sobre ellas de un rayo láser
que será reflejado de distinta forma si existe o no perforación. Los discos CD-ROM pueden
almacenar audio (al igual que los discos CD-A), pero, además, pueden contener texto y
gráficos. Lógicamente, los CD-ROM se diseñaron para su utilización en los ordenadores que
combinan texto, gráficos y audio. Puesto que el CD-A es un subconjunto del CD-ROM, estos
últimos pueden reproducir discos compactos de música como si se tratará de un CD-A. Por
ello, todas las unidades de CD-ROM poseen una salida de audio para conectar altavoces
externos y/o auriculares.
 WORM (Write Once, Read Many Times - Escribir una vez, leer
muchas). Son unidades similares a los CD-ROM, pero que contienen un láser de mayor
potencia, de forma que en la propia unidad se puede efectuar la grabación del disco. El usuario
puede grabar una sola vez el disco que después se leerá en las unidades CD-ROM
convencionales (o en equipos de músicas si puede grabar en formato CD-A).
 WMRA (Write Many, Read Always - Escribir muchas veces, leer
siempre) o discos magneto-ópticos. Son unidades en las que es posible leer y escribir tantas
veces como el usuario quiera. Los discos contienen una magnetización previa que
posteriormente se va alterando debido al calentamiento de las celdas con la ayuda de un láser
de alta potencia. El fundamento físico es diferente al de los disco magnéticos y al de los CD -
ROM, aunque combina las dos técnicas.
Las características de estos sistemas son:
 Alta capacidad de almacenamiento. La capacidad normal oscila entre
650 MBytes y 1,5 GBytes.
 El precio/bit es el más bajo de todos los dispositivos.
 La degradación o pérdida de la información es prácticamente nula. En

- 53 -
Informática

un soporte magnético (disquetes, cintas, discos duros) la información almacenada se borra con
los cambios magnéticos generados por teléfonos, monitores, detectores de metal y otros
equipos, mientras que los datos de los discos ópticos sólo se pueden alterar calentándolo con
un láser de alta potencia o quemando el disco. Los fabricantes de discos ópticos calculan, de
forma muy conservadora la media de vida de un disco óptico en 30 años.

- 54 -
Informática

UNIDAD 3
HEURÍSTICA Y ALGORITMACIÓN
Problemas de computación
Una vez que se comprende un problema, se debe decidir qué tipo de problema es. Dos tipos de
problemas comunes son:
1. Los problemas que buscan respuestas: si un ejercicio implica el cálculo del número de
palabras que hay en un libro o la bisección de una línea utilizando regla y compás, se trata de
un trabajo en que se debe encontrar algo que se desconcoce. La forma en que esto se haga no
es de particular importancia, siempre y cuando se obtenga la respuesta correcta.
2. Los problemas que buscan pruebas: cuando se pide que se pruebe que hay 720 formas de
colocar seis libros en un fila se está dando la respuesta. La tarea es distinta a la de encontrar
una respuesta porque ya se sabe lo que se desea. Todo lo que se tiene que hacer es
determinar la relación entre los datos y la respuesta.
Es importante observar que un problema en que se buscan respuestas se tiene que elaborar
una solución, mientras que cuando se pide que se pruebe sólo es necesario demostrar que
existe (o no existe) una solución, sin crearla.
Los problemas de computación no pueden ser problemas en que se busquen pruebas porque
el propósito del trabajo de las computadoras es encontrar respuestas que no se conocen de
antemano. Pero tampoco se les puede considerar como problemas en que se busquen
respuestas porque es la computadora misma la que determina la respuesta, no la persona que
trabaja con ella.
3. Los problemas de computación pertenecen a una tercera clase: los problemas que buscan
métodos. Aquí se busca un método mediante el cual se pueda derivar una respuesta.

Encontrar Encontrar
Problema
método respuesta

Humano Computadora
Figura 1

El proceso de resolver problemas mediante computadoras se describe en la figura 1. Se trata


de encontrar un método por medio del cual se pueda resolver un problema. Una vez que se
haga esto, la computadora se hace cargo del mismo y suministra las respuestas a la pregunta.
Esta es una simplificación porque una vez que se tiene un método es necesario expresar este
método en una forma en que la computadora pueda operarlo.
Esto se representa en la figura 2. Por lo tanto, la persona que desea utilizar una computadora
para resolver un problema de computación, debe ejecutar tres trabajos:
Algoritmación: dado el problema, debe ser capaz de elaborar un método de resolución o
algoritmo (heurística o resolución de problemas).

- 55 -
Informática

Codificación: habiendo desarrollado el algoritmo, se requiere convertirlo en una forma que la


computadora pueda manejar (codificación utilizando un lenguaje de programación). Se obtiene
así el programa.
Operación: por último, debe hacer que la computadora ejecute el programa para producir los
resultados deseados y esto requiere un conocimiento del diseño de la máquina, de su
organización y operación.
Es conveniente destacar la diferencia entre dos conceptos importantes: programación y
codificación.
Programación: es un proceso mental dividido en varias etapas que abarca desde la
comprensión del problema que va a resolverse hasta entender en detalle qué método se
utilizará para obtener la solución y qué lenguaje se empleará para introducirlo en la
computadora.
Codificación: es describir en términos de algún lenguaje de programación adecuado, el
algoritmo.
En consecuencia, la Programación incluye las etapas de algoritmación y codificación.
Por lo tanto, el estudiante de programación de computadoras debe estudiar tres temas
relacionados entre sí.

Problema Algoritmo Programa

Operación de la
Heurística Codificación computadora y
organización

Resultados
Figura 2

Lo expuesto se resume en la siguiente tabla:


Nombres de las etapas Resultados obtenidos Se requiere conocer y manejar
Algoritmación Algoritmo Heurística
Codificación Programa Lenguajes de programación
Operación Resultados deseados Detalles de la computadora,
organización y operación

El usuario o la persona que usa una computadora no necesariamente realiza las tres etapas
mencionadas. Puede darse el caso que el método o el algoritmo ya exista, o bien, que el
método, el algoritmo o el programa ya existan para un determinado problema, en esa situación
se realizarán las etapas de codificación y operación u operación respectivamente.
ALGORITMOS

- 56 -
Informática

INTRODUCCIÓN
La etapa vital de la solución de un problema con una computadora es el diseño del algoritmo y
de la estructura fundamental de datos. Un algoritmo es un procedimiento expresado
precisamente para obtener la computadora en el lenguaje de programación seleccionado. Los
algoritmos se presentan de una manera conveniente para un lector humano, mientras que los
programas sirven a las necesidades de las computadoras.
Es importante recordar mientras diseñamos un algoritmo que una computadora sólo sigue las
instrucciones y no puede actuar si no se le ha ordenado de manera explícita. Por lo tanto, el
solucionador de problemas debe prever cualquier aspecto del problema en el propio algoritmo.
La palabra Algoritmo se usa en homenaje al matemático UZBEKO ALKUARITZMI quien
escribió un libro el cual por primera vez se expresaban métodos precisos para efectuar las
cuatro operaciones básicas, las cuales hoy en día se siguen utilizando.

DEFINICIÓN
Todas las tareas que lleva cabo una computadora se pueden expresar como algoritmos. Una
vez que se ha diseñado un algoritmo, se codifica en un lenguaje de programación, y el
programa es ejecutado por una computadora.
Un algoritmo es un conjunto finito de instrucciones que especifica en un secuencia de
operaciones a realizar en orden para resolver un problema específico o clases de problemas.
En otras palabras, un algoritmo es un método para la solución del problema.
Un algoritmo se puede presentar en varios niveles de detalles.
El hardware de una computadora sólo puede obedecer las instrucciones si están expresadas
en el lenguaje de máquina de la computadora. El diseñador de algoritmo puede encontrar
dificultades al pensar en términos de éstas instrucciones ya que los detalles pueden oscurecer
la esencia del procedimiento.

PROPIEDADES
Un algoritmo es un procedimiento para ejecutar un trabajo y tiene cuatro propiedades
principales:
Secuencialidad: se debe especificar sin lugar a dudas la secuencia en la que se debe llevar a
cabo los pasos del algoritmo. Un algoritmo debe tener una instrucción inicial única y cada
instrucción debe tener un sucesos único para un dato de entrada dado. En las especificaciones
del algoritmo, incluyendo los programas, las instrucciones son llevadas a cabo de arriba hacia
abajo (la sucesora implícita de una instrucción es una consecutiva físicamente), a menos que
las instrucciones por sí mismas especifiquen otra cosa.
Las entradas son las partidas de datos presentadas al algoritmo. Un a algoritmo tiene o no
entradas o un número predeterminado de ellas. Las entradas deben ser del tipo para el cual se
ha diseñado el algoritmo. Las salidas son partidas de datos procesados (información
presentadas al mundo exterior como el resultado de la ejecución de un programa basado en el
algoritmo). Un algoritmo debe producir al menos una salida.

- 57 -
Informática

Ausencia de ambigüedad: Un algoritmo debe ser definido, claro, preciso y no ambiguo. La


representación de cada paso de un algoritmo debe tener una única interpretación aunque una
representación para una computadora puede diferir para la de un humano. Es conveniente para
los humanos tratar con algoritmos presentados en una notación con detalles separados (por
ejemplo, un pseudocódigo o un diagrama d flujo) mientras que la computadora necesita que el
algoritmo sea codificado en un programa.
Esta condición significa que cada vez que se presente para su ejecución un algoritmo con los
mismos datos de entrada, se obtendrán los mismos resultados.
Las instrucciones de un algoritmo deben ordenar a la computadora que sólo lleve a cabo tareas
que sea capaz de hacer. Una computadora no puede llevar a cabo una instrucción si tiene
información insuficiente o si el resultado de la ejecución de la orden no está definido.
Generalidad: Un algoritmo se puede utilizar para varios problemas que se relacionan entre si.
Un algoritmo se aplica a un problema o clase de problemas específicos, el rango de las
entradas o dominio se tiene que definir previamente, ya que este determina el alcance o la
generalidad del algoritmo.
Limitación: Un algoritmo es finito en tamaño y tiempo. La ejecución de un algoritmo programado
debe finalizar después de que se haya llevado a cabo una cantidad finita de operaciones. De
otra manera, no podremos exigir que la ejecución produzca una solución. La esencia del
método del algoritmo consiste en la repetición del mismo paso o pasos, probablemente con
algunas modificaciones, muchas veces durante la ejecución de un programa basado en un
algoritmo dado. El número de operaciones que se realizan en la ejecución de un algoritmo
raramente es igual al número de pasos en la descripción del algoritmo. La longitud del
programa no es un buen indicador del tiempo de ejecución.

Dominio de un algoritmo
Si el algoritmo no es general dentro de alguna clase de problemas, entonces es de poca
utilidad. Por lo tanto, un método para marcar el número telefónico 220234 casi no tiene valor
para nadie, mientras que un método para marcar cualquier número podría ser útil. Por
supuesto, debe haber alguna restricción a la generalidad de un algoritmo.
La clase o le conjunto de datos y las condiciones para las cuales un algoritmo trabaja
correctamente se llama dominio. Cuando se trata de resolver cualquier problema es necesario
definir el dominio del algoritmo y después verificar que trabaja para todos los casos que se
encuentran dentro de este dominio.
Al decidir el dominio de un algoritmo es necesario incluir todas las situaciones similares, pero
los casos remotos o pocos probables se pueden omitir.

Errores en la construcción de un algoritmo


Errores de dominio: Se presentan cuando no se han especificado todas las situaciones que se
pueden presentar en la práctica o se ha descuidado la apreciación de su importancia. Las
pruebas más difíciles son aquellas que verifican que se ha seleccionado un dominio correcto

- 58 -
Informática

para el algoritmo.
A medida que el problema se presenta, se tiene que clasificar y hay tres opciones:
1. Ignorarlo porque es improbable y quizás nunca ocurra.
2. Restringir el dominio del algoritmo para excluirlo.
3. Corregir el algoritmo.
Errores de lógica: son aquellos errores que se detectan después de que se ha definido en
forma adecuada el dominio de un algoritmo, en la etapa de prueba o verificación. Se deben
principalmente a las siguientes causas:
1. Etapas incorrectas
2. Secuencia incorrecta de etapas.

Formas de expresar un algoritmo


Un mismo algoritmo puede ser expresado de distintas formas y en distintos lenguajes.
Lenguaje común: en el lenguaje común que hablamos y escribimos; útil para comunicar un
algoritmo a otra persona o en una fase de análisis previo de un sistema computacional.
Diagramas de flujo: es un lenguaje gráfico; útil para visualizar en forma rápida la secuencia
lógica de pasos a seguir por un algoritmo y de gran ayuda para la traducción del mismo a un
programa de computación.
Tablas de decisión: expresan en forma de tablas las distintas alternativas que intervienen en un
algoritmo y las operaciones elementales a realizar en cada alternativa. Muy útiles para analizar
la lógica de un algoritmo en forma exhaustiva y precisa.
Lenguajes de pseudocódigos: tipo de lenguaje compuesto por una lista de enunciados, algunos
de los cuales coinciden con los que se usan en los diagramas de flujo. En la lógica del
algoritmo se pueden utilizar distintos tipos de organización o estructuras de control. Se
pseudocodifican las estructuras de control de la programación estructurada.
Lenguajes de programación: es la forma obligada de expresión de un algoritmo para que pueda
ser leído, ejecutado y almacenado por el computador.

DIAGRAMAS DE FLUJO
Un diagrama de flujo es la representación gráfica o visual de un algoritmo. Se usan en el
planeamiento, desarrollo y estructuración de un algoritmo. Mediante los diagramas de flujo el
algoritmo se puede comunicar y documentar (porque enseña y describe el proceso).
Formalmente, un diagrama de flujo es un diagrama formado por símbolos (cajas, bloques,
figuras) y flechas o líneas de flujo que conectan los símbolos entre sí. Los símbolos denotan los
pasos esenciales del algoritmo y las flechas indican la secuencia. Se dibujan de tal manera que
la dirección del flujo sea hacia abajo o de izquierda a derecha.
Utilidad de los diagramas de flujo
El diagrama de flujo refleja los pasos sucesivos que el computador debe dar para llegar a la
solución de un problema. Las principales razones por las cuales es generalmente aconsejable
el trazado de un diagrama de flujo son las siguientes:

- 59 -
Informática

- Oportunidad de verificar la lógica de la solución


- Sirve de guía al programador para la codificación del programa
- Permite fácilmente modificar un programa
- Es útil para la discusión grupal
- Sirve para documentar el programa.

Simbología básica
Los símbolos que se describen a continuación son de uso universal:

Indica el principio o fin de un algoritmo.

Indica entrada o salida de datos, es decir una lectura


o escritura.
Indica la salida impresa de la información.

Procesamiento: se usa generalmente para sentencias


o enunciados de asignación.
Conector o símbolo de conexión: se usa cuando el
diagrama es largo y se requiere más de una hoja de
papel o para evitar líneas que se crucen. Para cada
rótulo de conector hay un único conector de entrada y
puede haber más de uno de salida.
Proceso predefinido: se usa para macroinstrucciones.
Simbolizan módulos o segmentos lógicas.
Hay una decisión. En función del resultado de la
condición evaluada en su interior, el flujo del algoritmo
no si
seguirá una determinada dirección.

Indica la dirección del algoritmo en cada momento


mediante una flecha.

- 60 -
Informática

Estructuras básicas de control del flujo de ejecución


Flujo es la secuencia de instrucciones que se ejecutan desde la primera línea de programa
hasta la última. Así, decimos que el flujo de ejecución es la trayectoria que sigue al ir
ejecutando todos los pasos presentes en un algoritmo.
La estructura de control es cualquier herramienta que controle el flujo de ejecución de un
algoritmo.
Un programa se puede construir mediante tres tipos de estructuras básicas de control:
 Secuencial
 Selectiva
 Repetitivas

Estructura secuencial
Es la que sigue la máquina si no se le especifica lo contrario. Las sentencias se ejecutan una a
continuación de otra, siguiendo el orden en el que están definidas.
Su representación en un diagrama de flujo sería:
Estructura selectiva

Las estructuras selectivas son también llamadas de decisión. Las estructuras selectivas se
utilizan para tomar decisiones lógicas. También se las llama condicionales, ya que consisten en
la ejecución de una o más sentencias, dependiendo de la evaluación de una condición y de si
ésta se cumple o no.
Tipos de estructuras selectivas:
Simple
Se ejecutará si la condición de la expresión lógica es verdadera.

F V
condición

- 61 -
Informática

Doble

F V
condición

Consiste en realizar una pregunta y ejecutar una serie de instrucciones si la respuesta es


verdadera, o bien ejecutar otra serie de instrucciones si la respuesta es falsa.
Anidada
Es cualquier estructura condicional en la que aparezca otra estructura condicional.

Múltiple

condición

acción 1 acción 2 acción n

Se evalúa la condición, y dependiendo del resultado se ejecuta la acción 1, acción 2 o acción n.

Estructuras repetitivas
Las estructuras repetitivas son aquellas que repiten un conjunto de acciones un número de
veces. Podemos definir:
 Bucle o ciclo: toda estructura de control en la que se ejecutan una serie
de instrucciones, en el orden en que aparecen, tantas veces como se cumpla una condición.
 Cuerpo del bucle: es el conjunto de acciones que se ejecutan de forma
secuencial dentro del bucle.
 Iteración: se produce una iteración cada vez que se ejecutan las
sentencias que hay en el cuerpo del bucle (es el hecho de repetir la ejecución de una
secuencia de acciones).

- 62 -
Informática

Los tipos de estructuras repetitivas son el Do While y el Repeat Until. Las repeticiones pueden
estar controladas por un contador o por un centinela.
Bucles controlados por contador
Es una estructura en la que ya se sabe de antemano el número de veces que se van a realizar
las acciones.

Bucles controlados por centinela


Repite el cuerpo del bucle mientras se cumpla la condición. En estos bucles no se conoce a
priori el número de iteraciones que se van a realizar.
Estructura Do While

v
condición

acciones

Estructura Repeat until

acciones

f
condición

- 63 -
Informática

LA HEURÍSTICA
Gran parte de nuestra educación consiste en aprender que los problemas en particular se
pueden clasificar en varias categorías generales para las cuales existen métodos más o menos
rígidos de resolución. Una vez que se memoricen estos métodos o patrón, se podrá resolver
cualquier problema que corresponda a tales categorías. En esta forma, 13 x 98 es un problema
de multiplicación; obtener un emparedado queda dentro de la categoría de obtención de
alimentos, y decidir si se debe besar durante la primera cita, es materia de cómo causar una
impresión favorable en el sexo opuesto.
Es obvio que la rigidez y el convencionalismo del método que se empleé dependerá de la
naturaleza del problema en particular, de la experiencia personal y de la reacción a la misma. la
mayoría de nosotros aprenderá y aceptará bastante pronto los hechos convencionales sin
ninguna conjetura, hasta que nos enfrentemos a una situación que no sea posible manejar en
forma adecuada. Debe realizar la multiplicación en cinco segundos, su madre o esposa no
están en casa para preparar el alimento, su nueva acompañante lo abofetea cuando trata de
besarla. O bien se puede enfrentar a una problema que no se encuentre en las categorías bien
conocidas. Por ejemplo, el problema de describir el procedimiento a alguien que no conozca los
libros sería difícil para la mayoría de nosotros.
En tal caso, hay dos reacciones posibles. O nos enfrentamos al hecho de que los viejos
métodos y categorías son inadecuadas y pensamos un poco por nosotros mismos, creando
categorías y métodos más útiles, o rechazamos el problema como demasiado complicado,
indeseable o molesto.
Por desgracia la última reacción es demasiado común y en consecuencia el pensamiento se
vuelve limitado y poco original. Esto se debe en parte a que nunca se nos ha enseñado un
método para pensar en forma original. Proporciona un esquema o plan para atacar los
problemas poco conocidos.
Mejorar su capacidad de crear soluciones es sólo un aspecto de la heurística. El otro, es que el
método que va a usar sea eficiente. Si desarrolla una mala solución, no importa cuán
inteligente sea su implementación, siempre será una mala forma de producir las respuestas. En
la etapa de planeación es donde se tiene oportunidad de comparar métodos y seleccionar el
más adecuado.
La necesidad de la heurística, de la planeación, se hace más evidente a medida que se gana
más experiencia. Como cualquier otra aptitud, se tiene que aprender y utilizar antes de que se
pueda apreciar por completo. Al principio su nivel de capacidad probablemente será bajo y aún
los problemas más simples requerirán de consideración cuidadosa. Luego, a medida que
aumenta la experiencia y el conocimiento, aumentará su capacidad y verá que puede
desarrollar resoluciones más y más complejas sin tener que recurrir a la planeación detallada.
Sin embargo, siempre habrá un patrón de problema en el cual las soluciones no se encuentren
con facilidad y una vez más tendrá que recurrir a la heurística.

- 64 -
Informática

Entendido el concepto de algoritmo surge la pregunta: Cómo se pueden resolver los problemas
para los que no hay un método establecido o para los cuales no conocemos un algoritmo.

MÉTODO HEURÍSTICO
1. Conciencia
Todos tenemos alguna capacidad para resolver los problemas en forma creativa, pero a
menudo la sobreestimación de esta capacidad es un gran obstáculo. A las personas que
resuelven con éxito los problemas les es difícil aceptar la necesidad de la heurística, ya que
consideran que saben lo suficiente, sin embargo, pocas de ellas tendrán un éxito completo y no
habrá ninguna posibilidad de mejorar. Por otra parte, los que se consideran ineptos para
manejar problemas que no conocen bien tenderán a evitar las situaciones difíciles y, por lo
tanto, no podrán descubrir los progresos posibles. Entonces, como primer paso para mejorar
nuestras aptitudes, es necesario estar conscientes de ellas y saber controlar las habilidades.
Esto conduce al meollo de todos los métodos heurísticos:
- Debo estar consciente de lo que estoy haciendo.
Es necesario reconocer deliberadamente cada caso que se tome en la solución de un
problema.
Desde el principio se debe adoptar una actitud receptiva. Todas las propuestas deben
considerarse tentativamente sin importar que tan obvias o imposibles parezcan. En esta forma
se creará una conciencia y nuevas soluciones pueden aparecer.
Para obtener algún beneficio de este método es necesario aceptar en forma tentativa todas las
ideas que se presenten. Es mejor rechazar una idea conscientemente que estar de acuerdo
con ellas, sin haberla analizado.
2. Definición
La definición de un problema implica la formulación de tres preguntas:
- Qué resultados se deben obtener?
Especifique con precisión qué resultados se requieren. Si los resultados van a tener un uso
práctico los datos originales se deben incluir en los resultados finales.
- Qué datos se nos proporcionan?
Defina todos los datos en forma precisa. Examine de nuevo las especificaciones de los mismos
y encuentre cuántos elementos de datos hay. Puede variar este número? Hay alguna
restricción en el tipo de datos?
- Qué condiciones relacionan los datos a los resultados? Son satisfactorias estas condiciones
(es decir, aseguran que se obtendrán resultados correctos para todos los datos)?
Asegúrese de que no omite condiciones y de que comprende perfectamente los términos que
se utilizan para relacionar los datos y los resultados.
A menudo no se pueden establecer correctamente las condiciones hasta que se analiza más
detalladamente el problema. Sin embargo, es posible tener un conocimiento intuitivo de las
condiciones y más adelante se puede revisar la definición y adaptar la experiencia que se
obtenga en el estudio de las soluciones posibles.

- 65 -
Informática

Tratar de introducir una notación adecuada para los datos y resultados, mediante la cual se
pueden expresar las condiciones en forma más clara y concisa.
Es probable que al tratar de desarrollar una solución, se encuentren fallas en esta definición y
las preguntas se tengan que volver a establecer. Siempre se debe considerar que una
definición preliminar es tentativa. No debe cambiarse sin una razón positiva y hasta entonces
es necesario apegarse estrictamente a ella.
3. Cómo adquirir experiencia
En este caso es muy útil es pensamiento creativo. Se puede enfocar en la siguiente forma:
- Puedo resolver el problema manualmente? Si es así, qué hice? Anótelo.
- Puedo derivar otra forma de resolverlo manualmente, basándose en las soluciones
obtenidas? Escriba el método.
- Estudie los componentes individuales del problema y los componentes de sus soluciones (si
tiene alguna). Qué sabe acerca de cada parte y de sus relaciones con los demás? Hay un
patrón?
- Puede ver el problema desde otro punto de vista y quizás desarrollar un nuevo método de
resolución del problema; estudie otros métodos tantos como sea posible, tratando de
comprender los procesos que intervienen. Después juzgará los méritos relativos de las distintas
técnicas. Esta palabra, “comprender”, implica el trabajo personal con los métodos de solución
de problemas, así como también un conocimiento objetivo. Sea válida la siguiente analogía: el
mecánico que aprende desmontando y armando maquinaria, así como estudiando en libros, es
sin duda más apto para resolver un problema mecánico que otro que únicamente tenga un
conocimiento teórico de la mecánica.
Hay dos aspectos distintos en el trabajo. Las primeras tres preguntas se relacionan con el
trabajo controlado; destruir las cosas y tratar de construirlas. En este caso, apenas se sabe lo
que se debe hacer y es necesario estudiar más a fondo el proceso. La cuarta pregunta se
refiere al otro tipo de trabajo, al no controlado en el cual se buscan asociaciones casuales que
se ajusten a un determinado patrón y conduzcan a una posible solución. En los problemas de
computación el más útil es el trabajo controlado.
Este trabajo controlado siempre debe basarse en la resolución manual del problema, tratando
posteriormente de convertir este proceso en un algoritmo útil. Por supuesto, no es posible
resolver todo el problema en forma manual; si lo fuera, no habría necesidad alguna de elaborar
un programa de computadora. Sin embargo, casi siempre habrá bastante repetición y es
posible aislar y examinar el proceso central.
El refinamiento y la evaluación crítica de los métodos se deben retrasar tanto como sea posible,
a menos que haya una razón para procedes a un estudio más detallado.
Por último, el proceso es personal porque varias decisiones, en realidad el enfoque total del
problema, se basa en la experiencia previa, es posible que en su primer intento usted haya
derivado una solución totalmente distinta.
4. Entiendo el problema? Sé cómo resolverlo?
SI

- 66 -
Informática

Si usted cree que comprende un problema, el siguiente paso es verificar que está en lo cierto.
- He resuelto el problema o uno similar?
- Estudié las condiciones. Se satisfacen todas?
- Estudié las condiciones. Ha supuesto condiciones que no existen?
Cuando se aproxima al éxito, la persona dice: “Entiendo el problema”y procede a desarrollar un
algoritmo, pero a menudo está equivocada. Es necesario comparar la resolución propuesta y
los pasos mediante los cuales se obtuvo con la definición original, para ver si hay discrepancias
entre ellas. Por lo general las fallas se presentan por imponer condiciones incorrectas, pero
también se deben verificar los datos y los resultados esperados.
La habilidad para seleccionar un buen método depende principalmente de la experiencia
previa, pero se puede indicar una guía importante:
- Seleccione el procedimiento más sencillo y claro, el que tenga menos sutilezas.
La eficiencia de un algoritmo (su rapidez de ejecución) es de gran importancia y a menudo se
utiliza como el criterio básico para seleccionar un método. No obstante , es mejor buscar y
desarrollar el algoritmo que sea más eficiente desde el punto de vista del que lo resuelve, es
decir, la solución que se pueda convertir en algoritmo con el mejor esfuerzo. Con frecuencia
esta solución también será muy rápida. Sea la más rápida o no, siempre es más fácil retroceder
y buscar mejores alternativas una vez que se ha obtenido una solución satisfactoria.
Otra ventaja de esta idea es que se evitan con más facilidad las complicaciones innecesarias.
Es común pensar que un problema es más difícil de lo que en realidad es e introducir
complicaciones inútiles en el algoritmo. Al buscar la respuesta más sencilla se podría
simplificar en exceso, pero esto es preferible,; de hecho es una de las principales técnicas de la
heurística el descomponer los problemas en partes más sencillas. Cuando se resuelve un
problemas más sencillo, por lo general es más fácil reconocer el patrón y generalizar el método.
NO
Además de resolver un problema equivocado, se pueden presentar otros obstáculos. Quizás la
definición del problema es demasiada vaga, o es posible que no haya podido resolver
satisfactoriamente en forma manual. Lo más común es que haya una sensación de
insatisfacción, una falta de confianza más no se presentan fallas obvias. Casi siempre se
presentan todas estas dificultades y se deben a que no invierte suficiente esfuerza en las
primeras fases para poder obtener experiencia.
- Qué es lo que impide resolver un problema?
Primero, es esencial revisar con todo cuidado lo que se ha hecho,
comparando el trabajo realizado con la definición del problema. De este modo sería fácil
retroceder y determinar qué cambios son necesarios y, al mismo tiempo, examinar por qué se
introdujo este error, para evitar la misma situación en el futuro. Es obvio que la pregunta: Puedo
resolver el problema manualmente? no se ha contestado adecuadamente, ya que se ha
resuelto un problema distinto al que se propuso. Se requerirá quizás una pregunta adicional en
el método heurístico que abarque el trabajo manual? Sin embargo, lo más común es que la

- 67 -
Informática

dificultad no se localice o se corrija con facilidad. Si no es posible afirmar que se ha resuelto el


problema propuesto, es necesario estudiarlo más a fondo.
- Se puede encontrar un problema del mismo tipo que sea más sencillo?
- Se ha visto con anterioridad el problema en una forma distinta (quizás
en un contexto totalmente diferente)?
- Se conoce un problema relacionado o análogo?
Estas preguntas conducirán a un nuevo problema relacionado con el
original, que quizás sea más fácil de resolver. Cuando se haya resuelto, es de esperar que se
amplíe el panorama en lo que se refiere al trabajo original (quizás hasta se resuelva parte de
éste). Cada problema sucesivo es un subproblema anterior. Cuando se ha definido un nuevo
problema, el siguiente paso consiste en tratar de resolverlo. Después de hacerlo, se considera
de nuevo el problema anterior y otra vez se trata de obtener una solución, y así sucesivamente.
Este es el proceso que se representa en la siguiente figura.

Problema A ¿Se resuelve?

NO

Problema B ¿Se resuelve?

NO

Problema C ¿Se resuelve? SI

¿Se resuelve? SI

¿Se resuelve? SI

- 68 -
Informática

Ahora es posible responder “si” a la pregunta Comprende el problema C?, aunque no entienda
los problemas A y B.

5. Análisis: segmentación y cruz


- Es posible dividir el método de solución propuesto en varios segmentos
lógicos? Si es así, hágalo. Trate cada segmento como un problema distinto.
- Cuál es la cruz del problema que ahora se considera? Escriba una
definición de ella.
La extracción de subproblemas continua al principio del proceso para obtener una solución.
Esta vez se hace deliberadamente, para ver si el problema se puede dividir en varios
segmentos unidos entre sí por una sola trayectoria:

Segmento 1 Segmento 2 Segmento 3


Esta división sólo se puede hacer cuando se está seguro de que los subproblemas son
independientes entre sí. Si se piensa que los segmentos pueden estar unidos por un ciclo o en
alguna otra forma compleja no se deben separar. De nuevo el propósito de esta simplificación
es permitir una mayor concentración de atención en el problema. Si un problema se divide de
esta forma, la primera parte que se debe analizar es la cruz del problema. Por lo regular éste es
el cálculo central.
La cruz de un problema es la etapa del proceso de la cual todo lo demás depende, en el
sentido de que todo será inútil a menos que esta parte se pueda resolver. Puede haber más de
una cruz.
Es obvio que un cálculo es más importante que la entrada o la salida; suministrar datos u
obtener resultados no tiene valor si no se pueden relacionar entre sí. Por lo general en un
cálculo hay una etapa crucial alrededor de la cual gira todo lo demás (a menudo está
literalmente en un ciclo) y esta etapa puede en sí contener un subsegmento. Por lo tanto,
puede haber distintas cruces dentro de las cruces. Cada persona puede tener una idea distinta
de lo que debe llamarse cruz, pero esto no importa, siempre que la persona pueda seleccionar
un punto central en que enfoque su atención y alrededor del cual pueda elaborar una solución.
De nuevo la cruz se puede considerar como un problema separado.

6. Análisis: elaboración del diagrama de flujo


Para trazar el diagrama de flujo se puede responder a las siguientes preguntas:
- Como empieza el algoritmo?
- Con qué segmento?

- 69 -
Informática

- Cómo relaciona los segmentos?


- Qué sucede a continuación?
- Es un proceso repetitivo o un proceso progresivo?
- Suponga que está a la mitad del trabajo. Qué sucede después?
- Cómo termina el algoritmo?

7. Verificación
En este punto se debe verificar la solución propuesta. Una de las mejores técnicas consiste en
tabular el diagrama de flujo, teniendo cuidado de utilizar números distintos a los que se
emplearon antes. Debe procurar estar seguro de que se prueben todas las situaciones
posibles. La tabulación puede ser un proceso largo y tedioso, pero es más fácil si se hace en la
forma modular en que se ha elaborado la solución.
- Se puede tabular por separado cada módulo o segmento del algoritmo?
- A menos que el problema sea trivial, el algoritmo se debe crear
resolviendo una secuencia de subproblemas. Cada uno de los segmentos del trabajo original
se debe verificar y, al hacerlo, también se estarán verificando partes del problema completo.
Por tanto, una vez que se ha tabulado un segmento se puede suponer que es correcto cuando
se tabulan otras partes de la solución que dependen de él, siempre que se utilicen exactamente
como se describió al principio. El proceso de encontrar subproblemas y cruces ayuda en el
proceso de resolución y en la verificación.
- Seleccione conjuntos de datos de prueba que permitan que se utilicen
todas las trayectorias en el diagrama de flujo.
- Es obvio que si una trayectoria en el diagrama de flujo no se ha
verificado no se sabe si funciona o no. La selección de conjuntos de datos de prueba es fácil en
problemas sencillos: observe todas las cajas de decisión (rombos) en el diagrama de flujo que
hacen que se utilicen nuevas trayectorias (o sea, las que no terminan con ciclos) y prepare un
conjunto de datos para cada una de las alternativas que se presenten.
- Además del problema de seleccionar los datos adecuados, en la
tabulación hay dos causas por las cuales se pueden cometer errores. Primero, nunca debe
suponerse que un nombre de variable tiene un valor particular asociada a él, y segundo, cada
valor en la tabla debe corresponder a la acción de una sola caja del diagrama. Para reunir
estos puntos:
- Cuando haga una tabulación se debe comportar como una
computadora, no como un ser humano; en otras palabras, debe carecer de iniciativa. Lo que es
más importante, debe tabular lo que diagrama hace y no lo que usted piensa o espera que
haga.

8. Revisión
- Qué se ha aprendido acerca del problema?
Probablemente el mayor error que se puede cometer es considerar que se

- 70 -
Informática

ha resuelto un problema y olvidarse de él. Pensar que cada problema es independiente, como
una situación que no se relaciona con ninguna otra y considerar el trabajo bien hecho tan
pronto como se encuentra una solución, es perder una de las técnicas más valiosas de la
heurística. Esta técnica es el reconocimiento de patrones.
- Puede observar un patrón (o patrones) en la solución?
- Puede aplicar (o ha aplicado) estos patrones a otros problemas?
- Reconoce que de hecho ha resuelto este problema (o parte de él)
antes?
Aunque es muy satisfactorio descubrir soluciones a los problemas, es un
proceso lento y a menudo frustrante. Se desea ser capaz de resolver los problemas
creativamente cuando se presenta el caso, pero con frecuencia se quiere obtener un resultado
rápido y para hacer esto se debe utilizar la experiencia previa. La forma en que se crean
métodos estereotipados es resolviendo problemas y anotando cuidadosamente las técnicas
que se utilizan. Luego, al buscar patrones y similitudes en las soluciones, se reconocerán las
técnicas que se aplican a las clases de problemas y no solo a un problema (los métodos
patrón).
Gran parte de la educación implica el aprendizaje de utilizar soluciones patrón, pero, a
diferencia de la forma en que las ideas se desarrollan aquí, por lo regular los patrones no los
creamos nosotros, por lo que a menudo no se aprecia su significado real. Aunque se tienen
estos métodos estándares impresos en la memoria a través de los numerosas ejemplos y
ejercicios, el resultado es que con frecuencia somos incapaces de resolver un problema porque
no reconocemos dónde se puede aplicar un patrón que se ha aprendido en un contexto distinto.
Las preguntas anteriores tienen por objeto enfocar la atención en este aspecto y mejorar la
capacidad de utilizar el conocimiento previo.
Aunque el examen de patrones es el aspecto más satisfactorio de la revisión, todavía se deben
considerar dos preguntas:
- ¿Se puede resolver el problema en otra forma?
- ¿Cuál es la eficiencia relativa de los métodos que se han desarrollado?
La primera pregunta es consecuencia de las preguntas: puedo derivar otra
forma de resolverlo manualmente, basándome en las soluciones obtenidas? y puede ver el
problema desde otro punto de vista y quizás desarrollar un nuevo método de resolución? y las
técnicas posibles que antes hubieran sido oscuras ahora pueden ser más claras.
- A menos que haya una buena razón para lo contrario, seleccione el
diagrama de flujo más sencillo. Es decir, escoja la solución que tenga menos cajas en el
diagrama y una estructura modular más sencilla.
- Suponga que, aproximadamente, cada etapa de un diagrama requerirá
del usuario una cantidad igual de tiempo para ejecutarla. Entonces trate de calcular cuántas
operaciones se tendrán que realizar como medida del tiempo que se requiere para llevar a
cabo el trabajo.
Recuerde que cada individuo tiene puntos fuertes y débiles distintos. Lo que para una persona

- 71 -
Informática

es sumamente claro para otra puede ser confuso. Como resultado de ello, cada una tiene que
desarrollar su propia técnica para resolver problemas. Lo que se ha hecho aquí es proporcionar
un conjunto básico de ideas a partir de las cuales se deben elaborar los métodos individuales.

- 72 -
Informática

UNIDAD 4: DATOS Y ESTRUCTURAS DE CONTROL


INTRODUCCIÓN

El algoritmo (o programa) necesita de los datos para obtener los resultados requeridos. Por
ejemplo, un programa que calcula los impuestos de los ingresos personales, necesita entre
otros datos, del monto de los ingresos de las personas y de las tasas de los grupos de
impuestos.
Las dependencias naturales entre los datos, si se usan para estructurarlos, dan por resultado
algoritmos más simples. Por ejemplo, si los grupos de impuestos se acomodaran en una tabla
ordenada manipulada por el programa de cálculo de los impuestos, los impuestos se podrían
calcular muy fácilmente, con los grupos listos para modificarlos si fuera necesario.
Se usan entonces datos y estructuras para representar los objetos del mundo real y las
dependencias entre ellos. Se introducen en este capítulo distintos tipos de datos simples y dos
estructuras esenciales de datos: arreglos y registros.
La composición de datos y la lógica de los algoritmos están relacionados estrechamente.
El uso responsable de las estructuras de datos en la programación produce algoritmos que son
más claros y concisos, y por lo tanto simplifican el programa total.

TIPOS DE DATOS SIMPLES

Los algoritmos y los programas que surgen de ellos, operan sobre los datos. Los datos de
entrada son transformados por el programa, después de las etapas intermedias, en información
o resultados requeridos. En el proceso de solución de problemas, el diseño de la estructura de
los datos es tan importante como el diseño del algoritmo y del programa que sobre éste se
basa.
Sólo se consideran aquí los datos simples (sin estructura). Los datos estructurados se
estudian más adelante.
Los datos, así como las instrucciones de programas, están representados en la memoria de la
computadora por un conjunto de bits.

Dato es la expresión general que describe los objetos con los cuales opera la computadora.
Hay diferencias básicas entre los lenguajes de programación, según los tipos de datos que se
usan, las operaciones permitidas sobre esos datos, y el modo en que pueden organizarse para
formar estructuras más complejas. Los lenguajes de programación proveen un conjunto fijo de
tipos de datos llamados datos simples. Cada tipo de dato define el conjunto de valores que
puede asumir una variable.
Un tipo de dato es una interpretación aplicada a un conjunto de bits que representan un dato
dado. Las operaciones que se pueden aplicar a los datos dependen de su tipo. Los lenguajes

- 73 -
Informática

de programación de alto nivel por lo general proporcionan instrucciones de declaración


(declaraciones) que el programador usa para especificar el tipo de los datos en un programa.
Los tipos de datos simples, también llamados básicos o primitivos, y que son manipulados por
la mayoría de los procesadores, son:
Tipo numérico
Tipo lógico
Tipo carácter

Tipo Numérico
El tipo numérico corresponde al conjunto de los valores numéricos. Estos pueden
representarse en dos formas distintas:
 Tipo numérico entero
 Tipo numérico real
Se denominarán enteros y reales, respectivamente.

Enteros:
El tipo entero consiste de un subconjunto finito de los números enteros y su tamaño puede
variar según la cantidad de valores.
Ejemplos de números enteros:
5 10 -67 +105
Los enteros no tienen parte fraccionaria y por lo general, se representan en la memoria de la
computadora como números de punto fijo, por ejemplo, números cuyo punto decimal está en
una posición fija con respecto a los dígitos del número.
Aunque en matemáticas los enteros son un subconjunto de los números reales, los dos son
tratados de manera diferente en el cálculo aritmético debido a la mayor sencillez con la que se
pueden representar y manejar los enteros. Dado que un entero N, por lo general, ocupa una
palabra simple en la memoria de un modelo de computadora, el rango de enteros es:

N <= | 2n-1 - 1|
donde n es el número de bits de la palabra de una computadora determinada. La potencia n-1
se debe al hecho de que un bit está reservado para la representación del signo.

Con x bits, se pueden especificar 2x diferentes modelos de bits.

Por ejemplo, si x=2, tenemos: 00, 01, 10, 11. Si agregamos un tercer bit, el número de modelos
será el doble, para la mitad de ellos este tercer bit será igual a 0, para el resto igual a 1.
Las operaciones aplicables son las operaciones aritméticas de suma, resta, multiplicación y
división entera. El resultado de la división entera es un entero, ya que se descarta la parte
fraccionaria.

Por ejemplo, si el resultado de una operación aritmética está fuera del rango permisible para la
computadora dada, se dice que ocurre el rebasamiento (overflow) y el resultado se invalida.

- 74 -
Informática

En Pascal se dispone de 5 tipos predeterminados que permiten representar valores enteros.

Tipo Rango Formato


Byte 0, ... , 255 8 bits sin signo
Integer -32768 , ... , 32767 16 bits con signo
Longint -2147483648 , ... , 2147483647 32 bits con signo
Shortint -128 , ... , 127 8 bits con signo
Word 0 , ... , 65535 16 bits sin signo

Reales:
Los datos tipo real son un subconjunto de los números reales.
En las representaciones que se utilicen para la computadora, los números reales siempre
tienen un punto decimal; las fracciones, se almacenan, como números decimales porque,
generalmente, no existe forma de almacenar, numeradores y denominadores por separado. Por
este motivo, la parte decimal de un número real se emplea para representar cualquier parte
fraccionaria. Al contrario de los enteros, los números reales pueden tomar, teóricamente,
cualquier valor de la recta numérica real y pueden también, ser positivos o negativos. Los
siguientes, son ejemplos de números reales:

0.0900 3738.720
-3.7652 -55.321
-8.9100 2.000

En algunas aplicaciones científicas se requiere una representación especial para manejar


números muy grandes, como la medida correspondiente a la masa del sol, o muy pequeños,
como el espesor de una película muy delgada. La computadora sólo puede representar un
número fijo de dígitos, que varía de máquina a máquina, según la longitud de la palabra. Si
consideramos una máquina que permite almacenar ocho dígitos, provoca problemas para
almacenar números como, por ejemplo: 3.863213682 ó 0.00000002857, porque, ninguno de
ellos puede representarse con sólo ocho dígitos. Los científicos han resuelto este problema
tradicional con una notación especial, en la cual, sólo se usa un cierto número de dígitos
seguidos por una potencia de 10 adecuada. Por ejemplo, el número 0.00000002857 puede
escribirse en la forma:

0.2857 * 10-7
Aunque este valor no es el mismo, se aproxima al valor exacto. Los números representados en
esta forma se denominan números con punto flotante. La regla de conversión es la siguiente:
 Se decide cuántos dígitos de precisión se desea tener (de ser
necesario, el último dígito se redondea).
 Se ajusta la magnitud del número adecuadamente; por cada lugar
decimal que se mueva hacia la izquierda, se suma uno, a la potencia de 10 que se utiliza como
multiplicador, por cada lugar que se mueva hacia la derecha, se resta uno a dicha potencia.

Ejemplo:

- 75 -
Informática

Supóngase que se desea representar el número 3.863213682 con ocho dígitos de precisión.

3. 8 6 3 2 1 3 6 8 2

dígitos que dígito que debe redondearse


se retienen

Para realizar el redondeo se procede de la siguiente manera:


Si el primer dígito ignorado, en este caso el 8, es menor que el 5, se quitan directamente los
dígitos sobrantes: en cambio, si es mayor o igual a 5, se le debe sumar 1 al último dígito que se
retiene. En el ejemplo dado, se obtiene:
3.8 6 3 2 1 3 7
Este es el principio general para la representación de números muy grandes. En la práctica, se
realiza un paso adicional para que el número pueda representarse siempre de la misma forma.
Se supone que en la representación normalizada, el punto decimal, se encuentra
inmediatamente antes del primer dígito significativo. En el ejemplo, esto significa que la
representación final, con ocho dígitos de precisión, es:
0 . 3 8 6 3 2 1 3 7 * 10
En forma similar, se procede para convertir números muy pequeños, por ejemplo:
0.00000002857
se representa, en forma normalizada, con ocho dígitos de precisión, como:

0.28570000 * 10-7
La computadora almacena números reales en forma similar a la descripta. Esta representación
tiene dos componentes: la parte fraccionaria o mantisa, y la parte exponencial, cada una de
las cuales tiene un signo asociado.

En resumen, los números reales se almacenan en la memoria de la computadora usando la


representación de punto flotante, la cual es una versión de la llamada notación científica.
Esta representación consta de dos partes: la mantisa (o fracción decimal), que da los dígitos
contenidos en el número; el exponente (o característica), que determina el lugar del punto
decimal con respecto a estos dígitos.

Ejemplos:
En el sistema decimal:

123000 = 0.123 * 106


donde 0.123 es la mantisa y 6 el exponente;

0.00151 = 0.151 * 10-2


donde 0.151 es la mantisa y -2 el exponente.
En ambos casos la raíz ( o base) es 10.
En general, en esta representación, un número X se representa como:

- 76 -
Informática

X = M * RE
Donde M es la mantisa, R la raíz o base y E el exponente.

Puesto que la base en una representación de punto flotante está fija para una computadora

dada, basta almacenar la mantisa M y el exponente E para describir el número X por completo.

Un exponente decimal puede escribirse en cualesquiera de las siguientes formas:

E+n

E + nn

E + nn

E+n

Donde "n" o "nn" es una constante entera de uno o dos dígitos. El exponente decimal se

escribe inmediatamente después de una constante real o una constante entera, y representa

una potencia de diez, por la cual la constante precedente debe ser multiplicada.

Para formar la representación de un número único y para retener el número máximo de dígitos

en la mantisa, por lo general, se lleva a cabo la normalización.

Esto significa que en la representación de la mantisa, el bit más significativo es uno diferente a

0. La normalización se lleva a cabo cambiando el punto decimal, y por lo tanto, cambiando el

valor del exponente. Por lo tanto, para una base dada, la precisión de un número está

determinada por el número de dígitos en su representación.

Las operaciones aplicables a los números reales son, entre otros, la suma, la resta, la

multiplicación, la división.

En una representación de números reales en cualquier computadora, sólo se puede

representar un conjunto finito de números. Por lo tanto, un número infinito de números reales

(de alta precisión) existe entre números reales cualesquiera representadas en la memoria de

una computadora. En consecuencia, los resultados de cualquier operación se deben considerar

sólo aproximadamente, considerando los errores que pueden presentarse.

Reales de Doble Precisión:


Los números de doble precisión están disponibles como un tipo de dato, en algunos lenguajes

y constituyen un caso especial de los números reales.

- 77 -
Informática

Se requieren dos palabras para almacenar un número de doble precisión en el modo de punto

flotante. Generalmente, la segunda palabra contiene a los bits menos significativos de un

exponente extendido. Esto aumenta la precisión del número sin incrementar su rango.

Una constante de doble precisión, en determinado lenguaje, se escribe con una constante real

o una constante entera, seguida por una de las formas:

D+n

D + nn

D nn

D n

Las cuales identifican un exponente de doble precisión. Este exponente es interpolado de la

misma manera que el exponente decimal que aparece en una constante real.

El lenguaje Pascal cuenta con 5 tipos de números reales.

Tipo Rango Cifras Formato


Real 2.9* 10-39 , ... , 1.7* 1038 11-12 6
Single 1.5* 10 -45 , ... , 3.4* 1038 7-8 4
Double 5.0* 10-324 , ... , 1.7* 10 308 15-16 8
Extended 1.9* 10-4931 , ... , 1.1 * 10 4932 19-20 10
Comp -2 63 , ... , + 2 63 -1 19-20 8

Complejos:
Se representan en forma de par ordenado de números reales (los número reales son datos
simples) almacenándose en memoria en dos palabras. Por ello, se considera al número
complejo como una estructura simple de datos.
Cuando están disponibles como tipos de datos, los números complejos por lo general se
representan en memoria principal en dos palabras que contienen, separadamente, las
componentes real e imaginaria del número. Cada componente es un número real, representado
en el modo de punto flotante.

Tipo Lógico
El tipo lógico, también llamado tipo booleano, es el conjunto de los dos valores lógicos
verdadero y falso. Un dato lógico puede tomar sólo uno de dos valores: verdadero (true) o
falso (false). Por tanto, un dato lógico podría ocupar un bit simple, sin embargo, en la mayoría
de los lenguajes, un dato lógico simple se almacena en una palabra.

- 78 -
Informática

Básicamente los datos de este tipo se usan para representar las condiciones que refuerzan las
decisiones para el flujo de control, aunque se pueden utilizar para representar operaciones de
tipo lógico con valores binarios.

- 79 -
Informática

Tipo Caracter
El tipo caracter es el conjunto, finito y ordenado, de caracteres que la computadora
reconoce. Forman parte de este conjunto: un caracter alfabético o dígito numérico, llamados
conjuntamente caracteres alfanuméricos, o un símbolo especial (tales como $, /, etc.). El
dato caracter corresponde al char en el lenguaje Pascal.

Este conjunto de caracteres por lo general incluye:


26 letras mayúsculas latinas.
26 letras minúsculas latinas.
10 dígitos arábigos.
Caracteres imprimibles especiales (signos aritméticos, de puntuación, etc., tales como: *, +, -,
(, ), :, ., $, <, >, ").
El caracter espacio en blanco.
Caracteres de control (no imprimibles), como el retorno de carro, la alimentación de línea, etc.
Para representar el conjunto de caracteres de una computadora, se usan los códigos binarios.
Dos de los códigos más frecuentemente usados son:
ASCII (Código estándar americano para intercambio de información). Este es un código de 7
bits; por lo tanto sólo se pueden representar 128 caracteres. También existe y se utiliza
generalmente una variación del código, de 8 bits, que representa 256 caracteres.

EBCDIC (Código de intercambio decimal codificado binario ampliado). Este código que ha
ganado gran aceptación, fue desarrollado por IBM. Como un código de 8 bits, hace posible la
representación de 256 caracteres.

Cadena de caracteres (Strings)


Los caracteres son componentes de las cadenas de caracteres (string).
Una cadena de caracteres es una secuencia finita y no vacía de caracteres.
Ejemplos de cadenas de caracteres, donde los caracteres están encerrados entre apóstrofes
o comillas:
" lista " " $ 123.52 " " Juan Perez "
La longitud de una cadena de caracteres se define como la cantidad de caracteres delimitados
por los apóstrofes incluyendo los blancos.

Las longitudes de las cadenas anteriores son 5, 8 y 10, respectivamente. En Pascal, un dato de
tipo cadena (o string) tiene como longitud máxima de 256 caracteres. Por último, se destaca
que las cadenas de caracteres no forman parte del conjunto de datos simples; son datos
estructurados.

- 80 -
Informática

ESTRUCTURAS BÁSICAS DE DATOS

Una estructura de datos es un conjunto de datos reunidos bajo un único nombre


colectivo.

Las diferentes estructuras se diferencian por la forma en que sus componentes están
relacionados y por el tipo de las mismas. Todos los datos estructurados deben, en última
instancia, ser construidos a partir de los datos simples. Por ejemplo, una estructura conocida y
muy simple (ya mencionada) es el número complejo, que toma la forma de un par ordenado de
números reales (los números reales son del tipo simple).
Otra estructura un poco más complicada, pero muy común, es el arreglo.

En otras palabras, una estructura de datos es un conjunto organizado de datos simples.


En consecuencia, están caracterizados por:

- El tipo de datos de que constan.

- Las relaciones entre los datos.

Los datos simples se pueden organizar en estructuras de datos que contengan información

sobre las relaciones existentes entre los datos incluidos éstos. Dos estructuras básicas de

datos son:

- Arreglo: estructura homogénea que consta de elementos del mismo tipo.

- Registro: estructura heterogénea que puede incluir datos de varios tipos.

Las estructuras de datos de orden superior, se pueden formar a partir de registros, incluyendo

listas lineales (en particular pilas y colas), árboles y gráficas.

Ciertas estructuras de datos (como los arreglos) están disponibles directamente al programador

en la mayoría de los lenguajes de programación de alto nivel; otras se pueden construir usando

variables simples y las estructuras disponibles.

Arreglos

Un arreglo es un conjunto organizado de datos del mismo tipo. Cada componente de un arreglo

se denota, explícitamente, y es accedida, directamente, mencionando el nombre del arreglo

seguido de una expresión encerrada entre paréntesis, a la que se denomina índice del arreglo.

- 81 -
Informática

El número o cantidad de componentes se indica cuando se define el arreglo y a éste número se

lo llama dimensión del arreglo. A un arreglo lineal se lo denomina arreglo unidimensional o

vector.

El valor del límite inferior del índice de un arreglo puede tomar distintos valores dependiendo

del lenguaje de programación que se use. Existen diferentes tipos de arreglos: numéricos y tipo

carácter.

Un arreglo es un conjunto de datos simples del mismo tipo a los que se hacen referencia por

su nombre-colectivo único (el nombre del arreglo), y por su(s) índice(s), que identifica(n) sus

posiciones dentro del arreglo.

Los elementos de un arreglo lineal se almacenan en direcciones consecutivas de memoria, es

decir, un elemento al lado del otro. Si cada elemento de un arreglo de N elementos, ocupa S

posiciones de memoria, entonces, el arreglo, ocupa N x S posiciones consecutivas de memoria.

Además, existen arreglos bidimensionales que en forma similar a los arreglos lineales, tienen

un único nombre pero, para designar a sus elementos individuales es necesario utilizar dos

índices: el primero, para indicar la fila y el segundo, para indicar la columna. El nombre del

arreglo, seguido de los dos índices separados por una coma y encerrados entre paréntesis,

designa a un elemento del arreglo. Si, por ejemplo, el nombre del arreglo es PESO, entonces

PESO(3,4), se refiere al elemento que se encuentra en la intersección de la tercera fila y cuarta

columna. De la misma manera que para arreglos lineales, los índices, pueden ser expresiones

aritméticas enteras.

Los arreglos bidimensionales reciben el nombre, con frecuencia, de matriz. El número total de

elementos del arreglo es el producto de la cantidad total de filas por la cantidad de columnas.

La forma de definir un arreglo bidimensional es: indicando el nombre, la cantidad de filas y la

cantidad de columnas. Una matriz de N filas y M columnas se dice que tiene dimensión N x M.

En forma similar a las definiciones de arreglo lineal y bidimensional, se puede definir un arreglo

multidimensional como un conjunto de variables del mismo tipo, reunidos bajo un único

nombre colectivo. Para designar a un elemento individual del arreglo, se escribe el nombre del

mismo y, encerrados entre paréntesis y separados por comas, tres o más índices. La dimensión

- 82 -
Informática

de un arreglo multidimensional está dada por el producto de la cantidad total de elementos,

para cada índice.

Registros

Un registro es un conjunto organizado de datos que pueden ser de distinto tipo.

Un registro puede consistir de datos simples de varios tipos así como de cadenas de caracteres

o de datos estructurados (estructura jerárquica). Estos datos se integran en una entidad simple

ya que describen atributos de los objetos del mundo real descripto por el registro. Por lo

general, un registro dado se selecciona de las estructuras de orden superior por el valor de uno

de sus campos.

A diferencia del arreglo, no se exige que cada componente tenga el mismo tipo de dato, y los

campos son accedidos por el nombre del campo respectivo y no por el índice.

Por lo general los registros están organizados en archivos que son mantenidos en la memoria

de almacenamiento secundario y cuyas partes se introducen en la memoria principal cuando es

necesario. Los archivos son la organización de datos básica en el proceso de información.

Las variables simples, los registros y los arreglos, en ocasiones se pueden organizar en

estructuras de orden superior. Estas estructuras a menudo son dinámicas, lo que significa que

durante la ejecución del programa que las está usando, algunos de sus componentes pueden

ser eliminados y otros incorporados; las relaciones entre los componentes también pueden

cambiar.

Las estructuras se usan para organizar a los datos que se mantienen en la memoria principal

así como para mantener a los datos que predominan en la memoria secundaria. Los conjuntos

de datos residentes en las memorias secundarias o auxiliares están organizados en entidades

auto contenidas llamadas archivos y que a menudo se usan con varias estructuras de orden

superior.

ELEMENTOS BÁSICOS

Constantes

- 83 -
Informática

Una constante es un dato que permanece invariable desde el principio hasta el final de la

ejecución de un algoritmo o programa y está, por lo tanto, especificada por su valor. Es decir,

es un dato cuyo valor no cambia.

Una constante es un valor que se define a sí mismo, tanto en identidad como en tipo de dato,

por la manera en que se escribe. Una vez establecido no puede ser redefinido. O sea el

número 1 tiene el valor 1, el caracter "A" se mantiene como el caracter "A", el verdadero no

puede ser falso, etc.

Variables
Una variable es un dato cuyo valor puede cambiar durante la ejecución de un programa y
posee además los siguientes atributos:
- Un nombre que lo designa.
- Un tipo que describe el uso de la variable.

Cuando se define una variable, se debe precisar su nombre y su tipo.


Una variable se representa por un nombre simbólico. El programa usa este nombre para
referirse y/o definir el dato. Una variable puede ser usada para almacenar resultados de
cálculos, recibir datos de entrada, transferir datos del programa principal a un subprograma,
etc.
Las constantes y las variables pueden ser de varios tipos: por lo que podemos tener una
constante lógica, o una variable real, etc. Una variable cuyo valor es una cadena de caracteres
se denomina variable cadena o variable hilera. Una variable de tipo caracter sólo puede tomar
valores de tipo caracter, y asimismo, una variable de tipo numérico sólo puede tomar valores de
tipo numérico.
La referencia a un valor de variable se puede hacer solamente por medio de un nombre
simbólico. El valor de la variable es el contenido actualizado de la posición así llamada.
Los nombres de las variables son designados por el programador conforme a las convenciones
de un lenguaje de programación dado.
Existen algunas reglas simples que rigen la denominación de las variables, las cuales difieren
ligeramente, dependiendo del lenguaje de programación que se utilice.
En general se exigirá que la variable tenga un nombre que comience con una letra; después de
este primer caracter, los siguientes, pueden seleccionarse de un conjunto de caracteres
especiales. Los espacios no se permiten dentro de un nombre de variable.
Ejemplos:
A20 ANCHO SUM J

Los nombres elegidos deben decir sobre el propósito para el cual se emplean las variables. El
que describe el algoritmo y/o programa para la resolución de un programa, es quien elige los

- 84 -
Informática

nombres de las variables. Nombres bien elegidos, no sólo hacen que los algoritmos y/o
programas sean más fáciles de leer y de entender, sino también, de modificar.

Arreglos
Como ya se expresó, un arreglo es un conjunto de datos del mismo tipo que son referidos
colectivamente por un único nombre.
Los arreglos además de constituir una estructura básica de datos, son considerados como un
elemento de fundamental importancia dentro del estudio de los lenguajes de programación.
Como ya se vio, cada elemento de un arreglo de un tipo dado tiene dos características: su
posición dentro del arreglo según lo determina(n) su(s) índice(s) y su valor.

Expresiones
Una computadora debe ser capaz de manipular los elementos básicos de un lenguaje de
programación determinado. Es decir, debe ser capaz de calcular expresiones como:

2+3, a > b, 3.2 - (5.0 + 3.1).

Una expresión describe un cálculo a efectuar cuyo resultado es un único valor. Una expresión
consta de elementos u operandos y operadores.

Expresiones simples y expresiones compuestas


Una expresión simple está compuesta de un elemento simple, como una constante, una
variable o un elemento de un arreglo. Una expresión compuesta, consta de dos o más
elementos combinados con uno o más operadores que describen el proceso a llevarse a cabo
sobre los datos suministrados por los elementos.
Las expresiones pueden ser de tipo numérico o de tipo caracter.
Una expresión numérica está formada por una variable o por una constante numérica o por
un conjunto de variables y constantes separadas por operadores aritméticos y funciones
numéricas, para producir un sólo valor numérico. Las expresiones numéricas son evaluadas
por diferentes sentencias de los lenguajes de programación y lo más común es usarlas en
sentencias de asignación aritméticas.Una expresión caracter o alfanumérica está compuesta
por operandos alfanuméricos y operadores alfanuméricos (concatenación, funciones). El
resultado de una expresión caracter, es de tipo caracter o cadena.
Una operación básica con cadenas de caracteres consiste en tomar dos cadenas y reunirlas en
una sola. Esta operación se denomina concatenación. Se indica en forma general al operador
de concatenación, con el símbolo "+".
Por ejemplo, si se tienen dos cadenas de caracteres: "COMPU" y "TACION", el resultado de la
operación:
"COMPU" + "TACION" es "COMPUTACION"
La asociatividad es una propiedad de las cadenas respecto de la concatenación.

- 85 -
Informática

Por ejemplo,
"CIENCIAS" + ( "DE LA " + "COMPUTACIÓN" )
es lo mismo que:
( "CIENCIAS" + "DE LA " ) + "COMPUTACION"
es igual a:
"CIENCIAS" + " DE LA " + " COMPUTACIÓN"
También es posible concatenar variables del tipo cadena. Si X, Y y Z son tres variables tipo
cadena, es válido:

X+(Y+Z)=(X+Y)+Z=X+Y+Z
Las expresiones, pueden también clasificarse como:
- Expresiones aritméticas.
- Expresiones relacionales.
- Expresiones lógicas.

Cada expresión, sin considerar el tipo, da un valor simple, ya sea aritmético o lógico. El
resultado de una expresión aritmética es de tipo numérico, el de una expresión relacional y el
de una expresión lógica, es de tipo lógico.

- 86 -
Informática

Expresiones aritméticas

Las expresiones aritméticas están formadas por elementos u operandos aritméticos y


operadores aritméticos; no se permiten otros tipos. La evaluación de tal expresión da un valor
aritmético o numérico.

Elementos aritméticos
Un elemento aritmético puede ser:
 Una constante de tipo numérica.
 Una variable de tipo numérica.
 Un elemento de un arreglo de tipo numérica.
 Una expresión aritmética simple o compuesta encerrada entre
paréntesis.
 Una referencia de función de tipo numérica.

Operadores aritméticos

Los operadores aritméticos definen los procesos de cálculo usados para evaluar una
expresión aritmética. Estos operadores y las funciones que representan son:
Operadores Función
^ Potenciación
* Multiplicación
/ División
+ Adiución

- Sustracción

Los operadores descriptos son llamados operadores binarios, porque cada uno es usado con
dos elementos aritméticos.
Los símbolos + y - pueden escribirse precediendo inmediatamente a cualquier elemento para
denotar valor positivo o negativo y se llaman operadores unitarios cuando están usados de
esta manera.

No pueden aparecer dos operadores consecutivos. Cuando un elemento signado sigue a un


operador binario, el elemento y su signo menos o más deben estar separados del operador
binario por medio de paréntesis, para obedecer esta regla. Por ejemplo: la expresión "Rho
menos Epsilon negativa" se escribe así:

RHO - ( - EPSILON )
Evaluación de Expresiones Aritméticas

- 87 -
Informática

Se evalúa una expresión aritmética mediante el programa traductor de un lenguaje de


programación dado en una cierta secuencia basada en un orden de precedencia asignado a los
operadores individuales. El rango de los operadores y el orden en que son evaluados
dependen de la siguiente jerarquía de operadores.

Jerarquía de los Operadores


Operador Orden de Evaluacion
^ 1º
*,/ 2º

+,- 3º

Reglas:
- Cuando dos o más operadores de igual precedencia aparecen en una
expresión, son evaluados de izquierda a derecha.
- La jerarquía se puede alterar mediante el uso de paréntesis.
- Los paréntesis anidados se evalúan desde adentro hacia afuera y
los secuenciales de izquierda a derecha.
-Una expresión encerrada entre paréntesis en el contexto de una expresión
aritmética compuesta, se evalúa primero; es entonces interpretada como un elemento simple
de evaluación.

Aritmética del modo mixto


Cada elemento de una expresión aritmética tiene su propio tipo de datos, ya sea implícitamente
o por una declaración explícita. Si todos los elementos en una expresión son de un mismo tipo,
el valor resultante es del mismo tipo también.
En la aritmética del modo mixto, en una expresión se pueden mezclar tipos diferentes de
valores numéricos. En particular, las constantes y variables enteras y reales se pueden usar
juntas. Esto significa que el número de conversiones se realiza cuando es necesario, del modo
entero al real y viceversa. Estas conversiones se llevan a cabo de manera automática, por
ejemplo, a través del software de base de la computadora como los traductores.
La conversión del modo real al entero se puede llevar a cabo, generalmente, de dos maneras:
 Por truncamiento, por ejemplo, eliminando la parte fraccionaria del número real.
 Por redondeo al valor entero más próximo.
El redondeo se puede expresar algorítmicamente como sigue:
SI X > 0 ENTONCES
X = X + 0.5 : TRUNQUE X
SINO
X = X - 0.5 : TRUNQUE X
FIN SI

- 88 -
Informática

Los programadores deben tener precaución cuando usen la aritmética de modo mixto;
deben desarrollar la conversión por sí mismos o dejar que se haga automáticamente.
Si se mezclan los modos, la evaluación de la expresión y el modo resultante dependen de los
niveles de status asignados a los distintos tipos de datos de la expresión.

Status de Tipos de Datos


Cuando los elementos en una expresión son de distintos tipos, el modo del resultado calculado
es el mismo que el del elemento de mayor rango o status en la expresión.
Enteros (baja)
Real
Doble precisión
Complejo (alta)
Lista de Recomendaciones para lograr mayor precisión
 Cuando se van a sumar y/o restar números, trabajar siempre con
los números mas pequeños primero.
 De ser posible evitar la sustracción de dos números
aproximadamente iguales.
 Una expresión del tipo a * ( b - c ) puede reescribirse en la forma a*
b - a * c y ( a - c ) / c puede reescribirse como a / c - b / c. Si hay números aproximadamente
iguales en el paréntesis, ejecutar la resta antes que la multiplicación. Esto evitarán completar el
problema con errores de redondeo adicionales.
 Cuando no se aplica ninguna de las reglas anteriores, minimizar el
número de operaciones aritméticas.
 Otras recomendaciones se dan a continuación:
 La multiplicación insume menor cantidad de tiempo que la división.
Por ejemplo, conviene multiplicar por 0.5 que dividir por 2.
 Generalmente hasta la tercera potencia, es más eficiente multiplicar
que exponenciar, por ejemplo, la expresión:
 5. * 5. * 5. es evaluada más rápidamente que la expresión: ^ 3
 No debe utilizarse una estructura de selección o de iteración: DO
WHILE para igualar exactamente dos números reales, al menos uno de ellos debe obtenerse
como resultado de una operación aritmética. En particular, no se debe hacer prueba de
igualdad de 0.0 de tal número.
 Evitar las relaciones de prueba tales como

X / Y < DELTA
donde DELTA es muy pequeño. En su lugar, exprese esto como:
X < Y * DELTA

- 89 -
Informática

Dos fallas posibles en la aritmética real son:


Underflow: generación de un valor inferior al mínimo aceptable. En una operación aritmética,
generación de una cantidad demasiado pequeña para que pueda ser almacenada por el
registro. Esto ocurre al concatenar dos números no iguales aproximados pero de signos
opuestos como resultado de una adición (llamado también pérdida del significado).
Overflow: en una operación aritmética, generación de una cantidad que rebasa la capacidad
del registro; estado en que se rebasa la capacidad de representación de números. Se presenta
al utilizar un divisor pequeño en la operación de división.

EXPRESIONES RELACIONALES

Una expresión relacional está formada por dos (2) expresiones aritméticas o alfanuméricas
combinadas por un operador relacional, formando condiciones que pueden ser satisfechas o
no.
Los operadores relacionales son los siguientes y tienen la misma jerarquía:

Operadores Relación comprobada


= Igualdad
<> o >< Desigualdad

< Menor que


> Mayor que

<= o =< Menor igual a


>= o => Mayor igual a

Los operadores de relación se utilizan para comparar dos valores.


Estos valores pueden ser ambos numéricos o alfanuméricos. El resultado de la operación
puede ser "verdadero" o "falso".
Cuando se combinan operadores aritméticos y de relación en una expresión, siempre se
realizan primero los cálculos aritméticos, pero el resultado es lógico, es decir "verdadero" o
"falso".
Las cadenas de caracteres utilizan operadores relacionales para efectuar comparaciones
inspeccionando el código ASCII de los caracteres de una cadena.
Ejemplo:
A > B
Si el valor de A es mayor que el valor de B la expresión resultante es verdadera, si A no es
mayor que B la expresión es falsa.

- 90 -
Informática

EXPRESIONES LÓGICAS

Una expresión lógica puede tener o un valor verdadero o un valor falso. Un expresión lógica
está formada por elementos lógicos (constantes lógicas, variables lógicas, expresiones
relacionales y funciones lógicas) combinadas por operadores lógicos.
Los operadores lógicos son:
No  complemento lógico o negación
Y (and) ^ Conjunción

O (or) v Disjunción-inclusiva
Oe (xor) v Disjunción-exclusiva

Un operador lógico toma una combinación de valores verdaderos-falsos y devuelve un


resultado verdadero o falso.
El orden de precedencia es en el que se encuentran dispuestos los operadores lógicos de la
tabla anterior. Es decir, primero la negación, luego la conjunción, etc. La evaluación de
expresiones lógicas, siguen las leyes lógicas (álgebra booleana). Para evaluar expresiones
lógicas se recurre a las tablas de verdad.
Si se combinan expresiones aritméticas, relacionales y lógicas se evalúan primero las
aritméticas, luego las relacionales y finalmente las lógicas pero el resultado es lógico.
Orden de precedencia de los operadores
Si una expresión contiene operadores combinados, la jerarquía es la siguiente:
Operadores Precedencia
Referencia de función 1

( ) 2

^ 3
- (signo) 4
* / 5
+ - (concatenación) 6
Operadores de relación 7
No 8
Y (and) 9
O (or) 10
OE (xor) 11

Los operadores de igual jerarquía se evalúan de izquierda a derecha.


Las referencias de funciones y los paréntesis afectan dicha jerarquía. Las funciones se evalúan
primero y luego los elementos encerrados entre paréntesis y luego los operadores aritméticos,
relacionales y lógicos en ese orden. Dentro de los paréntesis se mantiene el orden normal de
evaluación de los operadores.
Funciones

- 91 -
Informática

Las funciones pueden ser:


- Intrínsecas o de biblioteca: provistas por el lenguaje.
- Extrínsecas o externas: creadas por el programador.
Por ejemplo, SQR(A) es una función de biblioteca que calcula la raíz cuadrada de la expresión
A.

Estructuras básicas de control

Las estructuras básicas necesarias para organizar el flujo de control, en un algoritmo, diagrama
de flujo o en un programa, son las siguientes:

a. Estructura o lógica secuencial


b. Estructura o lógica de selección
c. Estructura o lógica de iteración o repetición

Lógica secuencial
Las instrucciones se ejecutan de arriba hacia abajo sin bifurcaciones.

Proceso 1

Proceso 2

Proceso 3
Lógica de selección
Emplea varias estructuras alternativas (condicionales) que pueden ser de tres tipos: simple,
doble o múltiple.
 Alternativa simple
El cumplimiento de la condición implica la ruptura de la secuencia y la ejecución de una
determinada acción.

No Condición Sí

Proceso A

 Alternativa doble

- 92 -
Informática

Se usa una estructura alternativa doble para decisiones con dos alternativas diferentes. Si la
condición se cumple, entonces se ejecuta el proceso A, caso contrario se ejecuta el proceso B.

No Sí
Condición

Proceso B Proceso A

 Alternativa múltiple
Las decisiones que involucren más de dos alternativas pueden ser manejadas por estructuras
de decisión anidadas.

No Sí
Condición 1

Proceso C No Sí
Condición 2

Proceso B Proceso A

Case
Es una estructura que permite asociar un conjunto de condiciones a un conjunto de acciones
que se excluyen mutuamente. Esta estructura permite una desviación del flujo de control hacia
múltiples procesos en función del resultado de la evaluación de una expresión o indicador. Así,
si el resultado toma el valor 1 se realiza la Acción 1, si toma el valor 2 la Acción 2, si toma el
valor n la Acción n, y si no se obtiene ninguno de los valores 1 a n, se realiza la Acción n+1.

Expresión

Acción 1 Acción 2 ... Acción n

Acción n+1

Lógica de interacción

- 93 -
Informática

Esta lógica se refiere a las estructuras repetitivas o iterativas en las que las acciones se
ejecutan un número determinado de veces y dependen de un valor predefinido o del
cumplimiento de una determinada condición. Las estructuras más usuales son:
 Estructura DO
Permite disponer de un conjunto de acciones que se ejecuten, invariablemente, un número
determinado de veces, donde el número es conocido de antemano.

Para un incremento P positivo Para un incremento P negativo

V=VI
V>VF Sí V=VI Sí
V<VF
V=V+P V=V+P

No No

Acciones Acciones

Donde:
V es una variable de tipo numérico llamada variable de control, VI, VF y P son variables de tipo
numérico, constantes de tipo numérico o expresiones aritméticas. VI recibe el nombre de valor
inicial, VF recibe el nombre valor final y P es el paso o incremento. El valor de P puede ser
positivo o negativo, pero no puede ser cero.

 Estructura DO WHILE
Determina la repetición de un grupo de instrucciones mientras la condición se cumpla (la
condición se prueba al principio del ciclo). El proceso repetitivo puede o no ejecutarse.

Condición Sí

No Acciones

- 94 -
Informática

 Estructura DO UNTIL
Las iteraciones se realizan hasta que se cumple la condición que se prueba al final de ciclo. El
ciclo DO UNTIL siempre se ejecuta por lo menos una vez, mientras que el DO WHILE, como se
dijo anteriormente puede que no se ejecute nunca.

Acciones

No
Condición

La estructura secuencial, la de selección o decisión y la iterativa DO WHILE constituyen las


estructuras fundamentales de la organización necesaria para respaldar un proceso sistemático
de programación denominado programación estructurada. Las estructuras adicionales tales
como DO UNTIL, y la de selección múltiple se pueden emplear para simplificar este proceso.
Algunas de estas estructuras están incluidas explícitamente en ciertos lenguajes de
programación, otras se pueden construir de las instrucciones disponibles.
Estas construcciones producen programas organizados claramente que son fáciles de escribir,
leer y modificar.

Estructuras suficientes, necesarias y adicionales

Existen tres construcciones de control suficientes para controlar la secuencia de ejecución de


cualquier programa:

a Lógica Secuencial
b Lógica de Selección
c Lógica de Iteración: DO WHILE
La sencillez estructural de un algoritmo o programa construido con el uso exclusivo de estas
estructuras de control se debe a la propiedad de que sus diagramas de flujo tienen una única
línea de flujo de entrada y de salida.

Además de las instrucciones que controlan el flujo del programa, son necesarias las siguientes
instrucciones de manejo de datos:

- 95 -
Informática

a Entrada - Salida
b Asignación
c Declaraciones ( no ejecutables)
Para explicar la lógica del programa y el significado de los datos, se deben usar los
comentarios.
Una construcción muy importante de los lenguajes de alto nivel es la llamada a subprogramas.
Para la conveniencia del programador, se ofrecen muchas instrucciones adicionales en los
lenguajes de programación de alto nivel. Entre las estructuras de control adicionales más
importantes se encuentran:
a Estructura de iteración: DO
UNTIL
b Estructura de iteración: DO
c Estructura CASE

Pseudocódigos

Pseudocódigo es una técnica para expresar en lenguaje natural la lógica de un programa, es


decir, su flujo de control. El pseudocódigo no es un lenguaje de programación sino un modo de
plantear un proceso de forma que su traducción a un lenguaje de alto nivel sea sencillo para un
programador.
Las estructuras básicas necesarias para organizar el flujo de control se desarrollaron en
apartados anteriores. Éstas son:

a. Estructura o lógica secuencial


b. Estructura o lógica de selección
c. Estructura o lógica de iteración o repetición

Las mencionadas estructuras se expresan en pseudocódigo de la siguiente manera:

- 96 -
Informática

a) Lógica Secuencial

Diagrama de Flujo Pseudocódigo

...
...
Proceso 1
Proceso 2
Proceso 1
.
.
.
Proceso 2
Proceso N
...
Proceso 3 ...

b. Lógica de Selección

 Alternativa Simple

Diagrama de Flujo Pseudocódigo

...
IF condición
No Sí THEN Acción1
Condición
Acción2
Proceso A ...........
Acción N
END IF
...

- 97 -
Informática

 Alternativa Doble

Diagrama de Flujo Pseudocódigo

...
IF condición
THEN Acción A1
Acción A2
No Sí
Condición ...........
Acción AN
Proceso A ELSE Acción B1
Proceso B
Acción B2
................
Acción BN
END IF
...

 Alternativa Múltiple

Diagrama de Flujo Pseudocódigo


...
IF condición 1
THEN IF condición 2
THEN Acción A1
No Sí Acción A2
Condición 1
...........
Acción AN
Proceso C No Sí ELSE Acción B1
Condición 2 Acción B2
................
Proceso B Proceso A Acción BN
END IF
ELSE Acción C1
Acción C2
...............
Acción CN
END IF
...

- 98 -
Informática

 Case

Diagrama de Flujo Pseudocódigo

...
CASE Expresión OF

Expresión Valor 1: Acción 1


Valor 2: Acción 2
..........................
Acción 1 Acción 2 ... Acción n Valor N: Acción N
[Otro: Acción N+1]

Acción n+1 END CASE


...

c. Lógica de Iteración
 Estructura DO

Diagrama de Flujo Pseudocódigo


...
DO V = VI, VF, P
V=VI Sí
V>VF
V=V+P Acción 1
Acción 2
No .............
Acción N
Acciones
END DO
...

- 99 -
Informática

 Estructura DO WHILE

Diagrama de Flujo Pseudocódigo

...
DO WHILE Condición

Acción 1
Condición Sí
Acción 2
.............
Acción N
No Acciones
END DO
...

 Estructura DO UNTIL

Diagrama de Flujo Pseudocódigo


...
REPEAT
Acciones
Acción 1
Acción 2
............
Acción N
No
Condición DO UNTIL Condición
...

- 100 -

S-ar putea să vă placă și