Vous êtes sur la page 1sur 21

_Computación

Ing. Elizabeth Jiménez Rey

GUÍA 1
Teórica-Práctica

Pp
Guía 1 Página 1 de 21

COMPUTACIÓN Guía 1

Teórica
Algoritmo
En términos generales, la Computación, o también llamada Informática, es la disciplina que busca establecer
una base científica para resolver problemas mediante computadoras.
Un algoritmo es un conjunto finito de instrucciones ejecutables, no ambiguas, que dirige a una actividad que
termina o resuelve un problema en tiempo limitado. Por ejemplo, hay algoritmos para construir aeroplanos a
escala (expresados en forma de hojas de instrucciones), para tocar música (en forma de partituras) para
preparar platos de cocina (en forma de recetas), etc. En el ámbito de los equipos de computación, los
algoritmos se representan como programas dentro de las computadoras, que reciben colectivamente el
nombre de software (a diferencia del equipo en sí, que constituye el hardware). Para que una máquina
efectúe una tarea, primero debemos diseñar un algoritmo para llevarla a cabo y luego programarlo en la
máquina.
Una de las principales labores en el campo de la Computación consiste en el desarrollo de algoritmos, por lo
que una parte importante de esta ciencia se ocupa de cuestiones relacionadas con esta tarea. El estudio de los
algoritmos comenzó como un tema de matemáticas, mucho antes de que se inventaran las computadoras
actuales, y su principal objetivo era descubrir un conjunto único de instrucciones para resolver cualquier
problema de un cierto tipo; así, una vez descubierto un algoritmo para efectuar una tarea, la realización de
ésta ya no requeriría entender los principios en que se basa el algoritmo, sino tan sólo seguir las
instrucciones. En cierto sentido, la inteligencia requerida para llevar a cabo la tarea está codificada en el
algoritmo.

Por ejemplo, uno de los primeros algoritmos formalizados es el de Euclides, para obtener el máximo común
divisor de dos enteros positivos:
Considerar los nombres M, N y R para designar valores enteros positivos (los valores asociados a estos
nombres cambiarán durante la ejecución del algoritmo), y seguir los siguientes pasos:
Obtener el número mayor y llamarlo M.
Obtener el número menor y llamarlo N.
Dividir M entre N y asignar el valor del resto a R.
Si R es 0 seguir por el paso 8.
Asignar a M el valor de N.
Asignar a N el valor de R.
Seguir por el paso 3.
El máximo común divisor de los valores originales de M y N es el actual valor de N.
Terminar

Como puede verse en el algoritmo precedente, no hace falta comprender por qué el procedimiento produce el
resultado deseado, sino que basta con seguirlo. Pero para crear un algoritmo básicamente hay que:
• Plantear bien el problema a resolver, establecer los recursos que se necesitarán para resolverlo (en este
caso, nombres para designar valores numéricos, verificando cuáles de ellos estarán asociados a valores
que deben ingresar al algoritmo, cuáles a valores intermedios o de procesamiento, y cuáles a valores
resultantes)
• Seguir alguna estrategia para encontrar y desarrollar la solución (como por ejemplo individualizar,
aislar y ordenar las distintas actividades para conseguir una solución)
• Comprobar que la solución obtenida es buena (para este ejemplo, seguir el algoritmo con varios pares
de números para los que se conoce o infiere fácilmente cuál es su máximo común divisor).
Lic. Servetto – Ing. Jiménez Rey 75.01 Computación
Guía 1 Página 2 de 21

Alcance de la Computación
Se puede apreciar el alcance de la computación o informática, considerando algunos de sus objetos de
estudio desde el punto de vista de los algoritmos:
Descubrimiento de algoritmos (descubrir un algoritmo para resolver un problema equivale, en lo esencial, a
descubrir una solución para ese problema). Los estudios de esta rama de la informática, denominada
Algoritmia, se apoyan en áreas como la psicología humana de la resolución de problemas y las teorías de la
educación.
Una vez descubierto un algoritmo para resolver un problema, se debe representar de manera que se lo pueda
comunicar a una máquina o a otras personas. Se debe transformar el algoritmo conceptual en un conjunto
claro de instrucciones y representar estas últimas sin ambigüedad. Los estudios que se ocupan de esto se
basan en conocimientos del lenguaje y la gramática, y han dado lugar a un gran número de esquemas para
representar algoritmos, llamados lenguajes de programación, fundados en diversos enfoques del proceso de
programación, llamados paradigmas de programación (v.g. programación imperativa, programación
funcional, programación lógica, programación orientada a objetos).
En general, la estructura algorítmica de los grandes sistemas automatizados se debe guiar por un proceso de
ingeniería similar al de las máquinas mismas. Por otra parte, en muchos casos, como en los entornos
comerciales, en el desarrollo y elaboración de programas no hace falta descubrir algoritmos radicalmente
nuevos; más bien, el problema principal consiste en identificar qué sistemas automatizados se necesitan y
cómo estos nuevos sistemas van a interactuar con los ya existentes. La combinación de estas dos
problemáticas ha dado origen a la rama de la informática conocida como Ingeniería de Software.
Otra rama importante de la informática se ocupa del diseño y la construcción de máquinas, pero no con el
objetivo de dominar los detalles de la realización de las máquinas actuales con circuitos electrónicos, puesto
que esto es responsabilidad de la ingeniería electrónica, sino para comprender lo suficiente la tecnología de
hoy de manera de apreciar sus ramificaciones y su influencia sobre el desarrollo de la informática. De esto se
ocupa una rama de la informática conocida generalmente bajo la denominación de Arquitectura de
Computadoras.
Algo íntimamente relacionado con el diseño del equipo de cómputo es el diseño de la interfaz entre una
máquina y el mundo exterior: la forma en que se insertan los algoritmos en una máquina, la forma en que se
le indica a la máquina qué algoritmo debe ejecutar, etc. La resolución de tales problemas en un entorno en el
que se espera que la máquina suministre muy diversos servicios implica la coordinación de actividades y la
asignación de recursos, temas que se estudian en la rama de la informática dedicada a los Sistemas
Operativos. La comunicación entre máquinas y los problemas inherentes se estudian en una rama a menudo
considerada en conjunto con la anterior, denominada Redes de Teleprocesamiento y Comunicación de
Datos.
Un tema de singular importancia en el campo de la informática tiene que ver con el almacenamiento y
recuperación de los datos en los sistemas de cómputo, y la combinación de técnicas para obtener sistemas de
almacenamiento masivos centralizados que puedan dar la apariencia de tener una gran cantidad de
organizaciones apropiadas para varias aplicaciones. Este tipo de problemas se estudian en la rama de la
informática que se ha dado en llamar Bases de Datos.
Las tareas que se exigen a las máquinas requieren cada vez más inteligencia, y es por ello que la informática
ha recurrido al estudio de la inteligencia humana como guía. La rama de la informática, conocida como
Inteligencia Artificial, se basa en gran medida en investigaciones de campos como la psicología, la biología
y la lingüística para diseñar algoritmos que imiten el razonamiento y la percepción de la mente humana.

