Vous êtes sur la page 1sur 27

Gua de Trabajos Prcticos

para las materias

Programacin I y Programacin
de las carreras

Licenciatura y Profesorado en Ciencias de la Computacin y Tecnicaturas en Redes y Web


Area de Programacin y Metodologas de Desarrollo del Software Departamento de Informtica Facultad de Ciencias Fsico-Matemticas y Naturales Universidad Nacional de San Luis Argentina 2006

Programacin I

Gua de Trabajos Prcticos - 2006

TABLA DE CONTENIDO
TABLA DE CONTENIDO....................................................................................................... 1 PROGRAMA DE LA MATERIA............................................................................................ 3 FUNDAMENTACIN Y OBJETIVOS ........................................................................................ 3 PRE REQUISITOS, CONCEPTOS PREVIOS. .............................................................................. 3 Lgica. ....................................................................................................................... 3 Las Computadoras...................................................................................................... 3 Resolucin de Problemas y Programacin................................................................... 3 Datos y Acciones........................................................................................................ 3 Estructuras de Datos: Arreglos. Modularidad. ............................................................ 3 CONCEPTOS NUEVOS .......................................................................................................... 4 Unidad I ..................................................................................................................... 4 Unidad II.................................................................................................................... 4 Unidad III .................................................................................................................. 4 Unidad IV .................................................................................................................. 4 Unidad V.................................................................................................................... 4 Unidad VI .................................................................................................................. 4 Unidad VII ................................................................................................................. 5 Unidad VIII................................................................................................................ 5 Unidad IX .................................................................................................................. 5 Unidad X.................................................................................................................... 5 PLAN DE TRABAJOS PRCTICOS .......................................................................................... 5 RGIMEN DE APROBACIN .................................................................................................. 6 BIBLIOGRAFA BSICA ........................................................................................................ 6 BIBLIOGRAFA COMPLEMENTARIA ...................................................................................... 6 PLANIFICACIN 2006 ........................................................................................................... 7 HORARIO ................................................................................................................................ 8 EJERCICIOS PRCTICOS .................................................................................................... 9 PRCTICO DE LGICA: PROPOSICIONES, CONECTIVOS, TABLAS DE VERDAD.......................... 9 Ejercicios de aula........................................................................................................ 9 PRCTICO 1. PASCAL: DEFINICIONES Y DECLARACIONES, TIPOS DE DATOS; ACCIONES, SENTENCIAS. ESTRUCTURAS DE DATOS: ARREGLOS Y REGISTROS ...................................... 10 Prctico 1.1. Pascal: definiciones y declaraciones, tipos de datos; acciones, sentencias. .................................................................................................................................... 10 Ejercicios de aula...................................................................................................... 10 Ejercicios de mquina ............................................................................................... 14 Prctico 1.2. Estructuras de Datos: Pascal, Arreglos y Registros ............................... 14 Ejercicios de aula...................................................................................................... 14 Arreglos (arrays) .................................................................................................. 14 Registros (records) ............................................................................................... 14 Ejercicios de mquina ............................................................................................... 14 PRCTICO 2. MODULARIDAD. PASCAL: PROCEDURE Y FUNCTION. .................................... 14
Area de Programacon y Metodologa de Desarrollo del Software Pgina 1 de 27 U. N. S. L., Dpto. Informtica

Programacin I

Gua de Trabajos Prcticos - 2006

Ejercicios de aula...................................................................................................... 14 Ejercicios de mquina ............................................................................................... 14 PRCTICO 3. ESTRUCTURAS DE DATOS: PASCAL EXTENDIDO, PILAS Y FILAS ..................... 14 Ejercicios de aula...................................................................................................... 14 PRCTICO 4. ESTRUCTURAS DE DATOS: PASCAL EXTENDIDO: LISTAS. ............................... 14 Ejercicios de aula...................................................................................................... 14 PRCTICO 5. ESTRUCTURAS DE DATOS: MULTINIVEL. ....................................................... 14 Ejercicios de aula...................................................................................................... 14 PRCTICO 6. IMPLEMENTACIN DE ESTRUCTURAS DINMICAS: PILAS Y FILAS. ................. 14 Ejercicios de aula...................................................................................................... 14 Ejercicios de mquina ............................................................................................... 14 PRCTICO 7. IMPLEMENTACIN DE ESTRUCTURAS DINMICAS: LISTAS UNI Y BIDIRECCIONALES ................................................................................................................ 14 Ejercicios de aula...................................................................................................... 14 Ejercicios de mquina ............................................................................................... 14 PRCTICO 8. RECURSIVIDAD ............................................................................................. 14 Ejercicios de aula...................................................................................................... 14 Ejercicios de mquina ............................................................................................... 14 PRCTICO 9. PASCAL: TIPO POINTER ................................................................................. 14 Ejercicios de aula...................................................................................................... 14 Ejercicios de mquina ............................................................................................... 14 PRCTICO 10. DATOS RECURSIVOS. ................................................................................. 14 Ejercicios de aula...................................................................................................... 14 Ejercicios de mquina ............................................................................................... 14

Area de Programacon y Metodologa de Desarrollo del Software

Pgina 2 de 27

U. N. S. L., Dpto. Informtica

Programacin I

Gua de Trabajos Prcticos - 2006

PROGRAMA DE LA MATERIA
FUNDAMENTACIN Y OBJETIVOS
Introducir al alumno en el paradigma de la programacin imperativa. Paradigma de programacin Imperativa: Estructuras de control a nivel de sentencias. Variables simples y estructuradas, tipos de datos predefinidos y definidos por el usuario y sus usos en resolucin de problemas, registros, archivos. Estructuras de control a nivel de unidades, parmetros formales y actuales. Su uso en programas en un lenguaje que responda al paradigma. Laboratorios sugeridos: imperativo. Implementacin y corrida de programas cortos usando un lenguaje

Licenciado en Ciencias de la Computacin, Contenidos Mnimos del Ciclo Obligatorio, Anexo III, Ordenanza C.S. 11/98. Profesorado en Ciencias de la Computacin, Contenidos Mnimos, Anexo II, Ordenanza C.D. 003/00. Tcnico Universitario en Web, Contenidos Mnimos, Anexo II, Ordenanza C.D. 008/04. Tcnico Universitario en Redes de Computadoras, Contenidos Mnimos, Anexo II, Ordenanza C.D. 007/04.

PRE REQUISITOS, CONCEPTOS PREVIOS.


Lgica.
Introduccin a la Lgica. Proposiciones. Funciones proposicionales. Variables proposicionales. Funtores de verdad (a) Conectivos: Conjuncin Disjuncin, Condicional, Bicondicional. (b) Noconectivos: Negacin.

Las Computadoras
Las Computadoras. Las partes de una computadora. Las partes internas: Unidad Central de Proceso. Procesadores y Microprocesadores. Procesadores y Co-procesadores. Memoria Principal. Las partes externas. Teclado. Video. Memoria auxiliar: Discos magnticos: Discos magnticos flexibles (floppy disquete). Discos magnticos rgidos (duros). La informacin (datos) dentro de la computadora. El funcionamiento. El Sistema Operativo.

Resolucin de Problemas y Programacin


Programacin de computadoras. Programacin y Resolucin de Problemas. El Proceso de Resolucin de Problemas. Etapas de la Resolucin de Problemas. Los Paradigmas de la Programacin. Programacin Imperativa. Programacin y Datos. Estructuras de programacin. Lenguajes de programacin: caractersticas generales. Mtodos de descripcin de lenguajes de programacin. Sintaxis y semntica. Metalenguajes de definicin.

Datos y Acciones
Acciones y descripcin de datos. Datos: estndar, escalares. Definicin y declaracin. Constantes, variables, tipos. Acciones: Sentencias de asignacin, iteracin, seleccin, sentencias compuestas.

Estructuras de Datos: Arreglos. Modularidad.


Arreglos: orden de sus elementos, capacidad, operaciones. Modularidad: Subalgoritmos
Area de Programacon y Metodologa de Desarrollo del Software Pgina 3 de 27 U. N. S. L., Dpto. Informtica

