Documente Academic
Documente Profesional
Documente Cultură
Asignatura: INFORMÁTICA
EQUIPO CATEDRA
2011
Informática
UNIDAD 1
INFORMÁTICA
-2-
Informática
-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.
-4-
Informática
-5-
Informática
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.
-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.
-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
-8-
Informática
-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
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
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
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.
- 14 -
Informática
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 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
- 16 -
Informá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
- 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.
- 19 -
Informática
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.
- 20 -
Informática
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.
- 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.
- 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.
- 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
- 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.
- 26 -
Informática
- 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.
- 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
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
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
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).
- 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:
- 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
- 36 -
Informática
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.
- 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
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.
- 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
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
- 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
- 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
- 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
- 51 -
Informática
- 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
- 55 -
Informática
Operación de la
Heurística Codificación computadora y
organización
Resultados
Figura 2
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
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.
- 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.
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
Simbología básica
Los símbolos que se describen a continuación son de uso universal:
- 60 -
Informática
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
Múltiple
condició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.
v
condición
acciones
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
NO
NO
¿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.
- 69 -
Informática
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
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.
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
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.
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
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
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
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.
Ejemplos:
En el sistema decimal:
- 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.
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
Esto significa que en la representación de la mantisa, el bit más significativo es uno diferente a
valor del exponente. Por lo tanto, para una base dada, la precisión de un número está
Las operaciones aplicables a los números reales son, entre otros, la suma, la resta, la
multiplicación, la división.
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
- 77 -
Informática
Se requieren dos palabras para almacenar un número de doble precisión en el modo de punto
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
D+n
D + nn
D nn
D n
misma manera que el exponente decimal que aparece en una constante real.
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.
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.
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
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.
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:
Las estructuras de datos de orden superior, se pueden formar a partir de registros, incluyendo
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
Arreglos
Un arreglo es un conjunto organizado de datos del mismo tipo. Cada componente de un arreglo
seguido de una expresión encerrada entre paréntesis, a la que se denomina índice del arreglo.
- 81 -
Informática
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
decir, un elemento al lado del otro. Si cada elemento de un arreglo de N elementos, ocupa S
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
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.
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
Registros
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
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
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,
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
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.
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:
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.
- 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
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.
RHO - ( - EPSILON )
Evaluación de Expresiones Aritméticas
- 87 -
Informática
+,- 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.
- 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.
X / Y < DELTA
donde DELTA es muy pequeño. En su lugar, exprese esto como:
X < Y * DELTA
- 89 -
Informática
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:
- 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
( ) 2
^ 3
- (signo) 4
* / 5
+ - (concatenación) 6
Operadores de relación 7
No 8
Y (and) 9
O (or) 10
OE (xor) 11
- 91 -
Informática
Las estructuras básicas necesarias para organizar el flujo de control, en un algoritmo, diagrama
de flujo o en un programa, son las siguientes:
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 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.
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
Sí
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
- 96 -
Informática
a) Lógica Secuencial
...
...
Proceso 1
Proceso 2
Proceso 1
.
.
.
Proceso 2
Proceso N
...
Proceso 3 ...
b. Lógica de Selección
Alternativa Simple
...
IF condición
No Sí THEN Acción1
Condición
Acción2
Proceso A ...........
Acción N
END IF
...
- 97 -
Informática
Alternativa Doble
...
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
- 98 -
Informática
Case
...
CASE Expresión OF
c. Lógica de Iteración
Estructura DO
- 99 -
Informática
Estructura DO WHILE
...
DO WHILE Condición
Acción 1
Condición Sí
Acción 2
.............
Acción N
No Acciones
END DO
...
Estructura DO UNTIL
Sí
- 100 -