Está en la página 1de 25

Lenguaje de programacin y mtodos numricos / Ismael Vliz Vilca

- 249 -

PREGUNTAS TIPO PARA EL SEGUNDO EXAMEN DE LENGUAJE DE PROGRAMACIN Y METODOS NUMERICOS Contestar 4 re!"ntas #e $as % s&n a "ntes' s( "e#e )ontestar a $* &+, Se re)o-&en#a est"#&ar e$ r&-er ro.$e-a #e )a#a re!"nta Use /"n)&ones ara )a#a )aso0 PREGUNTA 1, ARREGLOS 23e)tores0 1, a) Ingresar n nmeros a un vector a) Listar los nmeros ingresados c) encontrar promedio de los nmeros ingresados d) el mayor de los nmeros y en que lugar se encuentra e) cuantos nmeros negativos hay. 2, a) ellenar aleatoriamente un vector de !" elementos de nmeros de #$" a %&" ') (uantos nmeros de $$ a )" hay c) (uantos nmeros negativos hay. d) *ncontrar el +mero mayor y en que posicin se encuentre. 4- ,e tiene los siguiente puntos encontrar la integral 'ajo la curva ) . & / $" 0 . . 1 . . 4,2 c) 3enerar aleatoriamente - nmeros de n sin que se repitan y mostrarlos ') Listar los nmeros que no 4ueron sorteados
Numeros iniciales 1 2 3 4 5 6 7 8 9 10 11 12 numeros generados 12 10 4 7 19 20 18 Numeros que quedan 1 2 6 8 11 13 14 15 13 9 14 5 15 17 16 16 17 18 3 19 20

5, 5sando arreglos generar los primeros $"" nmeros de 6i'onacci %. *ncontrar la media y la desviacin t7pica de n datos ingresados sabiendo que media = x / n desviacin =sqrt ((x-media)2 /n) 6, ,e ingresan + pares de datos a dos vectores - i 0 se pide calcular los valores de 8 y 9 que se o'tienen por la siguiente 4rmula 8: 0/+ 2 9 -/+ 9: ;+-02-0)/sqrt;;+-)2;-))) ) : ;+-02-0)/ sqrt; ;+-)2;-)));+0)2;0)))) 7 ,e ingresa el grado de polinomio y los coe4icientes en un vector ela'orar una 4uncin para encontrar el valor del polinomio 9, a) Ingresar n datos a un vector ')visualiza los datos ingresados c) Insertar en el vector un elemento dado en un lugar especi4icado para ello use una 4uncin de la 4orma< Insertar2a' e$e-' $"!ar' n08 donde a9 *s el nom're del vector donde se quiere insertar e$e-,2 *s el elemento que queremos insertar L"!ar .2 *n que lugar queremos insertar n,2 (uantos elementos tiene el vector Ejemplo. Antes elementos del vector 11, 1 , 1!, 1"" n= # $i se ejecuta %nsertar (a, 50,3,4) .- %nsertar " en el vector & en el tercer lu'ar (ser( el cuarto elemento) en un vector de elementos Despues los elementos del vector ser(n 11,1 ,1!, ", 1"" n =

Lenguaje de programacin y mtodos numricos / Ismael Vliz Vilca

- 25: -

1:, *n una clase hay !" alumnos y se tiene un 'alotario de &" preguntas si quiere tomar un e=amen donde cada prue'a de'e ser di4erente para ello se sortearan )" preguntas de &" aleatoriamente. *l programa de'e generar o imprimir el numero de la pregunta sorteada y ordenar como se muestra a continuacin
ALUMNO NRO DE PREGUNTAS SORTEADAS ==================================== 0== 1 2 3 4 7 9 10 13 14 21 23 24 26 29 30 32 38 39 46 48 1== 5 7 8 11 17 18 19 22 23 24 26 30 34 35 37 38 39 41 42 48 2== 1 3 7 10 11 13 14 23 25 27 29 33 35 37 38 39 47 48 49 50 ---

11, >or el motivo de las 4iestas de navidad 5na Institucin desea repartir en 4orma aleatoria uni4ormemente distri'uida ; tipos de juguetes a n ni?os donde y hay < unidades de cada tipo de juguete donde ;=<>?n *j. ,i @:A n:$" y B:. hay que repartir A tipos de juguetes para $" ni?os y de cada tipo de juguete hay .. 5n ni?o solo puede reci'ir un juguete de cualquier tipo< La cantidad de los tipos de juguetes se almacenan en un vector y hay que generar una matriz de nCB a) 3enerar una matriz de ceros y unos donde $ representa la relacin ni?o 22tipo de juguete. ') Dostrar las e=istencias 4inales de cada juguete de cada tipo despus de la reparticin la salida podr7a ser como esta 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 ---------0 0 0 1 0 0 0 0 los saldos que quedan son 2 3 3 1 4 4 2 3 12, ,e tiene ya ingresado )" respuestas correspondientes a cada pregunta de un e=amen con & alternativasE se toma e=amen a n alumnos y cada alumno marca una alternativa ;$ a &) en cada pregunta si su respuesta coincide con las preguntas clave la computadora de'e sumar un punto a 4avor del alumno. *la'orar un programa que lea las respuesta de los alumnos y que calcule su nota para cada alumno S"!eren)&a. Las preguntas claves estFn almacenados en un vector de )" elementosE las respuestas de los alumnos es una matriz de n 4ilas por )" columnas. 14. *ncontrar la 4recuencia y la moda de n +meros +. ,igni4icado pro'. PREGUNTA 2 ARREGLOS 2Matr&)es0 " Fr'ol ." $ mono )" 1. ellenar una matriz de )"C!" de " a . de acuerdo a las ) ele4ante $& pro'a'ilidades de ocurrencia;mostradas) que representa ! len $& el juego de la selva . e=plorador $" a) Visualizar la matriz generada ') (uantos ele4antes hay c) (uantos e=ploradores hay y por cuantos leones estF rodeado cada uno 2 a) ellenar una matriz de & 4ilas por A columnas de nmeros aleatorios de $ a 1 ') (uantos nmeros pares hay en la segunda 4ila d) >romedio de la tercera columna e) 3enerar una matriz transpuesta y visualizar la matriz inicial y la transpuesta 4) *n la 4ila !E y columna . que numero se encuentra y por cuantos ceros se encuentra rodeado

Lenguaje de programacin y mtodos numricos / Ismael Vliz Vilca

- 251 -

4. *n un avin viajan se?oresE se?oras E ni?os y ni?as y se tiene el siguiente cuadro de pro'a'ilidades a) ellenar la matriz aleatoriamente con esas pro'a'ilidades ') Dostrar la matriz rellenada c) (uantos ni?os y ni?as viajan en el avin d) ,i el pasaje adulto cuesta &" dlares y )& si es ni?o o ni?a 8 cuanto asciende la recaudacin