Programación de Computadoras
Como un programa es un algoritmo representado para que pueda ejecutarlo una computadora, desarrollar un
programa implica descubrir la solución al problema que debe resolver el programa, es decir, descubrir el
algoritmo, y luego representarlo en forma de programa. La actividad más importante y difícil en el proceso
de creación de software es descubrir los algoritmos, por lo que la algoritmia debe basarse necesariamente en
el proceso de resolución de problemas, un proceso imaginativo y artístico cuyas fases, definidas a grandes
rasgos por el matemático G. Polya a fines de los años cuarenta siguen siendo los principios en que se basan
los métodos actuales para resolver problemas.

Lic. Servetto – Ing. Jiménez Rey 75.01 Computación


Guía 1 Página 3 de 21
Las fases de Polya para resolver problemas son:
• Entender el problema.
• Idear un plan para resolver el problema: determinar los recursos para resolver el problema y cómo
utilizarlos.
• Llevar a cabo el plan: emplear una estrategia para resolver el problema.
• Evaluar la solución en cuanto a su exactitud y a su potencial como herramienta para resolver otros
problemas.
Estas fases no tienen por qué seguirse linealmente, sino más bien deben completarse en algún momento
durante el proceso de resolución, que en general implica repasar una y otra vez las fases en forma evolutiva,
retrocediendo algún paso de ser necesario, hasta que la solución sea satisfactoria.

Proceso de Resolución de un Problema cualquiera

Para la creación de programas, las fases anteriores pueden traducirse a:


• Fase de análisis: entender el problema y definirlo claramente.
• Fase de diseño o algorítmica: pensar cómo un procedimiento algorítmico podría resolver el problema,
determinar los recursos a utilizar y desarrollar y probar el algoritmo.
• Fase de codificación o de programación: representar el algoritmo en forma de programa.
• Fase de evaluación: evaluar el programa en cuanto a su exactitud y a su potencial como herramienta
para resolver otros problemas (probar y depurar el programa).

Lic. Servetto – Ing. Jiménez Rey 75.01 Computación


Guía 1 Página 4 de 21
Proceso de Construcción de un Programa
(Esquema General)

La estrategia más común para desarrollar algoritmos es la denominada “divide y vencerás”, que consiste en
descomponer el problema principal en una lista de problemas más simples, que a su vez se siguen
descomponiendo hasta llegar a un nivel en que los problemas sean resolubles por acciones simples de la
computadora. Este proceso se denomina de refinamientos sucesivos, y es similar al que se emplea para
escribir artículos o libros partiendo de borradores; para la programación, también se lo llama de diseño
descendente, porque parte de ideas generales y desciende hasta los detalles.
El resultado de los refinamientos sucesivos es un conjunto de instrucciones paso a paso que, al completarse,
resuelve el problema original, o sea, es un algoritmo, expresado en términos de acciones esenciales llamadas
primitivas de programación no ejecutables, en un lenguaje híbrido entre un lenguaje de programación y un
lenguaje natural llamado pseudocódigo, o código de documentación interna de programas.
Los enunciados de problemas a resolver, en cualquier nivel de refinamiento, deben observar la definición de
algoritmo: deben ser ejecutables por una computadora, y ser no ambiguos. Respecto a las capacidades de las
computadoras, se analizan enseguida, y en cuanto a la no ambigüedad, para que se cumpla este precepto es
imprescindible que los enunciados sean libres de contexto, es decir, que sean autocontenidos
(independientes de cualquier otro enunciado) y que se interpreten de una única manera posible.

Capacidades de una Computadora


Es gracias a la capacidad de capturar y comunicar inteligencia mediante algoritmos que se pueden construir
máquinas cuyo comportamiento simula inteligencia; así pues, el nivel de inteligencia que exhiba una
máquina estará limitado por la inteligencia que se le pueda comunicar mediante programas. Si se puede
hallar un algoritmo que resuelva un problema o dirija una actividad, se puede entonces construir una
máquina para que la lleve a cabo programándole el algoritmo (siempre que la tecnología lo permita); pero si
no se cuenta con un algoritmo para realizar una tarea, la ejecución de ésta quedará excluida de la capacidad
de cualquier máquina, por más poderosa y moderna que sea.
Para que una máquina pueda ejecutar algoritmos basta que pueda:
• Recibir entradas (aceptar información que le proporcione el usuario)
• Almacenar y recuperar información (mover y almacenar información en su memoria interna o en
dispositivos de almacenamiento masivo)
• Procesar información (llevar a cabo operaciones aritméticas o lógicas -toma de decisiones- con la
información)
• Producir salidas (proporcionar información al usuario)

Lic. Servetto – Ing. Jiménez Rey 75.01 Computación


Guía 1 Página 5 de 21
En el proceso de datos con cualquier computadora se realizan los siguientes procesos:

Por lo tanto, para que los enunciados de la solución de un problema se puedan convertir en un programa, sólo
pueden referirse a alguna de estas actividades. Cada una de estas actividades se asocia a dispositivos de
hardware específicos de la computadora.
Los dispositivos de entrada aceptan entradas del exterior de la computadora. El dispositivo más común es el
teclado QWERTY (llamado así por la primera fila de teclas de letras), aunque las computadoras pueden
aceptar señales de entrada de muchos otros dispositivos como los dispositivos apuntadores: ratones (mice),
bolas rastreadoras (trackballs), palancas de mando (joysticks), o dispositivos de lectura: lectoras ópticas de
códigos de barra o de caracteres, para leer códigos universales de productos (UPC: universal product codes)
o efectuar reconocimiento óptico de caracteres (OCR: optical character recognition) respectivamente.
La memoria central y los dispositivos de almacenamiento sirven para almacenar la información y los
programas o conjunto de órdenes para que la computadora mueva, almacene, produzca, acepte o proporcione
información. Se emplean diferentes tipos de memoria para tareas de almacenamiento a corto o largo plazo;
así, en la memoria central se almacenan o “cargan” los programas que la computadora deba ejecutar de
inmediato y la información necesaria para ejecutar cada orden o instrucción del programa en su oportunidad;
y en la memoria auxiliar o masiva, representada por los dispositivos de almacenamiento (los dispositivos de
almacenamiento más comunes son los discos rígidos, los disquetes, los discos compactos y las cintas), se
almacenan programas e información en forma permanente para su libre disponibilidad en cualquier
momento. Metafóricamente, se podría decir que la memoria central es el “escritorio de trabajo” de la
computadora, y que los dispositivos de almacenamiento son sus ”bibliotecas” o repositorios de programas e
información.
Un procesador o unidad central de procesamiento (UCP) (en inglés CPU), es el dispositivo que procesa
información, llevando a cabo todos los cálculos aritméticos y tomando decisiones básicas con base en los
valores de la información y conforme a las órdenes de un programa. La UCP es, de hecho, el “cerebro” de la
computadora.
Los dispositivos de salida envían información al exterior de la computadora. Los dispositivos más comunes
son monitores e impresoras. Los monitores, también llamados monitores de vídeo o pantallas de vídeo
(VDT: video display terminal) no sólo sirven para que la computadora exhiba información al mundo exterior
sino también para que el usuario vea los caracteres que está ingresando a la computadora al momento de
teclearlos; en ambos casos, se dice que la información presentada es de “copia efímera” (soft copy), puesto
que sólo puede visualizarse mientras se encuentre representada en la pantalla, y se los clasifica como
dispositivos de copia efímera. Los monitores pueden ser de tubos de rayos catódicos (CRT: cathode ray tube)
o de pantalla plana de cristal líquido (LCD: liquid crystal display). Las impresoras permiten obtener copias
físicas en papel de cualquier información, por lo que la información que producen es de “copia permanente”
(hard copy); así es que desde el punto de vista de la información que presentan, las impresoras se clasifican
como dispositivos de “copia permanente”. Hay muchas variedades de impresoras, pero todas corresponden a
dos grupos básicos: de impacto (de líneas o caracteres, y de matriz de puntos) y de no impacto (láser y de
inyección de tinta).

Lic. Servetto – Ing. Jiménez Rey 75.01 Computación


Guía 1 Página 6 de 21

Componentes de Hardware asociados a las Capacidades de la Computadora

Modelo de un Programa Tipo


En general, la solución de cualquier problema por parte de una computadora responde a un esquema tipo.
Como la planificación de la solución implica la determinación de recursos a utilizar, todo programa consta de
una sección declarativa en la que se designan y definen los recursos que se emplean en el programa. Todos
los valores que se van a procesar en el programa deben tener un nombre y un dominio, como las variables de
una función matemática, de ahí que los recursos fundamentales de los programas se denominen precisamente
variables. También se puede hacer referencia a valores determinados que se usen recurrentemente en un
programa mediante un nombre, como por ejemplo pi o e, para lo cual se deben definir como recursos
denominados constantes, a los que también se les asigna un nombre, y como dominio un valor constante.
Luego de determinados los recursos principales a emplear en la solución de un problema en forma de
programa, sigue el desarrollo de la solución mediante refinamientos sucesivos. Por tanto, todo programa
consta de una segunda sección llamada sección algorítmica o de código, en la que se procede a descomponer
el problema a resolver en subproblemas de menor complejidad, representados por enunciados. Esta
descomposición se efectúa en sucesivos pasos que determinan enunciados jerárquicamente dependientes de
los anteriores, hasta llegar a enunciados de acciones esenciales o primitivas. La jerarquización de los
enunciados se denota mediante el sangrado; de este modo, un programa se puede visualizar como un texto
con enunciados con distintas sangrías según su nivel de refinamiento.
Como todo programa debe quedar representado en un texto, el desarrollo de programas se hace trabajando en
un editor de textos; de manera que refinar la solución de un problema implica simplemente abrir líneas
debajo de su enunciado, y con un nivel de sangrado mayor a su enunciación, descomponerlo en una lista de
enunciados de problemas más simples. Cuando todo problema a resolver por un programa haya quedado
reducido a enunciados de acciones primitivas, para concluir con la fase algorítmica se debe efectuar una
prueba del algoritmo: se asignan distintos valores testigo a los datos que debe procesar, y se verifica que los
resultados a obtener sean correctos.
La formalización de un programa o programación del algoritmo que soluciona un problema implica un
último refinamiento expresando las acciones primitivas no ejecutables con la sintaxis del lenguaje de
programación para obtener las primitivas de programación ejecutables. Entonces, los enunciados que
realmente ejecutará la computadora serán los de la última jerarquía de cada problema.

Lic. Servetto – Ing. Jiménez Rey 75.01 Computación


Guía 1 Página 7 de 21
Una primera descomposición de cualquier problema a resolver con un programa puede asimismo
considerarse como un modelo o tipo. En general, en todo programa se debe efectuar una presentación de su
objetivo y, eventualmente, condiciones o limitaciones para su ejecución al usuario que lo ejecute, y preparar
los recursos o datos para resolver el problema. Esta primer parte de todo programa se puede denominar
prólogo. Luego se debe proceder a la resolución del problema en sí, en una segunda parte, el verdadero
cuerpo del programa, que se puede denominar resolución. Finalmente, en la mayoría de los programas se
debe exhibir resultados, por lo que en general aparecerá una tercera parte o epílogo.

Modelo de un Programa Tipo

{SECCIÓN DECLARATIVA}
{Definición del Objetivo}

{Definición de Recursos}

{SECCIÓN ALGORÍTMICA}
{Desarrollo de la Solución}
{Prólogo}

{Resolución}

{Epílogo}

Lic. Servetto – Ing. Jiménez Rey 75.01 Computación


Guía 1 Página 8 de 21

Proceso de Construcción de un Programa


(Esquema Detallado)