Programacin I

Gua de Trabajos Prcticos - 2006

CONCEPTOS NUEVOS
Unidad I
Introduccin al Lenguaje de Programacin Pascal. Orgenes, objetivos. Acciones y descripcin de datos. Datos: estndar, escalares. Definicin y declaracin. Constantes, variables, tipos. Acciones: Sentencias de asignacin, iteracin, seleccin, sentencias compuestas. Estructuras de Datos. Orden de sus elementos: cronolgico, no cronolgico. Capacidad: dinmica, esttica. Operaciones. Arreglos: orden de sus elementos, capacidad, operaciones. Registros: orden de sus elementos, capacidad, operaciones. Lenguaje de programacin Pascal: tipos record y array.

Unidad II
Modularidad. Concepto de mdulo. Lenguaje de programacin Pascal: Procedimientos y funciones. Declaracin, invocacin, parmetros. Pasaje de parmetros. Resolucin de problemas y uso de procedimientos y funciones.

Unidad III
Estructuras de datos I. Pilas: orden de sus elementos, capacidad, operaciones. Filas o colas: orden de sus elementos, capacidad, operaciones. Extensiones al lenguaje Pascal para manejo de estructuras dinmicas: pilas y filas. Declaraciones. Operaciones. Predicados.

Unidad IV
Estructuras de datos II. Listas uni-direccionales: composicin de los elementos, orden de sus elementos, capacidad, operaciones. Listas bi-direccionales: composicin de los elementos, orden de sus elementos, capacidad, operaciones. Cursores. Generalidad de las listas. Extensiones al lenguaje Pascal para manejo de estructuras dinmicas: listas. Declaraciones. Operaciones. Predicados.

Unidad V
Estructuras de datos III. Estructuras de ms de un nivel: estructuras multinivel. Estructuras estticas. Arreglos multinivel. Registros multinivel. Estructuras dinmicas. Composicin de los elementos. Operaciones. Extensiones al lenguaje Pascal para manejo de estructuras dinmicas multinivel. Declaraciones. Operaciones. Predicados.

Unidad VI
Implementacin de Estructuras de Datos I.

Area de Programacon y Metodologa de Desarrollo del Software

Pgina 4 de 27

U. N. S. L., Dpto. Informtica

Programacin I

Gua de Trabajos Prcticos - 2006

Conceptos Generales: Administracin de los espacios libres. Desborde y desfonde. Mtodos de administracin de los espacios libres: administracin esttica, administracin dinmica. Implementacin de pilas: con y sin desplazamiento. Implementacin de filas o colas: con y sin desplazamiento.

Unidad VII
Implementacin de Estructuras de Datos II. Implementacin de listas: con y sin desplazamiento.

Unidad VIII
Recursividad. Conceptos Generales y aplicaciones. PASCAL: procedimientos y funciones recursivas.

Unidad IX
PASCAL, tipo pointer: Conceptos Generales y aplicaciones.

Unidad X
Datos recursivos. Conceptos Generales. Implementacin de estructuras de datos, listas uni y bi-direccionales, empleando el tipo pointer del PASCAL.

PLAN DE TRABAJOS PRCTICOS


1. En aula: PASCAL: definiciones y declaraciones, datos y acciones. Estructuras de Datos: PASCAL: Array (arreglo) y record (registro). En mquina: de los temas del prctico de aula. 2. En aula: Modularidad. PASCAL: declaraciones y uso de procedure y function. En mquina: de los temas del prctico de aula. 3. En aula: Estructuras de Datos: pilas, filas. Declaraciones y operaciones empleando las extensiones del PASCAL. 4. En aula: Estructuras de Datos: listas uni y bi-direccionales. Declaraciones y operaciones empleando las extensiones del PASCAL. 5. En aula: Estructuras de Datos: multinivel. Declaraciones y operaciones empleando las extensiones del PASCAL. 6. En aula: Implementacin de estructuras: pilas, filas, empleando PASCAL. En mquina: de los temas del prctico de aula. 7. En aula: Implementacin de estructuras: listas uni y bi-direccionales, empleando PASCAL. En mquina: de los temas del prctico de aula. 8. En aula: Recursividad. En mquina: de los temas del prctico de aula. 9. En aula: PASCAL; Tipo Pointer. 10. En aula: Datos recursivos. Implementacin de estructuras, listas uni y bi-direccionales, empleando el tipo pointer del PASCAL. En mquina: de los temas del prctico de aula.

Area de Programacon y Metodologa de Desarrollo del Software

Pgina 5 de 27

U. N. S. L., Dpto. Informtica

Programacin I

Gua de Trabajos Prcticos - 2006

RGIMEN DE APROBACIN
1.- Crdito Horario: El crdito horario semanal es de nueve (9) horas, separado en tres (3) horas de teora y seis (6) horas de trabajos prcticos, divididos en cuatro (4) horas de trabajos prcticos de aula y dos (2) horas de trabajos prcticos sobre mquina. En algunos casos los horarios de prcticos de aula pueden emplearse en mquina. 2.- Regularizacin y Aprobacin: La materia se desarrolla con la modalidad de promocin sin examen final. Existen dos niveles: 2.1.- Regularizacin solamente: Para regularizar la materia se deber: 2.1.1.- Tener como mnimo un 80% de asistencia a clases prcticas. 2.1.2.- Tener los prcticos, pedidos por la ctedra, aprobados. Son cuatro (4) Trabajos Prcticos a entregar: dos (2) en mquina y dos (2) en aula. 2.1.3.- Aprobar la Evaluacin Final Integradora con un mnimo del 60%. 2.2.- Regularizacin y Aprobacin: Para regularizar y aprobar la materia se deber: 2.2.1.- Cumplir con los requisitos 2.1.1 y 2.1.2. 2.2.2.- Aprobar la Evaluacin Final Integradora con un mnimo del 70%. El porcentaje de 70 a 100 se corresponder con una escala de cuatro a diez, la que ser la nota definitiva en la materia. 3.- Examen Final. 3.1.- Aquellos alumnos que solo regularicen la materia podrn rendir el examen final, en los turnos establecidos. 3.2.- Para rendir la materia en forma libre deber haberse cumplido, dentro de los doce meses anteriores al examen, con el requisito 2.1.2.

BIBLIOGRAFA BSICA
* Pascal: Manual del Usuario e Informe. K. Jensen y N. Wirth. Ed. El Ateneo. * Manuales de los sistemas operativos empleados (MS-WINDOWS, Linux). * Notas de Clase de la ctedra.

BIBLIOGRAFA COMPLEMENTARIA
* Programacin Estructurada. Dahl, Dijkstra, Hoare. Ed. Tiempo Contemporneo. * Algoritmos + Estructuras de Datos = Programas. N. Wirth. Ed. del Castillo. * El Arte de la Programacin, Vol I. D. Knuth. Ed. Reverte.

Area de Programacon y Metodologa de Desarrollo del Software

Pgina 6 de 27

U. N. S. L., Dpto. Informtica

Programacin I

Gua de Trabajos Prcticos - 2006

PLANIFICACIN 2006
Sem. Fecha Contenido

1 2

Agosto 7 al 11 Agosto 14 al 18 Agosto 21 al 25 Lu 21 y Vi 25 Feriado

Prctico 1.1. Repaso: Resolucin de problemas. Lgica. Lenguaje PASCAL. Tipos de datos. Asignacin, secuencia, iteracin, seleccin. Estructuras de Datos: arreglos. Prctico 1.2. PASCAL: Estructuras de Datos: Array y record. Iteraciones, casos particulares. Prctico 2. Modularidad. PASCAL: Procedimientos y funciones

4 5 6

10

11

12 13 14

