Vous êtes sur la page 1sur 64

____________________________________________________________________________

1
INTRODUCCIN DEFINICIONES
En este captulo se presenta una breve descripcin de las partes bsicas de una
computadora. Se proveen las definiciones bsicas y los conceptos fundamentales.
Finalmente, se resea la evolucin de los lenguajes de programacin y se sea-
lan las caractersticas de los ms representativos de cada uno de ellos.

1..1. DEFINICIONES DE DATO, PROCESO E INFORMACIN


Dato e informacin son dos trminos que suelen confundirse, pero en Infor-
mtica representan cosas muy distintas.
Dato es el conjunto de valores (nmeros o caracteres) que ingresan a una
computadora. Estos datos pueden ser administrativos, cientficos, comerciales,
etc., y son elementos primitivos.
Informacin es producto obtenido luego del procesamiento de los datos.
La computadora se utiliza para procesar en forma automtica los datos, lo-
grndose una gran velocidad de tratamiento de los mismos, y como resultado de
dicho proceso se obtiene la informacin deseada, la que podr ser til en la toma
de decisiones.
Dato Informacin
Proceso

Figura 1.1: Relacin dato-proceso-informacin

1.2. DEFINICIN DE SISTEMA


Un sistema es un conjunto de componentes relacionados que interac-
tan para realizar una tarea. Un sistema informtico est compuesto por el
Hardware (Unidad Central de Proceso: CPU, dispositivos perifricos) y el Soft-
ware (sistema operativo y los programas).
El software de un sistema de informacin est formado por los datos, los
programas de ingreso, actualizacin e informe de resultados y los procedimientos
manuales y por mquina.

1.3. LA ESTRUCTURA DE UNA COMPUTADORA


Una PC es una computadora personal (Personal Computer), originalmen-
te diseada para servir a un slo usuario. Sali al mercado en 1981 y ha evolu-
cionado en cuanto a capacidad y velocidad, adems su costo se ha ido reducien-
do. Existen diferentes configuraciones para adecuarse a las mltiples necesida-
des de los usuarios.
La informtica es la ciencia que estudia el tratamiento, elaboracin,
transmisin y utilizacin de la informacin. Es una ciencia porque constituye
un conjunto de conocimientos de validez universal y porque utiliza el mtodo cien-
tfico para el logro de sus objetivos.
_______________________________________________________________________________
1
____________________________________________________________________________

Se denomina HARDWARE (ferretera) a todos los componentes electrnicos


y mecnicos, es decir partes fsicas de una computadora. Se denomina SOFT-
WARE al conjunto de programas o procedimientos que determinan las acciones
de la mquina, por lo que se puede decir que es todo lo concerniente a la progra-
macin.
Las computadoras estn estructuradas segn un modelo bsico de funcio-
namiento que describe la interaccin que se realiza entre los elementos que la
componen. Este modelo es:
Monitor

Mouse Modem

CPU
Impresora Escaner

Teclado

Figura 1.2: Modelo bsico de computadora


1.4. DEFINICIN DE UNIDADES
Las unidades son las partes fsicas que componen la computadora y se cla-
sifican en unidades de entradasalida (E/S) denominadas tambin perifricos, y
unidad de proceso (UCP o CPU). Adems de las unidades se encuentran los
soportes, que son elementos externos a la computadora, no imprescindibles para
su funcionamiento, pero necesarios para el almacenamiento de la informacin.

1.4.1. Unidades de E/S


Las unidades de entradasalida son elementos del hardware diseadas para
el ingreso y egreso de los datos. Existen unidades cuya tarea especfica es el in-
greso de datos, otras que slo sirven para el egreso de la informacin, y hay un
tercer grupo que puede cumplir con ambas funciones.

Teclado
Mouse o Ratn, Trackball, Cat
Scanner
Entrada Lectora de barras
Lpiz ptico
Lectora de CD-ROM (DVD)
Micrfono
Monitor
Sistema de vdeo
Unidades de Placa de vdeo
Impresora
EntradaSalida Salida Plotter
Parlante
Placa de audio
Sistema de audio
Parlantes
Mdem
Disqueteras
E/S Grabadora de CD
Integer
Pantallas tctiles
Tabla 1.1: Clasificacin de las unidades.

_______________________________________________________________________________
2
____________________________________________________________________________

1.5. LOS SOPORTES DE LA INFORMACIN


Los soportes de la informacin son medios fsicos de almacenamiento de in-
formacin. Ellos se pueden clasificar en:
Papel: es el soporte ms antiguo de informacin que an sigue en uso (un
ejemplo son los listados).
Magnticos: son aquellos medios que estn basados en las propiedades
magnticas para el registro de la informacin. La mayor parte de los
mismos se usan como elemento de almacenamiento masivo.
Cintas de carrete abierto de 1/2" de ancho.
Disquetes
Cintas de vdeo (casete)
Cintas en tarjetas plsticas
Medios pticos: estn basados en la capacidad de poder o no reflejar la luz
emitida por un determinado elemento (emisor).
CD-ROM.
DVD (Digital Vdeo Disk o Digital Versatil Disk)
Disco Rgido es difcil de catalogar ya que es un sistema en s mismo que
posee una unidad de entrada/salida que son las cabezas lectoras-
grabadoras y un soporte que son los discos propiamente dichos. Al-
gunos de ellos vienen con una pequea pero completa unidad de pro-
ceso.

1.6. LA UNIDAD CENTRAL DE PROCESO Y EL PROCESADOR


La unidad central de proceso UCP es el verdadero cerebro de la computado-
ra; su misin consiste en coordinar, controlar y realizar todas las operaciones del
sistema. Se compone de elementos cuya naturaleza es exclusivamente electrni-
ca (circuitos).
Sus partes principales son las siguientes:
El Procesador (P): Se compone de:
La unidad de control (UC).
La unidad aritmticolgica (UAL).
La Memoria Central (MC).
La unidad central de proceso incorpora tambin un cierto nmero de regis-
tros rpidos (pequeas unidades de memoria) de propsito especial, que son utili-
zados internamente por la misma.
Una aproximacin a diseo interno de un microprocesador sera la de la figu-
ra 1.3:

_______________________________________________________________________________
3
____________________________________________________________________________

Figura 1.3: Microprocesador

Como se observa en la figura 1.3, la unidad de control y la unidad aritmtico


lgica constituyen lo que se denomina: el procesador central del sistema. Este
elemento es parte de la unidad central de proceso encargada del control y la eje-
cucin de las operaciones del sistema. Estas unidades se encuentran integradas
en un nico chip llamado microprocesador. Las funciones principales de la UCP
de una computadora son:

Ejecutar las instrucciones de los programas almacenados en la


memoria del sistema.
Controlar la transferencia entre la UCP y la memoria o las unidades
de E/S
Responder a las peticiones de servicio procedente de los perifri-
cos.

Los programas tienen como objetivo realizar diferentes funciones o aplica-


ciones, limitadas solamente por la capacidad e imaginacin del programador.
Para que un programa sea ejecutado el mismo se debe hallar en determina-
das posiciones de memoria y debe estar escrito en un lenguaje de modo que la
UCP lo pueda entender. La UCP el nico lenguaje que comprende es el binario.
La UCP lee en forma ordenada la lista de instrucciones, luego las interpreta,
y posteriormente controla la ejecucin de cada una de ellas. Las ejecuciones se
realizan en forma consecutiva una tras otra.
Para ejecutar cada instruccin, la UCP realiza la siguiente serie de pasos:

_______________________________________________________________________________
4
____________________________________________________________________________

Lee de la memoria la instruccin que hay que ejecutar y la guarda


en un registro interior de la UCP.
Identifica la instruccin que acaba de leer
Comprueba si la instruccin necesita utilizar nuevos datos de me-
moria, si fuera as, determina donde debe ir a buscarlos.
Busca los datos en la memoria y los trae a la UCP.
Ejecuta la instruccin propiamente dicha.
El resultado puede ser que se almacenada en la memoria o en otro
soporte externo.
Luego, vuelve al primer paso para empezar una nueva instruccin.

La anterior es una lista simplificada de los pasos que ejecuta el microproce-


sador.
La ejecucin de cada instruccin implica el movimiento de datos, y como es-
tos pasos se deben realizar en forma secuencial y ordenada, la UCP sigue las
seales dadas por un reloj. El reloj es un elemento simple, pero de gran impor-
tancia como se ver luego. Para una mejor comprensin del funcionamiento de la
UCP, se la puede dividir en dos unidades: la unidad de control y la unidad arit-
mtico-lgica.
.
1.7. LA UNIDAD DE CONTROL (UC)
La unidad de control (UC) es el centro nervioso de la computadora (figura
1.4); desde ella se controlan y gobiernan todas las operaciones (bsqueda, deco-
dificacin, y ejecucin de las instrucciones). Para realizar su funcin, consta de
los siguientes elementos:
Registro de contador de programas (CP)
Registro de Instrucciones (RI)
Decodificador (D)
Reloj (R)
Generador de Seales o Secuenciador (S)
Registro de contador de programas (CP).
Tambin denominado registro de control de Secuencia (RCS), contiene
permanentemente la direccin de memoria de la prxima instruccin a ejecutar. Si
la instruccin que se est ejecutando en un instante determinado es de salto o de
ruptura de secuencia, el RCS tomar la direccin de la instruccin que se tenga
que ejecutar a continuacin; esta direccin la extraer de la propia instruccin en
curso.
Como ya se vio, el primer paso para la ejecucin de una instruccin, consiste
en buscarla en la memoria, el CP indica cul es la direccin de la memoria donde
se encuentra esa instruccin. Una vez obtenida la misma y antes de continuar con
los siguientes pasos una seal de control incrementa el CP en una unidad, por lo
cual los programas deben estar escritos (cargados) en posiciones consecutivas
de memoria. El CP pasa la direccin al Registro de Direcciones.
Registro de Direcciones (RD).
Contiene la direccin de la memoria donde se encuentra la prxima instruc-
cin y est comunicado con el Bus de Direcciones. El tamao de este registro de-

_______________________________________________________________________________
5
____________________________________________________________________________

termina el tamao de la memoria que puede direccionar. (Si es de 32 bits se pue-


de direccionar 232=4.294.967.296 B 4 GB de memoria).
Con la direccin de memoria, se transfiere a travs el Bus de Datos desde la
memoria central al Registro de Datos en la UC la instruccin correspondiente. Es-
ta transferencia se realiza mediante seales de control. Una vez que la instruccin
se encuentra en la UCP, el cdigo de la instruccin pasa al registro de instruccio-
nes.
Registro de Instrucciones (RI)
Contiene la instruccin que se est ejecutando en cada momento. Esta ins-
truccin llevar consigo el cdigo de operacin (CO), la accin de la que se trata,
y los operandos o las direcciones de memoria de los mismos. Luego, pasa el CO
al decodificador.
Decodificador (D).
Se encarga de extraer y analizar el cdigo de operacin de la instruccin en
curso (que est en el RI) y de dar las seales necesarias al resto de los elemen-
tos para su ejecucin por medio del Generador de Seales.
Generador de Seales (GS).
En este dispositivo se generan rdenes muy elementales (micro-rdenes)
que, sincronizadas por los impulsos del reloj, hacen que se ejecute poco a poco la
instruccin que est cargada en el RI.
Reloj (R).
Proporciona una sucesin de impulsos elctricos a intervalos constantes
(frecuencia constante), que marcan los instantes en que han de comenzar los dis-
tintos pasos de que consta cada instruccin.

Figura 1.4: Unidad de Control.

Unidad aritmticolgica (UAL)


Esta unidad (ver la figura 1.5) es la encargada de realizar las operaciones
elementales de tipo aritmtico (generalmente sumas o restas) y de tipo lgico (ge-

_______________________________________________________________________________
6
____________________________________________________________________________

neralmente comparaciones). Para cumplir su funcin, consta de los siguientes


elementos:
Banco de registros (BR).
Circuitos operadores (CIROP).
Registro de resultado (RR).
Sealizadores de estado (SE).
Banco de registros (BR).
Est constituido por 8, 16 32 registros de tipo general que sirven para si-
tuar datos antes de cada operacin, para almacenar datos intermedios en las ope-
raciones y para operaciones internas del procesador.
Circuitos operadores (CIROP).
Est compuesto por uno o varios circuitos electrnicos que realizan opera-
ciones elementales aritmticas y lgicas (sumador, complementador, desplaza-
dor, etc.).
Registro de resultado (RR).
Se trata de un registro especial, en el que se depositan los resultados que
producen los circuitos operadores.
Sealizadores de estado (SE).
Es un registro con un conjunto de biestables en los que se deja constancia
de algunas condiciones que se dieron en la ltima operacin realizada.

Figura 1.5: La Unidad Aritmtico-Lgica.

1.8. LA MEMORIA CENTRAL (MC)


Es la parte de la unidad central de proceso de una computadora donde estn
almacenadas las instrucciones y los datos necesarios para que un determinado
proceso pueda ser realizado.
La memoria central est constituida por un conjunto de celdas posiciones
de memoria, numeradas de forma consecutiva, capaces de retener la informacin
necesaria, mientras la computadora est conectada. (ver figura 1.6)

_______________________________________________________________________________
7
____________________________________________________________________________