+P " $ ) !

,igni4icado 8siento vac7o ,e?or ,e?ora +i?o

>ro'. &Q ." !& $"

4 *n una clase hay D alumnos y cada alumno lleva + cursos a) Ingresar D y + ') Ingresar las notas de D alumnos en los + cursos c) Visualizar el contenido de la matiz ingresada d) *ncontrar el promedio de cada alumno 4) (uantos $$ hay en toda la matriz 5. ,imule un juego de la Gin@a usando 4unciones< a) ellenar un vector A de ." elemento de $ al ." ') ,ortear 1 elementos del vector 8 que no se repitan y almacenarlos en el Vector @ ; nmeros premiados) c) Ingresar 1 +meros de $ al ." ; cualquiera) nmeros jugados y almacenarlos en un vector C d) (omparar los vectores 9 y ( y determinar cuantos nmeros coinciden;nmeros acertadosE nmeros que se encuentran en el vector 8 y en el vector 9) ingresar 6 nmeros 1 2 3 4 5 6 nmeros generados 1 2 15 4 17 11 hay 3 nmeros iguales %, ellenar una matriz 8 de ACA de nmeros aleatorios de " a $ y pasar los datos a la matriz 9 de la siguiente manera si 8HiIHjI $) *sta rodeado de puros ceros pasar " a 9HiIHjI osea 9HiIHjI:" )) Dantener el valor de 8HiIHjI si esta rodeado de $ hasta . unos !) cam'iar del Valor de 9HiIHjI :$ si esta rodeado de & o mFs unos .) Visualizar las matrices 8 y 9 PREGUNTA 4 PUNTEROS 2Con)e tos0 1, *n el diagrama adjunto< si se declarara int aE 'ECpE Cq encuentre los valores de ;o diga si es verdadero o 4also)< a) aE Ja CaK 'E J' C'E pE Jp Cp E ') qE Jq CqK a:J' p:J'E ':JqE a:CpK p:CaK c) p%%K a%%E p:q p:CqK C;p%))K Cp%)E q: Jp d),i se declara char Cnom're: L5+,8M e=plique mediante un diagrama los valores de nom'reE Jnom'reE Cnom're E C;nom're%!)E Cnom're%! e). >onga un ejemplo e=plicativo de < int ;C4H!I) ;intEint) 2,que signi4ica char a char 'H!IE char CcE etc ver pFg. $1A 40 )on)e tos a) que es una varia'le puntero ')>ara que sirve neN y delete ponga ejemplos c) Bue es una lista enlazada simple y do'le ejemplos d) *jemplos de estructura de datos D&re), """" """$ """) """! """. """& """1 """O """A """/ ""$" ""$$ 3a$or Aar """. p """1 )" !" ." &" q a '

Lenguaje de programacin y mtodos numricos / Ismael Vliz Vilca

- 252 -