Prctico 3. Estructuras de Datos. Pascal extendido: PILAS y FILAS Septiembre Entrega del Trabajo Prctico 1 en mquina (Prctico 1.1, Ejercicios 28/8 al 1/9 12 a 28. Prctico 1.2, Ejercicios de array 9 a 21, y de record 9 y 10) Septiembre Prctico 4. Estructuras de Datos, Pascal extendido: LISTAS Uni y Bi4 al 8 direccionales Prctico 5. Estructuras de Datos, Pascal extendido: MULTINIVEL Septiembre Entrega del Trabajo Prctico 2 en aula (Prctico 2, Ejercicios 10 a 11 al 15 17. Prctico 3, Ejercicios 13 a 18) Septiembre Prctico 6. Estructuras de Datos, Implementacin: PILAS y FILAS 18 al 22 Ju 21 Feriado? Prctico 7. Estructuras de Datos, Septiembre Implementacin: LISTAS Uni y Bi-direccionales 25 al 29 Entrega del Trabajo Prctico 3 en aula (Prctico 4, Ejercicios 1. Prctico 5, Ejercicios 1 y 2) Octubre Prctico 8. Recursividad 2 al 6 Prctico 9. PASCAL tipo pointer. Octubre Prctico 10. Datos Recursivos, Captulo 6 9 al 13 Recursividad, casos particulares., Entrega del Trabajo Prctico 4 en mquina (Prctico 6, Ejercicios 1 a 3. Prctico 7, Ejercicios 1 a 7) Octubre 16 al 20 Repaso Lu 16 Feriado Octubre Evaluacin Global Integradora (Fecha y hora a confirmar. Siempre 23 al 27 en los horarios de clase de la materia) Noviembre Recuperacin de la Evaluacin Global Integradora (Fecha y hora a 30/10 al 3/11 confirmar. Siempre en los horarios de clase de la materia ) Recuperacin por Trabajo de la Evaluacin Global Integradora Noviembre (Fecha y hora a confirmar. Siempre en los horarios de clase de la 6 al 10 materia )

Area de Programacon y Metodologa de Desarrollo del Software

Pgina 7 de 27

U. N. S. L., Dpto. Informtica

Area de Programacon y Metodologa de Desarrollo del Software Pgina 8 de 27 U. N. S. L., Dpto. Informtica

Programacin I

Lunes 8 9 10 11 12 13 14 15 16 17 18 P C3 (Comisin 3 puede no 19 implementarse) 20 21 22 Lunes P = Prctico

Martes

Mircoles

Jueves

Viernes 8 9 10

P C1 y C2

C1 y P C2

11 12 13 14

HORARIO

--------------------------15:30 Co???

15 16 17 18 P C3 (Comisin 3 puede no 19 implementarse) 20 21 22

Gua de Trabajos Prcticos - 2006

Martes Cn = Comisin n

Mircoles Co = Consulta

Jueves T = Teora

Viernes

Programacin I

Gua de Trabajos Prcticos - 2006

EJERCICIOS PRCTICOS
PRCTICO DE LGICA: PROPOSICIONES, CONECTIVOS, TABLAS DE VERDAD.
La teora general para este prctico puede consultarse en las Notas de Clase de la ctedra Captulo 2, Lgica.

Ejercicios de aula
1.- Sea: a: "l es alto". b: "l es elegante". Escriba en forma simblica: 1.1.- l es alto y elegante. 1.2.- l es alto pero no es elegante. 1.3.- l no es alto ni elegante. 2.- Sea: a: hace fro. b: corre viento. c: llueve. d: nieva. Escriba en forma simblica: 2.1.- Hace fro, llueve y corre viento. 2.2.- Si nieva y corre viento entonces hace fro. 2.3.- Cuando llueve no corre viento. 2.4.- Hace fro, corre viento pero no llueve. 3.- Dadas las siguientes oraciones, identifique las proposiciones elementales, desgnelas con letras a, b, c, ... y escriba en forma simblica los enunciados compuestos: 3.1.- Si un nmero entero no es par, entonces es impar. 3.2.- Si un nmero entero es par, entonces no es impar. 3.3.- La suma de dos nmeros es par cuando ambos son pares. 3.4.- Un nmero par y mltiplo de tres es divisible por seis. 3.5.- Un nmero es par y mltiplo de tres slo cuando es divisible por seis. 3.6.- O bien el asesino ha abandonado el pas, o alguien est encubrindole. 3.7.- Ganaremos las elecciones, suponiendo que Ramrez sea electo presidente del partido. 4.- Construir la tabla de verdad de cada forma proposicional: 4.1.- ~p q 4.2.- ~ (p q) 4.3.- (p q) ((~p) (~q)) 4.4.- (p q) r 5.- Si los proposiciones p, q, son verdaderas y las proposiciones x y w son falsas, cules de los siguientes enunciados compuestos son verdaderos?: 5.1.- (p x) (q w) 5.2.- (p x) ~(q w) 5.3.- (~p x) (~x p) 5.4.- (p ~q) ~(x ~x) 5.5.- p (x q) 5.6.- (p x) (~x ~p)
Area de Programacon y Metodologa de Desarrollo del Software Pgina 9 de 27 U. N. S. L., Dpto. Informtica

Programacin I

Gua de Trabajos Prcticos - 2006

6.- Usando las tablas de verdad, determinar cules de los siguientes pares de enunciados son equivalentes: 6.1.- p p (p q) 6.2.- p p (p q) 6.3.- p q ~q ~p 6.4.- p q ~p ~q 6.5.- p q < (p q) 6.6.- p q (p q) < q 7.- Encontrar los valores de verdad de p, q, x, w z para los cuales los siguientes enunciados son falsos: 7.1.- (p x) (q w) 7.2.- (x (w z)) ~(( x w) (x z)) 7.3.- (x w) (~w ~x) 8.- Usar las tablas de verdad para verificar las siguientes equivalencias: 8.1.- (p q) (q p) 8.2.- p ~ ~p 8.3.- ~ (p q) (~p ~q) 8.4.- ~ (p q) (~p ~q) 8.5.- (p q) (~p q) 8.6.- (p q) (p q) (~p ~q) 8.7.- (p q) r (p (q r))

PRCTICO 1. PASCAL: DEFINICIONES Y DECLARACIONES, TIPOS DE DATOS; ACCIONES, SENTENCIAS. ESTRUCTURAS DE DATOS: ARREGLOS Y REGISTROS
Prctico 1.1. Pascal: definiciones y declaraciones, tipos de datos; acciones, sentencias.
La teora general para este prctico puede consultarse en los Captulos 0 a 5 del "PASCAL: Manual del Usuario e Informe" (recuerde que las secciones correspondientes del Informe tienen informacin sobre la sintaxis, as como ejemplos) Tambin en las Notas de Clase de la ctedra, Captulos 3 y 4.

Ejercicios de aula
1.- Los lenguajes de programacin se definen: (a) Empleando un meta lenguaje de definicin. (b) Con el mismo lenguaje de programacin. (c) Empleando otro lenguaje de programacin. (d) Usando el lenguaje Pascal. (e) No se definen. (f) Ninguna. 2.- Un meta lenguaje: (a) No existe.
Area de Programacon y Metodologa de Desarrollo del Software Pgina 10 de 27 U. N. S. L., Dpto. Informtica

Programacin I (b) Es el Pascal. (c) Sirve para programar computadoras. (d) Sirve para definir datos dentro de los lenguajes de programacin. (e) Sirve para definir programas de computadora. (f) Ninguna.

Gua de Trabajos Prcticos - 2006

3.- Sobre el lenguaje Pascal: (a) Sabe cules son las partes de un programa? (b) Cules son las diferencias entre definiciones, declaraciones y acciones en un programa escrito en lenguaje Pascal? (c) Cules son las palabras claves y para qu sirven? 4.- En el Captulo 5, Seccin 5.2 de las Notas de Clase, est el listado de un programa (calcul_1) que simula una calculadora. Lea atentamente dicho programa y conteste las siguientes preguntas sobre el mismo: (a) Cules son las distintas partes del programa: definiciones, declaraciones, acciones? (b) Cules son las palabras claves? (c) Cules son las variables del programa? (d) Cules son las sentencias del programa? (e) Identifique las sentencias de asignacin, seleccin e iteracin. (f) Identifique las condiciones. 5.- Diga que resultado producen los siguientes trozos de programa: (a) z:= 8; x:= 5; y:= z + x; writeln(y); (b) z:= 12; (c) x:= 2; y:= z + x; writeln(z + x); z:= 3 * 2 + 24; x:= 8 div 3; y:= x + z * 3; write(y); (e) w:= true; t:= false; if w or t then write('verdadero'); (g) z:= 16; x:= 22; if z - x > 0 then write('z > x');