Por otra parte, es una memoria de acceso directo, es decir, se puede acce-
der a una de sus celdas conociendo su posicin. Para esta memoria, el tiempo de
acceso es ms corto que para las memorias auxiliares, por lo tanto, los datos que
manejan los procesos deben residir en ella en el momento de su ejecucin.
Es importante, no confundir los trminos celda posicin de memoria con el
de palabra de computadora, ya que esta ltima es el conjunto de posiciones de
memoria que pueden introducirse o extraerse de la memoria de una sola vez (si-
multneamente).
La memoria central tiene asociados dos registros para la realizacin de ope-
raciones de lectura o escritura, y un dispositivo encargado de seleccionar una cel-
da de memoria en cada operacin de acceso sobre la misma:
Registro de direccin de memoria (RDM).
Registro de intercambio de memoria (RIM).
Selector de memoria (SM).
Registro de direccin de memoria (RDM).
Contiene la direccin de la memoria donde se encuentra o va a ser almace-
nada la informacin (instruccin o dato), tanto si se trata de una lectura como de
una escritura.
Registro de intercambio de memoria (RIM).
Si se trata de una operacin de lectura, el RIM es quien recibe el dato de la
memoria sealado por el RDM, para su posterior envo a uno de los registros de
la UAL. Si se trata de una operacin de escritura, la informacin a grabar tiene
que estar en el RIM, para que desde l se transfiera a la posicin de memoria in-
dicada por el RDM.
Selector de memoria (SM).
Es el dispositivo que, tras una orden de lectura o escritura, conecta la celda
de memoria cuya direccin figura en el RDM con el RIM, posibilitando la transfe-
rencia de los datos en un sentido o en otro.
La memoria central suele ser direccionable por octeto o byte; lo tanto, una
celda o posicin de memoria contiene 8 bits.
Una de las caractersticas fundamentales de una computadora es su capa-
cidad de memoria interna (memoria central), la cual se mide en un mltiplo del
byte denominado Kilobyte, Kbyte, Kb o simplemente K, y que equivale a 1 024
bytes (1 024 = 2').
Otro mltiplo utilizado ampliamente en los ltimos tiempos es el Megabyte o
simplemente Mega, que equivale a 1 024 * 1 024 Bytes; es decir, a 1 048 576 by-
tes.

_______________________________________________________________________________
8
____________________________________________________________________________

Bus de Bus de
Direcciones Datos

Registro De direccin Registro de intercambio


de Memoria de memoria
Bus de
Control
Selector
Memoria Central
0001
0010

0110

1011

Figura 1.6: La memoria RAM.

1.9. LOS TIPOS DE INSTRUCCIONES


Los tipos se refieren a instrucciones del lenguaje de mquina, stas son las
que puede ejecutar directamente el hardware de la computadora.
Las instrucciones mquina se pueden clasificar por:
La funcin que desempean:
Instrucciones de transferencia de datos.
Instrucciones de ruptura de secuencia.
Instrucciones aritmticas y lgicas.
Instrucciones declarativas.
Etctera.
Por su contenido:
Toda instruccin posee lo que se llama cdigo de operacin (CO),
que indica qu operacin se debe realizar por el procesador, y aquellas en las que
su misin sea hacer alguna operacin con determinados datos; llevan, adems,
implcita o explcitamente dichos datos, que se denominan operandos, en funcin
de la cantidad de operandos tenemos:

Instrucciones de tres operandos


Tambin se denominan instrucciones de tres direcciones. En primer lugar,
constan de un cdigo de operacin al que siguen tres operandos, de los cuales,
los dos primeros son los operandos y el tercero es la direccin donde se deposita-
r el resultado. Este formato de instruccin es el ms cmodo para trabajar, pero
es el que precisa mayor nmero de bits, como se observa en el esquema siguien-
te:

_______________________________________________________________________________
9
____________________________________________________________________________

Cdigo de operacin Operando1 Operando2 Operando3

Instrucciones de dos operandos


Constan de un cdigo de operacin, seguido de dos operandos, de los cua-
les, uno de ellos acta adems como receptor del resultado. Tambin se denomi-
nan instrucciones de dos direcciones.
En el siguiente esquema se ve la Instruccin de dos operandos:
Cdigo de operacin Operando 1 Operando2

Instrucciones de un operando
Se denominan tambin instrucciones de una direccin, y son las que se utili-
zan generalmente en mquinas cuya arquitectura funciona con la filosofa de
acumulador.
El acumulador es un registro especial, en el que se encuentra uno de los
operandos para este tipo de instrucciones y donde adems se guarda el resulta-
do.
En la instruccin se encuentra el cdigo de operacin seguido del segundo
operando:
Cdigo de operacin Operando 1

Instrucciones sin operandos


Se denominan tambin instrucciones sin ninguna direccin. Este tipo de ins-
trucciones se utilizan generalmente en computadoras cuya arquitectura tiene la
filosofa de pila.
Una pila est formada por datos almacenados en orden consecutivo en la
memoria, existiendo un registro especial denominado puntero de la pila que indica
la direccin del ltimo dato introducido en ella. Cuando un dato es sacado de la
pila, el puntero de la pila decrece, apuntando al dato que est a continuacin en la
pila hacia el fondo de la misma y que ser aquel dato que se introdujo en primer
lugar. Cuando se trata de introducir un dato en ella, el puntero toma la direccin
de memoria siguiente en orden ascendente y se introduce en dicha direccin.
Estas instrucciones slo llevan cdigo de operacin, de tal forma que cuando
se trata de una operacin, se sacan los operandos de la pila (previamente intro-
ducidos) y el resultado se introduce en la misma.
cdigo de operacin
Una computadora en su lenguaje mquina puede tener instrucciones de las
anteriores, segn sea su arquitectura.

1.10. MODOS DE DIRECCIONAMIENTO


En las instrucciones rara vez suelen almacenar el dato propiamente dicho,
en la mayora de los casos indican el lugar donde se halla el dato. Se llama direc-
cionamiento de una instruccin al modo de indicar en la misma el lugar donde es-
t situado el dato que va a intervenir en ella. Los direccionamientos utilizados en
las instrucciones son los siguientes:

_______________________________________________________________________________
10
____________________________________________________________________________

Direccionamiento inmediato: en l, el dato a utilizar se halla en la propia


instruccin, en el acumulador o en la pila.
Direccionamiento directo: en este caso la instruccin contiene la direc-
cin de memoria central donde se encuentra el dato.
Direccionamiento indirecto: la instruccin contiene la direccin de me-
moria central donde se encuentra la direccin de memoria que contiene el
dato.
Direccionamiento indexado: en l, la direccin de memoria central don-
de se encuentra el dato, se obtiene sumndole a la direccin que lleva la
instruccin una cantidad, que se encuentra en un registro especial llama-
do ndice.

1.11. LOS LENGUAJES DE PROGRAMACIN

Para poder desarrollar las capacidades del hardware, se requiri la creacin


de cdigos por medio de los cuales hacer que la computadora ejecute una serie
de rdenes. A este conjunto de cdigos se denomina lenguaje.
Un lenguaje de programacin es una notacin para escribir programas, a
travs de los cuales el usuario se puede comunicar con el hardware y dar as las
rdenes adecuadas para la realizacin de un determinado proceso. Un lenguaje
est definido por una gramtica o conjunto de reglas que se aplican a un alfabeto
constituido por el conjunto de smbolos utilizados.
Los lenguajes se clasifican en distintos niveles y estos niveles no indican la
capacidad del lenguaje, sino cunto se aproximan al lenguaje del microprocesa-
dor o al del ser humano.
Cuando se habla de lenguajes de bajo nivel significa que el lenguaje es de
fcil comprensin para el procesador y ocupa poco lugar en memoria, pero es de
muy difcil programacin para el hombre.
Al definir a un lenguaje como de alto nivel, significa que el mismo es de fcil
de programacin, pero de difcil acceso al procesador (ya que tiene que ser tra-
ducido a lenguaje de mquina por uno o ms programas traductores).
Es decir, que segn se utilice un nivel u otro, este vendr acompaado por
sus pros o contras: un bajo nivel es difcil de programar, pero ptimo en cuanto al
uso de los recursos y un alto nivel es fcil de programar, pero con un gran uso de
recursos en etapas intermedias.
En el la Tabla 1.2 se presenta la evolucin de los distintos lenguajes:

Periodo Influencias Lenguajes


Ordenadores primitivos Lenguajes ensamblador.
1950 - 1955 Lenguajes experimentales de
alto nivel

_______________________________________________________________________________
11
____________________________________________________________________________

Ordenadores pequeos, caros y lentos FORTRAN


Cintas magnticas. ALGOL 58 y 60
1956 - 1960
Compiladores e intrpretes COBOL
Optimizacin del cdigo. LISP
Ordenadores grandes y caros FORTRAN IV
Discos magnticos COBOL 61 Extendido
1961 - 1965
Sistemas operativos ALGOL 60 Revisado
Lenguajes de propsito general. APL (como notacin slo)
Ordenadores de diferentes tamaos, velo- PL/I
cidades, y costos. FORTRAN 66 (estndar)
Sistemas caros de almacenamiento masivo COBOL 65 (estndar)
de datos. ALGOL 68
1966 - 1970
Sistemas operativos multitarea e interacti- SIMULA 67
vos. BASIC
Compiladores con optimizacin. Lenguajes APL/360
estndar, flexibles y generales.
Micro ordenadores. PASCAL
Sistemas pequeos y baratos de almace- COBOL 74
namiento masivo de datos. PL/I
1971 - 1975
Programacin estructurada.
Ingeniera del software.
Lenguajes sencillos.
Ordenadores baratos y potentes. ADA
Sistemas distribuidos. FORTRAN 77
Programacin interactiva. PROLOG
1976 - 1980
Abstraccin de datos. C
Programacin con fiabilidad y fcil mante-
nimiento.
Ordenadores ms baratos y potentes. Smalltalk
Mayor abstraccin de datos. OOCOBOL
Menor costo de memorias C++
1980
Programacin Orientada o Objetos Objective C
Object Pascal (Delphi)
Visual Basic

Tabla 1.2: Evolucin de los lenguajes

Los lenguajes de programacin se clasifican en:


De Bajo nivel (Lenguaje mquina)
Intermedios (Lenguaje ensamblador), C
De Alto nivel: de Gestin, Cientficos, de Propsito general y especficos

Lenguaje de mquina
El lenguaje de mquina es el nico que entiende directamente la computado-
ra, utiliza el alfabeto binario que consta de los dos nicos smbolos 0 y 1, denomi-
nados bits (abreviatura inglesa de dgitos binarios).

_______________________________________________________________________________
12
____________________________________________________________________________

Fue el primer lenguaje utilizado en la programacin de computadoras, pero


dej de utilizarse por su dificultad y complicacin, siendo sustituido por otros len-
guajes ms fciles de aprender y utilizar, que adems reducen la posibilidad de
cometer errores.
Ejemplo:
Binario Hexadecimal (Equivalente)
0000 0001 1010 0001 01 A1
1000 1001 1001 1010 89 9A
0011 1010 1001 1100 3A 9C
0111 0100 0111 0000 74 70
1110 1001 0010 0000 E9 20

Lenguaje ensamblador
El lenguaje ensamblador es el primer intento de sustituir el lenguaje mquina
por otro ms similar a los utilizados por las personas.
En este lenguaje cada instruccin equivale a una instruccin en lenguaje
mquina, utilizando para su escritura palabras mnemotcnicas en lugar de cade-
nas de bits.
Ejemplo:
INICIO: ADD B, 1
MOV A, E
CMP A, B
JE FIN
JMP INICIO
FIN : END
Este lenguaje presenta la mayora de los inconvenientes del lenguaje m-
quina:

Cada modelo de computadora tiene un lenguaje ensamblador propio, dife-


rente del de las dems, por lo cual un programa slo puede utilizarse en
la mquina para la cual se program.
El programador debe conocer perfectamente el hardware del equipo, ya
que maneja directamente las posiciones de la memoria, los registros del
procesador y dems elementos fsicos.
Todas las instrucciones son elementales, es decir, en el programa se de-
ben describir con el mximo detalle todas las operaciones que se han de
llevar a cabo en la mquina para la realizacin de cualquier proceso.
Por otro lado, tanto el lenguaje mquina como el ensamblador gozan de la
ventaja de mnima ocupacin de memoria y mnimo tiempo de ejecucin en com-
paracin con el resultado de la compilacin del programa equivalente escrito en
otros lenguajes.

_______________________________________________________________________________
13
____________________________________________________________________________

Lenguajes de alto nivel


Los lenguajes de alto nivel, tambin denominados lenguajes evolucionados,
surgen con posterioridad a los anteriores, con los siguientes objetivos, entre otros:

Lograr independencia de la mquina, pudindose utilizar un mismo pro-


grama en diferentes equipos, con la nica condicin de disponer de un
programa traductor o compilador, que lo suministra el fabricante, para ob-
tener el programa ejecutable en lenguaje binario de la mquina que se
trate. Adems, no se necesita conocer el hardware especfico de dicha
mquina.
Aproximarse al lenguaje natural, para que el programa se pueda escribir y
leer de una forma ms sencilla, eliminando muchas de las posibilidades
de cometer errores que se daban en el uso del lenguaje mquina, ya que
se utilizan palabras (en ingls) en lugar de cadenas de smbolos sin nin-
gn significado aparente.
Incluir rutinas de uso frecuente como son las de entrada/salida, funciones
matemticas, manejo de tablas, etc., que figuran en una especie de libre-
ra del lenguaje, de tal manera que se pueden utilizar siempre que se
quieran sin necesidad de programarlas cada vez.
Se puede decir, que el principal problema que presentan los lenguajes de al-
to nivel es la gran cantidad que existe actualmente en uso, tales como: FOR-
TRAN, LISP, ALGOL, COBOL, APL, SNOBOL, PROLOG, MODULA2, ALGOL68,
PASCAL, SIMULA67, ADA, C++, LIS, EUCLID, BASIC, etc., adems de las dife-
rentes versiones o dialectos que se han desarrollado de algunos casos.

FORTRAN
Su nombre es la abreviatura de Frmula Translator (traductor de frmulas),
fue definido alrededor del ao 1955 en los Estados Unidos por la compaa IBM.
Es el ms antiguo de los lenguajes de alto nivel, pues antes de su aparicin todos
los programas se escriban en lenguaje ensamblador o en lenguaje de mquina.
Es un lenguaje especializado en aplicaciones tcnicas y cientficas, que se
caracteriza por su potencia en los clculos matemticos, pero est limitado en las
aplicaciones de gestin, manejo de archivos, tratamiento de cadenas de caracte-
res y edicin de informes.
A lo largo de su existencia han aparecido diferentes versiones, entre las que
destaca la realizada en 1966 por ANSI (American National Standard Institute) en
la que se definieron nuevas reglas del lenguaje y se efectu la independencia del
mismo con respecto a la mquina, es decir, comenz la transportabilidad del len-
guaje. Esta versin se denomin FORTRAN IV o FORTRAN 66.
En 1977, apareci una nueva versin ms evolucionada que se llam FOR-
TRAN V o FORTRAN 77. Esta versin est reflejada en el documento ANSI
X3.9-1978: Programming Language FORTRAN y define dos niveles del lenguaje
denominados FORTRAN 77 completo y FORTRAN 77 bsico, siendo el segundo
un subconjunto del primero. Esta ltima versin incluye adems instrucciones pa-
ra el manejo de cadenas de caracteres y de archivos, as como otras para la utili-
zacin de tcnicas de programacin estructurada. Estas caractersticas hacen que
el lenguaje tambin sea vlido para determinadas aplicaciones de gestin.

_______________________________________________________________________________
14
____________________________________________________________________________

COBOL
Es el lenguaje ms usado en las aplicaciones de gestin, creado en 1960
por un comit denominado CODASYL, patrocinado por el Departamento de De-
fensa de los Estados Unidos, a fin de disponer de un lenguaje universal para apli-
caciones comerciales como expresa su nombre: COmmon Business Oriented
Language.
Entre sus caractersticas se puede citar su parecido al lenguaje natural (in-
gls), es auto-documentado y tiene gran capacidad en el manejo de archivos, as
como en la edicin de informes escritos.
Entre sus inconvenientes estn sus reglas rgidas de formatos de escritura,
la necesidad de describir todos los elementos al mximo detalle, la extensin ex-
cesiva de sus sentencias e incluso la duplicacin en algunos casos, la inexistencia
de funciones matemticas y, por ltimo, su no adecuacin a las tcnicas de pro-
gramacin estructurada.

PL/1
Fue creado a comienzos de los aos 60 por IBM para ser usado en sus
equipos del sistema 360. El PL/1 (Programming Language) se desarroll inspi-
rndose en los lenguajes ALGOL, COBOL y FORTRAN, tomando las mejores ca-
ractersticas de los anteriores y aadiendo algunas nuevas, con el objetivo de ob-
tener un lenguaje lo ms general posible, til para aplicaciones tcnico-cientficas,
comerciales, de procesamiento de textos, de bases de datos y de programacin
de sistemas.
Entre sus novedades est su gran libertad en el formato de escritura de los
programas, adems soporta la programacin estructurada y el diseo modular. No
obstante, no ha superado a sus progenitores en sus aplicaciones especficas de-
bido en parte a su amplitud y por ello, al tamao de su compilador, que hasta aho-
ra slo se poda instalar en grandes equipos.

BASIC
Fue diseado por los profesores John G. Kemeny y Thomas E. Kurtz del
Dartmouth College en 1965 con el objetivo principal de conseguir un lenguaje fcil
de aprender para los principiantes, como se indica en su nombre Benginners All-
purpose Symbolic Instruction Code (Cdigo de instruccin simblico de propsito
general para principiantes).
Entre sus principales novedades estn las de ser un lenguaje interpretado y
de uso conversacional, til para aplicaciones tcnicas y de gestin. Estas caracte-
rsticas, unidas a la popularizacin de las microcomputadoras y computadoras
personales, ha hecho que su utilizacin se haya extendido enormemente, a la vez
que ha propiciado el surgimiento de una gran diversidad de versiones que extien-
den y adaptan a necesidades particulares el lenguaje original. Hoy da existe una
multitud de intrpretes y compiladores del lenguaje.

PASCAL
Fue creado por el matemtico suizo Niklaus Wirth en 1970, basndose en el
lenguaje AL-GOL, en cuyo diseo haba participado en los aos 60. Su nombre

_______________________________________________________________________________
15
____________________________________________________________________________

proviene del filsofo y matemtico francs del siglo XVII Blaise Pascal, que inven-
t la primera mquina de tipo mecnico para sumar.
Aunque en principio la idea del diseador era proporcionar un lenguaje ade-
cuado para la enseanza de los conceptos y tcnicas de programacin, con el
tiempo ha llegado a ser un lenguaje ampliamente utilizado en todo tipo de aplica-
ciones, poseyendo grandes facilidades para la programacin de sistemas y el di-
seo de grficos.
Aporta los conceptos de tipo de datos, programacin estructurada y diseo
descendente, entre otros, adems de haberse convertido en predecesor de otros
lenguajes ms modernos, como MODULA-2 y ADA.

C
Fue creado en 1972 por Dennis Ritchie a partir del trabajo elaborado por su
colega de los laboratorios Bell Telephone, Ken Thompson. Estos haban diseado
con anterioridad el sistema operativo UNIX, y su intencin al desarrollar el lengua-
je C fue la de conseguir un lenguaje idneo para la programacin de sistemas que
fuese independiente de la mquina con el cual escribir su sistema UNIX.
Aunque fue diseado inicialmente para la programacin de sistemas, poste-
riormente su uso se extendi a aplicaciones tcnico-cientficas, de bases de da-
tos, de proceso de textos, etc.
La utilizacin ptima de este lenguaje se consigue dentro de su entorno na-
tural, que es el sistema operativo UNIX. Entre sus caractersticas destaca el uso
de programacin estructurada para resolver tareas de bajo nivel, as como la am-
plia librera de rutinas de que dispone.

ADA
Es el ltimo intento de obtener un nico lenguaje para todo tipo de aplicacio-
nes e incluye los ltimos avances en tcnicas de programacin. Su diseo fue
encargado por el Departamento de Defensa de los Estados Unidos a la empresa
Honeywell-Bull despus de una seleccin rigurosa entre varias propuestas reali-
zadas sobre una serie de requerimientos del lenguaje y de haber evaluado nega-
tivamente veintitrs lenguajes existentes. De stos se seleccionaron como base
para la creacin del nuevo lenguaje el PASCAL, el ALGOL y el PL/1.
La estandarizacin del lenguaje se public en 1983 con el nombre de ADA
en honor de la considerada primera programadora de la historia Augusta Ada By-
ron, condesa de Lovelace.
Entre las caractersticas del lenguaje se encuentran la compilacin separa-
da, los tipos abstractos de datos, programacin concurrente, programacin estruc-
turada, libertad de formatos de escritura, etc., presentando como principal incon-
veniente su gran extensin.

1.11.1. Intrpretes y Compiladores


Como ya se ha dicho, el microprocesador slo entiende lenguaje de mquina
(cdigo binario). Para que un programa escrito en un cierto lenguaje sea traducido
a lenguaje binario hay dos formas dependiendo del lenguaje. Estos dos mtodos
para traducir los lenguajes de programacin de alto nivel al binario son median-
te:
_______________________________________________________________________________
16
____________________________________________________________________________

Intrprete: Analiza el programa fuente y lo ejecuta directamente, sin


generar ningn cdigo equivalente. Su accin es equivalente a la de
un intrprete humano, que traduce las frases que escucha una tras
otra, sin producir ningn escrito permanente. Los Intrpretes y los
compiladores tienen diversas ventajas e inconvenientes que los
hacen complementarios:
Un intrprete facilita la bsqueda de errores, pues la ejecucin de un
programa puede interrumpirse en cualquier momento para estudiar
el entorno (valores de las variables por ejemplo). Adems, el pro-
grama puede modificarse sobre la marcha, sin necesidad de volver a
comenzar la ejecucin.
Un intrprete permite utilizar funciones y operadores ms potentes,
como por ejemplo ejecutar cdigo contenido en una variable en for-
ma de cadenas de caracteres. Usualmente, este tipo de instruccio-
nes es imposible de tratar por medio de compiladores. Los lenguajes
que incluyen este tipo de operadores y que, por tanto, exigen un in-
trprete, se llaman interpretativos. Los lenguajes compilativos, que
permiten el uso de un compilador, prescinden de este tipo de opera-
dores.

Programa fuente

Intrprete

Traduccin y ejecucin
lnea a lnea

Compilador: Analiza el programa fuente y lo traduce a otro equiva-


lente escrito en otro lenguaje (por ejemplo, en el lenguaje de la m-
quina). Su accin equivale a la de un traductor humano, que toma un
libro y produce otro equivalente escrito en otra lengua.
Un compilador suele generar programas ms rpidos y eficientes, ya
que el anlisis del lenguaje fuente se hace una sola vez, durante la
generacin del programa equivalente. En cambio, un intrprete se ve
obligado generalmente a analizar cada instruccin tantas veces co-
mo se ejecute (incluso miles o millones de veces).

Programa fuente

Compilador
(Traductor)

Programa Objeto

_______________________________________________________________________________
17
____________________________________________________________________________

Montador

Programa ejecutable en lenguaje


de mquina

El programa objeto obtenido normalmente no se traduce al lenguaje


de mquina sino a ensamblador.
Para conseguir el programa en lenguaje de mquina original se debe
utilizar un programa llamado montador o enlazador (linker).
El proceso de montaje produce un programa en lenguaje de mqui-
na directamente ejecutable.

RESUMEN

En este Captulo se describieron las partes principales un Sistemas Informtico.


Se presentaron las partes fundamentales de una Computadora Personal y de ca-
da una de ellas se resumieron las funciones principales.
Se presentaron y se describieron los principales lenguajes de programacin.

CUESTIONARIO DEL CAPTULO 1


1- Indique la diferencia entre unidad y soporte.
2- Nombre un soporte anterior a la era informtica.
3- Nombre un soporte ptico y explique cul es su unidad asociada.
4- Mencione tres unidades de E/S.
5- Nombre dos soportes que puedan ser utilizados en unidades de E/S.
6- Enumere las partes de la Unidad de Control.
7- Enumere las partes de la Unidad Arimtico Lgica.
8- Nombre los distintos tipos de direccionamiento.
9- Explique en qu consisten las instrucciones de dos operandos.
10- Describa las partes que componen la memoria RAM.
11- Detalle los pasos a seguir para leer un dato en memoria.
12- Investigue y explique sintticamente cmo funciona un disco duro.

_______________________________________________________________________________
18
____________________________________________________________________________

2
SISTEMAS DE NUMERACIN
En este captulo se presentan las diferentes formas de representacin de la infor-
macin. Para ello, se parte de los sistemas de numeracin bsicos y sus conver-
siones, con numerosos ejercicios resueltos. El objetivo es que el estudiante pueda
llegar a interpretar cmo se trata la informacin en el sistema computacional.

2.1. EL SISTEMA DECIMAL


El primer sistema de numeracin del cual se tiene conocimiento fue el siste-
ma egipcio, posteriormente a l surgieron el romano, el maya, el chino, el indio, el
rabe original hasta llegar al decimal actual
El sistema decimal es un sistema posicional, ya que el significado de un
smbolo depende fundamentalmente de su posicin relativa al smbolo coma (,),
denominado coma decimal, que en caso de ausencia se supone colocada implci-
tamente a la derecha.
Utiliza como base el 10, que corresponde al nmero de smbolos que com-
prenden para la representacin de cantidades; estos smbolos (tambin denomi-
nados dgitos) son:
0 1 2 3 4 5 6 7 8 91
Una determinada cifra, que se denominar nmero decimal, se puede expresar
de la siguiente forma:

n
o
N = (dgito)i * (b)I-1
i= -d

Donde:
base = 10
i = posicin respecto a la coma
d = nmero de dgitos a la derecha de la coma,
n = nmero de dgitos a la izquierda de la coma - 1,
dgito = cada uno de los que componen el nmero
La frmula responde al Teorema Fundamental de la Numeracin que se ver
en el siguiente prrafo.

1
En todo sistema de numeracin la base no aparece como dgito.
_______________________________________________________________________________
19
____________________________________________________________________________

El sistema decimal es un sistema posicional como ya se ha dicho, ya que el


mismo dgito puede variar su valor de acuerdo a su posicin.

Ejemplo:
1000 mil
100 cien
10 diez
1 uno
0,1 un dcimo
0,01 un centsimo

2.2. EL SISTEMA BINARIO


Por razones tcnicas, la mayora de los circuitos elctricos y electrnicos que
conforman una computadora slo puede detectar la presencia o ausencia de ten-
sin en el circuito. Si a la presencia de tensin en un punto del circuito se le asig-
na el valor 1 y a la ausencia de la misma el valor 0 (a esta lgica se la denomina
lgica positiva y al caso contrario, se denomina lgica negativa).
Por esta razn debido a que el hardware por el momento slo reconoce estos
dos estados fue necesario crear un sistema de numeracin basado en estos dos
valores (0, 1), al cual se lo denomin binario, y cuya base por lo tanto es 2 (n-
mero de dgitos del sistema).
En computacin cada dgito de un nmero representado en este sistema se
denomina bit (contraccin de binary digit).
Como mltiplos del bit se hallan:
8 bits Byte (palabra)2 B (10110110)
1024 bytes 1 kilobyte KB 1024 bytes
1024 KB 1 Megabyte MB 1048576 bytes
1024 MB 1 Gigabyte GB 1073741824 bytes
1024 GB 1 Terabyte TB 1099511627776 bytes
Hay dos cosas que tener en cuenta:
La B de byte es siempre mayscula, ya que Kb significa Kbit unidad
utilizada en las memorias.
En el sistema de numeracin decimal los mltiplos son potencias
10 (1K 1000 unidades y 1M 1000 K), en el binario es:
210 = 1024.

2.2.1. OPERACIONES CON BINARIOS


Tanto la suma como la multiplicacin son semejantes a la decimal con la di-
ferencia que se manejan slo dos dgitos, sus tablas de operacin se pueden ob-
servar en los siguientes esquemas

2
La idea de palabra queda de las antiguas computadoras con palabras de 8 bits, hoy da existen
mquinas cuya palabra es de 16, 32, 64 bits.
_______________________________________________________________________________
20
____________________________________________________________________________

Suma Multiplicacin
+ 0 1 * 0 1
0 0 1 0 0 0
1 1 10 1 0 1
Ejemplo 2.1
1 1 1 1 1 Acarreo
1 1 0 0 1 25
+ 1 0 1 0 1 1 + 43
1 0 0 0 1 0 0 68

1 1 Acarreo
1 1 0. 1 0 6,50
+ 1 1 0 1. 0 1 + 13.25
1 0 0 1 1. 1 1 19.75

1 1 0 0 1 25
* 1 0 0 1 1 * 19
1 1 0 0 1
1 1 0 0 1
1 1 0 0 1 0 0
1 1 1 0 1 1 0 1 1 475

Tanto la resta como la divisin son procesos que la unidad de aritmtico


lgica de la computadora no realiza, por lo tanto no se vern en forma directa.

2.3. EL SISTEMA OCTAL


Es un sistema cuya base es el nmero 8, es decir, utiliza 8 smbolos para la
representacin de un valor cualquiera. Estos smbolos son:
0 1 2 3 4 5 6 7
Este tambin es un sistema posicional, de aritmtica muy similar al decimal.
Su utilizacin, comenz como sistema de salida de las computadoras, ya que pa-
ra representar un valor la cantidad de smbolos que necesita es menor que el bi-
nario y la conversin entre ambos sistemas es muy sencilla de implementar como
se ver ms adelante.

2.4. EL SISTEMA HEXADECIMAL


Es un sistema cuya base es el nmero 16, es decir, utiliza 16 smbolos para
la representacin de un valor cualquiera. Estos smbolos son:
0 1 2 3 4 5 6 7 8 9 A B C D E F
Este es otro sistema posicional, con caractersticas similares al octal. Su uso
fue adoptado por idnticas razones que el octal.

_______________________________________________________________________________
21
____________________________________________________________________________

2.4. CONVERSIN ENTRE LOS DISTINTOS SISTEMAS


Se denomina as la transformacin de un valor en un sistema al equivalente
en otro sistema.

2.4.1. TEOREMA FUNDAMENTAL DE LA NUMERACIN


El teorema fundamental de la numeracin dice:
El valor en el sistema decimal de una cantidad expresada en otro sis-
tema cualquiera de numeracin, viene dado por la frmula:
... + X4*B4 + X3*B3 + X2*B2 + X1*B1 + X0*B0 + X-1*B-1 + X-2*B-2 + X-3*B-3 + ...

donde X es el dgito y B la base.

Ejemplo 2.1:
Suponiendo la cantidad 3221,034 expresada en base 4 (ver subndice al final
de la cantidad), dicha base utiliza para representar cantidades los dgitos 0, 1, 2 y
3. Cul ser el valor correspondiente en el sistema decimal?
3 * 43 + 2 * 42 + 2 * 41 + 1 * 40 + 0 * 4-1 + 3 * 4-2 =
3 * 64 + 2 * 16 + 2 * 4 + 1 * 1 + 0 * 0,25 + 3 * 0,0645 = 233,1875
El teorema aplicado a la inversa sirve para obtener el valor en una base
cualquiera de un valor decimal, por medio de divisiones sucesivas por dicha base,
como se ver ms adelante.

2.4.2. CONVERSIN DECIMAL A BINARIO


Para convertir un nmero decimal entero a binario, este debe ser dividido por
dos y repetir el proceso con sus cocientes hasta que el cociente tome el valor 1.
La unin de todos restos escritos en orden inverso encabezados por el ltimo co-
ciente, nos dar el valor expresado en binario.
Ejemplo 2.2: Convertir el nmero 174 a binario:

174 2
0 87 2
1 43 2
1 21 2
1 10 2
0 5 2
1 2 2
0 1

17410 = 101011102
Para convertir una fraccin decimal a sistema binario, la fraccin debe ser
multiplicada por dos y hay que tomar la parte entera del resultado, luego, se repite
el proceso con la parte fraccionaria del resultado anterior, obtenindose una nue-
va parte entera, y as sucesivamente hasta que la parte fraccionaria se haga 0

_______________________________________________________________________________
22
____________________________________________________________________________

(cero) o que se tengan suficientes decimales que permita estar debajo de un de-
terminado error.

Ejemplo 2.3: Convertir el nmero 0,90625 a fraccin binaria


0,90625 * 2 = 1,8125
0,8125 * 2 = 1,625
0,625 * 2 = 1,25
0,25 * 2 = 0,5
0,5 * 2 = 1,

0,9062510 = 0,111012

Ejemplo 2.4: Convertir el nmero 0,64037 a fraccin binaria


0,64037 * 2 = 1,28074
0,28074 * 2 = 0,56148
0,56148 * 2 = 1,12296
0,12296 * 2 = 0,24592
0,24592 * 2 = 0,49184
0,49184 * 2 = 0,98368
0,98368 * 2 = 1,96736
0,96736 * 2 = 1,93472
0,93472 * 2 = 1,86944
0,86944 * 2 = 1,73888

0, 6403710 = 0,10100011112
El error en el valor es 2-10 0,001. Esto es as porque se ha obte-
nido 10 unidades binarias, para mejorar la precisin se deber obtener un mayor
nmero de fracciones binarias.
En el caso de trabajar con un error 10-3 significa que 2-n igualando y
aplicando logaritmos queda 3 = n*log 2 por lo que n = 3/log 2, lo que da por
aproximacin 10 unidades binarias.
Ejercitacin: Pasar a binario las siguientes fracciones decimales con 2-10
: 0,63965 y 0,064062.
Si se desea convertir un nmero que tiene parte entera y decimal a binario, se
deber operar cada parte por separado como ya se ha visto, y luego obtener la
suma de los resultados.
Ejemplo 2.5: Resolver
174,9062510 = 10101110,111012

2.4.3. CONVERSIN BINARIO A DECIMAL


Para realizar esta conversin se utiliza como base el teorema fundamental de
la numeracin.
El mtodo prctico consiste en multiplicar cada uno de los trminos por poten-
cias crecientes de 2 a partir de la coma decimal y hacia la izquierda, y realizar la
suma de las operaciones.

_______________________________________________________________________________
23
____________________________________________________________________________

Ejemplo 2.6: Pasar a decimal el binario 101011102


1 0 1 0 1 1 1 0
0 * 20 = 0
1 * 21 = 2
1 * 22 = 4
1 * 23 = 8
4
0 * 2 = 0
5
1 * 2 = 32
0 * 26 = 0
1 * 27 = 128
174
101011102 = 17410

En los casos de nmeros que posean parte entera y decimal se recomienda el


uso del teorema fundamental de la numeracin.
Ejemplo 2.7: Convertir 1101,0112 a base 10
Para pasar a base 10 se debe hacer:
1 * 23 + 1 * 22 + 0 * 21 + 1 * 20 + 0 * 2-1 + 1 * 2-2 + 1 * 2-3 =
1 * 8 + 1 * 4 + 0 + 1 * 1 + 0 + 1 * 0,25 + 1 * 0,125 =
8 + 4 + 0 + 1 + 0 + 0,25 + 0,125 = 13,375
1101,0112 = 13,37510

2.4.4. CONVERSIN OCTAL A BINARIO


Al ser la base del octal (8) potencia de la base binaria (23), la transformacin de
una base a la otra se hace en forma directa dgito a dgito. Cada dgito octal ser
reemplazado por 3 dgitos binarios (3 por ser la potencia que relaciona ambas
bases), segn la tabla que se observa a continuacin:

Octal Binario
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111

_______________________________________________________________________________
24
____________________________________________________________________________

Ejemplo 2.8: Convertir a binario el nmero 276,5348


2 7 6, 5 3 4
010 111 110, 101 011 100

276,5348 = 10111110,10101112

Como se puede ver los ceros al comienzo se han quitado, igual que los ce-
ros que se hallan a la derecha de la coma (ya que no tienen ningn sentido).

2.4.5. CONVERSIN BINARIO A OCTAL


Esta conversin es similar a la anterior, pero cada tres smbolos binarios co-
rresponde uno octal. Para realizar correctamente esta conversin el nmero de
dgitos a la derecha de la coma decimal debe ser mltiplo de 3 y si no lo fuera
deber agregarse al final del nmero tantos ceros como sea necesario. Idntico
caso ser a la izquierda de la coma, en dicho caso los ceros se agregan al princi-
pio del nmero.
Ejemplo 2. 9: Convertir el binario 10101011,0011 a octal.

010 101 011, 001 100


2 5 3, 1 4

Se agregan 0 (ceros) al nmero para permitir la correcta conversin:


10101011,00112 = 253,148

2.4.6. CONVERSIN HEXADECIMAL A BINARIO


Por idnticas razones que en el caso anterior (16 = 24), la transformacin de
una base a la otra se hace en forma directa dgito a dgito. Cada dgito hexadeci-
mal se debe reemplazar por 4 dgitos binarios (4 por ser la potencia que relaciona
ambas bases), segn la tabla que se tiene a continuacin:

Hexadecimal Binario Hexadecimal Binario


0 0000 8 1000
1 0001 9 1001
2 0010 A 1010
3 0011 B 1011
4 0100 C 1100
5 0101 D 1101
6 0110 E 1110
7 0111 F 1111

Ejemplo 2.10: Convertir a binario el nmero 5A8,39C16

5 A 8, 3 9 C
0101 1010 1000, 0011 1001 1100

_______________________________________________________________________________
25
____________________________________________________________________________

5A8,39C16 = 10110101000,00111001112

Como se puede ver otra vez los ceros al comienzo se han quitado, igual que
los ceros que se hallan a la derecha de la coma ya que no tienen sentido.

2.4.7. CONVERSIN BINARIO A HEXADECIMAL


Esta conversin es similar a la conversin a octal, pero en lugar de tres, son
cuatro smbolos binarios los que corresponde a un hexadecimal.
Para realizar correctamente esta conversin el nmero de dgitos a la de-
recha de la coma decimal debe ser mltiplo de 4, y si no lo fuera deber agregar-
se al final del nmero tantos ceros como sea necesario. Idntico caso ser a la
izquierda de la coma, en dicho caso los ceros se agregan al principio del nmero.

Ejemplo 2.11: Convertir el binario 1010101011,00111 a hexadecimal.

0010 1010 1011, 0011 1000


2 A B, 3 8
0 cero agregado al nmero para permitir la correcta conversin.
1010101011,00111 2 = 2AB,38816

2.4.8. CONVERSIN DECIMAL A OCTAL O HEXADECIMAL


Para cualquiera de estos dos casos se har en forma similar a la explicada
para convertir de decimal a binario, pero se deber tener en cuenta que la base
ya no es 2, sino 8 o 16 segn corresponda. (Dividir por 8 16)

2.4.9. CONVERSIN OCTAL O HEXADECIMAL A DECIMAL


Para cualquiera de estos dos casos se deber usar el teorema fundamental
de la numeracin, teniendo en cuenta base que corresponda (8 16,segn el ca-
so).

2.4.10. CONVERSIN OCTAL A HEXADECIMAL O HEXADECIMAL A OCTAL.


Estas conversiones no son posibles en una forma directa. Para realizar cual-
quiera de ellas se deber usar el pasaje a otra base como paso intermedio.
Por ejemplo octal decimal hexadecimal

octal binario hexadecimal

Se recomienda como metodologa de trabajo esta ltima, porque al ser las


operaciones de conversin ms sencillas disminuye la probabilidad de error.
Adems no existe la posibilidad de errores de redondeo.

2.5. REPRESENTACIN INTERNA DE LA INFORMACIN


Toda informacin que administra el ordenador como ya se dicho se almace-
nar en forma binaria, sin importar si es un nmero (entero, real, racional o com-
plejo), un carcter (dgito, letra, smbolo), msica o imgenes: En cada caso se

_______________________________________________________________________________
26
____________________________________________________________________________

almacenar en un formato distinto y an para un mismo tipo de dato se podr al-


macenar en un formato distinto segn sea necesario.

2.6. REPRESENTACIN DE NMEROS


La representacin en una computadora de un nmero entero y uno real es
distinta, y an para cada tipo tenemos distintas representaciones segn el rango
de valores a representar: El nmero de bits utilizados puede ser 8, 16, 32, 64 o
sea 1, 2, 3, 4... Bytes. Para este tema y los siguientes se puede consultar a Mar-
kivtz (2000).3

2.6.1. REPRESENTACIN DE NMEROS ENTEROS


Existen 5 formas de representar un nmero entero en una computadora (to-
dos en sistema binario), ellas son:
Binario puro sin signo (BP)
Mdulo y signo (MS)
Complemento a 1 (C-1)
Complemento a 2 (C-2)
Exceso a 2 elevado a la N -1
En todos los casos se considera que se tiene un nmero limitado de dgitos pa-
ra cada elemento numrico.
2.6.1.1. Binario puro sin signo (BP)
Este mtodo en general para representar valores positivos que pueden alma-
cenar en un Byte o sea 8 bits.
Por ejemplo:
Mantisa
19 se representa en 8 bits como 00010011
El conjunto de valores que se puede representar por un mtodo determinado
se conoce como rango de la representacin. Para mdulo el rango de represen-
tacin para 8 dgitos es:

x 2N -1

Para 1 Byte (8 bits) es 0 x 255


Para 2 Byte (16 bits) es 0 x 65535
Para 4 Byte (32 bits) es 0 x 4294967295

2.6.1.2. Mdulo y signo (MS)


En este mtodo se utiliza el primer bit a la izquierda como signo, 0 si es positivo
y uno si es negativo. Los restantes 7, 15, etc., representan el mdulo.
Por ejemplo:
Signo Mantisa
19 se representa en 8 bits como 0 0010011
-19 1 0010011
3
Introduction to Logic Design. Mc Graw Hill.
_______________________________________________________________________________
27
____________________________________________________________________________

19 se representa en 16 bits como 0 000000000010011


-19 1 000000000010011
0 se representa en 8 bits como 0 0000000
- 0 1 0000000
El conjunto de valores que se puede representar por un mtodo determinado
se conoce como rango de la representacin. Para mdulo y signo, el rango de
representacin para N dgitos es:

- 2N-1 +1 x 2N-1 -1

Para 1 Byte (8 bits) es -127 x 127


Para 2 Byte (16 bits) es -32767 x 32767
Para 4 Byte (32 bits) es -2147483647 x 2147483647
Este mtodo tiene la ventaja de poseer un rango simtrico, pero la desventa-
ja es que posee dos representaciones para el nmero 0
2.6.1.3. Complemento a 1 (C-1).
Para representar un nmero positivo se procede como en el de MS (mdulo
y signo). Pero, en el caso de los nmeros negativos, se obtiene complementando
al positivo (reemplazando cada 1 por 0 y viceversa). Por ejemplo:
19 se representa en 8 bits como 00010011
-19 11101100
19 se representa en 16 bits como 0000000000010011
-19 1111111111101100
0 se representa en 16 bits como 0000000000000000
- 0 1111111111111111
Para el complemento a 1, el rango de representacin para N dgitos es:
- 2N-1 +1 x 2N-1 -1
Para 1 Byte (8 bits) es -127 x 127
Para 2 Byte (16 bits) es -32767 x 32767
Para 4 Byte (32 bits) es -2147483647 x 2147483647
Este mtodo presenta las mismas ventajas y desventajas que el anterior.

2.6.1.4. Complemento a 2 (C-2)


Este mtodo es similar al anterior, la representacin de los nmeros positivos es
igual a la anterior, pero para los negativos se obtiene en dos pasos:
Se complementa a 1
Al resultado se le suma 1
Por ejemplo:
19 se representa en 8 bits como 0001 0011
-19 1110 1100 C-1
+ 1
-19 1110 1101 C-2

_______________________________________________________________________________
28
____________________________________________________________________________

Para complemento a 2 el rango de representacin para N dgitos es:


- 2N-1 x 2N-1 -1
Para 1 Byte (8 bits) es -128 x 127
Para 2 Byte (16 bits) es -32768 x 32767
Para 4 Byte (32 bits) es -2147483648 x 2147483647
Presenta dos ventajas: una es que tiene una nica representacin para 0, y
la otra es que en lugar de hacer A B, se puede hacer A + BC-2 .
Se puede demostrar:
A B = A + BC
donde BC es el complemento a la base del nmero B.
Esta metodologa de trabajo se implement porque la unidad aritmtico lgi-
ca del microprocesador slo suma, no resta.
2.6.1.5. Exceso a 2 elevado a la N 1
En este mtodo no hay bit de signo, todos los bits se utilizan para represen-
tar el valor del nmero ms el exceso, y para N bits viene dado por 2N-1, que para
una representacin de 8 bits es 128.
B Exceso = Exceso + B
Para obtener un nmero en un exceso dado, se realiza la suma algebraica
del exceso ms el nmero y slo se pueden representar valores en mdulo meno-
res o iguales al exceso.
Ejemplo:
Para representar a 19 en exceso a 128 ser:
19 Exc128 = Exceso(128) + 19
Exceso 128 10000000
19 + 00010011
19 en exceso 128 10010011
Para representar a -19 en exceso a 128 ser:
-19 Exc128 = Exceso(128) + (-19)
Exceso 128 10000000
-19 - 00010011
-19 en exceso 128 01101101

En este mtodo el 0 tiene una nica representacin, el rango de representa-


cin es asimtrico.
Para complemento a 2 el rango de representacin para N dgitos es:
- 2N-1 x 2N-1 -1

Para 1 Byte (8 bits) es -128 x 127


Para 2 Byte (16 bits) es -32768 x 32767

_______________________________________________________________________________
29
____________________________________________________________________________

Para 4 Byte (32 bits) es -2147483648 x 2147483647

La representacin en exceso para un nmero cualquiera es igual a la repre-


sentacin en complemento a dos, pero el valor del primer bit de la izquierda se
invierte.

2.6.2. DESBORDAMIENTO (OVERFLOW)


Esta condicin (overflow) se puede producir cuando se suman dos nmeros
con un determinado mtodo de representacin y el resultado no puede ser repre-
sentado por el mtodo, obtenindose un resultado errneo.
Para el ejemplo se usar la notacin de MS (mantisa y signo)
Ejemplo:
52 00110100 52
+ 97 + 01100001 97
149 10010101 -21

2.7. REPRESENTACIN DE NMEROS REALES


2.7.1. Precisin Finita de la Informacin
Muchos estudiantes consideran que la computadora puede trabajar con n-
meros de cifras infinitas, siendo este uno de los tantos preconceptos que se pue-
de detectar en los alumnos y, que debido a su falsedad se debe desterrar.
Toda computadora cuenta con un nmero finito de Bytes para poder alma-
cenar una cifra. Este nmero puede ser de 1, 2, 4, 6, 8, 10 Bytes, pero nunca infi-
nito. Por lo tanto, slo se podr ingresar, procesar, almacenar y extraer un rango
de valores.
Por ejemplo, para nmeros enteros se utiliza como mximo 4 Bytes (32 bits),
siendo el rango de representacin entre: -247483648... 247483647.
2.7.2. Coma Flotante
Este mtodo nace ante la necesidad de representar nmeros reales o ente-
ros con un rango mayor que el dado por los otros mtodos.
En su representacin se utiliza la expresin matemtica:
N = mantisa * base exponente
Por ejemplo:
79436.54 = 0,7943654 * 105
A este proceso se lo denomina normalizacin.
Para estos nmeros, se utilizan dos formas de representacin: simple y do-
ble precisin, pero existen otros formatos como real, extended.
Para simple precisin se utiliza 32 bits (4 Bytes), en el segundo caso 64 bits
(8 Bytes).
(Todos los elementos en computacin se comienzan a numerar por 0)
El esquema para ambos casos es como el de la tabla debajo.

_______________________________________________________________________________
30
____________________________________________________________________________

Simple Precisin Doble Precisin


C. de bits B. Inicial B. Final C. de bits B. Inicial B. Final
Signo 1 31 1 63
Exponente 8 23 30 11 52 62
Mantisa 23 0 22 52 0 51

Ejemplos de Pasajes de Decimal a Flotante


Pasar 57 a Flotante
1) Pasar 57 a Binario
57 111001
2) Normalizar el binario
111001 0,111001 * 26
3) Pasar el exponente a binario
6 110
4) Si se trabaja en Simple Precisin (SP) se lo expresa como excedente a
10000000 (por los 8 bits), si es en Doble Precisin como excedente a 10000000000
(por los 11 bits). El exponente quedar as:
SP 10000110
DP 10000000110
5) Como el nmero es positivo el bit de signo es cero: 0
El nmero queda estructurado de la siguiente manera