4 5sando pase de parFmetros por re4erencia intercam'iar dos valores como se muestra en la ejecucin ;e=plique con un diagrama los valores de aE ' y temporal en la 4uncin y en el programa principal). 5 *la'ore un programa Eusando arreglo de 4unciones para realizar las . operaciones PREGUNTA 4 ,- PUNTEROS Y CADENAS 2Pro.$e-as0 1, *scri'ir un programa para < a) concatenar dos cadenas ')convertir un nmero en cadena c)convertir una cadena en nmero d) copiar una cadena en otra e) comparar ) cadenas d) (onvertir una cadena minsculas a Daysculas y viceversa 2, 5sando punteros imprimir una cadena al revez 4. *la'orar una 4uncin donde el paso de parFmetros sea por re4erencia para ingresar aE ' y n ;datos de una integral) 4. 5sando punteros de la 4orma int CCpE rellene un matriz de A C A y que luego lo visualice 5. 5sando un arreglo de punteros ingresar n nom'res de alumnos y luego listarlos %. 9uscar en una cadena una su'cadena *jemplo 'uscar V* de 5+IV* ,IR8R 6E *=traer los primero n caracteres de una cadena comenzando por la derecha 7E *=traer los primero n caracteres de una cadena comenzando por la izquierda 9, eemplazar una su'cadena con otra por ejemplo en la cadena *l perro ,alta E reemplazar por el lobo salta 1:. *ncontrar el nmero de vocales que tiene una cadena 11E ealizar las . operaciones usando cadenas 12, *jemplo de varia'les re4erencia 14 *jemplo de >unteros a 4unciones y de 8rreglo de punteros a 4unciones 14 ,i la direccin de la pantalla de colores es "=9A"""""" escri'a directamente en la pantalla usando punteros el contenido de la cadena LSTL8M con letras de color verde y 4ondo azul en la primera columna y 4ilas de $ al & e=plique con un grF4ico las direcciones y indirecciones del puntero utilizado 15, *jemplo de argumentos en la l7nea de Trdenes para cam'iar el color de te=to que se escri'e en RT, PREGUNTA 5 PRO@LEMA SO@RE ARCBI3OS 1, Ingresar $" nmeros a un vector y gra'arlo en un archivo 2 *la'orar un Den de 8rchivos con las siguientes opciones $. Ingresar n nmeros a un vector 1)in'resar 2) 'rabar *) +ecuperar #.listar )salir* ). 3ra'ar esos n nmeros in'rese nombre del arc,ivo a recuperar !. ecuperar los n nmeros gra'ados -+.E/&.dat .. Listar los n nmeros recuperados o 0&12$ 0E3 &+4%52 -+.E/&.dat ingresados 1)in'resar 2) 'rabar *) +ecuperar #.listar )salir# &. ,alir 1 2 * # 6 7 ! 4, *jemplo de lectura y escritura de cadenas 4, *jemplo de estructuras y archivos PREGUNTA % APLICACIONES Y INTERPRETACIONES 1, >onga un ejemplo con datos de interpolacin de Lagrange 2. >onga un ejemplo de Interpolacin lineal.

Lenguaje de programacin y mtodos numricos / Ismael Vliz Vilca

- 254 -

4. 5na estacin de un servicio puede atender un pedido en & minutos los clientes llegan a razn de $ a A minutos en 4orma aleatoria a) Dostrar los tiempos de llegadaE y servicio en el lapso de una hora ') (uantos clientes llegan en una hora ') (uantos clientes son atendidos en ese tiempo c)(uanto espera un cliente como promedio N E1 E2 E4 E4 E5 Nro, r L$e!a#a entra sa$e ESPERA $ A / 1 / O $ A A A $! " ) $$ $" 1 $. $$ ) . $) $! $A $ ! $" A 1 $) / ! ) $. $A )! ! . $) $" $! & O . 1 )" )! )A ) & & 1 A 1 & &. A )A )A !! " 4, 5n proceso productivo consta de & etapasE el tiempo de produccin en cada etapa es aleatorio ;uni4ormemente distri'uido) con un tiempo de procesamiento de $" minutos y variacin de %2 & minutos. *n cuanto tiempo se 4a'ricarFn n productos a) (alcule el tiempo de procesamiento de $" productos Esi los tiempos simulados se muestran en la ta'la ') *la'ore el programa respectivo. 5, Dodi4ique el pro'lema . paraE para otros datos 5. *n 'ase al pro'lema . un producto se puede procesar de $ a & minutos con la siguiente distri'ucin de pro'a'ilidadE Retermine el tiempo de procesamiento para $" productos si la distri'ucin de pro'a'ilidad es como sigue< Giempo de proceso $ ) ! . & >ro'a'ilidad $"Q )"Q &"Q $&Q &Q *=plicacin la simulacin de Dontecarlo con grF4icos %.2 *=plique la lgica del siguiente 4ragmento de cdigo para los datos del pro'lema anterior ;*la'ore su prue'a de datos) int generar; int nroHIE 4loat pHIE int n) U int rE ngEiK r: random;$"$)K 4or ; i:"K iVnKi%%) i4 ;pHiIWr)U ng:nroHiIK'rea@KX return ngK X 6,- *la'ore un programa so're listas enlazada ela'ore los diagramas correspondientes al siguiente 4ragmento de cdigo const lma=:)"K struct registro U char nom'reHlma=IK registro CsigK XK char nom're$Hlma=IK registro CanteriorECactualECprimeroECregECactK void listar;void) U print4;YZn :::::::Zn Y)K reg: primeroK Nhile;reg[:")
1 O A / $" $" 1 $) / & $$ $$ $. / $" $" / $" / 1 $! A & O $. & 1 $) A &

Lenguaje de programacin y mtodos numricos / Ismael Vliz Vilca

- 254 -

print4;Y QsYE reg2Wnom're)K reg:reg2WsigK

X print4;YZnY)K X

Una -anera #e Aer e$ M"n#o 1


,upongamos que deseo enviar 4lores a mi a'uela. >ara ello voy con la 4lorista Local llamado 6loE descri'o la clase y cantidad de 4lores que quiero enviar . *l mecanismo que us para resolver mi pro'lema 4ue encontrar un agente apropiado;6lo) y pasarle un -ensaCe que contiene mi et&)&Dn . *s res onsa.&$&#a# de 6lo satis4acer mi solicitud. >ara lograrlo 6lo empleo un -Eto#o es decir un algoritmo o conjunto de operaciones ;yo no necesito que mtodo particular us 6lo.) 22 5na 4orma de pensar es como he organizado mi conocimiento acerca de 6lo es en trminos de jerarqu7a de categor7as ;6igura $)E 6lo es un 4loristaE pero 4lorista es una 4orma especializada de comerciante. DFs an un comerciante es tam'in un humanoE *l humano es mam74ero ;amamanta sus cr7as)E un mam74ero es un animal ;respira o=igeno) y animal es un o'jeto material ;tiene masa y peso). *l principio que dice que el conocimiento de una categor7a mas general es aplica'le tam'in a la categor7a mFs especi4ica se llama herencia. O.Ceto Mater&a$ An&-a$
An&-a$ P$anta O.eCto -ater&a$

B"-ano
-a-&/ero aAe F$or

Co-er)&ante F$or&sta F$o


Perro B"-ano

Co-er)&ante

Art&sta

Dent&sta

F$or&sta

Cera-&sta

F&#o

F$o

@ertGa

Pe e

F&!"ra 1. Los conjuntos que rodean a 6lo F&!"ra 2. \erarqu7a de clases para diversos o'jetos materiales. nota &- ortante
1

F$ores #e $a a."e$a

/udd 1imot,8 .%ntroduccin a la programacin orientada a Objetos / &ddison9esle8

%beroamericana 1::# .-.*

Lenguaje de programacin y mtodos numricos / Ismael Vliz Vilca

- 255 -

*n generalE las propiedades representan datos de un objetoE mientras que los mtodos representan acciones que un objeto puede realizar . >ara e=presarlo de otro modoE las propiedades proporcionan la descripcin de un objeto y los mtodos su comportamiento

TRA@AJO FINAL
E$ tra.aCo es !r" a$ H t&ene &!"a$ eso I"e "n eJa-en ;presentacin del tra'ajo y la sustentacin) En"n)&a#o,- *la'orar una aplicaciones usando Lenguajes visuales como en (%% 9uilder E Visual ( E 9orlandc (%% &."E 9orland Relphi o \8V8 ; solo si el pro'lema lo amerita puede usar Visual 9asic). Tra.aCo 1 *n una clase hay n alumnos por ejemplo n:$" y si tiene una ta'la como se muestra a) Ingresar los registros
Cui 1 2 3 4 5 6 7 $ ' 10 Nombre del Nota contacto Maria Anders 11 Ana Trujillo 14 Antonio Moreno 05 Thomas Hardy 16 Christina Berglund 17 Hanna Moos 14 r!d!ri"ue Citeau# 14 Mart%n &ommer 15 (auren)e (e*ihan 13 +li,a*eth (in)oln 0'

') c) d) e) 4) g)

Listar Trdenar de acuerdo a los apellidos y nom'res Trdenar de acuerdo a la nota 3ra'ar los datos en un archivo ecuperar los datos gra'ados Insertar un nuevo registro en el lugar que se indique E ela'orar una 4uncin insertar;lugarE lista) h) E$&-&nar un registro indicado 'orrar;lugarE lista) i) Mo#&/&)ar- 5n registro indicado j) @"sI"e#asE Rado un apellido 'uscar la in4ormacin re4erente a ese registroE dado el cdigo 'uscar la in4ormacin re4erente. @) F&$tros< Rado un nom're o apellido listar solo aquellos alumnos que contienen esa su'cadenaE *jemplo. ,i ingreso Daria listar todos aquellos que tienen ese nom're . Listar todos los alumnos apro'ados Listar todos los alumnos que tienen una nota determinada por ejemplo $$ O )&ona$.2*la'orar una aplicacin de 'ase de datos con dos o tres ta'las por ejemplo en el caso anterior usar ! archivos uno de alumnos E otro de pro4esores y otro de Datr7culas. Tra.aCo 2 *la'orar un juego donde se mueve es el 4ondo de la pantalla.

Lenguaje de programacin y mtodos numricos / Ismael Vliz Vilca

- 25% -

Tra.aCo 4 ,- Re4ina una clase cadena que realice operaciones de cadenas como concatenar copiarE convertir cadenas a nmerosE convertir nmeros a cadenasE etc. ;5se operadores so'recargados y 4unciones virtuales) Tra.aCo 4,- Re4ina una clase conjunto que realice las operaciones de conjuntosE como sumaE interseccinE di4erenciaE complemento de dos o mFs conjuntos ;5se operadores so'recargados) Tra.aCo 5. Sacer 8plicaciones de 8>I de ]indoNs en lenguajes Visuales ;ejemplo tra'ajar con sonido y multimedia) Tra.aCo %.2 *la'ore una 8plicacin de jerarqu7a de clases con . niveles y por lo menos tres descendientes de una clase 'ase Tra.aCo 6. *la'ore grF4icos en )R y !R de 4unciones usando lenguajes visuales Tra.aCo 7, *la'ore una aplicacin para resolver ecuaciones de primer grado con n incgnitas usando lenguaje visual Tra.aCo 9 *la'ore una 8plicacin de simulacin animada en lenguaje visual Tra.aCo 1:, (reacin de aplicaciones para Internet Tra.aCo 11.*la'orar una aplicacin que veri4ique el movimiento de las piezas de ajedrez en un ta'lero Tra.aCo 12.2 *la'orar una aplicacin para calcular ra7ces de ecuaciones o integracin numrica. Ronde la ecuacin se ingresa en tiempo de ejecucin Tra.aCo 14, aI"ete #e enseKan+a' Bue ense?e a realizar las . operaciones. Tra.aCo 14,- 8plicaciones a Ingenier7a IndustrialE (omo programacin de la programacin E estad7sticaE etc. Tra.aCo 15,- *la'orar una aplicacin para convertir un nmero a letras Tra.aCo 1%.2 8plicaciones en Internet Tra.aCo 16,- S&-"$a)&Dn an&-a#a Tra.aCo 17,- A $&)a)&ones en CLL @"&$#er $ *jemplo de aplicacin de componente memo y mens ;editor de te=to con gra'ar y cargar 2, 5so de componentes List'o= y (om'o'o= 4 5so de cajas de veri4icacin y 'otones circulares 4. 8plicaciones de 3rF4icos en ( 9uilder o 9orlandc &." %, 5so de componentes de cajas de dialogo 6, Danejo de imFgenes y cuadr7culas 7, *ventos del Douse y del teclado 9. Ttras aplicaciones In#&)a)&ones ara resenta)&Dn #e tra.aCos ,e presentarF en grupos de mF=imo tres alumnos *l tra'ajo de'e contener< a. (arFtula con los nom'res de los integrantes del grupo '. ^ndice poner nmeros de pFgina c. >rologo o presentacin d. *nunciado del caso e. Darco Gerico del tema relacionado con re4erencias 'i'liogrF4icas 4. (aracter7sticas del paqueteE alcances limitacionesE plata4orma E *l lenguaje visual utilizado. g. Rise?o de entradas y salidas ; mostrar como va a ser la entrada y salida) h. *=plicacin del algoritmo con >sudocdigo y/o diagramas de 4lujo

Lenguaje de programacin y mtodos numricos / Ismael Vliz Vilca

- 256 -

i. *l programa 4uente con comentarios j. Danual de operacin del programa ejecuta'leE que se necesita los pasos a seguir @. 9i'liogra47a consultada ANEXOS presentar en disquete o (R el programa 4uente y el ejecuta'le (ada grupo conseguirF los elementos necesarios para su sustentacin de su tra'ajo

CAPITULO 1: JERAR<UIA DE CLASES


1:,1, BERENCIA,- UNA 3ISION GENERAL
La Geren)&a es' se!"ra-ente' $a )ara)ter(st&)a -*s otente #e $a ro!ra-a)&Dn or&enta#a a o.Cetos #es "Es #e $as )$ases, Por Geren)&a )ono)e-os e$ ro)eso #e )rear n"eAas )$ases' $$a-a#as )$ases #er&Aa#as' a art&r #e "na eJ&stente o )$ases .ase, La herencia tiene ventajas importantes siendo la mFs nota'le la reutiliza'ilidadE reusa'ilidad o reutilizacin del so4tNare. 5na clase que es heredada por otra se llama clase 'ase. 8 veces tam'in se denomina clase padre ;progenitor). la clase que hereda se llama clase derivada o clase hijo La herencia se aplica para e=tender y reutilizar el cdigo e=istente< 2 Los o'jetos se pueden construir de modo incremental a partir de otros o'jetos y pueden compartir cdigo y estructura de datos. 2 Los algoritmos generales se pueden escri'ir de modo que se pueden reutilizar para nuevos tipos de o'jetosE incluso despus que los algoritmos originales se han compilado JerarI"(a #e )$ases,>roceso de crear nuevas clases llamadas clases derivadas Ea partir de una e=istente o clase 'ase. Beren)&a.2 >ropiedad de los o'jetos mediante la cual los ejemplares de clase ;o'jetos) pueden tener acceso a los datos y de4iniciones de mtodos en una clase previamente de4inida sin que tales de4iniciones se declaren de nuevo. 3entaCa.2 eusa'ilidad o reutilizacin del so4tNare

1:,2

A@STRACCION GENERALIMACIN ESPECIALIMACIN CLASES

DE DE

LA Y LAS

P"nto CJ CH Co$or In!resar Mostrar

La clase mFs alta de una jerarqu7a constituye la generalizacin de la jerarqu7a mientras que la clase de mas 'ajo nivel constituye una especializacin. Las clases de una jerarqu7a pueden ser abstractas y concretas< Las clases a'stractas

Re)tan!"$o CJ CH Co$or Lar!o a$to In!resar Mostrar In!resar NLA D&."Car

C&r)"$o CJ CH Co$or Ra#&o In!resar Mostrar In!resarNR D&."Car

Lenguaje de programacin y mtodos numricos / Ismael Vliz Vilca

- 257 -

son las clases de nivel mas alto y no se pueden instanciar ;no se pueden crear instancias o ejemplares de clase). Dientras que las clases concretas suelen ser las clases de nivel mas 'ajo de las jerarqu7as y pueden ser instanciadas;se pueden crear o'jetos). F&!"ra 1:,1< Riagrama de \erarqu7a de clases !enera$ F&!"ra In)re-ento De Genera$&+a)&on es "n F&!"ra Cerra es "n Po$(!ono es "n C"a#r&$atero es "n Re)tan!"$o es e)&/&)o F&!"ra 1:,2 8'straccin de la generalizacin /especializacin ) In)re-ento De Es e)&a$&+a)&Dn

1:,4,-ESPECIFICACIONES DE ACCESO A LA CLASE @ASE


REGLAS DE BERENCIA T& o #e S& $os -&e-.ros #e $a )$ase Los -&e-.ros #e $a )$ase Geren)&a .ase son #er&Aa#a son >'lica p'licos p'licos protegidos protegidos privados no se hereda >rivada p'licos privado protegidos privado privados +o se Sereda >rotegido p'lico >rotegido ;9orlandc V. !.$ protegido protegido para adelante) privado no se hereda

1:,4 BERENCIA SIMPLE


Gipo de herencia puede ser pu'licE private o protected s&ntaJ&s
2

;o8anes &'uilar, uis. !rogramacin orientada a Objetos. <c=ra> 4ill. 1::6. -.2*"

Lenguaje de programacin y mtodos numricos / Ismael Vliz Vilca

- 259 -

)$ass No-.reDeC$aseDer&Aa#a9 T& o No-.reDeC$ase@ase //encontrar el 4actorial de un numero usando clases y o'jetos _include Vconio.hW _include Viostream.hW Ingrese un numero . class 6actorial *l 6actorial de . es ). U protected<int iE4E+roK pu'lic< 6actorial;int n:&)U+ro:nKXK void Ingreso;)K Fa)tor&a$ int >roceso;int)K void esultado;)K XK In!reso20 4 void 6actorial<< Ingreso;) U coutVV YZn Ingrese un numero Pro)eso20 YKcinWW+roKXK &4 int 6actorial<<>roceso;int n) U4or ;4:$Ei:$KiV:nKi%%) Res"$ta#o20 4:4CiK 24 return 4K XK void 6actorial<< esultado;) Co-.&naor&a UcoutVV YZn *l 6actorial de YVV +roVV Y es YVV >roceso;+ro)VV endlKXK int main;) In!reso20 4 U 6actorial T'jeto$K clrscr;)K Pro)eso20 4 T'jeto$.Ingreso;)K T'jeto$. esultado;)K getch;)K Res"$ta#o20 24 & X ECe- $o eJ $&)at&Ao #e Beren)&a s&- $e O.$&)a 5sando la clase 4actorial derive una clase com'inatoria para encontrar la com'inatoria de dos nmeros
In!reso20 Res"$ta#o20

O.Ceto1 Nro & /

O.Ceto2 Nro & / r Co-.&

2 %

_include Vconio.hW _include Viostream.hW _include Yc<Z9orlandcZ'inZ4actoria.hY // aqu7 se inserta la clase 4actorial class (om'inatoria<pu'lic 6actorial Uprivate< int com'iErK pu'lic< void Ingreso;)K void esultado;)K XK void (om'inatoria<<Ingreso;) U6actorial<<Ingreso;)K coutVVYZn Ingrese r YKcinWW rKXK void (om'inatoria<< esultado;) Ucom'i:>roceso;+ro)/;>roceso;r)C>roceso;+ro2r))K

Lenguaje de programacin y mtodos numricos / Ismael Vliz Vilca

- 2%: -

cout VV YZn La com'inatoria de YVV+roVVY y YVVrVVY es YVVcom'iK XK Ingrese un numero . int main;) Ingrese r ) U (om'inatoria T'jeto)K La com'inatoria de . y ) es 1 clrscr;)K T'jeto).Ingreso;)K T'jeto). esultado;)K getch;)K X ECe- $o 2 de4ina una clase que permita calcular el `rea de un c7rculo y derive otra clase que permita calcular el `rea del (ilindro 8rea del (irculo;8c): piC!.$.$1CradioCradio. 8rea del (ilindro: )C8c%)C!.$.$1Caltura _include Viostream.hW C&r)"$o O.Ceto1 _include Vconio.hW const 4loat pi: !.$.$1K Ra#&o class (irculo In!resar20 U protected<4loat radioK 1: pu'lic< void Ingresar;void)K Area20 4loat 8rea;void)K void Dostrar;void)K Mostrar20 XK void (irculo<<Ingresar;void) C&$&n#ro U coutVVYZn Ingrese radioYK O.Ceto2 cinWWradioK Ra#&o XK A$t"ra In!resar20 4loat (irculo<<8rea;void) Area20 1: 5 Ureturn piCradioCradioK XK Mostrar20 void (irculo<< Dostrar;void) In!resarNC UcoutVVYZn adioYVVradioK coutVVYZn 8rea YVV8rea;)K AreaNC XK class (ilindro<pu'lic (irculo MostrarNC Uprivate<4loat altura K pu'lic< void Ingresara(;void)K 4loat 8reaa(;void)K void Dostrara(;void) K XK void (ilindro<<Ingresara(;void) UIngresar;)K cout VV YZn Ingrese altura YK cin WWalturaK Ingrese radio $" XK 4loat (ilindro<<8reaa(;void) adio$" U return )C8rea;)%)CpiCradioCalturaK 8rea !$..$1 XK Ingrese radio $" void (ilindro<<Dostrara(;void) U Dostrar;) K Ingrese altura & adio$" 8rea !$..$1

Lenguaje de programacin y mtodos numricos / Ismael Vliz Vilca

- 2%1 -

coutVVYZn 8ltura del cilindro YVValturaK coutVVYZn 8rea total YVV8reaa(;)K XK main;) U (irculo o'jeto$K (ilindro o'jeto)K clrscr;)K o'jeto$.Ingresar;)K o'jeto$.Dostrar;)K o'jeto).Ingresara(;)K o'jeto).Dostrar;)K o'jeto).Dostrara(;) K getch;)K X Nota< *n la clase cilindro la 4uncin ingresar puede tener el mismo nom're de Ingresar que la (lase c7rculo en este caso la 4uncin se de'e modi4icar a< X void (ilindro<<Ingresar;void) U(irculo<<Ingresar;)K cout VV YZn Ingrese altura YK cin WWalturaK XK ECe- $o 4, Beren)&a s&- $e P".$&)a _include Viostream.hW _include Vconio.hW class - U protected< int iEjK pu'lic< void o'taij;void)K void poneraij;void)K XK // *n 0 i y j se convierten en miem'ros protegidos class 0< pu'lic - U int @K pu'lic< int o'ta@;void)K void hacera@;void)K XK // b tiene acceso a i a a j de - E pero no a // @ de 0E que es privado por de4ecto class b< pu'lic 0 U pu'lic < void 4;void)K XK void -<< o'taij;void) U cout VV Y introducir dos numeros YK cin WW i WW jK

&

o.tN&C PonerN&C

Y &
o.tN&C PonerN&C o.tN; Ba)erN; 2

3ar

C
4

P
%

M
o.tN&C PonerN&C o.tN; Ba)erN; /

3ar2 &
2

C
4

Lenguaje de programacin y mtodos numricos / Ismael Vliz Vilca

- 2%2 -

X void -<< poneraij;void) U cout VV i VV Y YVV j VV endlKX int 0 << o'ta@;void) U return @ K XK void 0<< hacera@;void) U @:iCjK XK void b<< 4;void) U i:)K j:!K XK main;void) U clrscr;)K 0 varK b var)K var.o'taij;)K var.poneraij;)K var.hacera@;)K cout VV var.o'ta@;)K cout VV endlK var).4;)K var).poneraij;)K getch;)K return "K X ECe- $o 4, Beren)&a s&- $e Pr&Aa#a _include Viostream.hW _include Vconio.hW class - U protected< int iEjK pu'lic< void o'taij;void)K void poneraij;void)K XK // *n 0 i y j se convierten en miem'ros privados class 0< private - U int @K pu'lic< int o'ta@;void)K void hacera@;void)K XK // como i y j son privados en 0 no pueden ser heredados por b class b< pu'lic 0U pu'lic < void 4;void)KXK void -<< o'taij;void) U cout VV Y introducir dos numeros YK cin WW i WW jK X void -<< poneraij;void) U cout VV i VV Y YVV j VV endlK X int 0<<o'ta@;void) U return @ K XK void 0<< hacera@;void) U @:iCjK XK void b<< 4;void) U X // j i:)K j:!K i y j ya no son accesi'lesK

introducir dos numeros ) ! )! 1 )!

X &
o.tN&C PonerN&C

Y & P C
o.tN; Ba)erN; o.tN&C PonerN&C

3ar

M
o.tN; Ba)erN; /

Lenguaje de programacin y mtodos numricos / Ismael Vliz Vilca

- 2%4 -

main;void) U clrscr;)K 0 varK b var)K //var.o'taij;)K ya no son accesi'les //var.poneraij;)K var.hacera@;)K cout VV var.o'ta@;)K cout VV endlK var).4;)K // var).poneraij;)K ya no es accesi'le getch;)K 2.$1A))/O1 return "K X Nota< la 4uncin o'ta@ si tiene acceso a T't2ij se si modi4ica int 0<<o'ta@;void) U o'taij;)K return @ K X X La /"n)&on /. 0a no puede acceder a los datos i y j ECe- $o 5, Beren)&a s&- $e rote!&#a ;9orlandc (%% Versin !.$ para arri'a) _include Viostream.hW _include Vconio.hW class - U protected< int iEjK pu'lic< void o'taij;void)K void poneraij;void)K XK // *n 0 i y j se convierten en miem'ros protegidos class 0< protected - U int @K pu'lic< int o'ta@;void)K void hacera@;void)K XK // b tiene acceso a i a a j de - E pero no a // @ de 0E que es privado por de4ecto class b< pu'lic 0U pu'lic < void 4;void)KXK void -<< o'taij;void) U cout VV Y introducir dos numeros YK cin WW i WW jK X void -<< poneraij;void) o.tN&C PonerN&C

& C

Y &

3ar

P C
o.tN; Ba)erN; o.tN&C PonerN&C

M &
o.tN;

3ar2

C
Ba)erN; / o.tN&C PonerN&C

Lenguaje de programacin y mtodos numricos / Ismael Vliz Vilca

- 2%4 -

U cout VV i VV Y YVV j VV endlKX int 0 << o'ta@;void) U return @ K XK void 0<< hacera@;void) U @:iCjK XK void b<< 4;void) U i:)K j:!K XK//legal si tiene acceso main;void) U clrscr;)K 0 varK b var)K // var.o'taij;)K se ha vuelto protegido // var.poneraij;)K se ha vuelto protegido var.hacera@;)K cout VV var.o'ta@;)K cout VV endlK var).4;)K // var).poneraij;)K se puede heredar pero es protegido getch;)K return "K X Nota9 *n este caso la 4uncin / si puede acceder a los datos iEj

1:,5 BERENCIA MULTIPLE


*s posi'le que una clase herede atri'utos de dos o mas clases. >ara realizar estoE se usa una lista de herenciaE separada por comasE en la lista de las clases 'ase de la clase derivada . La 4ormula general es< )$ass no-.re-)$aseN#er&Aa#a9 $&sta-$&sta )$ase-.ase Q --R ECe- $o %,-Serencia mltiple _include Vconio.hW _include Viostream.hW class -U protected< int aK pu'lic<void haceraa ;int i)K XK class 0 U protected<int 'K pu'lic< void hacera';int i)K XK // b hereda de - y de 0 class b < pu'lic -E pu'lic 0 U pu'lic < int haceraa';void)K XK void -<< haceraa;int i) Ua:iKX void 0<< hacera'; int i) U ':iKX int b<< haceraa';void) U return aC'KX main;) U clrscr;)K

X a Ba)erNa . Ba)erN.

M Ba)erNa Ba)erN. Ba)erNa. a .

Lenguaje de programacin y mtodos numricos / Ismael Vliz Vilca

- 2%5 -

b o'jetoK o'jeto.haceraa;$")K o'jeto.hacera';$))K cout VV o'jeto.haceraa';)K return "K X $)" *n este ejemploE b tiene acceso a las posiciones pu'licas y protegidas de - y 0 *n el ejemplo precedenteE ni -E ni 0E ni b contienen 4unciones constructoras. ,in em'argoE la situacin es mas compleja cuando una clase 'ase contiene una 4uncin constructora. >or ejemplo modi4iquemos el programa anterior de modo que las clases -E 0 y z tengan una 4uncin constructora. 1:,% CONSTRUCTORES Y DESTRUCTORES CON CLASES DERI3ADAS Los constructores y los destructores de la clase 'ase no son heredados por las clases derivadas Constr")tores.2 (uando una clase 'ase tiene un constructor y una clase derivada tam'in al crear un o'jetoE se llama primero al constructor de la clase 'ase y cuando la ejecucin de este 4inalizaE entonces se llama el constructor de la clase derivada. Destr")tores.2 Tcurre en 4orma inversa que los constructores.
@ase1 @ase2 ECe- $o 4.2 Serencia mltiple con constructores . //. clase con mltiples 'ases a _include Vconio.hW Ba)erN. Ba)erNa _include Viostream.hW @ase1 @ase2 class 'ase$ S@ase1 S@ase2 U pu'lic< 'ase$;void)UcoutVV YZn 'ase $ creada YKXK c'ase$;void)U coutVVYZn 'ase $ @ase12 destruida YKXK a XK Ba)erNa class 'ase) . Ba)erN. U pu'lic< 'ase);void)UcoutVV YZn 'ase ) Ba)erNa. creada YK XK c'ase);void)U coutVVYZn 'ase ) @ase12 destruida YKXK S@ase2 XK // clase con mltiples 'ases class c$)<pu'lic 'ase$Epu'lic 'ase) U pu'lic< c$);void)U coutVVYZnc$) creada YK XK ECe)")&Dn, cc$);void)Ucout VV YZn c$) destruida YKXK 'ase $ creada XK 'ase ) creada void main;) c$) creada U clrscr;)K c$) destruida c$) d$K 'ase ) destruida 'ase $ destruida

Lenguaje de programacin y mtodos numricos / Ismael Vliz Vilca

- 2%% -

getch;)K X ECe- $o 4.2 *jemplo de herencia mltiple con constructores parametrizados _include Vconio.hW _include Viostream.hW class - U protected< int aK pu'lic<- ;int i)K int veraa;)Ureturn aKX XK class 0 U X Y protected< int 'K pu'lic< 0 ;int i)K a . int vera';)Ureturn 'KX Y2I0 XK X2I0 // b hereda de - y de 0 3erN. class b < pu'lic -E pu'lic 0 3erNa U pu'lic < b;int =Eint y)K int haceraa';void)K M XK a -<<-;int i) M2I'J0 U a:iK X . Ba)erNa. 0<< 0;int i) U ':iK X // inicializa - e 0 mediante el constructor de b // +otar que realmente b no usa = o y // pero podria si se elige as7 b<<b;int =E int y)<-;=)E0;y) U cout VV Yinicializamos b ZnYK X int b<< haceraa';void) U return aC'K X main;void) U clrscr;)K //- o'$;$)K //0 o');))K b o'jeto;$"E)")K //iniciliza al padreE hijo y nieto se 4uera dos o'jetos seis inicializaciones cout VV o'jeto.veraa;)VVendlK cout VV o'jeto.vera';)VVendlK cout VV o'jeto.haceraa';)K getch;)K return "K X +ote que las clases 'ase se construyen de derecha a izquierda en el orden en el que aparecen en la declaracin de bE en (%% las 4unciones constructoras de clase

Lenguaje de programacin y mtodos numricos / Ismael Vliz Vilca

- 2%6 -

heredadas se llaman en el orden en el que aparecen. 5na vez que la clase o clase 'ase han sido inicializadasE se ejecuta la 4uncin constructora de la clase derivada. Ganto en cuanto ninguna clase 'ase tome argumentosE la clase derivada no necesita tener una 4uncin constructora aunque una o mFs de las clases 'ase la tengan. ,in em'argoE cuando una clase 'ase contienen una 4uncin constructora parametrizadaE cualquier clase derivada de'e contener tam'in una 4uncin constructora. *l siguiente programa ilustra como pasar argumentos a las clase 'ase de una clase derivada modi4icando el programa precedente< // 'ase de datos jerarqu7a _include Viostream.hW _include Vconio.hW const int lon :."K class empleado // clase empleado U private< char nom'reHlonIK // nom're del empleadoK unsigned long L*K // li'reta electoral int edadK // edad del empleado pu'lic< void leerdatos;) U coutVV Y ingrese nom're<YKcin WW nom'reK coutVV Y ingrese L* <YK cinWWL*K coutVV Y ingrese edad <YK cinWWedadK X void verdatos;) U coutVV YZn nom're < Y VV nom'reK coutVV YZn L* < YVVL*K coutVV YZn edad < Y VVedadK X XK class administrativo<pu'lic empleado U private< char categoriaHlonIK //director generalE je4e de sec.Eetc. char destino HlonIK// gerenciaE conta'ilidadE etcK pu'lic< void leerdatos;) U empleado<< leerdatos;)K coutVV Y Ingrese categoria <YK cinWW categoriaK cout VVY Ingrese destino <YK cinWW destinoK X void verdatos;) U empleado<< verdatos;)K coutVVYZn categoria <Y VV categoriaK coutVVYZn Restino <Y VV destinoK X XK class pro4esor<pu'lic empleado U private<

Lenguaje de programacin y mtodos numricos / Ismael Vliz Vilca

- 2%7 -

char tituloHlonIK // 4isicoE matemFticoE etcK int pu'licacionesK //nro de pu'licaciones pu'lic< void leerdatos;) U empleado<<leerdatos;)K cout VV Y Ingrese titulo <YKcinWW tituloK cout VV Y Ingrese nro de pu'licaciones <YK cin WW pu'licacionesK X void verdatos;) U empleado<< verdatos;)K cout VV YZn titulo <Y VV tituloK cout VV YZn pu'licaciones <YVV pu'licacionesK X XK class au=iliar< pu'lic empleado U XK void main;) U administrativo aK pro4esor p$Ep)K au=iliar au=K clrscr;)K cout VV YZn ingrese dato del administrativo ZnYK a.leerdatos;)K cout VV YZn ingrese datos del pro4esor $ ZnYK p$.leerdatos;)K cout VV YZn ingrese datos del pro4esor Zn )YK p).leerdatos;)K cout VV YZn ingrese datos del au=iliarZnYK au=.leerdatos;)K cout VVY datos personales del administrativoYK a.verdatos;)K cout VVY datos personales del pro4esor $YK p$.verdatos;)K cout VVY datos personales del pro4esor )YK p).verdatos;)K cout VVY datos personales del au=iliar YK au=.verdatos;)K getch;)K X nom're < \58+ L* < )!. edad < )! categoria <RI *(GT Restino <3* *+(I8 datos personales del pro4esor $ 222

1:,6 EJEMPLOS DE FORMAS DE DERI3ACIN DE CLASES


,e tiene los siguientes diagramas descri'a como har7a la derivacin de clases

Lenguaje de programacin y mtodos numricos / Ismael Vliz Vilca

- 2%9 -

@ D

Persona

Persona

E- $ea#o

Est"#&ante

Est"#&ante

Tra.aCa#or Est"#&ante Tra.aCa#or

2a0
In!en&ero Pre!ra#o PostGra#o

2.0

2)0

Parte a _include Viostream.hW class 8 U XK class 9 U XK class ( U XK class R<pu'lic 8Eprivate 9Eprotected ( U XK main;) U X >arte ;') es similar >arte ;c) *s un caso de herencia repetida que se verF posteriormente

1:,7 PRO@LEMAS RESUELTOS


Pro.$e-a 1::1, La clase animal tiene las siguientes miem'ros Datos -&e-.ro < nom're E F"n)&ones -&e-.ro <animal;) .2 constructor que permite inicializar nom're:MR*,(T+T(IRTM Ingresar+om're;) .2 permite ingresar nom're Dorder;).2 Lanza un mensaje de animal no-.re D5* R* Rerivar la clase D&nosa"r&o que hereda todas la caracter7sticas de la clase animal y tiene su propia versin de 4uncin DorderE a la vez derivar la clase "$!a #e la clase animal que tiene otra versin de 4uncin morder ;como se muestra en la ejecucin) Re4inir tres o'jetos llamados T8E T8$E clase animal TR clase dinosaurio ET> clase pulga >oner +om'res a los o'jetos con IngresarRatos;) T9\*GT T8 T8$ TR T>

Lenguaje de programacin y mtodos numricos / Ismael Vliz Vilca

- 26: -

+TD9 * R*,(T+T(IRT;C) 6IRT RI+T >5L35I+ ;C) Lo pone el constructor *jecutar T8.Dorder;)E T8$.Dorder;) E TR.morder;)E T>.Dorder para que aparezca la siguiente ejecucin _include Vconio.hW _include Viostream.hW _include Vstring.hW const ma= :)"K class animal !ro"ec"ed#char nom$re%ma&'( !u$lic#animal)char nom%ma&'=*+,-./N/.0+/*1 s"rc!y)nom$re2nom1( 3( 4oid 5onerNom$re)1( 4oid 6order)1( 3( class dinosaurios #!u$lic animal !u$lic# 4oid 6order)1(3( class !ulgas# !u$lic animal !u$lic# 4oid 6order)1(3( 4oid dinosaurios##6order)1 cou"77 *8n ,l dinosaurio * 77 nom$re 77 * 69,:+,*( 3( 4oid !ulgas##6order)1 cou"77 *8n ;a !ulga * 77 nom$re 77 * 69,:+,*( 3( 4oid animal##5onerNom$re)1 cou"77 *8n 0ngrese nom$re del animal *( cin<< nom$re( 3 ( 4oid animal##6order)1 cou"77 *8n ,l =nimal *77 nom$re 77 * 69,:+, *( 3 ( main)1 ,l =nimal +,-./N/.0+/ 69,:+, animal /=2 /=1( 0ngrese nom$re del animal ?0+/ dinosaurios /+( !ulgas /5( ,l =nimal ?0+/ 69,:+, clrscr)1( 0ngrese nom$re del animal +0N/ /=>6order)1( /=1>5onerNom$re)1( ,l dinosaurio +0N/ 69,:+, /=1>6order)1( 0ngrese nom$re del animal /+>5onerNom$re)1( 59;@90N /+>6order)1( /5>5onerNom$re)1( /5>6order)1( ge"ch)1( 3 Pro.$e-a C1::2 Re4inir las siguientes clases. 8'uelo .2Ratos Diem'ro < nom're E edad 6unciones Diem'ro< >oner+om're;) y Ratos >ersonales padre< (lase derivada de a'uelo y ademFs tiene

Lenguaje de programacin y mtodos numricos / Ismael Vliz Vilca

- 261 -

Ratos Diem'ro< (uenta 4unciones Diem'ro<8ctualizar(uenta;)E Vercuenta;) hijo< (lase derivada de padre y ademFs tiene Ratos Diem'ro< nota 4unciones Diem'ro< >oner+ota;)E Ver+ota;) _includeVconio.hW _includeViostream.hW class a'uelo U char Cnom'reK// poner protected si queremos protected< int edadK // usar con clases derivadas pu'lic< a'uelo;char Cnom':Y65L8+TYEint eda:$"") Unom're:nom'Kedad:edaKX void >oner+om're;void)K void Ratos>ersonales;void)K XK void a'uelo<< >oner+om're;) UcoutVVYZn Ingrese nom're YK cinWWnom'reKXK void a'uelo<< Ratos>ersonales;) UcoutVVYZn nom're YVVnom'reVV Y edad YVVedadKXK class padre<pu'lic a'uelo U4loat cuentaK pu'lic< padre;4loat c:"")Ucuenta:cKXK void 8ctualizar(uenta;)K void Ver(uenta;)UcoutVV Y cuentaYVVcuentaKX XK void padre<<8ctualizar(uenta;) UcoutVVYZn Ingrese el nuevo valor de cuenta YK cinWWcuentaK // cinWW edadK no se puede si no es protegido XK class hijo<pu'lic padre U int notaK pu'lic<void >oner+ota;)UcoutVVYZn Ingrese notaYKcinWWnotaKXK void Ver+ota;)UcoutVVYZn+TG8 YVVnotaKXK XK main;) U a'uelo \T,*Kpadre D8+5*L;$""")Khijo \T 3*K clrscr;)K \T,*.Ratos>ersonales;)K// si 4uera protected no seria accesi'le D8+5*L.Ratos>ersonales;)KD8+5*L.Ver(uenta;)K \T 3*.>oner+ota;)K\T 3*.Ver+ota;)K getch;)K return "K X nom're 65L8+T edad $"" nom're 65L8+T edad $"" cuenta$""" Ingrese nota$1 +TG8 $1 Nota. de4ina la clase como un arreglo de o'jetos