(d) w:= true; t:= false; if w and t then write('si'); (f) z:= 7; x:=2; y:= z - x; if y > 0 then write('z > x'); (h) (j) while i <= 90 do begin x:=x+i*10; i:= i + 1 end; writeln(x,i);

i:= 1; x:= 1; i:=70; x:= 1; while i < 80 do begin x:=x+i*10; i:= i+2 end; writeln(x,i);

(i)

i:= 1; x:= 1; while i > 0 do begin x:=x+i*10; i:= i + 1 end; writeln(x,i);

6.- Si es falso (false) el valor de la siguiente condicin: (X > 0 or X < Z or Z < 10) acerca de las variables X, Z (convenientemente declaradas), en todos los casos, se puede afirmar que: A) (X > 0 or X < Z or Z < 10) B) (X < 0 or X > Z or Z > 10) C) (X <= 0 or X => Z or Z => 10) D) (X > 0 and X < Z and Z < 10)
Area de Programacon y Metodologa de Desarrollo del Software Pgina 11 de 27 U. N. S. L., Dpto. Informtica

Programacin I E) la condicin no puede tomar nunca el valor falso (false). F) Ninguna.

Gua de Trabajos Prcticos - 2006

7.- Luego de la ejecucin del siguiente trozo de cdigo en Pascal: X:= 0; Y:= 1; while X <= 10 and Y < 10 do begin if odd(Y) then Y:= Y + 1 ; X:= X + 1 end; respecto de las variables X e Y se puede afirmar que: Nota: odd(x) = true si x es impar, sino false. A) X > 10 or Y < 10 B) X > 10 and Y < 10 C) X <= 10 and Y > 10 D) X = 10 and Y > 10 E) X = 0 and Y = 1 F) Ninguna. 8.- Luego de la ejecucin del siguiente trozo de cdigo en Pascal: X:= 1; Y:= 1; while X <> 10 or Y <> 10 do begin if AA = BB then CC:= true; Y:= Y + 1; X:= X + 2 end; write(X, Y); cul es la salida ? (las variables se suponen bien declaradas) A) 11 6 B) 10 10 C) 11 11 D) 9 9 E) Nada, la iteracin no termina nunca. F) Ninguna. 9.- Qu puede siempre afirmarse que es verdad una vez terminada una iteracin (while en Pascal) cuya condicin es: i <= 'T' or a A) La condicin es verdadera. B) i <= 'T' and a. C) i > 'T' and not a. D) i > 'T' or not a. E) Nada, porque no puede haber una expresin condicional as. F) Ninguna. 10.- Qu puede siempre afirmarse que es verdad si en una sentencia if en Pascal, cuya condicin es: (v >= 0 and v <= s) se ejecuta la rama del then ? A) (v < 0 or v > s) B) (v < 0 and v > s) C) (v >= 0 or v <= s) D) (v >= 0 and v <= s) E) No se ejecuta nunca la rama del then con esa condicin. F) Ninguna. 11.- Luego de la ejecucin del siguiente trozo de cdigo en Pascal: if x > 0 and y = 10 then begin y:= y - 1; x:= 0 end else begin y:= 8; x:= 1 end; respecto de las variables x e y, en todos los casos, se puede afirmar que: A) x > 0 and y = 10 B) (x = 0 and y = 10) or (x <> 0 and y >= 8)
Area de Programacon y Metodologa de Desarrollo del Software Pgina 12 de 27 U. N. S. L., Dpto. Informtica

Programacin I C) (x = 0 and y = 9) or (x = 1 and y = 8) D) (x > 0 or y = 9) and (x = 1 or y <> 10) E) x = 1 or y = 9 F) Ninguna. 12 13 14 15 16 17 18 19 20 21 22 23

Gua de Trabajos Prcticos - 2006

Haga un programa que dada una constante natural k, imprima los primeros k naturales. Haga un programa que acepte como entrada un nmero natural (n), e imprima los primeros n naturales. Haga un programa que acepte como entrada un nmero natural (n), y calcule la suma de los primeros n naturales. Haga un programa que acepte como entrada un nmero natural (n), e imprima las n primeras letras del alfabeto (1 <= n <= 26). Existe en Pascal una funcin estndar que genera una letra a partir de un entero. Haga un programa que acepte como entrada un nmero natural (n), si n es par imprima los n primeros pares sino los n primeros impares. Haga un programa que acepte como entrada dos nmeros NATURALES (n y m) y devuelva como resultado el producto de n x m, pero simule la operacin empleando la suma y no el producto. Haga un programa que acepte como entrada dos nmeros NATURALES (n y m) y devuelva como resultado el cociente de n / m, pero simule la operacin empleando la resta y no la divisin. Haga un programa que acepte como entrada dos nmeros ENTEROS (n y m) y devuelva como resultado el producto de n x m, pero simule la operacin empleando la suma y no el producto. SIGNO ! Haga un programa que acepte como entrada dos nmeros ENTEROS (n y m) y devuelva como resultado el cociente de n / m, pero simule la operacin empleando la resta y no la divisin. SIGNO ! Haga un programa que acepte como entrada dos nmeros NATURALES (n y m) y devuelva como resultado nm empleando la multiplicacin. Haga un programa que acepte como entrada un nmero natural y devuelva como resultado nm empleando la suma. Puede emplear algo de lo ya hecho? Haga un programa que acepte como entrada dos nmeros NATURALES (n y b, con 2 b 9) y convierta el nmero n al correspondiente nmero en base b. Recuerde que un nmero puede representarse con el siguiente polinomio:

24

di b

i-1

donde di es el i-esimo dgito del nmero y b es la base.

i =1

Haga un programa que acepte como entrada tres caracteres, que deben ser algunos de los dgitos del cero al nueve, y los convierta en el correspondiente nmero de tres dgitos y lo imprima. (Ejemplo: sean los caracteres 3, 7, 5; deben ser convertidos en el nmero 375). Haga un programa que acepte como entrada tres caracteres, que deben ser algunos de los dgitos del cero al nueve, y opcionalmente un caracter que represente un signo (+ ) y los convierta en el correspondiente nmero de tres dgitos y lo imprima. (Ejemplo: sean los caracteres + 3, 7, 5; deben ser convertidos en el nmero +375). Haga un programa que acepte como entrada uno o ms, pero no ms de cinco caracteres, que deben ser algunos de los dgitos del cero al nueve, y opcionalmente un caracter que represente un signo (+ ) y los convierta en el correspondiente nmero y lo imprima. (Ejemplo: sean los caracteres 1, 3, 0, 7, 5; deben ser convertidos en el nmero 13075). Tenga en cuenta que el mximo entero es 32767 y el menor 32768. Modifique el programa de la calculadora para que puedan entrarse los nmeros caracter a caracter, no como tales. Decida cuntos dgitos soportar la calculadora, y de cuantos dgitos ser el resultado.

25

26

27

Area de Programacon y Metodologa de Desarrollo del Software

Pgina 13 de 27

U. N. S. L., Dpto. Informtica

Programacin I 28

Gua de Trabajos Prcticos - 2006

Haga un programa que acepte como entrada un nmero natural (n, donde 1 n 2000) y lo convierta en el correspondiente nmero romano.

Ejercicios de mquina
1. 2. Edite, compile y ejecute el programa de la calculadora que se encuentra en el Anexo I. Edite, compile y ejecute los programas pedidos en los ejercicios 12 a 28 del prctico de aula. ~~~~o~~~~