Cuando se escribe un programa en Pascal o en cualquier otro lenguaje de programación, nunca se piensa para
qué computadora se está escribiendo ni en detalles arquitectónicos, porque el programa podría ejecutarse en
cualquier computadora que tenga el ambiente de desarrollo Pascal. Los programas escritos en lenguajes de
programación de alto nivel tienen la apreciable característica de ser portables de una máquina a otra, porque
los ambientes de desarrollo de los lenguajes tienen un traductor de programas, que traduce programas
escritos en el lenguaje (archivos con extensión PAS, en el caso de Pascal) a programas con órdenes propias
de la computadora en la que está el ambiente (archivos con extensión EXE, en cualquier caso). Por eso, las
empresas que venden los ambientes de desarrollo (como Borland, que desarrolló al IDE Turbo Pascal),
tienen versiones de los mismos ambientes para distintas máquinas, de manera que cualquier programa
funcione de igual manera en cualquier máquina.

Lic. Servetto – Ing. Jiménez Rey 75.01 Computación


Guía 1 Página 9 de 21
Lenguajes de Programación
Toda computadora tiene un lenguaje nativo: el lenguaje de máquina. Los lenguajes de máquinas de
diferentes marcas son similares: todos tienen instrucciones para las operaciones aritméticas básicas, para
comparar pares de números, saltar a otra parte de un programa, etc. Pero tal como las personas con
nacionalidades distintas hablan lenguajes diferentes, como el inglés y el español, las máquinas con unidades
centrales de procesamiento de marcas distintas también tienen lenguajes diferentes, y una máquina con UCP
de una marca no puede entender programas de máquinas con UCP de otras marcas.
Los lenguajes de máquina son binarios: las instrucciones, las direcciones de celdas de memoria, los números
y los caracteres se representan como cadenas de ceros y unos. Por la dificultad que tenían los programadores
para leer números binarios, escribían en papel los programas en código hexadecimal y los números y
direcciones de memoria en decimal, o también en hexadecimal, y cuando los cargaban en la computadora lo
hacían traduciendo los códigos hexadecimales y decimales a binario.
Como la programación de computadoras en lenguaje de máquina era una tarea tan ardua, con el objetivo de
simplificarla surgieron los lenguajes ensambladores, lógicamente equivalentes a los lenguajes de máquina
pero más fáciles de leer, escribir y comprender para los seres humanos. En un lenguaje ensamblador, los
programadores usan códigos alfabéticos que corresponden a las instrucciones de la máquina, y ponen
nombres o rótulos a las direcciones de instrucciones a saltar en los programas para poder referenciarlas
fácilmente; luego, un programa llamado ensamblador traduce las instrucciones de lenguaje ensamblador a
instrucciones de lenguaje de máquina. La computadora actúa como traductora para sí misma.
Por ejemplo, a continuación se codifica un programa para sumar dos números enteros en un lenguaje
ensamblador para la máquina descrita en el curso. Nótese que ya no es necesario conocer las direcciones de
las celdas.

Instrucciones Comentarios
LR 1,S1 Cargar en el registro 1 el contenido de la celda en donde se
encuentra el primer sumando (LR: load record)
LR 2,S2 Cargar en el registro 2 el contenido de la celda en donde se encuentra el
segundo sumando
LI 0,00 Cargar en el registro 0 el valor 00 (LI: load inmediate)
BR 1,EQ2 Si el contenido del primer registro es igual al del registro 0, seguir
por la instrucción 9 (BR: branch)
BR 2,EQ1 Si el contenido del segundo registro es igual al del registro 0,
seguir por la instrucción 11
AI 3,1,2 Sumar los contenidos de los registros 1 y 2 y dejar el resultado en
el registro 3 (AI: add integers)
ST 3,RS Almacenar el contenido del registro 3 en la celda destinada para el
resultado de la suma
BR 0,FIN Seguir por la instrucción 12
EQ2 ST 2,RS Almacenar el contenido del registro 2 en la celda destinada para el
resultado de la suma
BR 0,FIN Seguir por la instrucción 12
EQ1 ST 1,RS Almacenar el contenido del registro 1 en la celda destinada para el
resultado de la suma
FIN END Parar
S1 15 Celda con el primer sumando en complemento a dos (p.e. 15, que
en el programa se especifica en decimal)
S2 -7 Celda con el segundo sumando en complemento a dos (p.e. -7,
igual que antes)
RS 8 Celda para el resultado de la suma en complemento a dos
(suponiendo que ya se ejecutó el programa)
Lic. Servetto – Ing. Jiménez Rey 75.01 Computación
Guía 1 Página 10 de 21
El programa en lenguaje ensamblador es el que figura en las columnas “Instrucciones”. En la primera
columna de Instrucciones se designan con nombres alusivos a las direcciones de celdas de instrucciones y
datos con el objeto de referenciarlas desde las instrucciones propiamente dichas. En la segunda columna se
especifican las instrucciones con un código mnemotécnico.
La programación en lenguajes ensambladores se considera de bajo nivel; es decir, requiere que los
programadores piensen a nivel de la máquina para la cual programan e incluyan gran cantidad de detalles en
cada programa. La programación en lenguajes ensambladores es un proceso repetitivo, tedioso y propenso a
errores. Peor aún, cada lenguaje de máquina distinto tiene lenguajes ensambladores que le corresponden, por
lo que si un programa escrito en lenguaje ensamblador se quiere ejecutar en una máquina de otra marca, debe
rescribirse totalmente en el lenguaje ensamblador de la otra máquina. Muchos programadores todavía usan
lenguaje ensamblador para escribir parte de los juegos de vídeo y otras aplicaciones en las cuales son
fundamentales el tiempo de respuesta de los programas y la comunicación directa con el hardware. No
obstante, en la actualidad la mayoría de los programadores piensa y escribe en un nivel más alto.
Los lenguajes de alto nivel, que están en un punto intermedio entre los lenguajes humanos y los precisos y
acotadísimos lenguajes de máquina, se crearon a principios de la década del 50 para simplificar y optimizar
el proceso de programación. Con los lenguajes como FORTRAN (FORmula TRANslation – diseñado para
el cálculo matemático) y COBOL (COmmon Bussiness Oriented Language – diseñado para aplicaciones de
tipo comercial y administrativas) es posible que los científicos, ingenieros y empresarios escriban programas
con terminología y notación familiares, en lugar de las tan elementales instrucciones de máquina. Los
programadores de hoy disponen de cientos de lenguajes de alto nivel para elegir.
Los lenguajes de alto nivel ocultan al programador las características arquitectónicas y los detalles de
funcionamiento de las máquinas, posibilitándoles que se abstraigan de usar registros y referenciar
direcciones de memoria. Así es más fácil que el programador se concentre en los problemas a resolver
exclusivamente, cuando desarrolla las soluciones en pseudocódigo, y ya no debe resolver el problema
adicional de traducir su solución en términos de las instrucciones que la máquina es capaz de ejecutar: para
codificar sus programas apenas hace un refinamiento más del pseudocódigo, escribiendo directamente en el
lenguaje de programación de alto nivel.
Los programas codificados en lenguajes de alto nivel tienen la ventaja de ser transportables entre máquinas.
Un programa escrito en Pascal puede traducirse y ejecutarse en cualquier computadora que tenga el
programa traductor de Pascal. Como hay traductores de Pascal para todo tipo de computadoras, un programa
en Pascal puede traducirse y ejecutarse sin modificaciones casi en cualquier máquina.