Signo Exponente Mantisa


SP 0 10000110 111001
6) Se deben agregar ceros hasta completar los 24 bits
El nmero en cuestin queda:
0100 0011 0111 0010 0000 0000
7) Luego, se pasa a HEXADECIMAL, quedando:
437216

En el caso de - 57
1) Como el nmero es negativo el bit de signo es 1
El nmero queda estructurado de la siguiente manera:

Signo Exponente Mantisa


SP 1 10000110 111001
Se debe agregar ceros hasta completar los 24 bits
El nmero en cuestin queda
1100 0011 0111 0010 0000 0000
2) Se pasa a HEXADECIMAL y queda:

_______________________________________________________________________________
31
____________________________________________________________________________

C37216

Ejemplo de exponente negativo


Para el nmero 0,13671875 se repiten los pasos anteriores.
Se pasa a binario:
0,13671875 0,00100011
Se normaliza:
0,001000112 0,1000112 *2-2
Se pasa el mdulo de la potencia a binario
2 102
Si se trabaja en Simple Precisin (SP) se expreso como excedente a 10000000 El
exponente queda as:
SP 01111110
Como el nmero es positivo el bit de signo es 0
El nmero queda estructurado de la siguiente manera:
Signo Exponente Mantisa
DP 0 01111110 100011
Se deben agregar ceros hasta completar los 24 bits
El nmero en cuestin queda:
0011 1111 0100 0110
(no se complet con ceros porque su representacin en Hexadecimal son 0 que no
afectan al nmero final)
Se pasa a HEXADECIMAL y queda:
3F4616
Si el nmero fuera negativo el bit de signo es 1
El nmero quedar estructurado de la siguiente manera:
Signo Exponente Mantisa
SP 1 01111110 100011
Se deben agregar ceros hasta completar los 24 bits
El nmero en cuestin queda:
1011 1111 0100 0110
Se pasa a HEXADECIMAL y queda:
BF4616
Si se quiere expresar el nmero (-0,13671875) en flotante de 64 bits, el ni-
co cambio que hay que hacer, sera el exponente que ya no tiene 8 bits sino 11
bits quedando:
El nmero queda entonces estructurado de la siguiente manera:
Signo Exponente Mantisa
SP 1 01111111110 100011