Prctico 1.2. Estructuras de Datos: Pascal, Arreglos y Registros


La teora general para este prctico puede consultarse en los Captulos 6 y 7, de las Notas de Clase de la ctedra y tambin en los Captulos 6 y 7 del "PASCAL: Manual del Usuario e Informe" (recuerde que las secciones correspondientes del Informe tienen informacin sobre la sintaxis, as como ejemplos).

Ejercicios de aula
Arreglos (arrays)
1. 2. 3. 4. 5. Cal es el tipo base de un arreglo? Cales pueden ser los tipos base de un arreglo? Cal es el tipo indice de un arreglo? Cales pueden ser los tipos indice de un arreglo? Porqu? Dada la siguiente sentencia en Pascal, x[i + 1, j and true] := x[i + 1, not j] div 2 cal es una declaracion, correcta, posible? A) var x:array [1..N,false..true] of integer; i:integer;j:boolean B) var x: array [a..z,i..k] of integer; i,j:integer C) var x: array [1..N, 1..M] of boolean; i,j:boolean D) var x: array [1..N,1..M] of integer ; i:integer;j:boolean E) No hay declaracion posible porque el array no puede tener como indice una expresion logica (boolean). Dadas las siguientes definiciones y declaraciones cual es un uso posible ? Nota: (succ(y) = valor (si existe) que sucede a y) type dias = (lu, ma, mi, ju, vi); var x: array['a'..'z', '0'..'9'] of dias; i, j: integer; z, t: char; w: dias; A) i := succ(x[z, w]); B) w:= x['b', i]; C) x[t,j]:= w; D) x[z, succ(i)]:= succ(z); E) x[succ(t), z]:= succ(w);

6.

Area de Programacon y Metodologa de Desarrollo del Software

Pgina 14 de 27

U. N. S. L., Dpto. Informtica

Programacin I 7.

Gua de Trabajos Prcticos - 2006

En Pascal la siguiente sentencia a[I + 1, J] := I * A[I + 1, not J] div 2 es coherente con la declaracion: A) var A:array [1..N,true..false] of integer; I:integer;J:boolean B) var A: array [a..z,i..k] of integer; I,J:integer; C) var A: array [1..N, 1..M] of boolean; I,J:boolean; D) var A: array [1..N,1..M] of integer ; J:integer;I:boolean E) var A: array [1..N,1..M] of char; I:integer;J:boolean Dadas las siguientes declaraciones cual es un uso posible?: var x: array['a'..'z', '0'..'9'] of char; i, j: integer; z, t: char; Nota: succ(y) = valor (si existe) que sucede a y. A) i:= succ(x[z,t]) + 1; B) z:= x['b', i]; C) x[i,j]:= 33; D) x[succ(i), z]:= succ(z); E) x[succ(t), z]:= succ(z); Haga un programa que permita entrar una cantidad fija de caracteres en un arreglo, y luego los imprima. Modifique el programa de entrada de caracteres para permitir entrar otro tipo de dato. Qu pasa si el tipo de dato elegido es simple?, y si es estructurado? Modifique el programa de entrada de caracteres para permitir entrar un nmero variable de caracteres. Haga un programa que busque en un arreglo de nmeros enteros un nmero dado, informando por pantalla si el nmero se encuentra o no en el arreglo. Haga un programa que permita insertar un caracter en un arreglo de caracteres. Se inserta en el lugar del arreglo que el usuario del programa solicite y debe hacerse lugar al caracter nuevo, desplazando (corriendo) todos los caracteres desde la posicin en que se inserta hasta la posicin final (mayor valor del ndice) del arreglo. Haga un programa que permita borrar un caracter en un arreglo de caracteres. Se borra en el lugar del arreglo que el usuario del programa solicite y deben desplazarse (correrse) todos los caracteres desde la posicin en que se borra hasta la posicin final (mayor valor del ndice) del arreglo. Haga un programa que dado un arreglo de caracteres los ordene de menor a mayor. Haga un programa que permita entrar una cantidad fija de cadenas de caracteres en un arreglo y luego las imprima. Cada cadena tiene, a su vez, un nmero fijo de caracteres. Dimensin del arreglo? Se puede usar algo ya hecho? Haga un programa que permita entrar una cantidad variable de cadenas de caracteres en un arreglo, y luego las imprima. Cada cadena tiene, a su vez, un nmero variable de caracteres. Dimensin del arreglo? Se puede usar algo ya hecho? Haga un programa que permita insertar una cadena de caracteres en un arreglo. Se inserta en el lugar del arreglo que el usuario del programa solicite y debe hacerse lugar a la nueva cadena, corriendo todas las otras cadenas desde la posicin en que se inserta hasta la posicin final (mayor valor del ndice) del arreglo. Pese al desplazamiento hay que conservar la estructura de cada cadena ya existente en el arreglo, an cuando no tengan todas el mismo largo (cantidad de caracteres). Dimensin del arreglo? Se puede usar algo ya hecho? Haga un programa que permita borrar una cadena de caracteres en un arreglo. Se borra en el lugar del arreglo que el usuario del programa solicite y debe desplazarse (correrse) todas las cadenas desde la posicin en que se borra hasta la posicin final (mayor valor del ndice) del arreglo. Pese al desplazamiento hay que conservar la estructura de cada cadena ya existente en el arreglo, an cuando no tengan todas el mismo largo (cantidad de caracteres). Dimensin del arreglo? Se puede usar algo ya hecho?

8.

9 10 11 12 13

14

15 16

17

18

19

Area de Programacon y Metodologa de Desarrollo del Software

Pgina 15 de 27

U. N. S. L., Dpto. Informtica

Programacin I 20

Gua de Trabajos Prcticos - 2006

Si un texto est compuesto de lneas de caracteres, haga un programa que permita insertar y borrar caracteres o lneas completas. Sobre qu tipo de dato del Pascal conviene soportar el texto? (Ejercicio opcional) Haga un programa que acepte como entrada una cadena de caracteres compuesta solamente de los caracteres {I, V, X, L, C, M} y convierta dicha cadena, que se supone es un nmero romano, en el correspondiente nmero natural. (Ejercicio opcional)

21

Registros (records)
1. 2. 3. 4. Qu es el selector en un record? Para qu sirve? Cmo se selecciona un campo de un record? Cales pueden ser los tipos de los campos de un record? Todos los mismos? El siguiente bloque de sentencias en Pascal: begin fecha.dia:=21; fecha.mes:=10; fecha.anio:=1989 end se corresponde con la declaracion: A) var fecha: record dia: 1..31; mes: 1..12; anio: integer end B) var fecha : array [1..31,1..12,1..N] of integer C) var fecha : record dia: array [1..31] of integer; mes: array [1..12] of integer; anio: array [1..N] of integer end D) var fecha : record datos: record dia: integer; mes: integer; anio: integer end end E) var fecha : array [1..N] of dia, mes, anio 5. Dada la siguiente declaracion en Pascal: var X: record A:integer; B:char; C:boolean end; un uso correcto de esta declaracion, es: A) A := 5 B) X.A := X.B C) X.A := 3 D) X.C := X.A * 2 E) X.B := True Dadas las siguientes definiciones y declaraciones en Pascal: type Fecha = record Dia: 1..31; Mes: 1..12; Anio: 1..3000 end; Cadena = array[1..30] of char; var Empleado : record Nombre : Cadena; NroLeg :1..1000; Edad: 1..100; EstCivil:(Soltero,Casado,Divorciado,Viudo); FechaIng: Fecha end; Esposa: record
Pgina 16 de 27 U. N. S. L., Dpto. Informtica

6.

Area de Programacon y Metodologa de Desarrollo del Software

Programacin I

Gua de Trabajos Prcticos - 2006