Lenguaje de programacin y mtodos numricos / Ismael Vliz Vilca

- 262 -

1:,9 PRO@LEMAS PROPUESTOS


1 a) *nuncie un pro'lema interesante y original para ejempli4icar jerarqu7a de clases como m7nimo tres clases como se muestra en la 4igura;se de'e heredar todos sus miem'ros de la clase 'ase) ') *la'ore el programaE c) *=plique con un esquema como se hereda los datos miem'ro y 4unciones miem'ro 2,25sando la clase 'ase punto derive dos clases circulo y rectFngulo de tal manera que permita di'ujar un rectFngulo y circulo usando 4unciones de la clase 'ase punto y sus propias 4unciones. 4.2>onga un ejemplo de constructores y destructores con jerarqu7as de clase. 4. 5tilizando una clase cualquiera genere sus clases derivadas de 4orma que herede todos sus miem'ros EJ $&)a)&Dn #e ase #e o.Cetos or Aa$or P*!&na 247 8l poner una sentencia como esta se puede o'tener la direccin del o'jeto print4;YZn direccin de o'jeto en main QuZnYEJo'jeto)K *l o'jeto ocupa la cantidad de datos miem'ro
F"n)&Dn / %649%92 Esta#oN&2J0 Sa$&#aN& & 1: J

