Está en la página 1de 6

Algoritmos y Estructuras de Datos

1° Año
Ingeniería en Sistemas de Información

* Datos Simples

Prof. CLAUDIA DANIA


Magister en Docencia Universitaria
Analista Universitario de Sistemas
Licenciada en Sistemas de Información

Prof. Claudia Dania 1/5


DATOS

Objetos que son manipulados por las diferentes sentencias o instrucciones de un programa, siendo la
nformación que procesa y brinda un programa.

ESTRUCTURA DE DATOS: Colección de elementos cuya asignación se caracteriza por las operaciones de
acceso que se usan para almacenar y recuperar los elementos individuales.

DATOS CONSTANTES DATOS VARIABLES


CONST nombre = valor; VAR nombre: tipo;

Identificador al cual se le asigna un dato Identificador que permite


permanente cambiar su valor
durante la ejecución del programa durante la ejecución del programa

IDENTIFICADORES: Tipos de Datos


El tipo de dato es una descripción formal del conjunto de valores posibles
que una variable o constante puede presetnar y que operaciones que se le puede aplicar.

SIMPLES

Se asocian a
identificadores
únicos uno a uno

STANDARD REALES (REAL)

ENTEROS (INTEGER)

CARACTERES (CHAR)

STRING

LOGICOS (BOOL)

DEFINIDOS ENUMERADOS
POR
EL USUARIO SUBRANGO

Prof. Claudia Dania 2/5


DATOS DE TIPO SIMPLE
Elementos individuales

STANDARD
Entero (integer): No pueden incluir comas, puntos ó espacios dentro de un número;
puede venir precedido de un signo (+) ó (-), si no aparece el signo se considera
positivo.
El valor máximo es ± 32767 (MAXINT). Se pueden sumar (+), restar (-), multiplicar
(*), dividir ( / resultado real, DIV resultado entero truncado, MOD resto entero).

Ej.: 0 +12 23 -5280

Real (real): No puede comenzar ni terminar en un punto, éste debe estar


comprendido entre dos dígitos; puede llevar exponente entero (negativo o positivo)
como notación científica.
Se pueden sumar (+), restar (-), multiplicar (*), dividir (/).

Ej.: 3.OE+10 -5,026 2E-8 1,66

Caracter (char): en cada variable se admite un solo carácter.


Varían de una máquina a otra según el conjunto de caracteres de la misma, puede
ser CDC-científico, ASCII y EBCDIC. Aunque las ordenaciones sean distintas en
cada uno de ellos, en los tres están ordenados y se le llama Secuencia de Cotejo.

Ej.: letra = ‘T’ - signo = ‘?’ - numero = ‘7’

No se pueden realizar operaciones matemáticas entre variables char, pero si


operaciones de comparación.

Booleano o lógico (boolean): son valores que pueden ser ciertos o falsos.
No pueden ser leídos.
Se los puede trabajar con operadores lógicos: .AND. .OR. .NOT. y operadores
relacionales: = < >= > <= <>

String: permite procesar cadenas de carateres, con una longitud constante que al
momento de ser declarada puede variar entre 1 y 255. En el caso de longitud 1 es
equivalente a la declaración tipo Char. En el caso particular de Pascal, no se le
declara la longitud máxima permitiendo cargar hasta 255 caracteres.Las operaciones
válidas entre string son la asignación y la concatenación.
Ejemplo: var a, b, c: string[10];
a:= ´123´;
b:= ´ ´
c:= a + b por lo caul c contendría ´123 ´

Se pueden utilizar operadores relacionales para comparar string y los resultados sería:
- para el operador =, si las cadenas son de la misma longitud y contienen los mismos símbolos en el
mismo orden el resultado es verdadero, de lo contrario falso.
- para el operador <>, es lo opuesto a lo anterior.
- para operadores >, <, >=, <=: compara símbolo a símbolo según a su aparición el el código ASCII,
ejemplo si se compara ‘sala’ con ‘sola’ , se puede decir que ‘sola’ es mayor que ‘sala’ dado que la ‘o’
aparece después de la ‘a’.

Si es una cadena de caracteres la que deseamos exhibir, sin ser asignada a una variable, debe estar
encerrada entre apóstrofos: 'El costo es:' y puede estar formada por letras, dígitos y/o caracteres
especiales. Si dentro de ella se incluye un apóstrofo, éste debe escribirse dos veces para que el primero
no sea tomado como fin de la cadena.

Los cuatro tipos de datos (menos el string), tienen dos propiedades en común: están formados por
elementos indivisibles y están ordenados, por estas razones se los llama ESCALARES.
Excepto los REALES, los otros tres tipos tienen una propiedad adicional: cada valor tiene un predecesor
único excepto el primero y cada valor tiene un sucesor único excepto el último; estos tipos de datos se
los llama ORDINALES.