Nombre:Cadena; FechaNac :Fecha; Edad:1..100 end; un grupo de sentencias validas, posibles, es: A) begin Empleado.Nombre[10]:= Esposa.Nombre[10]; Empleado.Edad:= Esposa.Edad end; B) begin Empleado.Nombre:= Esposa.Nombre; Empleado.FechaIng:= Esposa.FechaNac end; C) begin Edad:= 26;FechaIng:=01/02/1964 end; D) begin EstCivil:=Casado;Nombre:="Rodriguez,Pedro" end; E) begin Fecha.Dia:=10;Fecha.Mes:=8;Fecha.Anio:=1910 end; 7. Dada la siguiente definicion: type a = record b : integer; c : array[1..5] of char; d : record d1 : char; d2 : real end; e : (rojo, verde, amarillo) end; A) Esta correctamente definida. B) El campo d no deberia ser un record. C) Para el campo e el tipo escalar deberia haber sido definido previamente. D) El tipo record no puede tener mas de dos campos. E) El campo b esta mal definido porque es un tipo pre-definido. Dados los siguientes datos declare registros (records) que los representen: a) Medida de superficie de: rectngulo, circulo y trapecio Hay diferencias en el registro? b) Medida de volumen de: prisma de 6 caras, pirmide, esfera y cilindro. Hay diferencias en el registro?). c) Fecha: da, mes y ao. d) Direccin: calle y nmero, localidad, cdigo postal, nmero de telfono. e) Alumnos: nombre (30 chr); nmero de registro (entero de seis dgitos); tipo y nmero de documento de identidad. f) Empleados: nombre (30 chr); tipo y nmero de documento de identidad; direccin; fecha de nacimiento. g) Alumnos: nombre (30 chr); nmero de registro (entero de seis dgitos); tipo y nmero de documento de identidad; direccin; materias (para cada una: nombre, fecha de regularizacin y de aprobacin). h) Empleados: nombre (30 chr); tipo y nmero de documento de identidad; direccin; fecha de nacimiento; estado civil (soltero, casado, divorciado); cantidad de hijos a cargo; sexo; servicio militar (cumplido, a cumplir). i) Hoteles: nombre; habitaciones, donde cada una tiene el tipo (comn, especial, suite, suite especial), cantidad de lugares (individual, dos camas, doble, cudruple). j) Hoteles: nombre; habitaciones, donde cada una tiene el tipo (comn, especial, suite, suite especial), cantidad de lugares (individual, dos camas, doble, cudruple); cantidad de habitaciones por tipo y cantidad de lugares; servicios del hotel (bar, restaurante, discotheque, sala de conferencia, sauna).
Area de Programacon y Metodologa de Desarrollo del Software Pgina 17 de 27 U. N. S. L., Dpto. Informtica

8.

Programacin I 9.

Gua de Trabajos Prcticos - 2006

Para cada uno de los registros declarados en el ejercicio 8, declare un arreglo cuyo tipo base sea el registro correspondiente.

10. Para cada uno de los registros declarados en el ejercicio 8, haga un programa que permita entrar los datos del correspondiente registro y luego los imprima.

Ejercicios de mquina
Nota: Se realizarn los programas pedidos en los ejercicios del prctico de aula.

PRCTICO 2. MODULARIDAD. PASCAL: PROCEDURE Y FUNCTION.


La teora general para este prctico puede consultarse en el Captulo 5, Modularidad, de las Notas de Clase de la ctedra y en los Captulos 11 y 12 del "PASCAL: Manual del Usuario e Informe" (recuerde que las secciones correspondientes del Informe tienen informacin sobre la sintaxis, as como ejemplos).

Ejercicios de aula
Nota: Lea el prctico completo y realice cada ejercicio teniendo en cuenta la posibilidad de reusar en cada ejercicio lo realizado en algn otro ejercicio anteriormente. Tenga, tambin, en cuenta, cuando haga un ejercicio, la posibilidad de emplear la solucin en algn ejercicio posterior. 1. Identifique las distintas partes de los procedimientos y las funciones: definicin, llamada o invocacin, encabezamiento, parmetros. A cul se asocia un tipo: a los procedimentos o a las funciones? Qu diferencias hay entre los procedimientos y las funciones? La asignacin en el cuerpo de definicin se hace en los procedimientos o en las funciones? Cales son los parametros formales? Cales son los parametros reales o actuales? Cantas formas hay de pasaje de parametros? Cmo se distinguen cada una en Pascal? Cales son las diferencias entre los distintos tipos de pasaje de parametros?

2. 3. 4. 5. 6. 7. 8. 9.

10. Haga un mdulo que dado una cadena (arreglo) de caracteres permita buscar un carcter dado y devuelva true o false si el char est presente o no. Tanto la cadena como el caracter a buscar deben pasarse como parmetros. NO usar variables globales. 11. Haga un mdulo que, dado una cadena (arreglo) de caracteres y dos carcteres, todos pasados como parmetros, devuelva la cadena con todas las ocurrencias del primer carcter en la cadena cambiadas por el segundo caracter. NO usar variables globales.

Area de Programacon y Metodologa de Desarrollo del Software

Pgina 18 de 27

U. N. S. L., Dpto. Informtica

Programacin I

Gua de Trabajos Prcticos - 2006

12. Para cada uno de los registros declarados en el ejercicio 8 del prctico 1.2, declare un procedimiento que: 12.1. Permita entrar los datos de ellos. 12.2. Permita modificar alguno (o todos) los datos de ellos. 12.3. Imprima los datos de ellos. 13. Para cada uno de los arreglos declarados en el ejercicio 9 del prctico 1.2 declare un procedimiento, que permita entrar los datos de ellos y otro que los imprima. 14. Para cada uno de los arreglos declarados en el ejercicio 9 del prctico 1.2, declare un procedimiento, que permita modificar alguno (o todos) los datos de cada uno de los elementos del arreglo y a su vez de cada uno de los campos de los registros. 15. Para cada uno de los arreglos declarados en el ejercicio 9 del prctico 1.2, declare procedimientos que impriman, respectivamente: (el arreglo debe pasar como parametro al mdulo) a) Alumnos: cantidad de alumnos con N materias regularizadas; cantidad de alumnos con N materias aprobadas; N debe darse como parmetro al mdulo. b) Alumnos: alumnos con al menos una materia regularizada (para cada alumno debe darse cuantas tiene regularizadas); alumnos con al menos una materia aprobada (para cada alumno debe darse cuantas tiene aprobadas). c) Empleados: empleados con servicio militar a cumplir; empleados con hijos a cargo; cantidad de empleados de sexo femenino y masculino. d) Hoteles: hoteles con todos los servicios; cantidad total de lugares por tipo de habitacin. e) Alumnos: cantidad de alumnos con una materia en particular, que debe entrarse al programa (puede considerarse que las materias tienen un cdigo que es un nmero entero), regularizada o aprobada, la eleccin de esta categora tambin debe entrarse al programa. 16. Para cada uno de los arreglos declarados en el ejercicio 9 del prctico 1.2, haga un programa, que permita integrar todas las funciones que se pidieron en los ejercicios anteriores. 17. Modifique el programa de la calculadora para que puedan agregarse nuevas operaciones: borrado del ltimo trmino entrado, memoria (con sus correspondientes operaciones sobre la misma: entrar, llamar), funciones trigonomtricas, estadsticas, financieras, etc. Emplee procedimientos y funciones para ello.

Ejercicios de mquina
Nota: Se realizarn los programas pedidos en los ejercicios del prctico de aula.

PRCTICO 3. ESTRUCTURAS DE DATOS: PASCAL EXTENDIDO, PILAS Y FILAS


La teora general para este prctico puede consultarse en los Captulos 6, 8, as como en el Apndice B de las Notas de Clase de la ctedra.

Area de Programacon y Metodologa de Desarrollo del Software

Pgina 19 de 27

U. N. S. L., Dpto. Informtica

Programacin I

Gua de Trabajos Prcticos - 2006