Traducción e Interpretación
Para traducir un programa escrito en un lenguaje de alto nivel a lenguaje de máquina se requiere un
programa de traducción, que puede funcionar:
▪ como intérprete, traduciendo y haciendo ejecutar cada enunciado en forma individual, así como un
intérprete en un congreso internacional traduce un discurso del inglés al español, o
▪ como un compilador, traduciendo todo el programa al lenguaje de máquina de manera que pueda
ejecutarse directamente en la máquina cuantas veces se desee.
La mayoría de los traductores son compiladores, ya que los programas compilados tienden a ejecutarse con
mayor rapidez que los programas interpretados: los compilados ya están traducidos al lenguaje de máquina y
los interpretados requieren que se traduzca cada orden o enunciado cada vez que se interprete el programa.
Los paquetes de software de compilación son mucho más que compiladores: son ambientes de
programación integrados (IDE: Integrated Development Environments) que cuentan con un editor de
textos, un compilador, un depurador (debugger) para simplificar el proceso de localización y corrección de
errores y varias funciones utilitarias más.
El proceso de compilación de un programa se divide en tres etapas: análisis léxico, análisis sintáctico y
generación de código. El compilador toma como fuente de datos un archivo de texto en el que se encuentra
escrito el programa en lenguaje de alto nivel, usualmente llamado programa o módulo fuente, y antes de
convertirlo a instrucciones de máquina en ceros y unos le efectúa dos controles sucesivos: el análisis léxico,
para reconocer y reducir en la sucesión de símbolos que es el programa fuente los componentes léxicos
(nombres de sentencias, nombres de variables y constantes, nombres de subprogramas, valores literales, etc.),
y el análisis sintáctico, para validar la construcción de enunciados admitidos por el lenguaje; luego de
superadas satisfactoriamente estas dos etapas, entonces sí produce como resultado un archivo con las
instrucciones de máquina correspondientes al programa fuente, llamado programa o módulo objeto.
Lic. Servetto – Ing. Jiménez Rey 75.01 Computación
Guía 1 Página 11 de 21
Los programas complejos se suelen descomponer en muchos subprogramas, y cuando el número de éstos es
muy grande no resulta práctico que estén todos en un mismo archivo o programa fuente sino en varios
archivos que se traducen por separado. También es común emplear subprogramas estándares que vienen ya
traducidos por los paquetes de software de programación, por ejemplo para cálculos matemáticos. Entonces,
un programa puede comprender varios módulos fuente traducidos por separado en sendos módulos objeto.
Para que pueda ejecutarse un programa de tales características es necesario que todos sus objetos estén
enlazados adecuadamente, así es que el proceso de traducción debe completarse mediante el empleo de un
programa hermano al de compilación llamado enlazador o linker, que tomando como datos de entrada los
archivos o módulos objeto de un programa, produce un archivo único ejecutable denominado módulo o
programa de carga. En Pascal, el tipo o extensión de los programas o módulos fuente es PAS, y para
cualquier lenguaje los tipos o extensiones de los programas objeto y de carga son OBJ y EXE
respectivamente.

Paradigmas de Programación
Se ha visto que existen diversas formas de representación de algoritmos, basadas fundamentalmente en quién
o qué será el ejecutor del algoritmo y en la naturaleza de las acciones a ejecutar. Como es interés de la
informática el desarrollo de algoritmos para que los ejecute una computadora, la representación debe ser en
forma de programas.
Existen distintas convenciones para especificar programas, las cuales se distinguen por la forma de
especificación en primer lugar, y luego por el lenguaje. Las formas de especificar programas o paradigmas
de programación hasta la actualidad, con algunos de sus lenguajes, han sido:
▪ La programación imperativa (como enunciación de órdenes): FORTRAN, COBOL, Algol, Ada, Pascal
▪ La programación funcional (como composición de funciones): LISP
▪ La programación lógica (como cálculo de predicados lógicos): PROLOG
▪ La programación orientada a objetos (como interacción entre subprogramas denominados objetos, que
encierran datos y algoritmos para manipularlos, a través de mensajes): SMALLTALK, EIFFEL
▪ La programación visual u orientada a eventos (basada normalmente en la programación orientada a
objetos pero especificando las acciones o interacciones entre objetos en términos del diseño gráfico de
interfaces con el usuario y asociándolas con eventos en general relacionados con la digitación de teclas o
movimientos del ratón): VISUAL BASIC, DELPHI, VISUAL C++, JAVA.

Lic. Servetto – Ing. Jiménez Rey 75.01 Computación


Guía 1 Página 12 de 21

COMPUTACIÓN Guía Nº 1

Práctica
La sección declarativa de un programa en Pascal comienza con la palabra clave program, seguida del nombre
de fantasía con que se quiera designar al programa.
{SECCIÓN DECLARATIVA}
{Definición del Objetivo}
program <nombre del programa>* ;
*se usarán los paréntesis angulares para denotar que en ese punto del programa, el programador debe escribir un
identificador elegido por él.