Prof. Claudia Dania 3/5


FUNCIONES SOBRE ORDINALES

ORD: Devuelve mediante un valor entero la posición de un valor en su ordenación según la secuencia
de cotejo, teniendo en cuenta que la primera posición es el 0 y no el 1. Para los enteros
devuelve el mismo número y para los booleanos el 0 es Falso y el 1 es Verdadero.

PRED: Devuelve el único valor anterior al del dato ordinal. Se produce un error en tiempo de ejecución
si el parámetro es el primer valor.

SUCC: Devuelve el valor posterior al dato ordinal, produciéndose un error en tiempo de ejecución si el
parámetro es el último elemento del tipo de dato.

CHR: Toma una posición ordinal entera y devuelve el carácter de esa posición, se define sólo sobre
valores tipo CHAR.

TIPOS DE DATOS ESCALARES DEFINIDOS POR EL USUARIO


Se pueden crear nuevos tipos de datos por medio de una definición TYPE antes de la sección VAR.

TIPO DE DATOS ENUMERADOS

Es una secuencia ordenada de identificadores, donde cada uno se interpreta como


.. dato individual, asociados a un nombre que sirve como identificador de tipo. Esta
asociación se la realiza mediante una declaración TYPE.
Debido que los datos tienen una secuencia ordenada, se los puede trabajar con operadores relacionales
o utilizar funciones standard como: pred() ó succ() para conocer que datos preceden ó suceden a uno
en particular y ord(): entendiendo que el primer dato tiene asignado el valor ordinal 0. No pueden ser
utilizados en instrucciones de entrada ni de salida.
La forma de definir este conjunto de datos es listar todos los valores posibles que puede tomar una
variable de dicho tipo, separándolos con coma y encerrados entre paréntesis. Hay que tener en cuenta
que un identificador de tipo NO puede ser utilizado como variable, sino que se lo debe asignar en la
sección VAR.

TYPE nombre = (dato1, dato2,....., datoN);

TYPE semana = (domingo, lunes, martes, miercoles, jueves, viernes, sabado);

lunes < martes. . . verdadero; succ(miercoles) = jueves; ord(martes) = 2;

TYPE Animales = (raton, gato, perro, tigre);


VAR salvajes, domesticos: Animales;

Los tipos enumerados son ordinales por lo tanto se les puede aplicar las funciones de Pred, Succ y Ord.
Además pueden usarse en las etiquetas de las sentencias CASE, en los bucles FOR y WHILE.

CASE domesticos OF FOR domesticos:= gato TO perro DO ... ;


raton: write ('trampa');
gato: write ('darle comida') domesticos:= gato;
END; WHILE domesticos < tigre DO
domesticos:= Succ (domesticos);

Los identificadores del enumerado deben seguir las mismas reglas que otros identificadores: no pueden
comenzar con un número, ni con caracteres especiales, no pueden estar definidos en dos tipos enumerados
al mismo tiempo, no pueden ser leidos, se los debe ingresar como un número o una letra (codificados) y
luego traducirlos a su valor real y tampoco pueden ser exhibidos directamente.

Read (dato) CASE domesticos OF


IF dato = ‘G’ THEN domesticos := gato gato: Write ('gato');
ELSE ......; .......
END;

Prof. Claudia Dania 4/5


TIPO DE DATOS SUBRANGO

Es un tipo de datos compuesto de un rango específico de cualquier tipo ordinal,


ordenados y contiguos. Se define por un valor inicial inferior, dos puntos
suspensivos y un valor final superior, según la ordenación del tipo residente, no
van encerrados entre paréntesis.
Se puede aplicar a cualquier conjunto de datos de tipo simple (entero, char,
boolean y enumerado) excepto los de tipo real. Valen las mismas consideraciones
que los enumerados en cuanto a funciones y operadores relacionales. Unicamente
se pueden usar en instrucciones de entrada/salida si son tipo entero o char,
siempre que estén dentro del rango especificado.
Además de hacer un programa más legible, nos facilita la comprobación automática de rango, detecta
automáticamente la asignación fuera de rango de una variable, por ejemplo si quisiéramos asignar una 'F'
a una variable que fue definida con un subrango de 'A' . .'D', se detiene el programa con un mensaje de
error.
TYPE nombre = primer dato . . ultimo dato;

TYPE semana = (domingo, lunes, martes, miercoles, jueves, viernes, sabado);

TYPE trabajo = lunes . . viernes;

TYPE numero = 1 . . 6;

TYPE dias = 1 . . 31;

TYPE nota = 0 . . 10;


VAR calificar : nota;

variable:= dato;

calculo := 3 * 14 / sqr(x); resul := succ(valor), r:= 5;

Prof. Claudia Dania 5/5

También podría gustarte