UNIVERSIDAD NACIONAL DE SALTA – Sede Regional Orán AÑO: 2012 Carreras: CU - TIG - TUP Cátedras: INTRODUCCIÓN A LA PROGRAMACIÓN / PROGRAMACIÓN / PROGRAMACIÓN TRABAJO PRÁCTICO N° 2: Estructuras Fundamentales de Datos. Ejercicio 1: Indicar la cantidad de bytes con la que se almacenan en memoria RAM las variables de cada uno de los siguientes tipos: Enteros: Byte, Integer, Longint, Shortint, Word Reales: Real, Double, Extendend, Comp. Caracter: Char. Lógico: Boolean. Para los siguientes ejercicios puede realizar un pequeño programa, compilar y observar los resultados. Ejercicio 2: Analizar la validez de las siguientes declaraciones e indicar cuáles son los errores detectados en las mismas. Justificar su respuesta en cada uno de los casos. f) Var a) Const i, j, k, l, m: Integer; Delta: Char or Real; Base = 173.5; Error = 0.1E-5; Parar = ‘&; Blanco = ‘ ’; b) Const g) Var Lado = Radio; Si = ‘s’; Fin = 32; c) Var i, j: Real; k: Boolean; m: Integer; d) Var Cant= 100; Suma: 45; Diferencia: Integer; e) Var No: Char p, q: Real; ‘I’: Integer; ALFA:Integer; Omega: Integer; LIST3: Integer; SUELDO: Integer; X+3Y: Integer; X3Y: Integer; 3H2So4: Integer; R&Cia: Integer; Comisión: Integer; MIN: Integer; $A-58: Integer; PI: Integer; Var: Integer; COL(7): Integer; Num-DOC: Integer; . Ejercicio 3 : Para cada uno de los siguientes casos, definir constantes para representar la primera letra mayúscula, la última letra mayúscula, el primer mes del año, el último mes del año, el año de la Independencia y un impuesto (por ejemplo: IVA). Ejercicio 4: Considerando las siguientes definiciones de constantes y declaraciones de variables: Const Pagina = 235; Z = ‘Z’; Gama = 0.0045; Trabajo Práctico Nro: 2 Estructuras Fundamentales de Datos Página 1 de 6 UNIVERSIDAD NACIONAL DE SALTA – Sede Regional Orán AÑO: 2012 Carreras: CU - TIG - TUP Cátedras: INTRODUCCIÓN A LA PROGRAMACIÓN / PROGRAMACIÓN / PROGRAMACIÓN Var MX7, MX9: Integer; Tar, Rango: Real; Simbolo: Char; Respuesta: Boolean; Examinar cada una de las sentencias de asignación y determinar cuáles son inválidas y por qué. Para aquellas que sean válidas, indicar cuál será el valor asignado. a) b) c) d) e) MX7 := 924; MX9 := Pagina; Rango := Respuesta; Tar := MX9; MX9 := Z; f) g) h) i) j) Rango := Gama; Gama := Tar; MX7 := Gama; Simbolo := ‘T’; Respuesta := True; Ejercicio 5: Dadas las definiciones de tipo y las declaraciones de variables siguientes, determinar el resultado de la ejecución de cada instrucción: Type TSintomasGripe = (Sano, Estornudo, Tos, DolorMuscular, Fiebre, Nauseas, Cansancio); Var a, b: TSintomasGripe; c: Boolean; Begin a := b := c := If c Succ(Sano); Pred(DolorMuscular); ord(a) < ord(b); then Writeln( ‘Estas enfermo’); End. Ejercicio 6: Dadas las definiciones de tipo, las declaraciones de variables y constantes siguientes: CONST N = 100; TYPE TipoDeporte = (futbol, tenis, voley, básquet); Sexo = (masculino, femenino); VAR s1, s2 : Sexo; Deporte : Array [1.. N] of TipoDeporte; m, n: Integer; x, y : Real; b1, b2: Boolean; Señalar si las siguientes asignaciones son correctas, justifique: a) s1:= femenino; b) b1:= x=y; Trabajo Práctico Nro: 2 Estructuras Fundamentales de Datos Página 2 de 6 UNIVERSIDAD NACIONAL DE SALTA – Sede Regional Orán AÑO: 2012 Carreras: CU - TIG - TUP Cátedras: INTRODUCCIÓN A LA PROGRAMACIÓN / PROGRAMACIÓN / PROGRAMACIÓN c) deporte := FUTBOL; d) m := 6.9; e) s2:= Succ(s1); f) b2:= Falso; g) deporte [1] := tenis; h) n:= masculino; Ejercicio 7: Definir el tipo enumerado AlgunasLetrasGriegas con identificadores ALFA, BETA, DELTA, GAMMA y OMEGA ordenados en forma tal que respeten cada uno de los siguientes conjuntos de criterios. Recordar que el ordinal del primer valor definido en el enumerado es 0. a) Pred(DELTA) = GAMMA OMEGA < GAMMA = False Ord(BETA) = 2 Succ(OMEGA) = ALFA. b) GAMMA < BETA = True Ord(BETA) - Ord(ALFA) = 3 DELTA > OMEGA = False Pred(OMEGA) = GAMMA. Ejercicio 8: Dados los tipos de datos Metal y Gas definidos como sigue: Type Metal = (zinc, hierro, plata, oro, platino, aluminio, cobre); Gas = (hidrogeno, nitrogeno, oxigeno, helio, neon, argon, radon); a) Evaluar cada una de las siguientes expresiones booleanas. En caso de haber expresiones inválidas explicar por qué. b) Evaluar, de ser posible, cada una de las siguientes expresiones. Si alguna no puede evaluarse. Explicar por qué. Trabajo Práctico Nro: 2 Estructuras Fundamentales de Datos Página 3 de 6 UNIVERSIDAD NACIONAL DE SALTA – Sede Regional Orán AÑO: 2012 Carreras: CU - TIG - TUP Cátedras: INTRODUCCIÓN A LA PROGRAMACIÓN / PROGRAMACIÓN / PROGRAMACIÓN Ejercicio 9: Dadas las siguientes declaraciones: TYPE Vocal = (a, e, i, o, u); Cadena = String[20]; VAR c: Char; s:Cadena; v:Vocal; m,n: Integer; a) Determinar la sentencia de lectura incorrecta: Read(s); Read(v); Read(c); Read(n); b) Señalar la sentencia de decisión correcta: If s[i] in v Then Write(‘vocal’); If s = c Then Write(‘consonante’); If s[i] = c then Write(‘letra’); c) Indicar la sentencia de iteración correcta: For v:= a to u do; For c:= ‘u’ Downto ‘a’ For s:= ‘a’ to ‘u’ do; do; Ejercicio 10: Escribir las siguientes expresiones aritméticas en lenguaje Pascal: Ejercicio 11: Escribir un programa en Pascal que evalúe la siguiente expresión: (a+7*c)/(b+2-a)+2*b; a = 3,b = 6,c = 4 Trabajo Práctico Nro: 2 Estructuras Fundamentales de Datos Página 4 de 6 UNIVERSIDAD NACIONAL DE SALTA – Sede Regional Orán AÑO: 2012 Carreras: CU - TIG - TUP Cátedras: INTRODUCCIÓN A LA PROGRAMACIÓN / PROGRAMACIÓN / PROGRAMACIÓN Ejercicio 12: Completar la siguiente tabla que contiene el tipo de resultado de operaciones binarias: Tipo de Operandos Operador Integer +-* Integer / Real DIV Integer ------ MOD Integer ------ ‹, ‹=, =, ›, ›=, ‹› AND, OR Real Boolean Char Integer Real Real Set Boolean Ejercicio 13: Determinar cuáles de las siguientes expresiones son sintácticamente correctas (de tipo compatible), teniendo en cuenta las siguientes declaraciones de variables: VAR i, j, k : Integer; X, y, z: Real; A, B: Set of Char; Pregunta, respuesta, encontrado, OK; Boolean; Letra, digito: Char; a) b) c) d) e) f) g) h) i) j) k) l) x+y*i I MOD (i + j) (x + y) < (i + j) i DIV j + x k – Trunc(x * i) i*x+j*y x=i (x < y) AND (y < z) OK OR encontrado AND pregunta < respuesta Chr(Ord(digito)) Letra IN A OR digito IN B Respuesta = OK AND NOT encontrado Ejercicio 14: Calcular los valores de las variables A, B y C, detallando la evaluación paso a paso. Trabajo Práctico Nro: 2 Estructuras Fundamentales de Datos Página 5 de 6 UNIVERSIDAD NACIONAL DE SALTA – Sede Regional Orán AÑO: 2012 Carreras: CU - TIG - TUP Cátedras: INTRODUCCIÓN A LA PROGRAMACIÓN / PROGRAMACIÓN / PROGRAMACIÓN Const X = 1; Y = 2; Z = 3; Var A, B, C : Integer; ... A := X+10*Z Div (Z+X); B := Z+10*(Z Div Y)+Y; C := (X+10*Z) Div (Z+X); Ejercicio 15: Escribir declaraciones de tipo para trabajar con las siguientes estructuras: a) Vector de 50 elementos enteros, con índice entero, comenzando en cero. b) Vector cuyo índice son los días de la semana y cuyos elementos son el total de horas de clase. c) Matriz para indicar el estado (ocupada o no) de las aulas de la UNSa, durante las distintas horas y distintos días de la semana. d) Matriz para indicar no solamente si las aulas están ocupadas o no, sino también la materia que se dicta, el nombre del docente, cantidad de alumnos. e) Vector con índice entre 1 y el total de alumnos de la clase y con elementos que representen el subconjunto de las materias aprobadas por cada alumno. Ejercicio 16: Realizar las declaraciones necesarias para trabajar con las siguientes estructuras: a) Código Artículo:1234 Descripc: MOTO % descuento: 15 Proveedor: Honda Stock Mínimo: 2 Ubicación: salón de vta. Precio: 10.000 Stock actual: 5 b) Ríos José 1 2 3 ... 8 –16 hs 16 – 24 hs 24-8 hs ... Mes: 10 Deporte que practica: Tenis, Básquet 30 8 – 16 hs Trabajo Práctico Nro: 2 Estructuras Fundamentales de Datos Legajo Nro: 7 31 Fecha Nacimiento: 10-10-52 Página 6 de 6