Los recursos en la sección declarativa del programa deben definirse agrupados por clase. En general, primero
se declaran las constantes, precedidas por la palabra clave const, y luego las variables, precedidas por la
palabra clave var. En principio, se usarán constantes y variables con dominios enteros, reales y de caracteres,
que en lenguaje Pascal se denominan Integer, Real y Char, respectivamente.
Para definir constantes, se debe especificar nombre y valor separados por el signo igual (=), y para definir
variables, se debe especificar nombre y dominio separados por dos puntos (:).
{SECCIÓN DECLARATIVA}
{Definición del Objetivo}
Program <nombre del programa> ;
{Definición de Recursos}
Const
<nombre de la constante> = <valor> ;
Var
<nombre de la variable> : <dominio> ; {comentario}**
** es necesario incluir comentarios entre llaves que describan el significado de cada una de las variables utilizadas en el
programa
Si se debe definir más de una variable con el mismo dominio, se pueden especificar todos sus nombres
separados por una coma. Por ejemplo:
Var
radio, superficie: Real ;
{representan el radio y la superficie del círculo, respectivamente}
Para escribir valores reales, se debe separar con un punto la parte entera de la parte fraccionaria. Por ejemplo:
Const
Pi = 3.141592653589 ;
Para que la máquina pueda distinguir el valor de un carácter de un nombre de constante o variable, los
valores constantes de caracteres se deben delimitar con una comilla simple; así, por ejemplo, en un programa
el carácter e (como valor de una constante), se distingue del nombre de una constante llamada de igual
forma, denotándolo ‘e’.
Const
<nombre de la constante> = ‘e’ ;
e = <valor> ;
Los nombres de programas, constantes y variables (en general, de cualquier recurso) denominados
identificadores, deben comenzar indefectiblemente con una letra, y pueden incluir letras (excepto ñ y
vocales acentuadas), dígitos y el carácter de subrayado. Los identificadores utilizados en un programa deben

Lic. Servetto – Ing. Jiménez Rey 75.01 Computación


Guía 1 Página 13 de 21
ser todos distintos entre sí. Las convenciones comunes para designar una variable, por ejemplo, para
representar el radio de un círculo son: radio, radio1, radioCirculo o radio_circulo.
En los enunciados del lenguaje Pascal, es indistinto usar mayúsculas o minúsculas, ya sea en los enunciados
o en los nombres de recursos; no así en los valores constantes de caracteres. Por ejemplo, en un programa,
las palabras PI, pi y Pi serán reconocidas como el mismo nombre, y en cambio los valores ‘A’ y ‘a’ serán
considerados distintos. También es equivalente declarar una variable con dominio Real, REAL o real.
Los enunciados algorítmicos, producto del desarrollo por refinamientos sucesivos del algoritmo que se
programa, como no son ejecutables por la computadora, deben marcarse o delimitarse como no ejecutables.
Para esto, Pascal permite encerrar entre llaves ({}) cualquier enunciado o comentario que quiera hacerse
dentro del programa y en cualquier parte del programa. Estos enunciados o comentarios se denominan
enunciados de documentación interna, ya que precisamente cumplen esa función: implican la documentación
del desarrollo del programa y sirven para que cualquier programador que lea el texto del programa pueda
comprenderlo y seguirlo sin mayor dificultad, es decir, contribuyen a hacer los programas más legibles sin
afectar la ejecución.
Los enunciados propios del lenguaje, ya sean de definición del objetivo o de definición de recursos de la
sección declarativa o sean de desarrollo de la solución de la sección algorítmica, que son ejecutables por la
computadora, deben estar delimitados unos de otros para que la máquina pueda individualizarlos. El
delimitador principal de enunciados propios del lenguaje es el punto y coma (;). Para agrupar enunciados
existen dos delimitadores especiales para denotar el principio y el fin de la secuencia: Begin y End,
respectivamente. Por ejemplo, todos los enunciados de la sección algorítmica o de código deben estar
separados entre sí por el punto y coma y deben estar comprendidos entre los delimitadores Begin y End ;
toda la sección algorítmica o de código debe terminarse con un punto final (.).

Estructura genérica de un Programa Pascal


end.
{SECCIÓN DECLARATIVA}
{Definición del Objetivo}
Program <nombre> ;
{Definición de Recursos}
Const
<nombre de la constante> = <valor> ;
Var
<nombre de la variable> : <dominio> ;
{SECCIÓN ALGORÍTMICA}
{Desarrollo de la Solución}
Begin
{Prólogo}

{Resolución}

{Epílogo}

End .

Estructuras de Secuenciación
La sección algorítmica de un programa Pascal constituye el cuerpo principal del programa y comienza con la
palabra clave begin y termina con la palabra clave end y el punto final (.).
Lic. Servetto – Ing. Jiménez Rey 75.01 Computación
Guía 1 Página 14 de 21
Para desarrollar la solución de un problema mediante la escritura de un programa, en la sección algorítmica
del programa, comúnmente se emplean:
• enunciados o sentencias de asignación, o
• enunciados o sentencias de obtención de datos desde el teclado (operación de entrada o de lectura),
para instanciar (darle valor a) una variable, y
• enunciados o sentencias para la exhibición de resultados en pantalla (operación de salida o de
escritura).
Estos enunciados se clasifican como enunciados, sentencias o estructuras de control de secuenciación
porque cuando aparecen uno después del otro en la sección algorítmica del programa deben ejecutarse
siempre una vez en el orden de secuencia en que se presenten.
Enunciados de Asignación
Para asignar (almacenar) directamente un valor o el resultado de una expresión aritmética a una variable, se
utiliza una sentencia o enunciado de asignación y se escribe el nombre de la variable y el valor o expresión,
separados por los caracteres correspondientes a dos puntos e igual consecutivos (:=).
Por ejemplo:
superficie := Pi * radio * radio;
Esta sentencia de asignación permite almacenar en la posición de memoria correspondiente a la variable
denominada superficie (a la izquierda del símbolo de asignación) el valor obtenido como resultado del
cálculo de la expresión aritmética a la derecha del símbolo de asignación. Tanto la variable superficie como
el resultado de la evaluación de la expresión aritmética deben pertenecer al mismo dominio de valores.
Enunciados de Lectura
Para hacerle corresponder a una variable un valor que se obtiene desde el teclado, se emplean los enunciados
Read (leer) y ReadLn (leer línea), con el nombre de la variable encerrado entre paréntesis como argumento.
Por ejemplo:
Read ( radio );
ReadLn ( radio );
La diferencia entre ambos es que el primero, al ejecutarse, no detiene la ejecución del programa ni requiere la
pulsación de la tecla Enter (↵) para formalizar el ingreso de un valor, mientras que el segundo sí. Cuando se
ingresa uno o más valores desde el teclado en respuesta a la ejecución de un enunciado ReadLn (que puede
incluir uno o más enunciados Read diferidos), sus representaciones aparecen reproducidas en la pantalla y
posteriormente el cursor (indicador de posición actual en pantalla, o en inglés: current position indicator) se
ubica al comienzo de la próxima línea de la pantalla. Por ejemplo:
A solicitud del programa, el usuario ingresa como valor del radio 7.5 y el valor tipeado se visualiza en
pantalla
7. 5
Cuando el usuario pulsa la tecla Enter, el efecto de la ejecución del siguiente enunciado del programa,
ReadLn ( radio ) ; es que a la variable radio se le asocia el valor 7.5 tipeado y el cursor se ubica al principio
de la siguiente línea de la pantalla, visualizándose
7. 5
_

