Académique Documents
Professionnel Documents
Culture Documents
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.
Mouse Modem
CPU
Impresora Escaner
Teclado
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
____________________________________________________________________________
_______________________________________________________________________________
3
____________________________________________________________________________
_______________________________________________________________________________
4
____________________________________________________________________________
_______________________________________________________________________________
5
____________________________________________________________________________
_______________________________________________________________________________
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
0110
1011
_______________________________________________________________________________
9
____________________________________________________________________________
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
_______________________________________________________________________________
10
____________________________________________________________________________
_______________________________________________________________________________
11
____________________________________________________________________________
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
____________________________________________________________________________
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:
_______________________________________________________________________________
13
____________________________________________________________________________
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.
Programa fuente
Intrprete
Traduccin y ejecucin
lnea a lnea
Programa fuente
Compilador
(Traductor)
Programa Objeto
_______________________________________________________________________________
17
____________________________________________________________________________
Montador
RESUMEN
_______________________________________________________________________________
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.
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
____________________________________________________________________________
Ejemplo:
1000 mil
100 cien
10 diez
1 uno
0,1 un dcimo
0,01 un centsimo
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
_______________________________________________________________________________
21
____________________________________________________________________________
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.
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.
0,9062510 = 0,111012
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
_______________________________________________________________________________
23
____________________________________________________________________________
Octal Binario
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111
_______________________________________________________________________________
24
____________________________________________________________________________
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).
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.
_______________________________________________________________________________
26
____________________________________________________________________________
x 2N -1
- 2N-1 +1 x 2N-1 -1
_______________________________________________________________________________
28
____________________________________________________________________________
_______________________________________________________________________________
29
____________________________________________________________________________
_______________________________________________________________________________
30
____________________________________________________________________________
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:
_______________________________________________________________________________
31
____________________________________________________________________________
C37216
_______________________________________________________________________________
32
____________________________________________________________________________
_______________________________________________________________________________
33
____________________________________________________________________________
RESUMEN
_______________________________________________________________________________
34
____________________________________________________________________________
25 5 347 8 653 6
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
10- Escribir en formato de 8 bits sin signo, los nmeros que estn expresados en base 10
_______________________________________________________________________________
36
____________________________________________________________________________
11- Pasar a base 10 los siguientes nmeros expresados como punto fijo sin signo (8 bits)
12- Escribir en formato de 8 bits con signo, los nmeros que estn expresados en base
10
13- Pasar a base 10 los siguientes nmeros expresados como punto fijo con signo (8 bits)
14- Escribir en formato de 16 bits sin signo, los nmeros que estn expresados en base
10
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
17- Pasar a base 10 los siguientes nmeros expresados como punto fijo con signo
(16 bits)
1000000000101000 0110100000010101
1001111011010111 0000000000010101
_______________________________________________________________________________
37
____________________________________________________________________________
21- Pasar a base 10 los siguientes nmeros expresados en complemento a 2 (16 bits)
1000101001101000 0110101101010010
1110011101011011 0010110000010101
- 93 10 - FF 16 - 10 10 - 31 10
F3 16 16 16 -A94B 16 -1101010 2
_______________________________________________________________________________
38
____________________________________________________________________________
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
29- Expresar en punto flotante simple precisin los nmeros siguientes expresados en
base 10
30- Expresar en base 10 los siguientes nmeros dados en formato de Punto Flotante
Simple Precisin
31- Expresar en Punto Flotante Doble Precisin los siguientes nmeros expresados en
base 10
_______________________________________________________________________________
39
____________________________________________________________________________
32- Expresar en base 10 los siguientes nmeros que estn en formato de punto flotante
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:
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 .
_______________________________________________________________________________
42
____________________________________________________________________________
_______________________________________________________________________________
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
_______________________________________________________________________________
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.
#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
____________________________________________________________________________
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.
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 }
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 (*, *)
_______________________________________________________________________________
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
_______________________________________________________________________________
49
____________________________________________________________________________
_______________________________________________________________________________
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.
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
_______________________________________________________________________________
51
____________________________________________________________________________
begin
.........................
Write (Lst, 'el .......................... )
WriteLn (Lst, 'pl............ )
.........................
end.
_______________________________________________________________________________
52
____________________________________________________________________________
GotoXY (x, y)
_______________________________________________________________________________
53
____________________________________________________________________________
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 *)}
_______________________________________________________________________________
54
____________________________________________________________________________
Cuando hay nombres, es conveniente que los mismos comiencen con una
letra mayscula, y si son largos es preferible utilizar palabras compuestas con
subrayado.
Nota1 := 4;
Nota2 := 7;
Nota3 := 8;
_______________________________________________________________________________
55
____________________________________________________________________________
_______________________________________________________________________________
56
____________________________________________________________________________
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 seudocdigo
Inicio
Leo A (entero)
Leo B (entero)
Obtengo C como suma de A y B
Imprimo C
Fin
_______________________________________________________________________________
58
____________________________________________________________________________
Diagrama N
S
Inicio
Leo A
Leo B
CA+B
Imprimo C
Fin
{* Ingreso de datos *}
Write ('Ingrese el primer valor ');
ReadLn(A);
Write ('Ingrese el segundo valor ');
ReadLn(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
____________________________________________________________________________
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;
_______________________________________________________________________________
61
____________________________________________________________________________
RESUMEN
_______________________________________________________________________________
62
____________________________________________________________________________
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