%649%9%
-a&n %949%9%

J
o.Ceto & Esta#oN&2J0 1:

-a&n %949%9% Esta#oN&2J0 Sa$&#aN&

o.Ceto & 1:

Sa$&#aN&

2=J0,sa$&#a20 J->sa$&#a20

F&!"ra1:,12.2>ase de o'jetos por valor y por re4erencia F"n)&ones a-&!o P*!&na 244 La siguiente modi4icacin hace lo mismo 4riend void 4= ;cuenta CE int)K// declaracin de amigoK void 4=; cuenta CcE int val) U c2W=:valKX

Lenguaje de programacin y mtodos numricos / Ismael Vliz Vilca

- 264 -

L$a-a#a ara -o#&/&)ar 4197%74

4=;Jo'jetoEA)K // ver = con amigoK

/"n)&on /J

%649%77 %649%9% %649%92


)"enta %949%9% Esta#oN&2J0 Sa$&#aN& /r&en# /J

)$ase 1 n $eer
/r&en# )$ase 2

)1

)$ase 2

)2 n

Aa$or
o.Ceto

1:

$eer
es)r&.&r 2 )$ase10

2:

J
:

*l uso de las 4unciones amigas es sacar el valor de una clase y modi4icar con ese valor los valores de otra clase

)->J?Aa$