_______________________________________________________________________________
32
____________________________________________________________________________

El nmero en cuestin queda:


1011 1111 1110 1000 1100
Se pasa a HEXADECIMAL y queda:
BFE8C16
Como se puede ver, el mismo nmero se puede representar en 32 o en 64 bits
32 bits 64 bits
-0,13671875 BF460000 BFE8C00000000000
Los ceros a la izquierda no son representativos, por lo que pueden o escri-
birse o no.
Este mtodo de tiene rangos de representacin los cuales no incluyen el
nmero 0 (cero). Se pueden representar nmeros muy prximos a 0 pero no in-
cluye este nmero.
El mayor mdulo que se puede expresar en doble precisin es 1,710 *
10308, con una precisin de 15 a 16 cifras (ver transformacin de fracciones de-
cimales a binarios). El nmero ms prximo a cero ser 1 * 10-309.
El mdulo mayor que se puede expresar en punto flotante (extended) es
1,10 * 104932.

2.8. CODIFICACIN ALFANUMRICA


Cuando se presiona una tecla cualquiera en la computadora, sta convierte
el carcter presionado en un conjunto bits. Para realizar esta transformacin se
utilizaron y se utilizan distintos cdigos.
Unos de los primeros cdigos fue el denominado FIELDATA este fue un c-
digo de 6 bits, el cual fue reemplazado por el cdigo ASCII (American Standard
Code for Information Interchange) que era un cdigo de 7 bits (tena 128 caracte-
res posibles), el mismo no poda representar por ejemplo los caracteres acentua-
dos.
Posteriormente apareci el cdigo EBCDIC que fue el primer cdigo de 8
bits y por ltimo aparece para el ambiente de PC el ASCII extendido que tambin
es de 8 bits (256 caracteres).
Con el uso de Windows NT y la aparicin de Windows 95, se creo un nuevo
cdigo denominado Unicode, el cual es un cdigo de 16 bits lo que permite am-
pliar de los 256 caracteres, a 65536. En donde los primeros 256 caracteres son
los mismos que los caracteres ASCII.
Este cdigo esta aprobado por el ANSI (American National Standards Institu-
te), el cual rige los estndares en informtica.
En todos los cdigos los primeros caracteres corresponden a cdigos no
representables como el correspondiente al Return o a la campanilla.