Ejercicios de aula
Nota: Lea el prctico completo y realice cada ejercicio teniendo en cuenta la posibilidad de reusar en cada ejercicio lo realizado en algn otro ejercicio (de este u otro prctico) anteriormente. Tenga, tambin, en cuenta, cuando haga un ejercicio, la posibilidad de emplear la solucin en algn ejercicio posterior. 1. 2. 3. 4. 5. Cul es la diferencia entre las estructuras de datos dinmicas y las estticas? Cules son las operaciones que pueden hacerse en las pilas? Cules son las operaciones que pueden hacerse en las filas? Cul es la diferencia entre: pila y fila, pila y arreglo, pila y record, fila y arreglo, fila y record? Dadas las filas F1, F2; las pilas P1 y P2 y el arreglo A, al pasar todos los elementos de una estructura a otra (por ejemplo de F1 a P2, o de F1 a F2, etc.) Cmo queda la estructura de origen, igual, distinta? Qu condiciones deben darse para cada caso? Cmo quedan los elementos en la segunda estructura (la que recibe): en el mismo orden en que estaban en la estructura original? De qu orden se habla? Para cada uno de los registros (records) declarados en el prctico 1.2, a) Alumnos, b) Empleados, c) Hoteles, declare una pila y una fila cuyo tipo base sea el registro correspondiente. Para una de las pilas y de las filas declaradas en el ejercicio 6, declare mdulos separados, que permitan en los registros de la pila y de la fila: entrar los datos, imprimir los datos, modificar los datos. Haga un programa que empleando los mdulos del ejercicio anterior pueda hacer cada una de las operaciones para todos los records de la pila y de la fila o slo para alguno de ellos (a eleccin del usuario del programa). Para la pila y la fila correspondientes del ejercicio anterior, declare mdulos que impriman, de acuerdo con el registro empleado, ya sea: a) Alumnos: alumnos con N materias regularizadas; alumnos con N materias aprobadas; cantidad de alumnos con N materias regularizadas; cantidad de alumnos con N materias aprobadas. b) Empleados: empleados con servicio militar a cumplir; empleados con hijos a cargo; cantidad de empleados de sexo femenino y masculino. c) Hoteles: hoteles con todos los servicios; cantidad total de lugares por tipo de habitacin. 10. Compare los programas hechos empleando arreglos con aquellos que emplean pilas y filas. Esta comparacin debera ser hecha por medio de una tabla que exprese las ventajas e inconvenientes de cada una de las estructuras.

6.

7.

8.

9.

PRCTICO 4. ESTRUCTURAS DE DATOS: PASCAL EXTENDIDO: LISTAS.


La teora general para este prctico puede consultarse en los Captulos 6, 9, as como en el Apndice B de las Notas de Clase de la ctedra.
Area de Programacon y Metodologa de Desarrollo del Software Pgina 20 de 27 U. N. S. L., Dpto. Informtica

Programacin I

Gua de Trabajos Prcticos - 2006

Ejercicios de aula
Nota: Lea el prctico completo y realice cada ejercicio teniendo en cuenta la posibilidad de reusar en cada ejercicio lo realizado en algn otro ejercicio (de este u otro prctico) anteriormente. Tenga, tambin, en cuenta, cuando haga un ejercicio, la posibilidad de emplear la solucin en algn ejercicio posterior. 1. 2. 3. Cules son las operaciones que pueden hacerse en las listas? Cul es la diferencia entre: lista y arreglo, lista y record, fila y lista, pila y lista? Dadas las listas L1 y L2, la fila F; la pila P y el arreglo A, al pasar todos los elementos de una estructura a otra (por ejemplo de L1 a L2, o de L1 a P, etc.) Cmo queda la estructura de origen, igual, distinta? Qu condiciones deben darse para cada caso? Cmo quedan los elementos en la segunda estructura (la que recibe): en el mismo orden en que estaban en la estructura original? De qu orden se habla? Para cada uno de los registros (records) declarados en el prctico 1.2, a) Alumnos, b) Empleados, c) Hoteles, declare una lista cuyo tipo base sea el registro correspondiente. Para una de las listas declaradas en el ejercicio anterior, declare mdulos separados, que permitan en los registros de la lista: entrar los datos, imprimir los datos, modificar los datos. Haga un programa que empleando los mdulos del ejercicio anterior pueda hacer cada una de las operaciones para todos los records de lista o slo para alguno de ellos (a eleccin del usuario del programa). Para la lista correspondiente del ejercicio anterior, declare mdulos que impriman, de acuerdo con el registro empleado, ya sea: a) Alumnos: alumnos con N materias regularizadas; alumnos con N materias aprobadas; cantidad de alumnos con N materias regularizadas; cantidad de alumnos con N materias aprobadas. b) Empleados: empleados con servicio militar a cumplir; empleados con hijos a cargo; cantidad de empleados de sexo femenino y masculino. c) Hoteles: hoteles con todos los servicios; cantidad total de lugares por tipo de habitacin. 8. Compare los programas hechos empleando arreglos con aquellos que emplean pilas, filas y listas. Esta comparacin debera ser hecha por medio de una tabla que exprese las ventajas e inconvenientes de cada una de las estructuras.

4.

5.

6.

7.

PRCTICO 5. ESTRUCTURAS DE DATOS: MULTINIVEL.


La teora general para este prctico puede consultarse en los Captulos 6, 10, as como en el Apndice B de las Notas de Clase de la ctedra.

Area de Programacon y Metodologa de Desarrollo del Software

Pgina 21 de 27

U. N. S. L., Dpto. Informtica

Programacin I

Gua de Trabajos Prcticos - 2006

Ejercicios de aula
Nota: Lea el prctico completo y realice cada ejercicio teniendo en cuenta la posibilidad de reusar en cada ejercicio lo realizado en algn otro ejercicio (de este u otro prctico) anteriormente. Tenga, tambin, en cuenta, cuando haga un ejercicio, la posibilidad de emplear la solucin en algn ejercicio posterior. 1 Para los ejercicios de los prcticos 1.2, 2, 3, 4 cules cree que pueden hacerse empleando estructuras de multinivel? cmo son dichas estructuras? pueden definirse?. Modifique el programa del prctico 1.2, ejercicio 20, (que permita trabajar, no solo lnea a lnea, sino caracter a caracter con las operaciones de insercin de un caracter, supresin de un caracter, respetando la estructura de lneas y las operaciones sobre las mismas) pero no empleando arreglos (arrays) sino alguna estructura de multinivel, elija la ms conveniente.

PRCTICO 6. IMPLEMENTACIN DE ESTRUCTURAS DINMICAS: PILAS Y FILAS.


La teora general para este prctico puede consultarse en el Captulo 11, Implementacin de Estructuras, de las Notas de Clase de la ctedra.

Ejercicios de aula
Nota: Haga cada ejercicio teniendo en cuenta la posibilidad de reusar en cada ejercicio lo realizado en algn otro ejercicio (de este u otro prctico) anteriormente. Tenga, tambin, en cuenta, cuando haga un ejercicio, la posibilidad de emplear la solucin en algn ejercicio posterior. 1. Realice las implementaciones de pilas y filas, con VIPDs de tipo char, en Pascal, programando los procedimientos y funciones, correspondientes a cada una de las operaciones y predicados, empleando cada uno de los mtodos, de implementacin, explicados en la teora: con y sin desplazamiento, etc. Haga un programa que, haciendo uso de alguna de las implementaciones programadas en el ejercicio 1, opcionalmente haga: a) entre caracteres en una pila;

2.

b) imprima los caracteres de la pila; c) 3. suprima de la pila un caracter dado por el usuario. (Ojo! Es una pila y no un arreglo!).

Haga un programa que, haciendo uso de alguna de las implementaciones programadas en el ejercicio 1, opcionalmente haga: a) entre caracteres en una fila;

b) imprima los caracteres de la fila; c) invierta el orden de los caracteres de la fila. (Ojo! Es una fila y no un arreglo!)

Area de Programacon y Metodologa de Desarrollo del Software

Pgina 22 de 27

U. N. S. L., Dpto. Informtica

Programacin I

Gua de Trabajos Prcticos - 2006

Ejercicios de mquina
Nota: Se realizarn los programas pedidos en los ejercicios del prctico de aula.

