Title: Programaci
1Programación I
Universidad Nacional de Luján Licenciatura en
Sistemas de Información Departamento de Ciencias
Básicas
- Prof. Adjunto Lic. Jorge O. Scucimarri
2Tipo de Datos
El universo de valores con los que un programa
trabaja, está dividido en colecciones organizadas
llamadas tipos.
3Los tipos de datos se caracterizan por
- Un rango de valores posibles (dominio).
- Un conjunto de operaciones realizables sobre ese
tipo. - Su representación interna.
4La declaración de tipos de datos presenta las
siguientes ventajas
- Mejores posibilidades de abstracción.
- Límites preestablecidos sobre el dominio de cada
variable asociada a un elemento del mundo real. - Detectar errores de operaciones.
- Determinar cómo ejecutar las operaciones.
5Tipo de Datos
Datos Estáticos
Datos Dinámicos
Tipos Simples
Tipos Cadena (arrays)
Tipos Estructurados
Tipos Procedimiento (procesos)
- Ordinales
- Integer
- Boolean
- Char
- Enumerado
- Subrango
- No Ordinales
- Reales
Array Registro Conjunto Archivo
Tipos Puntero
6Los tipos simples definen conjuntos de valores
ordenados.
7Tipo Simple
Tipo Ordinal
Se dice ordenado discretamente si para todos los
elementos que son parte del tipo, salvo el
primero y el ultimo, existe un elemento anterior
y otro posterior.
integer
Predefinidos
char
boolean
Tipo Ordinal
8Tipo Simple
Tipo Ordinal
integer
Predefinidos Numéricos
Tipo Ordinal
9Tipo Numérico Entero
Tipo Rango Formato
byte integer longint shortint word 0 .. 255 -32768 .. 32767 -247483648 .. 2147483647 -128 .. 127 0 .. 65535 8 bits sin signo 16 bits con signo 32 bits con signo 8 bits con signo 16 bits sin signo
10Tipo Simple
Tipo Ordinal
integer
Predefinidos
char
boolean
Tipo Ordinal
11Tipo Simple
Tipo Ordinal
Predefinidos Lógicos
boolean
Tipo Ordinal
12Tipo Lógico o booleano
Es un dato cuyo dominio está formado por dos
valores posibles Verdadero (true) Falso (false)
13Tipo Simple
Tipo Ordinal
integer
Predefinidos
char
boolean
Tipo Ordinal
14Tipo Simple
Tipo Ordinal
Predefinidos Caracter
char
Tipo Ordinal
15Tipo Carácter (char)
- Es un dato cuyo dominio está formado por el
conjunto de valores comprendido en el código
ASCII, el cual permite establecer un orden de
precedencia entre los mismos. - Letras minúsculas a, b, ..., z
- Letras mayúsculas A, B, ..., Z
- Dígitos 0, 1, ..., 9
- Caracteres especiales !, _at_, ...
16Tipo Carácter (char)
Funciones sobre el tipo de dato carácter
Función Descripción Argumento Resultado
Chr(x) Retorna el caracter ASCII que se corresponde con el valor de x. Integer Char
Ord(x) Retorna el valor ASCII del carácter que se indica en x. Char Integer
17Tipo Ordenados Discretamente
Funciones
Función Descripción Argumento Resultado
Pred(x) Predecesor del elemento x. int, char o boolean int, char o boolean
Succ(x) Sucesor del elemento x. int, char o boolean int, char o boolean
Ord(x) Posición del elemento x dentro de los elementos del tipo int, char o boolean int
18Tipo Ordenados Discretamente
Ejemplos Pred(H) G Succ(2)
3 Succ(false) true Pred(110) 109 Succ(Z)
a
19Tipo Ordenados Discretamente
Para los enteros Succ(x) es x 1 Pred(x) es x
- 1 Ord(x) es x Para los booleanos Ord(false)
es 0 Ord(true) es 1
20Tipo Simple
Tipo Real
21Tipo Numérico Real
Tipo Rango Cifras Tamaño
real single double extended comp 2.910-39 .. 1.71038 1.510-45 .. 3.41038 5.010-324 .. 1.710308 1.910-4932 .. 1.1104932 -263 1 .. 263 1 11 12 7 8 15 16 19 20 19 20 6 bytes 4 bytes 8 bytes 10 bytes 8 bytes
22Notación científica o de coma flotante
Sea el número 0.0000000000356798 su
representación utilizando notación científica
es 3.56798 x 10-11 y su representación en una
computadora 0.356798 -10
mantisa
exponente
23Notación científica o de coma flotante
Sea el número 89412950000000000 su representación
en una calculadora es 8.941295 x 1016 y su
representación en una computadora
.8941295 17
mantisa
exponente
24Operaciones básicas
Operación Operandos Resultado
() suma Enteros y reales Entero o real
(-) resta Enteros y reales Entero o real
() multiplicación Enteros y reales Entero o real
(/) división Reales Real
(div) división entera Enteros Entero
(mod) módulo Enteros Entero
25Tipo de DatosDefinidos por el Usuario
26Tipo Simple
Tipo Ordinal
Tipo Ordinal
Definidos por el Usuario
enumerados
subrango
27Tipo Simple
Tipo Ordinal
Tipo Ordinal
Definidos por el Usuario
enumerados
28Tipo Enumerado
Formato type nombre_tipo_enum (valor_1,
valor_2, ..., valor_n) Ejemplos type colores
(rojo, azul, verde, blanco, negro) dias_semana
(domingo, lunes, martes, míercoles,
jueves, sabado, domingo) var color
colores dia dias_semana
29Tipo Enumerado
Los identificadores que detallan los valores
posibles del tipo son constantes simbólicas.
Estos identificadores deben ser distintos de los
que están detallados en la misma sección. Por
esta razón no pueden ser, por ejemplo, caracteres.
Ejemplos no válidos type ciudad_1 (LaPlata,
Cordoba, Rosario) ciudad_2 (Salta, Cordoba,
Jujuy) letras (a, b, c)
30Tipo Enumerado
Operaciones sobre datos enumerativos type
colores (azul, blanco, negro, verde) var
color colores Son válidas las sgtes.
operaciones color azul If (color
blanco) or (color negro) then ... For color
azul to verde do... No son válidas
operaciones tales como read(color) write(col
or)
31Tipo Enumerado
Las funciones predefinidas sobre datos
enumerativos son las mismas que se describen para
los datos de tipo ordinal.
32Tipo Simple
Tipo Ordinal
Tipo Ordinal
Definidos por el Usuario
enumerados
subrango
33Tipo Simple
Tipo Ordinal
Tipo Ordinal
Definidos por el Usuario
subrango
34Tipo Subrango
type nombre (límite inferior.. límite
superior) Ejemplos type
IntervaloEnteros -100..100 LetrasMin
a..z var Reducido IntervaloEnteros Let
ras LetrasMin
35Tipo Subrango
Un tipo de dato subrango es un tipo ordinal que
consiste en una secuencia sucesiva contigua de
valores de algún tipo ordinal (llamado tipo base
del subrango).
Las operaciones y las funciones predefinidas que
se pueden realizar sobre un tipo de dato subrango
son las mismas que las de su tipo base.
36Tipo de Datos
Datos Estáticos
Datos Dinámicos
Tipos Simples
Tipos Cadena (arrays)
Tipos Estructurados
Tipos Procedimiento (procesos)
- Ordinales
- Integer
- Boolean
- Char
- Enumerado
- Subrango
- No Ordinales
- Reales
Array Registro Conjunto Archivo
Tipos Puntero
37Tipo de Datos
Datos Estáticos
Tipos Simples
Tipo Cadena
- Ordinales
- Integer
- Boolean
- Char
- Enumerado
- Subrango
- No Ordinales
- Reales
38Tipo String (cadena)
Una cadena de caracteres (string) es una serie de
caracteres cuya longitud puede variar de 0 a 255
caracteres. El tipo de dato string permite
almacenar información de texto.
Ejemplo var Mensaje string
39Tipo String
- Operaciones entre cadenas
- Asignación
- Comparación
- Concatenación
40Tipo String
Algunas funciones aplicables a cadenas Concat
(S1, S2, ..., Sn) retorna un string Length
(S) retorna un integer Copy (S, Posición,
Cantidad) retorna un string
41Tipo de Datos
Datos Estáticos
Datos Dinámicos
Tipos Simples
Tipos Cadena (arrays)
Tipos Estructurados
Tipos Procedimiento (procesos)
- Ordinales
- Integer
- Boolean
- Char
- Enumerado
- Subrango
- No Ordinales
- Reales
Array Registro Conjunto Archivo
Tipos Puntero
42Tipo de Datos
Datos Estáticos
Tipos Simples
Tipos Cadena (arrays)
Tipos Estructurados
- Ordinales
- Integer
- Boolean
- Char
- Enumerado
- Subrango
- No Ordinales
- Reales
Array Registro Conjunto Archivo
43Tipo Conjunto
Colección homogénea de elementos, sin repetición,
sin relación de orden entre ellos e ilimitada.
Desde el punto de vista informático, es una
colección de datos simples, todos del mismo tipo.
(En Pascal, el número máximo de elementos está
acotado a 255)
44Tipo Conjunto
Un conjunto se declara de la forma type
conjunto set of tipo_ordinal donde tipo
ordinal es el tipo al cual pertenecen los
elementos del conjunto y al que se lo denomina
tipo base.
45Tipo Conjunto
Una vez definido el tipo conjunto, podemos
definir una variable conjunto var
nombre_variable conjunto También es posible
declarar directamente una variable como un
conjunto sin una declaración previa de tipo
var nombre_variable set of tipo_ordinal
46Tipo Conjunto
Ejemplos type dias (domingo, lunes, martes,
miercoles, jueves, viernes,
sabado) Uno_al_100 1..100 Letras set of
char Algunos_dias set of dias Algunos_numero
s set of uno_al_100
47Tipo Conjunto
Construcción de un conjunto Program
define_conjuntos var letras set of char
begin letras a, b, c, x, z
... end.
48Tipo Conjunto
Operaciones sobre datos tipo conjunto
Operación Operador Tipo de resultado
Unión Conjunto
Intersección Conjunto
Diferencia - Conjunto
Pertenecia In Lógico
49Tipo Conjunto
Ejemplos type conjunto set of char var conj_1,
conj_2, conj_3 conjunto conj_1
conjunto vacío conj_2 a conj_1
a, c, f conj_3 conj_1 conj_2
50Tipo Conjunto
- Operadores relacionales válidos
- ltgt lt gt
- Si A y B son variables del mismo tipo conjunto
- AltgtB retorna true si los conjuntos son distintos
- AltB retorna true si A está incluido en B
- AgtB retorna true si B está incluido en A
- A B retorna true si A y B son iguales.