_______________________________________________________________________________
33
____________________________________________________________________________

Anexo: Tabla de Conversin


Decimal Binario Octal Hexadecimal
0 0000 00 0
1 0001 01 1
2 0010 02 2
3 0011 03 3
4 0100 04 4
5 0101 05 5
6 0110 06 6
7 0111 07 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10
17 10001 21 11
18 10010 22 12
19 10011 23 13
20 10100 24 14
21 10101 25 15
22 10110 26 16
23 10111 27 17
24 11000 30 18
25 11001 31 19
26 11010 32 1A
27 11011 33 1B
28 11100 34 1C
29 11101 35 1D
30 11110 36 1E
31 11111 37 1F
32 100000 40 20

RESUMEN

Se describieron 4 sistemas de numeracin: decimal, binario, hexadecimal y octal y


se ejemplificaron sus conversiones.
Se presentaron las diferentes formas de representar la informacin numrica en-
tera: mdulo y signo, complemento a uno, complemento a dos y exceso a dos. Se
definieron conceptos como el de desbordamiento (overflow), con ejemplos repre-
sentativos.

_______________________________________________________________________________
34
____________________________________________________________________________

PRCTICA DEL CAPTULO 2

1 - Pasar a base 2 los siguientes nmeros que se hallan en base 10:

18 25 251 465 255 -322 -176

,125 -0,625 ,3125 ,15625 ,78125 ,28125 ,53125

15,28125 78,03125 -62,90625 39,0625 129,84375

-23,5625 48,234375 54,609375 91,59375 143,96875

2- Pasar los siguientes nmeros de base 2 a base 10:

1101 10111 -101001 1011101 1001001 -11100111 100110001

0,10111 0,11011 0,10101 0,00101 0,10111 -,1011001 .1110011

111,101 1111,1011 1100,1101 11101,11011 10001,10101


110011.1001 101101,0101 1000111,101 1111,011001 100101,101101

3- Pasar en forma directa de base 10 a la base indicada.

25 5 347 8 653 6

976 16 3583 7 0,140625 8

4- Pasar en aplicando el Teorema Fundamental de la numeracin de la base indicada a


base 10.

51236 21304 20457

.54379 152.718 2C5A16

5- Pasar los siguientes nmeros decimales a la base indicada con un error menor o igual
al indicado
Nmero Base Error
0,267 2 0,001
52,38 2 0,0001
129,64 2 0,1
163,97 8 0,0001
954,62 16 0,0001

_______________________________________________________________________________
35
____________________________________________________________________________

6- Pasar a las bases indicadas usando la propiedad de la base de potencias de otra base:

32 8 2 F1 16 8 F1 16 2 A6,C32 16 8

73 8 16 1010 2 16 10,10 2 8 9B,52 16 4

7- Realizar las siguientes sumas:


1010 2 1001 2 1110 2
+ + +
0101 2 0110 2 1010 2

10110 2 11011 2 10010 2


+ + +
10101 2 00110 2 10110 2

7354 8 F1E5 16 3231 4


+ + +
1123 8 ABC116 2123 4

8- Realizar las siguientes restas:


10110 2 10101 2 11010 2
- - -
1101 2 10011 2 10111 2

F91F 16 0334 8 1060 8


- - -
0101 16 0137 8 1776 8

9- Realizar los siguientes productos.


0018 16 047 8 0018 18
x x X
100 16 010 8 010 18

10- Escribir en formato de 8 bits sin signo, los nmeros que estn expresados en base 10

12 35 143 136 243 171

67 98 189 214 275 369

_______________________________________________________________________________
36
____________________________________________________________________________

11- Pasar a base 10 los siguientes nmeros expresados como punto fijo sin signo (8 bits)

10100100 01101001 01001111 10101100

10011110 00000101 00111000 10011010

12- Escribir en formato de 8 bits con signo, los nmeros que estn expresados en base
10

67 -15 114 -114 243 49

-42 -76 138 -214 75 -39

13- Pasar a base 10 los siguientes nmeros expresados como punto fijo con signo (8 bits)

10100100 01101001 01001111 10101100

10011110 00000101 00111000 10011010

14- Escribir en formato de 16 bits sin signo, los nmeros que estn expresados en base
10

127 1615 56134 23103 243 7459

61356 9854 27536 4136 78654 -186

15- Pasar a base 10 los siguientes nmeros expresados como punto fijo sin signo
(16 bits)

1000000000101000 0110100000010101

1001111011010111 0000000000010101

16- Escribir en formato de 16 bits con signo, los nmeros que estn expresados en base
10

5432 -9564 56134 -22784 243 -6743

-1326 -39854 -17836 -4136 78654 25469

17- Pasar a base 10 los siguientes nmeros expresados como punto fijo con signo
(16 bits)

1000000000101000 0110100000010101

1001111011010111 0000000000010101

_______________________________________________________________________________
37
____________________________________________________________________________

18- Escribir en 8 bits, en complemento a 2.

-57 -13 -154 -214 -243 194

-241 -163 -38 -121 -157 -123

-10102 -F1 16 3074 8 -1100 2 -513 8 -37 16

19- Pasar a base 10 los siguientes nmeros expresados en complemento a 2 (8 bits)

10100011 01101101 01010011 10100010

10110110 00110101 01011000 10011011

20- Escribir en 16 bits, en complemento a 2.

-1257 -31435 -8127 -62347 -243 -35289

28241 -163 -9817 -121 -5002 -68963

-10102 -2FA7 16 -7624 8 -1100 2 -7596 8 -A31 16

21- Pasar a base 10 los siguientes nmeros expresados en complemento a 2 (16 bits)

1000101001101000 0110101101010010

1110011101011011 0010110000010101

22- Escribir como complemento a dos (en 32 bits):

- 93 10 - FF 16 - 10 10 - 31 10

F3 16 16 16 -A94B 16 -1101010 2

23- Escribir en 8 bits, con notacin exceso.

57 -13 154 -214 243 194

-241 -163 38 -121 157 -123

10102 -F1 16 3074 8 -1100 2 -513 8 -37 16

24- Pasar a base 10 los siguientes nmeros expresados en exceso (8 bits)

10100100 01101001 01001111 10101100

10011110 00000101 00111000 10011010

_______________________________________________________________________________
38
____________________________________________________________________________

25- Pasar a base 10 los nmeros (16 bits complemento a dos):

1) 1000000000101000 2) 1110100000010101

3) 1001111011010111 4) 1000000000010101

26 - Realizar las siguientes restas en base 2. Los nmeros tienen signo y se expresaron
en 8 con signo.
01001000 10011001 10000110
- - -
00100101 00100111 10011000

27- Realizar las siguientes operaciones por complemento a la base (los nmeros se en-
cuentran sin formato)
10011 1012 011101012 001000112
- - -
001100112 000111112 000110012

28- Escribir en base 2 y operar por complemento a la base

5349 10 F1F0 16 -3511 10


- + -
317F 16 -34312 10 39F1 16

29- Expresar en punto flotante simple precisin los nmeros siguientes expresados en
base 10

165,625 -165,625 7564618909631 11659,84375


93,16794382512396283 93,16794382512396284 -9756.609375 0.0625
-6257.234375 0.005859375 -0.005859375 -675.125

30- Expresar en base 10 los siguientes nmeros dados en formato de Punto Flotante
Simple Precisin

35C1F 93700D ECF 3ED


7A72C C2E45 39591 4B9DE19F

31- Expresar en Punto Flotante Doble Precisin los siguientes nmeros expresados en
base 10

165,625 -165,625 7564618909631 11659,84375


93,16794382512396283 93,16794382512396284 -9756.609375 0.0625
-6257.234375 0.005859375 -0.005859375 -675.125

_______________________________________________________________________________
39
____________________________________________________________________________

32- Expresar en base 10 los siguientes nmeros que estn en formato de punto flotante
doble precisin

351CF 937D12 ECFE2 3ED95


7A79C C2ED5 39591 4B94E19F

33 Indicar qu nmero decimal, representa los siguientes nmeros expresados como


punto flotante (simple o doble precisin)

9EC1935F 16 CD940103 16

3EAC1000 16 A E8 F5000 16

_______________________________________________________________________________
40
____________________________________________________________________________

3
INTRODUCCIN A PASCAL
Se resean las nociones bsicas de una buena programacin, siguiendo los li-
neamientos de Joyanes Aguilar (1997).
Se presentan las caractersticas bsicas del lenguaje Pascal y se definen los con-
ceptos fundamentales para poder construir los primeros programas utilizando es-
tructuras de tipo secuencial.

3.1. LA PROGRAMACIN
Bsicamente los pasos necesarios para la creacin de un software de cali-
dad son:

1. Anlisis del problema


Es el proceso de recopilacin de los requisitos, tanto del sistema como
del software, que se debern documentar, y luego sern revisados con
el cliente.

2. Diseo del algoritmo


El diseo es el proceso por el cual se traducen los requisitos en una
representacin del software, enfocndose sobre atributos tales como:
la arquitectura del software, el detalle procedimental y la caracteriza-
cin de la interface. Al igual que los requerimientos, el diseo se debe
documentar.

3. Codificacin del programa (en un lenguaje de programacin)


El diseo se debe traducir en una forma legible para la mquina. Si el
diseo se realiza en una forma detallada, la codificacin se puede rea-
lizar en forma automtica.

4. Prueba
Pasada la etapa de codificacin se disearn y ejecutarn un conjunto
de pruebas que aseguren que la/s entrada/s definida/s produce los re-
sultados requeridos.

5. Mantenimiento
Con el tiempo el software sufrir modificaciones, las cuales pueden ser
debido a la deteccin de errores que no se descubrieron en la etapa de
prueba, o porque el cliente solicita nuevas funciones, o porque se reali-
za un cambio de tecnologa.

_______________________________________________________________________________
41
____________________________________________________________________________

6. Desinstalacin
Aunque en general no se hace, el desarrollador de software es el res-
ponsable de su desinstalacin, y de no dejar basura en el sistema, ni
afectar a otros sistemas .

3.2. DEFINICIN DE ALGORITMO

Un algoritmo es una secuencia ordenada de pasos (sin ambigedades), re-


petible, que es solucin de un determinado problema.
Las caractersticas fundamentales que debe cumplir todo algoritmo son:
Debe ser preciso e indicar el orden de realizacin de cada paso.
Debe estar definido (si los pasos se repiten n veces se debe obtener
siempre el mismo resultado).
Debe ser finito (debe tener un nmero finito de pasos)
Es independiente del lenguaje de programacin que se utilice.
Desarrollar un algoritmo significa especificar una solucin a un problema
concreto. Existen diferentes formas de representacin de algoritmos de las cuales
se seguirn las siguientes: el uso de pseudocdigo y los diagramas de flujo de
tipo estructurados o N-S.
Para el diseo de los programas se deber emplear una sintaxis que sea
cercana al lenguaje humano que permita un seguimiento de los pasos del algorit-
mo y que ayude a detectar los errores para poder corregirlos antes de codificar en
el lenguaje de programacin.
La definicin de un algoritmo debe describir tres partes fundamentales: En-
trada, Proceso, Salida. Una vez diseado el proceso (algoritmo), se debe analizar
qu pasa con el uso de determinados datos de prueba, observando las salidas
que se obtienen con dichos datos, se debe comprobar que la especificacin del
algoritmo sea la solucin y, en caso de ingresar datos errneos que se muestren
mensajes de advertencia al usuario.
La estrategia ms comn para desarrollar algoritmos es la denominada divi-
de y vencers, que consiste en descomponer el problema principal en un conjun-
to de problemas ms simples, que a su vez se pueden descomponer hasta llegar
a un nivel en que los problemas sean resolubles mediante acciones simples (o
atmicas) de la computadora.
Este proceso se denomina de refinamientos sucesivos, y es parecido al
denominado diseo descendente, en que a partir del problema general se des-
ciende dividiendo el mismo y a la vez simplificando hasta obtener tareas simples.

3.3. EL LENGUAJE PASCAL

Es un lenguaje de alto nivel, fuertemente tipeado (o tipado) ya que se debe


definir el tipo de todos los datos, es de propsito general, compilable, estructurado
y procedimental.
Un lenguaje compilable significa que para los programas se debern llevar a
cabo los siguientes pasos:
Ser escrito en un editor de textos (en un formato ASCII).

_______________________________________________________________________________
42
____________________________________________________________________________

