FCyT UADER. Programacin 1. Examen Final 25/7/2005.
REALCE CADA E!ERCC" E# $"!A %EPARADA
E&ercicio 1 ( '(0 )*+,- Se dispone de un archivo de texto CALIFICA.TXT que los datos de un grupo de alumnos. Cada lnea se conorma con el !"I# las caliicaciones parciales ($ por alumno% & el nom're del alumno. (scri'a una clase que haga lo siguiente) a% Lea los datos del archivo & organice la inormaci*n de cada alumnos en un struct. Luego de'e almacenar el struct en un archivo de acceso directo ('inario% llamado CALIFIC.!AT. '% +ediante un m,todo agregar( % incorpore al archivo los datos de un nuevo alumno. c% -eriique que no ha&a !"I repetidos en el grupo de alumnos. (n caso de hallar un alumno con inormaci*n duplicada (repetida% de'e eliminarse del archivo. E&ercicio 2 (25 )*+%% .ropongan una clase racional que contenga) a% Atri'utos p & q correspondientes a los componentes de un n/mero racional. '% !os constructores so'recargados que permitan iniciali0ar los atri'utos. 1no asigna valores iniciales a trav,s de par2metros & el otro un constructor de copia. c% 1na unci*n de so'recraga para el operador 3 (producto%. (sta (la unci*n de so'recarga para 3 se halla implementada en el recuadro & solo de'e completarla%. d% 1na unci*n de so'recarga para el operador 4 que permita sumar racionales. E&ercicio ( (15 pts% Considere la clase racional del e5ercicio anterior. (scri'a una programa cliente que ingrese los componentes (numerador & denominador% de 6 n/meros racionales. (l programa de'e calcular & mostrar la suma & el producto de am'os racionales. E&ercicio . (10 pts%. a% .roponga un e5emplo de una clase a'stracta & derive de ella una clase concreta. "o codiique las unciones de las clases. '% !ierencias entre herencia & agregaci*n E&ercicio 5. (20 )*+, a% venta5as de la programaci*n gen,rica. '% (scri'a un programa que genere un vector din2mico de 677 elementos aleatorios entre 877 & 6777. 9rdene la segunda mitad del vector en orma creciente & mu,strelo. UADER / FCyT. Programacin . Examen Final 10/05/2005 E&ercicio 1 '(0 )*+,- Se dispone de un archivo de texto :!AT9S.TXT; que contiene una serie de documentos de identidad de un grupos de personas seguidos de la edad en a<os de cada una de ellas. (scri'a un programa C44 orientado a o'5etos que haga lo siguiente) a% Lea los datos del archivo & los organice en un arreglo din2mico. '% =usque el !"I 6>??@666 en la secuencia. Si lo encuentra ordene la lista (por !"I% desde ese !"I hasta el inal sin modiicar los elementos anteriores. c% Si no lo encuentra coloque un mensa5e alusivo. d% +uestre la parte ordenada de la lista) nros de !"I & edades e% Almacene la parte ordenada de la lista en un archivo 'inario :!AT9S=I".!AT;. E&ercicio 2 '20)*+,) !ise<e una clase llamada Comple5o que proponga una a'stracci*n de un n/mero comple5o. So'recargue en la clase los operadores) AA & 4 (inserci*n & suma%. Luego escri'a un programa que instante un o'5eto de la clase Comple5o# ingrese los datos de 6 n/meros comple5os & muestre su suma. E&ercicio ( '20 )*+,- Considere la plantilla del recuadro de la derecha. a% (scri'a un programa C44 que la invoque con las siguientes 6 listas) B6$# C8# >8# @@# 66# D7# $C# C@# @?E & B:Santa Fe;# :C*rdo'a;# :TreleF;# :Gesistencia;# :.aran2;# :Gosario;E. '% (l programa de'e mostrar los resultados que o'tiene la plantilla. c% HCu2l es la salida del programaI. d% (xplique el o'5etivo de la plantilla. E&ercicio . '15 )*+,- a% HJu, elementos orman la STLI. '% HCu2les son las venta5as & desventa5as del empleo de archivos de textoI. c% HJu, dierencias puede se<alar entre los m,todos de ordenamiento) 'ur'u5as & quicKsortI. E&ercicio 8 (15)*+%) (xplique el concepto de m,todo virtual. .roponga un e5emplo (c*digo C44% donde se aplique uno o m2s m,todos virtuales. Li'res) !ierencia entre herencia & agregaci*n. (5empliique Programacin . Examen Final. 1./0(/005 1, Pro1lema- .Se leen los datos de un grupo de >77 personas cu&a estructura de registro se indica en el recuadro. a% (scri'a un m,todo CrearListaLash que organice racional& racional::operator*(const racional &r1,const racional &r2) { . . . return *this; } 68>?@6$C $C 8> ?@ L*pe0 Mulio $7NCC@6$ @77 ND D@ Oarca .edro 6C8>@6D> ?D 8C N@ C2ceres Ana 6N7N8866 ?N 8C >8 Papata Luis Q.. 68>?@6$C 6$ $7NCC@6$ $7 6N7N8866 @D ...... template <class T> void calcula(T x[], int n, T &a, T &b) { if (x[0] < x[1]) { a x[1]! bx[0]!"! else { a x[0]! bx[1]!"! fo# (int i$! i<n! i%%) { if (x[i]>a) { ax[i]!"! if x[i]<b { bx[i]! "! "! Apellido) stringB67ER "om'res) stringB@8ER Sexo) charR !"i) FordR F"ac ) echaR esos datos en un archivo de acceso directo usando la t,cnica de Lash. Considere el !"I como campo clave para organi0ar los datos. '% Luego escri'a el m,todo =uscarLash( % que 'usque un registro usando la t,cnica de Lash conociendo el !"I de la persona a 'uscar. '(5 )*+%. 2, Pro1lema) (scri'a un m,todo de una clase que permita 2U%CAR & REE3PLA4AR T9!AS LAS .ALA=GAS 9 .AGT( !( .ALA=GAS en un archivo de texto. Los par2metros del m,todo son) la pala'ra a 'uscar & el texto de reempla0o. (l m,todo de'e determinar la cantidad de reempla0os eectuados. !ise<e la clase completa. ((0)*+% (, (scri'a una unci*n que reci'a como par2metro el puntero al inicio de una lista enla0ada de enteros. !e'e devolver el ma&or de la lista.(25)*+% ., a% (xplique el concepto de encapsulamiento. H(s o'ligatorio en 9'5ect .ascal I '% (xplique el signiicado de las extensiones. !.G# .AS# !C1# !F+ en archivos generados por una aplicaci*n 9'5ect .ascal. c% .roponga un e5emplo de herencia. d% Se<ale las dierencias entre o'5eto# clase e instancia. (10)*+% UADER/FCyT. Programacin . E5A3E# F#AL 2(/02/2005 E&ercicio 1 '25 )*+,- 1n prisma rectangular tiene como 'ase un rect2ngulo a% +odele la clase TGectangulo para o'tener su 2rea. '% Aplique Lerencia para derivar de TGectangulo una clase T.rismaGect (prisma rectangular% & o'tener su volumen. c% +odele nuevamente un prisma rectangular pero aplicando la relaci*n de agregaci*n. d% (n todos los casos escri'a el c*digo correspondiente inclu&endo un peque<o programa cliente que use la clase T.rismaGect para calcular & mostrar su volumen. E&ercicio 2 '20 )*+,- 6C778 !ise<e un template de unci*n para 'uscar el segundo ma&or de una lista. 1tilice la plantilla desde un programa C44 cliente invoc2ndola con un lista de enteros & una de strings. 6Pa+cal8 (scri'a un m,todo de una clase que elimine un nodo de una lista enla0ada conociendo el dato a eliminar. .roponga previamente la clase sa'iendo que es una a'stracci*n para operar una lista de personas de las que se consideran los datos) Apellido# "om'res# !"I# (dad (l dato clave para eliminar un nodo es el !"I de la persona. E&ercicio ( '20 )*+,- (scri'a una unci*n que opere so're una lista de structSrecord donde los miem'rosScampos son) Apellido# "om'res# !"I# (dad. (sta lista se halla ordenada por !"I. La unci*n de'e eectuar un m,todo recursivo de '/squeda so're al lista para u'icar el !"I & devolver su posici*n (T@ si no se encuentra%.
E&ercicio . '25)*+,- Lea los datos del archivo LISTA.TXT cu&a inormaci*n se organi0a como muestra el recuadro) !"I# nota@# nota6#nota$# Apellido# "om'res. !eina una clase para tomar los datos del grupo de estudiantes del archivo# o'tener su promedio & escri'ir un nuevo archivo de acceso directo .G9+.!AT con los !"I & .romedios solamente. E&ercicio 5 '10 )*+,- a% Jue entiende por encapsulamientoI#HC*mo se eect/a el encapsulamiento en C44S.ascalI '% HC*mo reconoce las relaciones de herencia & agregaci*n entre 6 clases en .99 I c% H(s posi'le plantear programaci*n gen,rica en C44IHC*moIS -enta5as & desventa5as de los tipos de archivos de 9'5ect .ascal. Li1re+) (scri'a el c*digo del m,todo de ordenamiento de JuicKSort 68>?@6$C $C 8> ?@ L*pe0 Mulio $7NCC@6$ @77 ND D@ Oarca .edro 6C8>@6D> ?D 8C N@ C2ceres Ana 6N7N8866 ?N 8C >8 Papata Luis &.......