PRCTICO 7. IMPLEMENTACIN DE ESTRUCTURAS DINMICAS: LISTAS UNI Y BIDIRECCIONALES


La teora general para este prctico puede consultarse en el Captulo 11, Implementacin de Estructuras, de las Notas de Clase de la ctedra.

Ejercicios de aula
Nota: Haga cada ejercicio teniendo en cuenta la posibilidad de reusar en cada ejercicio lo realizado en algn otro ejercicio (de este u otro prctico) anteriormente. Tenga, tambin, en cuenta, cuando haga un ejercicio, la posibilidad de emplear la solucin en algn ejercicio posterior. 1. Realice las implementaciones de listas uni y bi-direccionales, con VIPDs de tipo char, en Pascal, programando los procedimientos y funciones, correspondientes a cada una de las operaciones y predicados, empleando cada uno de los mtodos, de implementacin, explicados en la teora: con y sin desplazamiento. Haga un programa que, haciendo uso de alguna de las implementaciones programadas en el ejercicio 1 ordene de menor a mayor una lista uni-direccional de caracteres. Haga un programa que, haciendo uso de alguna de las implementaciones programadas en el ejercicio 1 inserte caracteres en una lista uni-direccional en forma ordenada. Haga un programa que, haciendo uso de alguna de las implementaciones programadas en el ejercicio 1 ordene de menor a mayor una lista bi-direccional de caracteres. Haga un programa que, haciendo uso de alguna de las implementaciones programadas en el ejercicio 1 inserte caracteres en una lista uni-direccional en forma ordenada. Haga un programa que, haciendo uso de alguna de las implementaciones programadas en el ejercicio 1 imprima los caracteres de una lista bi-direccional en orden inverso. Haga un programa que, haciendo uso de alguna de las implementaciones programadas en el ejercicio 1 imprima los caracteres de una lista uni-direccional en orden inverso.

2.

3.

4.

5.

6.

7.

Ejercicios de mquina
Nota: Se realizarn los programas pedidos en los ejercicios del prctico de aula.

Area de Programacon y Metodologa de Desarrollo del Software

Pgina 23 de 27

U. N. S. L., Dpto. Informtica

Programacin I

Gua de Trabajos Prcticos - 2006

PRCTICO 8. RECURSIVIDAD
La teora general para este prctico puede consultarse en el Captulo 12, Recursividad, de las Notas de Clase de la ctedra y Captulo 10 de Pascal Manual del usuario.

Ejercicios de aula
Nota: Haga cada ejercicio teniendo en cuenta la posibilidad de reusar en cada ejercicio lo realizado en algn otro ejercicio (de este u otro prctico) anteriormente. Tenga, tambin, en cuenta, cuando haga un ejercicio, la posibilidad de emplear la solucin en algn ejercicio posterior. 1 Qu partes tiene una definicin recursiva? 2 Dada una definicin recursiva, puede identificar sus partes? 3 Qu es la profundidad en la definicin recursiva? 4 Qu significa circular en una definicin recursiva? Existe? 5 Qu es el valor o punto del dominio conocido? Existe? Es necesario? Porqu? 6 Declare un mdulo (procedimiento o funcin) que acepte como parmetro un nmero natural (n), e imprima los primeros n naturales. 7 Declare un mdulo (procedimiento o funcin) que acepte como parmetro un nmero natural (n), y calcule la suma de los primeros n naturales. 8 Declare un mdulo (procedimiento o funcin) que acepte como parmetro un nmero natural (n), e imprima las n primeras letras del alfabeto (1 <= n <= 26). 9 Declare un mdulo (procedimiento o funcin) que acepte como parmetro un nmero natural (n), si n es par imprima los n primeros pares sino los n primeros impares. 10 Declare un mdulo (procedimiento o funcin) recursivo que devuelva el resultado de multiplicar dos nmeros naturales por sumas sucesivas. 11 Declare un mdulo (procedimiento o funcin) recursivo que devuelva el resultado de dividir dos nmeros naturales por restas sucesivas. 12 Declare un mdulo (procedimiento o funcin) recursivo que devuelva el resultado de elevar a a la b empleando multiplicaciones sucesivas.. 13 Declare un mdulo (procedimiento o funcin) recursivo que devuelva el mayor valor de un arreglo de enteros. 14 Declare un mdulo (procedimiento o funcin) recursivo que imprima el contenido de un arreglo de chars. 15 Declare un mdulo (procedimiento o funcin) recursivo que devuelva la suma de todos los elementos de un arreglo de enteros. 16 Declare un mdulo (procedimiento o funcin) recursivo que convierta un array[1..5] of 0..9 en el correspondiente nmero natural.

Ejercicios de mquina
Nota: Se realizarn los programas pedidos en los ejercicios del prctico de aula.

Area de Programacon y Metodologa de Desarrollo del Software

Pgina 24 de 27

U. N. S. L., Dpto. Informtica

Programacin I

Gua de Trabajos Prcticos - 2006

PRCTICO 9. PASCAL: TIPO POINTER


La teora general para este prctico puede consultarse en el Captulo 4, Programacin Imperativa, seccin 4.5, de las Notas de Clase de la ctedra y en el Captulo 11 de Pascal: Manual del usuario.

Ejercicios de aula
1. 2. 3. 4. De qu tipo son los valores que guarda una variable de tipo pointer? En Pascal, una variable de tipo pointer apunta a cualquier tipo de datos? Declare o defina tipos (type) y variables (var) pointer a real, integer, char, bool. Escriba sentencias de asignacin y de recuperacin de la informacin de las variables. Declare o defina tipos (type) y variables (var) de tipo array cuyos elementos sean pointers a real, integer, char, bool. Escriba sentencias de asignacin y de recuperacin de la informacin de las variables.

Ejercicios de mquina
Nota: Se realizarn los programas pedidos en los ejercicios del prctico de aula.

PRCTICO 10. DATOS RECURSIVOS.


La teora general para este prctico puede consultarse en el Captulo 12, Recursividad, de las Notas de Clase de la ctedra y en el Captulo 11 de Pascal Manual del usuario.

Ejercicios de aula
Nota: Haga cada ejercicio teniendo en cuenta la posibilidad de reusar en cada ejercicio lo realizado en algn otro ejercicio (de este u otro prctico) anteriormente. Tenga, tambin, en cuenta, cuando haga un ejercicio, la posibilidad de emplear la solucin en algn ejercicio posterior. 1. 2. Qu partes tiene una definicin recursiva de datos? Dada una definicin recursiva de datos, por ejemplo: type a = ^b; b = record c: int; d: a end puede identificar sus partes? 3. 4. 5. 6. 7. 8. 9. Qu es la profundidad en la definicin recursiva de datos? Existe? Qu significa circular en una definicin recursiva? Existe? Qu es el valor o punto del dominio conocido? Existe? Es necesario? Porqu? Defina recursivamente una pila. Defina recursivamente una fila. Defina recursivamente una lista uni-direccional. Defina recursivamente una lista bi-direccional.
Pgina 25 de 27 U. N. S. L., Dpto. Informtica

Area de Programacon y Metodologa de Desarrollo del Software

Programacin I

Gua de Trabajos Prcticos - 2006

10. Realice las implementaciones de listas uni y bi-direccionales, con VIPDs de tipo char, en Pascal, programando los procedimientos y funciones, correspondientes a cada una de las operaciones y predicados, empleando datos recursivos, explicados en la teora. 11. Haga un programa que, haciendo uso de alguna de las implementaciones programadas en el ejercicio 10 inserte caracteres en una lista uni-direccional en forma ordenada. 12. Haga un programa que, haciendo uso de alguna de las implementaciones programadas en el ejercicio 10 imprima los caracteres de una lista bi-direccional en orden inverso.

Ejercicios de mquina
Nota: Se realizarn los programas pedidos en los ejercicios del prctico de aula.

Area de Programacon y Metodologa de Desarrollo del Software

Pgina 26 de 27

U. N. S. L., Dpto. Informtica

Vous aimerez peut-être aussi