Luego, lo tomar el Compilador que comprueba que todas las ins-


trucciones del programa estn escritas siguiendo la sintaxis de Pas-
cal y si todo est correcto lo traduce a lenguaje de Mquina (Assem-
bler).
Posteriormente pasa al Linkeador (o montador), que une los distin-
tos mdulos que pueden componer un programa, unifica los cdigos
de los distintos subprogramas y de los datos, pasndolo por ltimo a
cdigo de mquina.
Para que un programa fuente (.pas) en Pascal (o en otro lenguaje similar)
pueda ser ejecutado deber pasar sin error por los pasos mencionados anterior-
mente de manera de obtener un programa ejecutable (.exe).

3.4. TIPOS DE DATOS


Los diferentes objetos de informacin con los que un programa Pascal traba-
ja se conocen en conjunto como: datos. Todos los datos tienen un tipo asociado a
ellos. Un dato puede ser un simple carcter, tal como 's', un valor entero tal como
35 un nmero real tal como 1415,92.
Una operacin tal como la de suma no tiene sentido realizarla con caracte-
res, sino slo con nmeros. Por consiguiente, si el compilador detecta una opera-
cin de suma de dos caracteres, normalmente producir un error, incluso entre
tipos numricos diferentes. La operacin de suma se puede almacenar de modo
distinto en cada caso, ya que si se usan nmeros enteros reales, ellos se alma-
cenan de modo diferentes. A menos que el programa conozca el tipo de datos, si
es un valor entero a real, no puede ejecutar correctamente la operacin de suma
La asignacin de tipos a los datos tiene dos objetivos principales: el de de-
tectar errores de operaciones en programas el de determinar cmo ejecutar las
operaciones.
Pascal se conoce como lenguaje "fuertemente tipeado" (strongly typed)
de tipos fuertes. Esto significa que todos los datos utilizados deben tener sus tipos
declarados explcitamente ya que el lenguaje limita la mezcla de tipos en las ex-
presiones.
Pascal detecta muchos de los errores de programacin antes que el progra-
ma se ejecute. La ventaja de los lenguajes de tipos fuertes (ricos en tipos de da-
tos) es que se gasta menos esfuerzo en la depuracin de programa, ya que el
compilador detecta muchos de esos errores.
El tipo de un dato determina la naturaleza del conjunto de valores que puede
tomar una variable. Otro concepto importante a tener en cuenta es la representa-
cin interna de los nmeros, al menos el espacio de memoria ocupado por una
variable de un tipo dado.
La unidad de medida de la capacidad de memoria, como ya se ha visto es el
byte (octeto): un byte se compone de ocho cifras binarias (bits) que pueden tomar
cada una el valor 0 1.
A los efectos de simplificar el uso de los datos compuestos, en el desarrollo
de los algoritmos pueden definir familias de variables cuyos valores se compon-
gan de dos o ms valores que bien pueden ser elementales o compuestos. En
este ltimo caso necesario definir tipos de datos compuestos o estructurados,

_______________________________________________________________________________
43
____________________________________________________________________________

y luego las variables cuyos valores han de tener tales composiciones. En general
se habla de arreglos cuyos componentes se puede referenciar indicando su posi-
cin ya que el nombre general es el mismo. En la tabla 3.1 se observa la clasifica-
cin de los tipos de datos en simples y compuestos.
En algunos casos es necesario definir variables cuyos valores slo son los
que se especifiquen en un determinado subconjunto. Las restricciones slo pue-
den ser por definicin de rangos de valores en conjuntos ordenados, como los
enteros y los caracteres.
De este modo se pueden tener datos mltiples con estructuras complejas
que se referencia con el nombre de la estructura pero indicando la posicin. Este
es el caso de los arreglos que sirven para definir estructuras de datos compuestas
por muchos valores del mismo tipo, que a su vez pueden ser simples o compues-
tos.
A veces se requiere restringir el dominio de valores de una variable de tipo
entero o carcter, en este caso de puede definir un tipo subrango.

Integer
Boolean
Ordinales Char
Tipos Simple Enumerado
Subrango

No Ordinales Reales

Datos Estticos Tipos Cadena String

Tipos de Datos Array


Registro
Tipos Estructurado
Conjunto
Archivo

Tipos procedimien- Procesos


tos

Datos Dinmicos Tipos Punteros


Tabla 3.1: Tipos de datos
3.4.1. Tipos Enteros

Tipo Rango Formato


byte 0 .. 255 1 Byte
integer -32768 .. 32767 2 Bytes
longint -247483648 .. 24748367 4 Bytes
shortint -128 .. 127 1 Byte
word 0 .. 65535 2 Bytes
Tabla 3.2: tipos de datos enteros

_______________________________________________________________________________
44
____________________________________________________________________________

En la tabla 3.2 se enumeran los tipos de datos enteros con su rango de validez y
su forma de almacenamiento (como se ha visto en el captulo ante-
rior)
Byte y Word se usan para valores enteros sin signo (formato binario puro), alma-
cenados en 8 y 16 bits respectivamente.
ShortInt, Integer y LongInt se usan para valores con signo (formato de comple-
mento a 2) almacenados en 8 respectivamente., 16 y 32 bits
El tipo integer se almacena en memoria como 2 (dos) bytes, el bit de mayor peso
de los dos bytes es el bit de signo.

3.4.2. Nmeros Reales

Tipo Rango Cifras bytes


-39 38
real 2.9x10 .. 1.7x10 11-12 6
single 1.5x10-45 .. 3.4x1038 7-8 4
double 5.0x10-324 .. 1.7x10308 15-16 8
extended 1.9x10-4932 .. 1.1x104932 19-20 10
comp -(263 +1) .. 263 +1 19-20 8
Tabla 3.3: Tipos de datos reales
Para valores reales se usan formatos estandarizados por la IEEE almacena-
dos en 4, 6, 8, 10. El formato comp es en realidad un tipo entero 3.3.
Las constantes de cualquiera de estos tipos se escriben en decimal, aa-
diendo siempre el punto decimal, y si los valores fueran negativos van precedidos
del signo menos.

3.4.3. Tipos carcter (Char)