Se puede ingresar valores para más de una variable usando un mismo enunciado, tan sólo separando los
nombres de las variables con una coma, y los valores a ingresar por teclado con uno o más blancos (barra
espaciadora).
Por ejemplo:
Si se desea obtener desde el teclado una serie de valores reales mediante las sentencias
ReadLn(valor1, valor2);
ReadLn(valor3);
Y el usuario tipea
Lic. Servetto – Ing. Jiménez Rey 75.01 Computación
Guía 1 Página 15 de 21
7.5 4.3 6.8 9.3 ↵
3.7 ↵
La computadora lee el valor 7.5 y lo almacena en la posición de memoria asociada a la variable valor1, luego
lee el valor 4.3 y lo almacena en la posición de memoria asociada a la variable valor2; como se trata de una
sentencia ReadLn ignora los siguientes valores de la línea , es decir, 6.8 y 9.3 y avanza a la siguiente línea,
ejecuta la siguiente sentencia y almacena el valor 3.7 en la posición de memoria asociada a la variable
valor3. Por lo tanto, el resultado es:
Valor1 = 7.5
Valor2 = 4.3
Valor3 = 3.7
Pero si se desea obtener desde el teclado la misma serie de valores reales mediante las sentencias
Read(valor1, valor2);
ReadLn(valor3);
la computadora lee el valor 7.5 y lo almacena en la posición de memoria asociada a la variable valor1, luego
lee el valor 4.3 y lo almacena en la posición de memoria asociada a la variable valor2; como se trata de una
sentencia Read no avanza a la siguiente línea y ejecuta la siguiente sentencia, por lo cual se almacena el valor
6.8 en la posición de memoria asociada a la variable valor3. Por lo tanto, el resultado es:
Valor1 = 7.5
Valor2 = 4.3
Valor3 = 6.8
Se puede comprender mediante el análisis anterior la diferencia fundamental entre las sentencias Read y
ReadLn.
Si se desea diferir el ingreso de varios valores hasta un punto del programa en el que no se requiere el
ingreso de ningún valor adicional, se puede usar el enunciado ReadLn sin ningún argumento, es decir,
ReadLn ;
para detener la ejecución del programa, es decir, para provocar una interrupción o generar una pausa en la
ejecución del programa.
Enunciados de Escritura
Para exhibir valores o resultados de expresiones aritméticas en la pantalla, se emplean los enunciados Write
(escribir) y WriteLn (escribir línea), con el valor constante, nombre de constante o variable, o expresión
aritmética encerrado entre paréntesis como argumento.
Por ejemplo:
Write (Pi),
WriteLn(superficie);
WriteLn(Pi * radio * radio);

La diferencia entre ambos enunciados, Write y WriteLn, es que si se usa el primero, luego de exhibido el
valor o valores involucrados, el cursor queda al final del último carácter exhibido; en cambio, si se usa el
segundo, el cursor se ubica al comienzo de la siguiente línea de la pantalla de salida o ventana de impresión.
Por ejemplo, si el valor de la variable superficie fuera:
Superficie = 24
Y se ejecuta Write (superficie), se visualizaría en pantalla
24_
En cambio, si se ejecuta WriteLn (superficie), se visualizaría en pantalla
24
_

Lic. Servetto – Ing. Jiménez Rey 75.01 Computación


Guía 1 Página 16 de 21
También se puede usar un mismo enunciado para exhibir más de un valor, separando las representaciones
con comas. Por ejemplo:
Write (superficie1,’ ’, superficie2);
WriteLn (superficie1,’ ’, superficie2);
Cuando se use un mismo enunciado para exhibir más de un valor o resultado, se debe tener en cuenta que
todos los valores aparecerán en la misma línea de la pantalla o ventana, sin ninguna separación o
delimitación entre ellos, por lo que a efectos de obtener exhibiciones prolijas de resultados (entendibles por
el usuario) se deben escribir espacios delimitadores como valores explícitos. Por ejemplo, si los valores de
las variables fueran:
Superficie1 = 24
Superficie2 = 32
Y se ejecuta Write (superficie1,’ ‘,superficie2); se visualizaría en pantalla
24 32_
En cambio, si se ejecuta WriteLn (superficie1,’ ‘,superficie2); se visualizaría en pantalla
24 32
_

Si se desea que el cursor se desplace al comienzo de la próxima línea de la pantalla o ventana, se puede usar
el enunciado WriteLn sin ningún argumento. El efecto de la ejecución de este enunciado es dejar una línea en
blanco en la pantalla de salida.
Un inconveniente o peculiaridad de los enunciados de exhibición de valores, es que en caso de que los
valores sean reales, su representación en pantalla resultará en notación científica; por ejemplo, el valor
2079.45 se exhibiría aproximadamente como 2.07945e003. Para evitar esto y editar la escritura de valores
reales, a continuación del nombre de constante o variable cuyo valor se desea exhibir, o a continuación del
valor constante o expresión encerrado entre paréntesis a exhibir, se puede especificar la cantidad de
caracteres con que representar el valor y la cantidad de dígitos decimales a emplear delimitadas por dos
puntos.
Así, para que el valor de una variable llamada radio resulte exhibido con diez caracteres y cinco decimales
debería escribirse Write ( radio:10:5 ) y si el radio resultara igual a 12.45673976 se visualizaría por pantalla
--12.45673
donde los guiones (--) representan espacios en blanco.
Si los valores a exhibir no completaren la cantidad de espacios especificada, quedarían justificados a derecha
(con blancos a la izquierda hasta completar la cantidad de caracteres estipulada).
Y para que la superficie de un círculo con radio representado por la misma variable se exhiba de la misma
forma debería escribirse Write ( (radio*radio*Pi):10:5 ).
Como los enunciados de ingreso de valores desde teclado no tienen otro efecto que tomar propiamente los
datos, es necesario advertir al usuario lo que el programa espera antes de usar uno de estos enunciados. Por
tanto, es norma que los enunciados de lectura siempre estén precedidos por otros de escritura, especificando
al usuario qué dato o datos debe ingresar.
Por ejemplo:
Write ( ‘Ingrese el radio del círculo: ’ );
ReadLn ( radio );