El tipo char es un tipo de datos que puede contener un caracter correspon-
diente al denominado al cdigo ASCII ampliado.
La asignacin de un carcter a una variable de tipo Char se puede realizar
de distintas formas. La primera asignando el carcter entre comillas, como se
puede ver en el ejemplo.
Ejemplo:
K e g - 9
Existen adems otras formas de asignar estos valores a una variable, debido
a que hay valores que no corresponde a un smbolo, por ejemplo el sonido por
parlante o la orden de cierre de un archivo. Para estos casos se puede asignar
por medio de la funcin Chr, o anteponiendo el smbolo numeral (#) al valor AS-
CII correspondiente.

#68 Chr(68) D
#26 Chr(26) (^Z cierre del archivo)
#7 Chr(7) Sonido (bip)
#10 Chr(10) Avance de lnea
Pascal posee la funcin Ord, la cual dado un carcter ASCII o una variable
de tipo Char devuelve el nmero entero correspondiente a su posicin en la tabla
ASCII.
_______________________________________________________________________________
45
____________________________________________________________________________

3.4.4. Tipos lgicos (boolean)


El tipo lgico (boolean) es al igual que el tipo caracter, parte del ISO Pascal
estndar. El tipo lgico puede tomar slo dos valores posibles: true (verdadero) y
false (falso).
Al igual que el tipo char, el tipo boolean es un tipo ordinal, lo que significa
que tiene un nmero fijo de valores posibles que existen en un orden definido.
Una variable lgica ocupa slo un byte en memoria. Los valores lgicos son de
tipo ordinal, y sus relaciones son:

false < true

3.4.5. Tipos de datos definidos por el usuario


Los tipos de datos vistos hasta ahora son de tipo simple, son predefinidos
por Pascal y estn listos para utilizar.
Sin embargo, uno de los aspectos ms potentes de Pascal es su capacidad
para crear estructuras de datos a partir de estos datos simples. Los datos estruc-
turados aumentan la legibilidad de los programas y simplifican su mantenimiento.
Los tipos de datos definidos por el usuario se clasifican en:
Enumerado
Subrango
Registros
Arrays
Conjunto (set).
Archivo (file).
Puntero
Algunos de estos tipos de datos se vern ms adelante..

3.4.6. Tipo cadena (string)


Un tipo string (cadena) es una secuencia de caracteres, que pueden ser cero
ms caracteres correspondientes al cdigo ASCII, escritos en una lnea sobre el
programa y encerrada entre apstrofes.
Para asignar una cadena, la misma debe estar encerrada entre comillas
simples. Una cadena nula se debe especificar usando dos comillas seguidas ().
El tratamiento de cadenas es una caracterstica muy potente de Turbo Pas-
cal que no tiene el ISO Pascal estndar, aunque tiene mucha similitud con su tipo
packed array.
Ejemplos:
'Algoritmos' 'Computacin 75-01' :

Notas:
Una cadena que est vaca se denomina cadena nula y es aquella sin nada entre
los apstrofes.
El nmero de caracteres que est entre los apstrofes determina la longitud de la
cadena.

_______________________________________________________________________________
46
____________________________________________________________________________

3.5. CONSTANTES
Una constante es un valor que no se puede cambiar durante la ejecucin del
programa, recibe un valor en el momento de la compilacin del programa y este
valor no puede ser modificado.
Las constantes pueden ser:
constantes literales
constantes con nombres declaradas
constantes expresin (slo en la versin 5.0)
constantes de tipos (tipeadas)
Las constantes se deben declarar antes de su uso y pueden ser enteras
reales, caracteres cadenas de caracteres, conjuntos arrays, e inclusive de tipo
enumerado.
3.5.1. Constantes literales
Una constante literal es un valor de cualquier tipo que se utiliza como tal.

Espacio := Vinicial * Tiempo + 1/2 * Aceleracin * Tiempo * Tiempo


1 y 2 son constantes literales de valores 1 y 2.

3.5.2. Constantes con nombres


Son constantes que se identifican por un nombre y el valor asignado.

Formato
const
identificador = valor;

Ejemplos:

const
entero = 16 { asigna un entero }
e = 2.71828183; { asigna un valor real}
Enter = #10#13; { carcter de control }
A = A; { carcter }
Direccion = $A4; { representa valor hexadecimal }

En Pascal estndar, la declaracin de constantes se sita inmediatamente


despus de la cabecera Program. En Turbo Pascal no es obligatoria la situacin
anterior, pero si recomendable.

3.6. VARIABLES
Las variables son objetos cuyo valor puede cambiar durante la ejecucin del
programa. El cambio se produce mediante sentencias ejecutables.
En un programa en Pascal todas las variables deben ser declaradas an-
tes de ser usadas.
Declaraciones:

var
_______________________________________________________________________________
47
____________________________________________________________________________

variable1: tipo1;
variable2: tipo2;
.........................
.........................
variableN: tipoN;

Ejemplos:
Padron :Integer; { nmero de padrn }
Apellidos : string [30]; { apellidos del alumno }
Nombres : string [35]; { nombres del alumno }
Edad : Integer; { edad del alumno }
Carrera : char;
Nota1, Nota2, Nota3: Integer;
Promedio : real; { Promedio de notas }
Regular : Boolean; { Condicin del alumno }

Recomendaciones:
Una buena forma de programacin consiste en usar nombres de varia-
bles significativas que sugieren lo que stas representan, ya que esto permi-
te que el programa sea ms legible y de ms fcil de comprensin.
Tambin es recomendable incluir breves comentarios que indiquen
cmo se utiliza cada variable.
Un comentario es cualquier frase encerrada entre llaves { } bien entre
signos (*, *)

3.7. LAS SENTENCIAS


Las sentencias describen las acciones algortmicas que deben ser ejecuta-
das En general las sentencias se clasifican en: ejecutables, que son las que es-
pecifican operaciones de clculos aritmticos y entradas/salidas de datos, y en no
ejecutables que no realizan acciones concretas, pero ayudan a la legibilidad del
programa y no afectan a la ejecucin del mismo. Las sentencias ejecutables apa-
recen en el cuerpo del programa a continuacin de la palabra reservada Begin.

3.7.1. LA SENTENCIA DE ASIGNACION


La sentencia de asignacin se utiliza para asignar (almacenar) valores va-
riables. La asignacin es una operacin que sita un valor determinado en una
posicin de la memoria. La operacin de asignacin se demuestra en pseudoc-
digo con el smbolo '', para denotar que el valor situado a su derecha se alma-
cena en la variable situada a la izquierda.
Formato:
Variable expresin

variable identificador vlido declarado anteriormente


expresin variable, constante una expresin frmula a evaluar
En Pascal el operador '-' se sustituye por el smbolo := , que se denomina
operador de asignacin

_______________________________________________________________________________
48
____________________________________________________________________________

Variable := expresin
El valor de expresin se asigna a la variable:
Se debe tomar la precaucin de que el tipo de expresin debe ser del
mismo tipo que el de la variable.
Ejemplos:
Nota2 := 8; 8 se asigna a la variable Nota2
Nombres := 'Luis Antonio ; se asigna Luis Antonio a la variable Nombres
Regular :=true; se asigna el valor true. (verdadero) a Regular
Nota1 := Nota2 + 5; se le asigna a Nota1 valor de la variable Nota2
incrementado en 5.
Carrera := L;
Carrera := #76; en ambos ejemplos se le asigna la letra L a la variable
Carrera

3.7.2. Operaciones especiales de asignacin


Contador : un contador es una variable de algn tipo entero, que cuando se eje-
cuta se incrementa en una unidad en una cantidad constante.
Contador := 8
Contador := Contador + 1;
J = 0;
J := J + 3;
Al ejecutar las sentencias de asignacin, los nuevos valores son:
Contador = 8 + 1 = 9 y
J = 0 + 3 =3.
Ms adelante se ver que las siguientes sentencias son equivalentes:
Inc(Contador); Contador := Contador + 1;
Acumulador: un acumulador es una variable que se incrementa en una cantidad
variable.
Acum := Acum + S; S es una variable del mismo tipo que Acum
Si Acum vale 22.32 y S vale 8.26, el nuevo valor de Acum ser 30.58

3.8. EXPRESIONES Y OPERACIONES ARITMTICAS


Las variables y constantes estudiadas anteriormente se pueden procesar uti-
lizando operaciones y funciones adecuadas a sus tipos. En el prrafo siguiente,
se vern las expresiones y operaciones que se utilizan con datos numricos.

3.8.1. Operadores aritmticos: +, -, *, /


Los operadores aritmticos (+,-, *) pueden ser utilizados con tipos enteros
reales. Si ambos son enteros, el resultado es entero; pero si alguno de ellos es
real, el resultado es real.
14 + 27 = 41
14 + 27.0 = 41.0

_______________________________________________________________________________
49
____________________________________________________________________________

3.8.2. Operadores aritmticos div y mod


Slo se pueden utilizar con enteros, siendo la salida otro entero. Div de-
vuelve el valor de la divisin entera y Mod da el resto de la divisin entera.
31 DIV 7 4
31 MOD 7 3
Las reglas de las expresiones para respetar las prioridades son las mismas
que en lgebra.

3.9. OPERACIONES DE ENTRADA/SALIDA


Los datos se pueden almacenar en la memoria de tres formas diferentes:
asociados con constantes, asignados a una variable con una sentencia de asig-
nacin una sentencia de lectura. Ya se han visto las dos primeras formas.
La tercera forma es la sentencia de lectura, que es la ms indicada cuando
se desea manipular datos diferentes cada vez que se ejecute el problema. Ade-
ms, la lectura de los datos permite asignar valores desde dispositivos y de archi-
vos externos por ejemplo, un teclado una unidad de disco, denominndose ope-
racin de entrada de lectura.
A medida que se realizan los clculos en un programa, se necesitan visuali-
zar los resultados Esta operacin se conoce como operacin de salida de escri-
tura. En los algoritmos las instrucciones de entrada/salida escritas en pseudoc-
digo son:

leer (listas de variables entrada) leer (v. z, x)


escribir (listas de variables salida) escribir (a, b, c)
En Pascal todas las operaciones de entrada/salida se realizan ejecutando
unidades de programa especiales denominadas procedimientos de entrada/salida
que forman parte del compilador Pascal y sus nombres son identificadores estn-
dar:
Procedimientos de entrada Read ReadLn
Procedimientos de salida Write WriteLn

La escritura de resultados (salida)


Para ser tiles, los programas deben proporcionar informacin de la salida
(resultados). Esta salida toma la informacin de la memoria y la sita (almacena)
en: la pantalla, en un dispositivo de almacenamiento (disco duro flexible), en
un puerto de E/S (puertos serie para comunicaciones impresoras, normalmente
paralelos).

3.9.1. Procedimiento WriteLn


El propsito de WriteLn es escribir (visualizar) informacin en la pantalla
Formato
WriteLn (tem, tem..);

_______________________________________________________________________________
50
____________________________________________________________________________

tem es el objeto que desea visualizar: un valor literal (entero, real, un carc-
ter una cadena, un valor lgico (True False), una constante con nombre,
una variable, una llamada a un funcin.
Cuando se ejecuta el procedimiento WriteLn, se visualizan todos los elemen-
tos en el orden dado y en la misma lnea. Al terminar de visualizar toda la lnea, el
cursor avanza (salta) al comienzo de la lnea siguiente.

3.9.2. Procedimiento Write


Como se ha dicho, despus de ejecutar el procedimiento WriteLn, el cursor
avanza (salta) al comienzo de la siguiente lnea. Si se desea que el cursor quede
en la misma lnea se debe utilizar el procedimiento Write.

3.9.3. Formatos de salida


Turbo Pascal permite controlar, en cierta medida las instrucciones de salida
que presentan resultados, ya que es posible especificar el nmero de posiciones
del campo de escritura y para los nmeros reales es posible precisar el nmero
de decimales deseado.
Se pueden utilizar especificadores de formato de campo para definir dicho
ancho.

x := 265.7892
WriteLn(x :10 :4); 265.7892
WriteLn(x :10 :2); 265.79
WriteLn(x :6 :4); *********
X := 14;
WriteLn(x :4); 14
X := AB
WriteLn(x :4); AB

Lo anteriormente expresado es vlido para el proceso WRITE

3.9.4. Impresin de los resultados (salidas a impresora)


Las salidas en la pantalla se obtienen mediante los procedimientos Write y
WriteLn. Si se desea enviar resultados a otro dispositivo, es preciso especificar el
nombre del archivo como primer argumento de las instrucciones Write y WriteLn.
Para poder realizar la operacin de enviar salidas a la impresora, en lugar de a la
pantalla, se necesita la unidad Printer.
Printer define un archivo llamado lst y asocia este archivo al puerto de co-
municaciones LPT1 (impresora) del DOS. Se pueden enviar datos a la impresora,
incluyendo lst en las instrucciones Write y WriteLn.
Es preciso, sin embargo, definir previamente en la seccin uses la unidad
printer.
Ejemplo:
uses
Printer
var
.........................

_______________________________________________________________________________
51
____________________________________________________________________________

begin
.........................
Write (Lst, 'el .......................... )
WriteLn (Lst, 'pl............ )
.........................
end.

Este programa imprime en la impresora.


Para escribir en la impresora, se deber incluir en el programa la lnea
uses printer
y luego se debe aadir la palabra lst en cada sentencia Write/WriteLn

3.9.5. La entrada de datos (lectura)


Los datos que se pueden leer son: enteros, reales, caracteres cadenas. No
se puede leer un boolean un elemento de tipo enumerado.
Los datos estructurados, arrays, registros conjuntos, no se pueden leer
globalmente y se suele recurrir al diseo de procedimientos especficos.
Los procedimientos de lectura son Read y ReadLn.
Formato
Read (var1, var2, ...);
ReadLn (var2, var2, ...);
var es igual que para Write
La entrada de datos desde el teclado se hace de a un valor por vez y las ins-
trucciones ReadLn y Read esperan hasta que se pulse la tecla ENTER, antes de
asignar un valor a la variable.
Ejemplo:
ReadLn (Apellidos);
ReadLn (Nota1);
Read (Carrera);
El usuario debe introducir los datos de entrada en el orden en que aparecen
en las instrucciones Read.

3.9.6. Diferencias entre Read y ReadLn


En Read, despus de pulsar la tecla ENTER, el cursor permanece inmedia-
tamente despus del ltimo carcter introducido. En ReadLn, el cursor se enva al
principio de la siguiente lnea, tras pulsar la tecla ENTER. En general no se acon-
seja ingresar ms de un dato por instruccin.

3.10. OPERACIONES BASICAS DE UTILIDAD


Se describirn dos utilidades:
Clrscr limpieza borrado de la pantalla
GotoXY movimiento del cursor

_______________________________________________________________________________
52
____________________________________________________________________________

3.10.1. El borrado o limpieza de la pantalla: Clrscr


Las rdenes procedimientos: Clrscr y GotoXY, pertenecen ambas a la
unidad Crt, y se volvern a ver ms adelante en forma detallada.
La orden (procedimiento) ClrScr permite borrar o limpiar la pantalla de la
ventana actual y sita el cursor en la esquina superior izquierda. Turbo Pascal
considera las coordenadas de la esquina superior izquierda: 1,1.
Para poder utilizar Clrscr, se debedeclarar en la clusula uses la unidad C
que podr utilizar a partir de ahora Crt.

3.10.2. Movimiento del cursor


La orden (procedimiento) GotoXY mueve el cursor a la posicin x, y, donde x
es la columna (contando de izquierda a derecha) e y es la fila (contando de arriba
hacia abajo).

GotoXY (x, y)

La esquina superior izquierda es 1.1. GotoXY requiere el uso de la unidad


Crt.
Se aconseje utilizar en todos los programas la unidad Crt, mediante la clu-
sula uses; ello permite el uso de Clrscr, GotoXY, y otras rutinas de utilidad.

3.11. EL ESTILO DE PROGRAMACIN


En Pascal los programas se dividen en dos secciones: la primera seccin se
denomina seccin declarativa donde se declara el nombre del programa y los re-
cursos que habrn de utilizarse en el mismo (constantes, variables y subprogra-
mas), y la seccin algortmica que es el programa propiamente dicho.
Cuando se utilicen subprogramas, ya sean procedimientos o funciones, s-
tos se estructurarn de igual forma que los programas principales.
Si bien el buen estilo de programacin es una de las habilidad muy importan-
te en los programadores, que se adquiere con la prctica.
Un programa que tenga un buen estilo ser ms fcil de leer, de corregir (si
tuviera errores) y de mantener o actualizar.
Se pueden enumerar una serie de reglas que se recomiendan seguir desde
el principio en el aprendizaje de la programacin, aunque como ya se dijo el buen
estilo se logra con la prctica de la programacin.

3.11.1. El sangrado o indentacin


Aunque los programas escritos en Pascal no exigen reglas estrictas en su
escritura, es habitual y recomendable realizar el sangrado o indentacin en los
bloques de instrucciones y en las unidades de programas fundamentales

3.11.2. Los comentarios


Permiten aumentar la legibilidad de un programa. Un comentario es un texto
explicativo, situado en el programa que se ignora por el compilador. Los comenta-
rios no se consideran (son transparentes) en la compilacin y ejecucin, pero son

_______________________________________________________________________________
53
____________________________________________________________________________

de gran importancia para el anlisis, puesta a punto y mantenimiento del progra-


ma.
Los comentarios son parte de la documentacin de un programa, ya que
ayudan al programador y a otras personas a la comprensin del mismo. En algu-
nos programas los comentarios ocupan ms espacio que las instrucciones ejecu-
tables.
Formato:
{comentario}
(* comentario *)
Se pueden utilizar cualquiera de los dos formatos que se describen arriba.
Los comentarios pueden aparecer en una lnea de programa, al final de una lnea
despus de una sentencia, dentro de una sentencia. Si bien se deben incluir en
las diferentes partes de un programa, stos deben ser significativos, por lo que se
conviene que se deben evitar comentarios superfluos redundantes, como:
Nota3 := Nota2 Nota1 {el valor de Nota2 Nota1 se asigna a Nota3}
cuyo significado es evidente.
Es conveniente poner comentarios en la cabeza del programa que al menos
especifiquen:
el nombre del programador,
la fecha de la versin actual,
una breve descripcin de lo que hace el programa
El siguiente programa ilustra modos de especificar comentarios.

program Alumnos;
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
{programa escrito por: Juan Prez }
{Fecha: }
{Version: }
{Nombre del archivo: }
{Este programa permite almacenar datos de alumnos}
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
const
Es posible anidar comentarios con diferentes tipos de delimitadores, pero no
es posible con delimitadores del mismo tipo como se observa en el ejemplo deba-
jo.
{un comentario puede extenderse
en varias lneas pginas de programas}
{comentarios anidados (* como este caso *)}

3.11.3. El uso de las lneas en blanco


Permiten tambin hacer ms legible el cdigo y consiste en dejar lneas en
blanco entre las partes importantes del programas. Por ejemplo se pueden dejar
lneas en blanco entre la cabecera y la seccin de declaraciones, entre sus dife-
rentes partes, entre los procedimientos y funciones, entre s y respecto del pro-
grama principal, etc.

_______________________________________________________________________________
54
____________________________________________________________________________

3.11.4. La eleccin de los nombres de los identificadores

Las variables, las constantes, los nombres de subprogramas y de los pro-


gramas deben ser significativos para orientar al usuario sobre lo que representan.
Tanto x, As, JJ no son identificadores significativos. Se pueden observar los si-
guientes ejemplos:

Promedio := (Nota1 + Nota2 + Nota3)/3;


Promovido >= 7;
Apellidos := 'Sanchez';

Cuando hay nombres, es conveniente que los mismos comiencen con una
letra mayscula, y si son largos es preferible utilizar palabras compuestas con
subrayado.

3.11.5. El uso de los puntos y comas


Antes de las palabras end y until se puede suprimir el separador punto y
coma. Los puntos y comas superfluos o espurios pueden afectar el funcionamien-
to de un programa.

3.11.6. Las lneas de programa superiores a los 80 caracteres


El editor Turbo permite escribir lneas de hasta 126 caracteres de longitud,
aunque en la pantalla slo se ven 80 columnas a la vez.
Se puede desplazar el texto a izquierda y derecha, utilizando las teclas
HOME (Inicio), END (Fin) y de movimiento de cursor.

3.11.7. El alineado de operadores o separadores en lneas consecutivas


Cuando en varias lneas consecutivas se usa un mismo operador (o separa-
dor), es conveniente alinear estos smbolos utilizando blancos si fuera necesario,
comos e observa en al ejemplo debajo.

Nota1 := 4;
Nota2 := 7;
Nota3 := 8;

3.11.8. El uso de blancos no significativos


Es recomendable poner un espacio en blanco a cada lado de un
operador como se ve en el ejemplo:
Promedio := (Nota1 + Nota2 + Nota3)/3;
representa un blanco

Tambin se aconseja dejar un espacio luego de los signos de pun-


tuacin: coma, punto y coma, dos puntos.

3.11.9. Otras reglas de escritura


Es aconsejable poner cada sentencia en una lnea distinta.

_______________________________________________________________________________
55
____________________________________________________________________________

Las palabras reservadas del Pascal: program, const, var, proce-


dure, function, uses, begin, end deben ir en lneas distintas.
Si una sentencia contina en otra lnea, se deben sangrar la(s) li-
nea(s) siguientes.
Se recomienda insertar lneas en blanco antes de la seccines del
programa: const, var, uses, procedure, function y el begin del
programa principal; y en cualquier segmento bloques de senten-
cias significativas.
Es conveniente dejar espacios entre los elementos de una sentencia
para hacerla ms legible.

3.12. LA PUESTA A PUNTO DE LOS PROGRAMAS


En esta seccin se incluirn algunas tcnicas y recomendaciones para la re-
solucin de problemas y para el diseo de programas. Se enumerarn algunos
errores tpicos de programacin y se remarcar lo que se denomina el estilo de
programacin.

3.12.1. La tcnicas de programacin (diseo de programas).


Los programas no pueden considerarse correctos hasta que han sido valida-
dos utilizando un rango amplio de datos de prueba.
Los programas deben ser legibles y comprensibles. Como ya se ha dicho, se
deben utilizar comentarios significativos que describan el propsito de un progra-
ma segmentos de programas, as como elementos importantes de programas,
variables, funciones, etc. Se recomienda:
1. Hay que etiquetar (poner nombre, identificar) todas las salidas pro-
ducidas por un programa.
2. Los programas deben ser eficientes, por este motivo, hay que evitar
los clculos innecesarios, como por ejemplo calcular dos veces
cualquier variable.
3. Los programas deben ser relativamente fciles de modificar (flexi-
bles) para solucionar un problema similar sin necesidad de cambiar
mucho el programa. Se debe tener en cuenta que el uso de las cons-
tantes limita la flexibilidad.
4. Antes de utilizar cada variable, hay que asegurarse de que haya sido
inicializadas por el programa.
5. En programacin interactiva, se deber incluir siempre una lnea con
un mensaje de aviso al usuario cuando se desee introducir datos.
6. Los programas deben en general mostrar los datos que ingresan
(siempre "eco").

3.12.2. Pasos a seguir antes de escribir un programa en Pascal


Primero, se debe realizar el anlisis del programa, es decir la entrada, la sa-
lida y el proceso, y a partir de esto, luego se debe
Desarrollar el diseo del algoritmo con preferencia en seudocdigo. Un seu-
docdigo significa desarrollar los pasos que debe ejecutar el programa en lengua-
je coloquial.

_______________________________________________________________________________
56
____________________________________________________________________________

3.12.3. Algunos errores tpicos de programacin

Debajo se enumeran algunos de los errores ms habituales que comenten los


programadores novatos, a fin de tenerlos en cuenta al escribir los programas.
1. Las constantes reales deben tener al menos un dgito antes y al me-
nos un dgito despus del punto decimal.
2. Las constantes de cadena deben estar encerradas entre apstrofes
(simples comillas). Un apstrofe se representa con un par de apstro-
fes 'Young'.
3. Los parntesis dentro de expresiones deben concordar, es decir debe
haber tantos parntesis a la izquierda como a la derecha.
4. La divisin entera se representa por div y la real por /.
5. Las multiplicaciones deben ser indicadas por *.
6. Puntos y comas: hay que ver las ausencias, los excesos y los super-
fluos.
7. Debe haber un punto detrs del end final de cada programa.
8. Todos los identificadores deben estar declarados.
9. Si bien Turbo Pascal inicializa a cero cadena vaca, pero es conve-
niente la inicializacin.
10. El signo igual (=) se utiliza en declaraciones de constantes como
signo igual. El operador := se utiliza en sentencias de asignacin.
No confundir = con := de la programacin en Basic.
11. Los problemas con nmeros de tipo real no pueden utilizar pruebas o
comparaciones para comprobar exactitud de igualdad desigualdad
(= < > ). Como los nmeros estn aproximados en la computadora,
no tiene sentido la igualdad y la desigualdad.
12. Es recomendable verificar siempre los errores tales como la divisin
por cero y races cuadradas de nmeros negativos dentro de un pro-
grama.

3.12.4. El estilo de la programacin


En Turbo Pascal los programas se escriben en editor, y luego de escribir el
programa completo se lo debe compilar. Si hubiera errores, se vuelve al editor
para corregirlos y en caso contrario, se lo guarda y ejecuta.
Los errores de un programa pueden ser: de sintaxis, en tiempo de ejecucin
y lgicos.
Errores de Sintaxis: corresponden a errores ortogrficos, por ejemplo pala-
bras del lenguaje mal escritas o errores en punto y co-
mas, etc. Todos ellos se detentan en tiempo de compila-
cin.
Errores de Ejecucin: conciernen a errores que no se pueden detectar en
tiempo de compilacin, pero producen abortos. Por
ejemplo realizar divisiones por 0 (cero).
Errores de Lgicos: son errores de muy difcil deteccin, ya que el programa
compila y en la ejecucin no aborta. Pero da resultado
errneos.
_______________________________________________________________________________
57
____________________________________________________________________________

La planificacin de un programa comienza con el anlisis del problema (es-


pecificaciones de entrada y de salida, el proceso necesario para producir la salida
desde la entrada) y sigue con el algoritmo (pseudocdigo).
Los se crean los diagramas de flujo a estructurados o de Nassi-
Schneiderman. Los diagramas de flujo son un mtodo de representacin antiguo
que utiliza figuras que representan funciones unidas por flechas que indican la
secuencia a ejecutar.
Luego se traduce a cdigo el conjunto de diagramas al lenguaje que se utili-
zar.
En programas grandes, se recomienda seguir el diseo descendente, (es
decir dividir el programa sucesivamente hasta llegar mdulos de unas 40 lneas
como mximo) y el refinamiento sucesivo. Para el buen entendimiento del pro-
grama se requiere de una buena documentacin interna (comentarios).
A continuacin se deber confeccionar la documentacin externa (manua-
les).

Ejemplo 3.1:
Se pide un programa que realice la suma de dos nmeros enteros.
Primero, se debe realizar el anlisis del programa. Este anlisis consiste en
definir cual es el conjunto de datos que ingresa y cual es la informacin que egre-
sa son y que operaciones relacionan datos con informacin.

El anlisis consiste en preguntar:


Qu ingresa?
Dos nmeros enteros
Qu egresa?
Otro nmero entero
Qu vincula la entrada con la salida?
La operacin suma

Luego, se debe escribir el pseudocdigo, a fin de pasar posteriormente a la codifi-


cacin en el lenguaje determinado.

El seudocdigo
Inicio
Leo A (entero)
Leo B (entero)
Obtengo C como suma de A y B
Imprimo C

Fin

Los diagramas de tipo N-S (NassiSchneiderman) permiten ver qu tipo de


estructuras se utilizarn el programa. Hay programas que transforman los diagra-
mas N-S en cdigo.

_______________________________________________________________________________
58
____________________________________________________________________________

Diagrama N
S
Inicio
Leo A
Leo B
CA+B
Imprimo C
Fin

Por ltimo, se codifica el programa en el lenguaje determinado, en este caso


en Pascal. Siguiendo las reglas del mismo como se observa debajo.

El cdigo en Lenguaje Pascal


program Sumas;
{* Este es el primer programa en PASCAL *}
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ****}
{* programa escrito por : Fernando Javier LAGE *}
{* Fecha : 7 de abril de 1999 *}
{* Version : 01 *}
{* Nombre del archivo : progra01 *}
{* Este programa permite sumar dos nmeros enteros *}
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ****}
uses
crt, dos; {* declaraciones de librerias *}
const
Enter = #13; {* declaraciones de constantes *}
{* type *} {* en este programa no hay declaraciones de tipos *}
var {* definicin de las variables *}
A, B, C : Integer;

begin {* Comienzo del programa *}


ClrScr;

{* Ingreso de datos *}
Write ('Ingrese el primer valor ');
ReadLn(A);
Write ('Ingrese el segundo valor ');
ReadLn(B);

{* Clculo de los resultados *}


C := A + B;

{* Salida de la informacin *}
WriteLn ('El resultado es = ', C:6);
Repeat
Until Readkey = Enter
end. {* Fin del programa *}
En la resolucin del ejemplo 3.1. se observan los pasos siguientes:

_______________________________________________________________________________
59
____________________________________________________________________________

Desarrollo del algoritmo en pseudocdigo,


Construccin de los diagramas N-S (Nassi-Schneiderman), a partir
del pseudocdigo.
Codificacin en el lenguaje seleccionado (que en este caso es Pas-
cal).

Se puede observar que un programa en Pascal tiene tres partes:


Nombre del programa (con los respectivos comentarios).
Declaracin de las libreras usadas (en este caso crt y dos), constan-
tes y variables.
Finalmente comienza el cuerpo del programa propiamente dicho.

3.13. ESTRUCTURAS SECUENCIALES

Las estructuras secuenciales son aquellas donde las instrucciones se ejecu-


tan una despus de la otra y en ellas no hay repeticin ni ejecucin condicionada
de un grupo de sentencias.
En el ejemplo 3.2 se desarrollar una estructura de este tipo.
Ejemplo 3.2:
Un comerciante requiere un programa que realice las siguientes tareas: que
se ingrese el costo de un producto, que a dicho costo le cargue un 30% y al valor
as obtenido se le incremente un 20% por IVA. El programa deber sacar por pan-
talla el costo del producto, el precio final, y el valor del impuesto.
Pseudocdigo Diagrama N-S

Inicio gan 30.0


Definir constantes iva 20.0
Leer el costo Leer el costo
Calcular el costo ms el 30% Costo1 costo * (1+gan/100)
Calcular el valor del impuesto Impuesto costo1 * iva /100
Calcular el Precio Precio Costo1 + Impuesto
Imprimir Costo Imprimir Costo
Imprimir Impuesto Imprimir Impuesto
Imprimir Precio Imprimir Precio
Fin

Cdigo en Pascal
program Primer_Ejemplo;
{* Este es el primer programa en PASCAL *}
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * **}
{* programa escrito por : Fernando Javier LAGE *}
{* Fecha : 7 de abril de 1999 *}
{* Version : 01 *}
{* Nombre del archivo : progra01 *}
{* Este programa permite sumar dos nmeros enteros *}
_______________________________________________________________________________
60
____________________________________________________________________________

{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
uses
crt,dos; {* declaraciones de librerias *}
const
gan = 30.0;
iva = 20.0; {* declaraciones de las constantes *}
var {* definicin de las variables *}
costo : real;
costo1, impuesto, precio : real;

begin {* Comienzo del programa *}


clrScr; {* Limpieza de pantalla *}
write ('Ingrese el costo: '); {* Salida de mensaje *}
readln (costo); {* Ingreso del dato *}
costo1 := costo * (1 + gan/100); {* Clculo de la ganancia *}
impuesto := costo1 * (iva /100); {* Clculo del impuesto *}
precio := costo1 + impuesto; {* Clculo del precio final *}
writeln ('Costo : ', costo); {* Salida de mensaje y variable *}
writeln ('Impuesto : ', impuesto); {* Idem anterior *}
writeln ('Precio : ', precio); {* Idem anterior *}

end. {* Fin del programa *}


El algoritmo anterior es un ejemplo de programacin estructurada, ya que el
diseo del algoritmo se basa en el uso estructuras de programacin definidas;
denominadas estructuras de control, que controlan la ejecucin de los progra-
mas. Las mismas se clasifican en secuenciales (como las vistas en los ejemplos),
selectivas o de decisin, repetitivas o de iteracin, y de transferencia-retorno o
invocacin a subprogramas.

3.14. LA DOCUMENTACIN DE UN PROGRAMA


La documentacin de un programa, es el conjunto de todos los informes que
indican los pasos seguidos durante la etapa de creacin, y las modificaciones rea-
lizadas en la fase de mantenimiento de un programa, almacenados en algn so-
porte.
El primer documento que tiene que existir en un programa es la solicitud del
mismo, donde consta quin, porqu y para qu lo solicita.
El segundo es el contrato, ya que sin un contrato (acuerdo) no puede existir
ningn proyecto. En l queda especificados, quin solicita el proyecto, quin se
hace responsable de su ejecucin, porqu solicita el proyecto, cunto va a costar
($), cundo va a estar listo, cmo se pagar, que es lo qu se va a entregar y en
qu fecha.
La documentacin se clasifica en: documentacin interna y externa
Documentacin Interna: est compuesta por los comentarios que se
colocan el interior del programa fuente y como dicho programa nunca
se entrega (a menos que por contrato se especifique lo contrario), esta
documentacin es privada.

_______________________________________________________________________________
61
____________________________________________________________________________

Documentacin Externa: comienza con la solicitud y contina con el


contrato. Esta documentacin se subdivide en pblica y privada.
Privada: est compuesta por todos aquellos documentos que
slo estn bajo el dominio de la empresa que crea el progra-
ma: algoritmos matemticos en que se basa el programa, dia-
gramas de bloques, diagramas de estructuras, mdulos, ma-
nuales internos.
Pblica: est compuesta por los manuales del usuario.

RESUMEN

Se describieron los pasos a seguir para construir programas de calidad y se defi-


ni el concepto de algoritmo.
Luego, se presentaron las caractersticas principales del Lenguaje Pascal y el
anlisis de los problemas a resolver. En este Captulo se presentaron los primeros
Programas utilizando las estructuras ms elementales, de tipo secuencial.
Se presentaron algunas operaciones de utilidad para el mejoramiento de la panta-
lla o interface.
Finalmente se confeccion un listado de las recomendaciones principales para
una buena programacin y puesta a punto de programas.

_______________________________________________________________________________
62
____________________________________________________________________________

PRCTICA DEL CAPTULO 3


1. Escriba un programa que lea 2 valores y que los muestre por pantalla.
2. Al problema anterior agrguele el ttulo en pantalla "LECTURA DE DATOS"
3. Modifique el problema anterior para que obtenga la suma de los dos valores,
cambie el ttulo por "SUMA" el cual debe aparecer subrayado, y antes del resul-
tado debe aparecer el mensaje "El valor de la suma es XXX" (XXX es el resul-
tado de la operacin).
4. Escriba un programa donde por pantalla pida por medio de un mensaje que
ingrese su nombre, y como salida tenga el siguiente mensaje "Su nombre es
HHHHHH" (HHHHH es el nombre ingresado).
5. Modifique el programa anterior de manera que se solicite el nombre a dos per-
sonas y aparezca un cartel que diga "Buenos das XXXXX y YYYYY .... Co-
menzamos a trabajar?
6. Escriba un programa al cual ingrese la velocidad de un mvil expresada en me-
tros por segundo e imprima en pantalla la velocidad en kilmetros por hora.
7. Modifique el programa anterior de manera tal que por pantalla aparezca el si-
guiente cartel. "Los XXX m/s equivalen a YYY Km/h" (Donde XXX es el valor
ingresado e YYY es el resultado)
8. Un constructor sabe que necesita 0,5 metros cbicos de arena por metro cua-
drado de revoque a realizar. Hacer un programa donde ingrese las medidas de
una pared (largo y alto) expresada en metros y obtenga la cantidad de arena
necesaria para revocarla.
9. Desarrolle un programa en el que dado el largo y el ancho de un campo, permi-
ta determinar cuantos metros de alambre sern necesarios para colocarle al
permetro 5 hilos de alambrado. Y, qu cantidad de Soja se espera obtener, si
el rendimiento de la misma es 145 quintales por hectrea.
10. Escriba un programa que pida el ingreso del valor de cada una de las races de
una ecuacin cuadrtica. En funcin de ellos reconstruya la ecuacin y mus-
trela por pantalla.
11. Escriba un programa donde se ingrese el tiempo necesario para un cierto pro-
ceso en horas, minutos y segundos. Calcule el costo total del proceso sabiendo
que el costo por segundo es 0,25$. (Debe salir por pantalla el tiempo expresa-
do en horas, minutos y segundos, el costo por segundo y el costo total)
12. Una farmacia aplica al precio de los remedios el 10% de descuento. Realice un
programa que ingresado el precio del producto, calcule el descuento y el precio
final, sacando por pantalla lo siguiente:
Precio de producto XXX.XX
-
Descuento YY.YY
------------
Valor a pagar RRR.RR
13. La misma farmacia para la obra social OSOPAPA, realiza el siguiente descuen-
to: 70% por la obra social, y sobre ese resultado le aplica el 40% por cuenta de
_______________________________________________________________________________
63
____________________________________________________________________________

la propia farmacia (lo que ellos denominan el 70% + 40%). Cree un programa
que calcule el precio final que pagar un afiliado a esa obra social por un re-
medio, y disee una salida equivalente a la del problema anterior.
14. Se necesita un programa que permita conocer el resultado del diseo de un
tanque en forma de cilindro. Los datos que debe pedir el programa son el radio
de la base y la altura. En funcin del mismo se calcular el volumen que puede
almacenar, la cantidad de chapa necesaria, la cantidad que se debe pedir (ya
que las chapas slo vienen rectangulares cuadradas) y el costo de la chapa
es 2,25$ el metro cuadrado. Deber salir por pantalla la siguiente informacin:
Radio XXX m
Altura YYY m
Volumen ZZZ m cbicos
Chapa base y techo RRR * UUU m
Chapa lateral LLL * JJJ m
Sup. Total de la chapa SSS.SS m cuadrados
Costo CCCC.CC $
15. Los propietarios de la pizzera "El Morrn Binario" desean que se les haga un
programa interactivo que solicite al usuario el dimetro de la pizza en centme-
tros y la cantidad de ingredientes extras que se quiere agregar. Como resultado
de esto el programa deber mostrar por pantalla el precio ce venta de la mis-
ma. Dicho precio se calcula de la siguiente manera.
a) El precio de venta de la pizza se obtiene recargando un 150% en costo total
b) El costo bsico (pizza sin ingredientes extras) es de 0,0016 $/cm2
c) El costo de cada ingrediente agregado a la pizza base es de 0,0003 $/cm2
Se hace notar que como es un programa de tipo comercial la pantalla deber
tener el nombre de la pizzera en la parte superior de la pantalla y un saludo
genrico para el cliente como "Buenos das seor" (se puede reemplazar por
uno que sea personalizado, solicitndole el nombre al cliente y luego usndo-
lo), y se le deber solicitar cada dato ya que "el usuario no es adivino" y luego
se deber mostrar el costo final.
Bibliografa
1. De Giusti A. Algoritmos, Datos y Programas. Pearson. 2002
2. Joyanes Aguilar L.: Turbo Pascal 5.5 6.0 y 7.0. Editorial Mc. Graw-Hill. 2001.
3. Cataldi Z. y Lage F.: 2001/2/3. Apuntes Publicados por el CEI para la asignatura Algoritmos y
Programacin I. Partes A, B, C y D.
4. Leetsma S. Y Nyhoff L. Programacin en Pascal. Prentice Hall 1999
5. Lopez Leobaldo. Programacin estructurada en Turbo Pascal 7. Alfaomega.
6. Dale N. y Lilly S.: Pascal y Estructura de datos. Editorial Mc. Graw-Hill.
7. OBrien y Nameroff. Turbo Pascal 7 Manual de Referencia. Mac Graw Hill
8. Weiss. Estructuras de Datos y Algoritmos. Addison Wesley
9. Grogono P.: Programacin en Pascal. Editorial Prentice Hall.
10. Alcalde E. y otros (1988): Informtica Bsica. Editorial Mc Graw Hill. (Cap 2)
11. Wirth N.: Algorithms + Data Structures = Programs. Editorial Prentice Hall.
12. Wirth N.: Introduccin a la Programacin Sistemtica. Editorial El Ateneo.
13. Braunstein y Gioia: Introduccin a la Programacin y Estructuras de Datos. Editorial Eudeba.
14. Carroll: Turbo Pascal. Editorial Mc. Graw-Hill.
15. Schildt: Programacin y tcnicas en Pascal avanzado. Editorial Mc. Graw Hill.
16. Dijkstra-Hoare: Structured Programming. Academic Press.
17. Cataldi Z. y Lage F., 2000 - Algoritmos I. Recopilacin de los Algoritmos Fundamentales.
ISBN 987-461764-7.

_______________________________________________________________________________
64

Vous aimerez peut-être aussi