Ejemplo de programa para calcular la superficie de un círculo


Enunciado
Desarrollar un programa en lenguaje Pascal que solicite al usuario el ingreso desde el teclado del valor del
radio de un círculo (número fraccionario) e informe por pantalla el resultado del cálculo de la superficie del
círculo. Considerar que el usuario no comete error de tipeo al ingresar el dato.
Lic. Servetto – Ing. Jiménez Rey 75.01 Computación
Guía 1 Página 17 de 21
Solución

{SECCIÓN DECLARATIVA}
{Definición del Objetivo}
Program SuperficieCirculo;
{notar que el identificador elegido como nombre del programa no contiene vocales acentuadas}
{Programa que calcula la superficie de un círculo}
{notar que los comentarios pueden contener palabras acentuadas}
{Autores: Lic. Servetto - Ing. Jiménez Rey}
{Versión: 1.0. Marzo de 2007.}
{Definición de Recursos}
Uses
Crt;
Const
Pi = 3.1415926589 ;
Var
radio, superficie: Real;
{representan el radio y la superficie del círculo, respectivamente}
{SECCIÓN ALGORÍTMICA}
{Desarrollo de la Solución}
Begin
{Prólogo}
{Limpieza de Pantalla}
ClrScr;
{Presentación del programa}
WriteLn ( ‘CÁLCULO DE LA SUPERFICIE DE UN CÍRCULO’ );
{al ejecutarse esta sentencia se escribe en la primera línea de la pantalla de salida la
secuencia de caracteres delimitada por las comillas simples y el cursor se posiciona al
principio de la siguiente línea}
WriteLn; {el cursor salta una línea en la pantalla de salida}
{Obtención de valores desde el teclado}
{Solicitud ingreso del valor del radio por pantalla}
Write ( ‘Ingrese el radio del círculo: ’ );
{se reproduce en pantalla la secuencia de caracteres delimitada por las comillas
simples y el valor tipeado por el usuario}
{Asignación del valor ingresado por teclado a la variable radio}
ReadLn ( radio );
{se asocia a la variable radio el valor tipeado por el usuario y el cursor se
posiciona al principio de la siguiente línea de la pantalla de salida}
{Resolución}
{Cálculo de la superficie del círculo}
superficie := Pi * radio * radio;
{se asigna a la variable superficie (a la izquierda del símbolo de asignación) el valor
calculado a través de la expresión aritmética (a la derecha del símbolo de asignación}

Lic. Servetto – Ing. Jiménez Rey 75.01 Computación


Guía 1 Página 18 de 21
{Epílogo}
{Exhibición del resultado por pantalla}
WriteLn;
WriteLn( ‘La superficie es ’, superficie:10:5 );
{se visualiza el valor de superficie notación decimal fraccionaria con 5 dígitos decimales}
{Anuncio de finalización del programa}
WriteLn;
WriteLn (‘Fin del Programa.’);
{Generación de pausa}
ReadLn
{antes del delimitador end se puede omitir el delimitador punto y coma}
End.

Resultado de la Ejecución del Programa (Visualización en la pantalla de salida de Pascal para una
ejecución del programa para valor del radio = 7.50)
CÁLCULO DE LA SUPERFICIE DE UN CÍRCULO
{línea en blanco}
Ingrese el radio del círculo: 7.50
{línea en blanco}
La superficie es 23.56194
{línea en blanco}
Fin del Programa.
_
{el cursor queda titilando en la pantalla de salida en espera que el usuario pulse la tecla Enter ; este efecto permite al
usuario leer el resultado que devuelve el programa antes de que Pascal vuelva a presentarle la pantalla de edición}

Anexos

Operadores Aritméticos Binarios

Operador Operación Tipo de Operandos Tipo del Resultado


+ Suma ambos de tipo entero o real mismo que el de los operandos
- Resta ambos de tipo entero o real mismo que el de los operandos
* Multiplicación ambos de tipo entero o real mismo que el de los operandos
/ División ambos de tipo entero o real real
div División entera ambos de tipo entero entero
mod Módulo ambos de tipo entero entero
(Resto)

Lic. Servetto – Ing. Jiménez Rey 75.01 Computación


Guía 1 Página 19 de 21
Lógicos

Operador Operación Tipo de Operandos


Not (unario) negación expresión lógica
And conjunción expresiones lógicas
(binario)
Or (binario) disyunción expresiones lógicas

Relacionales o de Comparación

Operador Operación Tipo de Operandos


= igual ambos simbólicos o numéricos
<> distinto ambos simbólicos o numéricos
< menor ambos simbólicos o numéricos
<= menor o igual ambos simbólicos o numéricos
> mayor ambos simbólicos o numéricos
>= mayor o igual ambos simbólicos o numéricos

La precisión de los números depende en cada máquina de la longitud en bits de sus celdas de memoria.
Como los lenguajes de programación no pueden estar condicionados por la arquitectura de las máquinas
donde se ejecuten sus programas, proveen representaciones propias y múltiples para cada tipo de dato
numérico.

Tipos Ordinales

Con excepción de los tipos reales, todos los tipos simples o básicos de Pascal son ordinales. Los valores de
tipos ordinales son contables y ordenados, es decir, se pueden contar uno por uno en un orden específico.
Los tipos ordinales son:

Nombre Cantidad de Bytes Codificación Rango


Boolean 1 Binaria 0 .. 1
ShortInt 1 Complemento a 2 -128 .. 127
Integer 2 Complemento a 2 -32768 .. 32767
LongInt 4 Complemento a 2 -2147483648 .. 2147483647
Byte 1 Binaria 0 .. 255
Word 2 Binaria 0 .. 65535
Char 1 ASCII (símbolos)

El tipo Boolean merece una mención especial, ya que admite sólo dos valores: 0 y 1, que en Pascal se
representan por las constantes predefinidas False y True, respectivamente.

Lic. Servetto – Ing. Jiménez Rey 75.01 Computación


Guía 1 Página 20 de 21
Tipos Reales

Los tipos reales en Pascal se basan en la representación con punto flotante, y son:

Nombre Rango Dígitos Cantidad de Bytes


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

63
El tipo Comp es un entero de 64 bits. Soporta sólo valores enteros en el rango (-2 + 1) .. (2 63 - 1).

Lic. Servetto – Ing. Jiménez Rey 75.01 Computación

Vous aimerez peut-être aussi