IMPLEMENTACIN DE ALGORITMOS
EN DEV C++ USANDO MDULOS
- GUAS DE PRCTICA MATERIAL PREPARADO PARA EL CURSO:
ALGORITMOS Y ESTRUCTURA DE DATOS
ELABORADO POR:
ING. EDWIN OCTAVIO RAMOS VELSQUEZ
ANDAHUAYLAS PER
PRESENTACIN
El presente trabajo es un compilado de guas de laboratorio preparado para ser utilizado por los
alumnos de la Carrera profesional de Ingeniera de Sistemas o de Ingeniera Informtica en las
sesiones de un curso de Introduccin a la programacin. Nosotros, habilitamos este material para
los alumnos, de forma tal les sirva de gua en la resolucin de ejercicios de programacin.
La programacin modular y/o estructurada, concibe que un programa est compuesto por un
conjunto de mdulos o subprogramas;
especfica dentro de un software.
Esperamos que el presente conjunto de guas de laboratorio sean de utilidad para absolver
muchas de las dudas que nuestros estudiantes nos han planteado en clase.
El profesor
Pgina 2 de 36
DATOS PREVIOS
Para dar inicio a esta prctica, usted necesita contar con los siguientes elementos:
Paquete de software: devcpp-4.9.9.2_setup.exe (instalado)
METODOLOGIA
Se presentar al alumno ejemplos de algoritmos en la forma de diagramas de flujo, y se
les solicitar su implementacin en Dev C++.
Se absolvern preguntas en la sesin de esta prctica de laboratorio.
NOTA:
Previamente, usted debera de crear un directorio de trabajo para el almacenamiento del
cdigo fuente de sus programas (Podra ser por ejemplo D:\Applicaciones C).
void Algoritmo_Promedio()
{
//1. Declaracin de variables
int A,
float
intB;A,
B; C;
float C;
//2. Algoritmo
Leer A
Leer B
C = (A + B) / 2
C = (float(A) +float(B))/2;
Print:
C
FIN
Programa_Principal( )
INICIO
Algoritmo_Promedio( )
}
FIN
Pgina 3 de 36
Programa
principal
2. Implementar un programa que dados dos nmeros A y B, ambos ledos desde el teclado,
aplique el algoritmo de Euclides para hallar el Mximo Comn Divisor, y que muestre su
resultado en pantalla.
HallarMCD(A,B: Integer): Integer
Inicio
IF
A>B
SI
#include <cstdlib>
#include <iostream>
NO
X=B
Y=A
X=A
Y=B
int x, y, R, MCD;
if (A > B)
if {
(Ax >= B)
A;
{ =
x B;
= A;
y
y
= B;
}
}
else { x = B;
else y
{ =
x A;
= B;
y
= A;
}
}
R = X mod Y
MCD = Y
WHILE
( R<>0)
R = x % y;
MCD = y;
while (R!= 0)
while
{ x(R
= !=
y; 0)
{yx==R;
y;
y
=
R = xR;
% y;
R ==xy;
% y;
MCD
MCD
=
y;
}
}
Hacer
X=Y
Y=R
R = X mod
Y
MCD = Y
return MCD;
}
return (MCD)
FIN
Programa Principal()
int A, B, MCD;
INICIO
// 2. Algoritmo
printf("\n Leer A:");
scanf("%d",
&A);&A)
scanf(%d,
Leer: A
Leer:
scanf(%d, &B)
MCD
MCD =
= HallarMCD(A,
HallarMCD(A, B);
B);
C = HallarMCD (A, B)
printf("\nElElResultado
Resultadoes:
es:%d",
%d",MCD);
MCD);
printf("\n
system("PAUSE");
return EXIT_SUCCESS;
Print: MCD
}
FIN
Pgina 4 de 36
3. Implementar un programa que dados dos nmeros A y B, ambos ledos desde el teclado,
aplique el algoritmo de Euclides para hallar el Mnimo Comn Mltiplo (MCM), y que muestre
su resultado en pantalla.
HallarMCM(A, B: Integer): Integer
Inicio
SI
#include <cstdlib>
#include <iostream>
using namespace std;
IF
A>B
NO
X=B
Y=A
X=A
Y=B
int x, y, R, MCD;
if (A > B)
if {
(Ax >= B)
A;
{ =
x B;
= A;
y
y
= B;
}
}
else { x = B;
else y
{ =
x A;
= B;
y
= A;
}
}
R = X mod Y
MCD = Y
WHILE
( R<>0)
R = x % y;
MCD = y;
while (R!= 0)
while
{ x =(R!=
y; 0)
{
x
=
y = R;y;
R y
= =
x R;
% y;
R
=
MCD = x
y;% y;
MCD
=
y;
}
}
Hacer
X=Y
Y=R
R = X mod
Y
MCD = Y
MCD = MCD * x * y;
MCD = MCD * X * Y
return MCD;
}
return (MCD)
FIN
Programa Principal()
// 2. Algoritmo
printf("\n Leer A:");
scanf("%d",
&A);
scanf(%d,
&A)
INICIO
Leer: A
Leer:
C = HallarMCM (A, B)
Print: MCD
FIN
Pgina 5 de 36
system("PAUSE");
return EXIT_SUCCESS;
}
4. Implemente que lea desde el teclado un nmero N, y luego imprima en pantalla la siguiente
imagen:
1
1
1
1 2
1 2
1 2
1 2 3
1
1 2 3
1 2 3 4
1 2
1 2 3
1
Si N = 2
Si N = 3
1 2
Si N = 4
1
Solucin:
Imprimir_Fila (Fila:Integer)
#include <cstdlib>
#include <iostream>
INICIO
void Imprimir_Fila(int N)
{ //1. Declarar variables
int
intk;
k;string
strings;
s;
//2. Algoritmo
printf("\n");
for
for(k
(k==1;
1;kk<=
<=N;
N;k++)
k++)
printf("%d
printf("%d ",k);
",k);
FIN
Imprimir_Triangulo(N:Integer)
INICIO
For k = 1 --> N
}
//------------------------------------void Imprimir_Triangulo(int N)
{ //1. Declarar variables
int
int k;
k;
//2. Algoritmo
for (k
(k == 1;
1; kk <=
<= N;
N; k++)
k++)
for
Imprimir_Fila(k);
Imprimir_Fila(k);
Imprimir_Linea(k)
For k = N -1 --> 1
Bucle Decreciente
}
Imprimir_Linea(k)
FIN
Programa Principal ( )
// 2. Algoritmo
printf("\n Leer N: ");
INICIO
scanf(%d,
scanf("%d", &N);
&N);
Leer: N
Imprimir_Triangulo(N);
Imprimir_Triangulo(N);
Imprimir_Triangulo(N)
FIN
Pgina 6 de 36
5. Implemente un programa que lea desde el teclado un nmero N, y obtenga el nmero romano
equivalente y lo imprima en pantalla.
A continuacin solo mostramos los diagramas de flujo. Sugerimos al estudiante implementar
el respectivo cdigo fuente en C++.
Programa Principal( )
IntToRomano(N:Integer ): String
Inicio
Inicio
N = LeerDatos( )
R = IntToRomanoDecada(N)
R = IntToRomano( N )
return R
Imprimir(R)
FIN
FIN
IntToRomanoDecada(N:Integer ): String
Inicio
Z = Integer( N/10 )
Parte entera de
la divisin N/10
CASE
(Z)
Z=0
Z=1
Z=2
Z=3
Z=4
Z=9
R = IntToRomanoUnidad(N - 0)
R = " X " + IntToRomanoUnidad(N -10)
R = " XX " + IntToRomanoUnidad(N - 20)
R = " XXX " + IntToRomanoUnidad(N - 30)
R = " XL " + IntToRomanoUnidad(N - 40)
R = " XC " + IntToRomanoUnidad(N - 90)
return R
FIN
Pgina 7 de 36
IntToRomanoUnidad(N:Integer ): String
Inicio
CASE
(N)
N=0
R=" "
N=1
R="I"
N=2
N=3
R = " II "
N=4
R = " IV "
N=9
R="I"
return R
FIN
TAREAS:
Disee Usted 5 programas con sus respectivos diagramas de flujo, y a continuacin realice su
implementacin en C++.
Pgina 8 de 36
DATOS PREVIOS
Para dar inicio a esta prctica, usted necesita contar con los siguientes elementos:
Paquete de software: devcpp-4.9.9.2_setup.exe (instalado)
METODOLOGIA
Se presentar al alumno ejemplos de algoritmos en la forma de diagramas de flujo, y se
les solicitar su implementacin en Dev C++.
Se absolvern preguntas en la sesin de esta prctica de laboratorio.
NOTA:
Previamente, usted debera de crear un directorio de trabajo para el almacenamiento del
cdigo fuente de sus programas (Podra ser por ejemplo D:\Applicaciones C).
SI
IF
N=0
F=1
NO
F = N * Factorial(N - 1)
return F
FIN
int Factorial(int N)
{ //1. Declaracin de variables
int
intF;F;
//2. Algoritmo
if (N == 0)
if (NF ==
0)
= 1;
F
=
1;
else
else F = N * Factorial(N-1);
F = N * Factorial( N );
return F;
Programa
principal
}
//-----------------------------------int main(int argc, char *argv[])
{ // 1. Declaracin de variables
int N, F;
int N, F;
Programa_Principal( )
INICIO
Leer:
N
F = Factorial(N )
Print:
F
FIN
Pgina 9 de 36
// 2. Algoritmo
printf(\nLeer N:);
scanf(%d,
&N);
scanf(%d, &N);
FF == Factorial(N);
Factorial(N);
printf(El Resultado es %f, F);
//3. Congelar pantalla
printf("\n ");
system("PAUSE");
return EXIT_SUCCESS;
}
2. Implementar un programa que lea un valor N desde el teclado, y luego halle los N primeros
nmeros Fibonacci.
Solucin:
Fibonacci (N:Integer ): Integer
INICIO
SI
IF
(N= 0)
(N=1)
#include <cstdlib>
#include <iostream>
using namespace std;
NO
int Fibonacci(int N)
{ //1. Declaracin de variables
int F;
F;
int
F=N
//2. Algoritmo
if
if (N==0
(N==0 ||
|| N==1)
N==1)
N;
F F= =N;
else
else
Fibonacci(N-1)+Fibonacci(N-2);
Fibonacci(N-2);
F F= =Fibonacci(N-1)+
F = Fibonacci(N-1) + Fibonacci(N-2)
return F
FIN
return F;
}
Imprimir_Nros(N: Integer )
INICIO
for K =1 ---> N
//---------------------------void Imprimir_Nros(int N)
{ //1. Declaracion de variables
int
f; f;
intK,K,
F = Fibonacci(k )
for
for (K
(K == 1;
1; K<=N;
K<=N; K++)
K++)
{ {
f f
= =
Fibonacci(K);
Fibonacci(K);
printf(%d,
,,
f);
printf(%d,
f);
} }
Print:
F
}
FIN
Programa_Principal( )
INICIO
// 2. Algoritmo
printf("\n Leer N:");
scanf("%d",
&N);
scanf(%d,
&N);
Leer:
N
Imprimir_Nros(N);
Imprimir_Nros(N);
Imprimir_Nros (N )
FIN
}
3. Compile y ejecute la aplicacin
TAREAS:
Implemente 3 programas en donde se utilice recursividad.
Pgina 10 de 36
OBJETIVO
El alumno podr crear una aplicacin donde se utilicen libreras de procedimientos en
C++.
DATOS PREVIOS
Para dar inicio a esta prctica, usted necesita contar con los siguientes elementos:
Paquete de software: devcpp-4.9.9.2_setup.exe (instalado)
METODOLOGIA
Se presentar al alumno ejemplos de algoritmos en la forma de diagramas de flujo, y se
les solicitar su implementacin en Dev C++.
Se absolvern preguntas en la sesin de esta prctica de laboratorio.
NOTA:
Previamente, usted debera de crear un directorio de trabajo para el almacenamiento del
cdigo fuente de sus programas (Podra ser por ejemplo D:\Applicaciones C).
Seleccionar la plantilla
Console Application
Pgina 11 de 36
A continuacin seleccionar el directorio recin creado para all grabar todos los archivos
de este proyecto
3. Seleccionar el directorio
recin creado ProyLibreria
4. Presionar Guardar
para grabar el proyecto
c) Grabar todo.
Pgina 12 de 36
1. Presionar el botn
Guardar todo
Todos los archivos que se han de grabar, debern ser grabados en el directorio ProyLibreria,
el cual usted creo en el paso anterior.
SECCION 02: AGREGAR UN ARCHIVO DE CABECERA (Librera *.h)
2. Seleccionar el cono del proyecto ProyLibreria, y en el men contextual que se mostrare,
seleccionar la opcin Nuevo Cdigo Fuente
1. Seleccionar la opcin
Nuevo Cdigo Fuente
Pgina 13 de 36
2. Escribir el nuevo
nombre MiLibreria.h
1. Seleccionar la opcin
Renombrar Archivo
3. Presionar el
botn OK
4. Modificar el contenido del archivo MyLibreria.h, de forma que debera contener lo siguiente:
Archivo MyLibreria.h
#ifndef _MYLIBRERIA_H
#define _MYLIBRERIA_H
// Seccin de cdigo fuente
#endif
Pgina 14 de 36
Seccin
de
cdigo
fuente
Programa_Principal( )
INICIO
SI
F=1
INICIO
NO
Leer:
N
F = N * Factorial(N - 1)
F = Factorial(N )
IF
N=0
Print:
F
return F
FIN
FIN
#includeMyLibreria.H
MyLibreria.H
#include
using namespace std;
#ifndef_MYLIBRERIA_H
_MYLIBRERIA_H
#ifndef
#define_MYLIBRERIA_H
_MYLIBRERIA_H
#define
/* ------------------------------NOTA: El nombre del archivo
debe coincidir con el encabezado
anterior
------------------------------*/
using namespace std;
int Factorial(int N)
{ //1. Declaracin de variables
int F;
scanf(%d, &N);
//2. Algoritmo
F = Factorial(N);
Llama a una funcin
//3. Congelar pantalla
definida en una librera
printf("\n ");
(en MyLibreria.h)
system("PAUSE");
return EXIT_SUCCESS;
}
}
if (N == 0)
F = 1;
else
F = N * Factorial( N );
return F;
#endif
Pgina 15 de 36
El texto MYLIBRERIA
debe estar sincronizado
con el nombre del archivo.
(Si el nombre del archivo
cambia, este encabezado
tambin debe cambiar)
Nota: El encabezado:
#include MyLibreria.h
Se escribe as por cuanto el archivo Mylibreria.h se encuentra en el mismo directorio del
main.cpp. si acaso el archivo Mylibreria.h estuviera en el directorio include del
paquete Dev C++, entonces debera escribirse as:
#include <MyLibreria.h>
7. Implementar un programa que lea desde el teclado un nmero N, y que luego imprima en
pantalla: Es nmero PRIMO o No es nmero PRIMO segn corresponda.
ProgramaPrincipal( )
Es_Primo(N:Integer):Boolean
INICIO
INICIO
Leer:
N
E = true
For k = 2 -->N-1
H = EsPrimo( N )
SI
SI
IF
H = true ?
Print
"Es Primo"
NO
IF
(N % K) = 0
NO
E = false
Print:
"NO es primo"
return E
FIN
FIN
Nota: No olvide, todos los procedimientos y/o funciones deben ser escritos en un archivo de
cabecera (archivo *.h)
TAREAS
Escriba 05 programas donde se utilicen archivos de cabecera (*.h) creados por el mismo
usuario.
Pgina 16 de 36
OBJETIVO
DATOS PREVIOS
Para dar inicio a esta prctica, usted necesita contar con los siguientes elementos:
Paquete de software: devcpp-4.9.9.2_setup.exe (instalado)
METODOLOGIA
Seleccionar la plantilla
Console Application
Pgina 17 de 36
A continuacin seleccionar el directorio recin creado para all grabar todos los archivos
de este proyecto
3. Seleccionar el directorio
recin creado PryClases
4. Presionar Guardar
para grabar el proyecto
c) Grabar todo.
Pgina 18 de 36
1. Presionar el botn
Guardar todo
Todos los archivos que se han de grabar, debern ser grabados en el directorio PryClases,
el cual usted creo en el paso anterior.
SECCION 02: CREAR TODAS LAS CLASES DEL MODELO (Archivos *.h)
a) Crear la clase TArena
2. Seleccionar el cono del proyecto PryClases, y en el men contextual que se
mostrare, seleccionar la opcin Nuevo Cdigo Fuente
1. Seleccionar la opcin
Nuevo Cdigo Fuente
3.
Pgina 19 de 36
2. Escribir el nuevo
nombre claseTArena.h
4.
3. Presionar el
3. Presionar
botn
OK el
botn OK
#ifndef _CLASETARENA_H
#define _CLASETARENA_H
Seccin
de
cdigo
fuente
#endif
Nombre de la
clase TArena
Pgina 20 de 36
f)
i)
j)
16. Una vez terminado de crear las clases, modificar el archivo main.cpp, de forma tal que usando
la instruccin include, se haga referencia a todos los archivos *.h creados
Ejemplo:
#include claseTArena.h
#include claseTAsfalto.h
#include claseTHormigon.h
#include claseTVidrio.h
etc.
17. Compile todo el proyecto con la opcin del men EjecutarReconstruir todo. Si hubieran
errores de codificacin, deber corregirlo.
El aspecto del proyecto es el que se muestra:
Pgina 21 de 36
SECCION 03: RELACIONAR TODAS LAS CLASES DE ACUERDO AL MODELO (Archivos *.h)
De acuerdo al modelo:
TArena es la superclase
TVidrio tiene como padre a TArena
TAsfalto tiene como padre a TArena
THormigon tiene como padre a TArena
TEstacion tiene como padre a TAsfalto
TPista tiene como padre a TAsfalto
TPared tiene como padre a THormigon
TPiso tiene como padre a THormigon
TVentana tiene como padre a TVidrio
TParabrisa tiene como padre a TVidrio
TLente tiene como padre a TVidrio
Realizaremos la relacin en las clases hijo, modificando el encabezado de cada clase.
18. Abrir el archivo claseTVidrio.h, y modificar el encabezado de la clase, de forma tal que se
haga referencia a la clase de la cual es descendiente
//-- SECCION 1. Declaracion de referencias include
#include "claseTArena.h"
//------------------------------------------------//-- SECCION 2. Declaracin del Encabezado de la Clase
class TVidrio: public TArena {
Nombre de la clase
Padre TArena
}; // El encabezado termina en Punto y Coma
//------------------------------------------------//-- SECCION 3. Implementacin de las clases
19. Abrir el archivo claseTAsfalto.h, y modificar el encabezado de la clase, de forma tal que se
haga referencia a la clase de la cual es descendiente
//-- SECCION 1. Declaracion de referencias include
#include "claseTArena.h"
//------------------------------------------------//-- SECCION 2. Declaracin del Encabezado de la Clase
class TAsfalto: public TArena {
Nombre de la clase
Padre TArena
}; // El encabezado termina en Punto y Coma
//------------------------------------------------//-- SECCION 3. Implementacin de las clases
20. Repetir el paso anterior, pero esta ocasin, para todas las dems clases del modelo
SECCION 04: SECCIONAR EL ENCABEZADO DE TODAS LAS CLASES EN TRES
SECCIONES (Archivos *.h)
a) las secciones de cdigo son: prvate, protected y public
b) personalizaremos la seccin public, y las segmentaremos en tres secciones:
Seccin Propiedades
Seccin Constructores y Destructores
Seccin Procedimientos y Funciones
Pgina 22 de 36
21. Modificar el encabezado de la clase TArena (archivo claseTArena.h) dejndolo tal como se
muestra:
class TArena{
private:
protected:
public:
//--- 1. Seccin Propiedades
//--- 2. Seccin Constructores y Destructores
//--- 3. Seccin Procedimientos y Funciones
};
22. Modificar el encabezado de la clase TVidrio (archivo claseTVidrio.h) para dejarlo tal como se
muestra:
class TVidrio{
private:
protected:
public:
//--- 1. Seccin Propiedades
//--- 2. Seccin Constructores y Destructores
//--- 3. Seccin Procedimientos y Funciones
};
23. Repetir el paso anterior para las dems clases del modelo.
Pgina 23 de 36
Paso 6.2 y 6.3 Implementar el constructor sin parmetros, y el que tiene parmetros
class TArena {
//Seccin 1. Propiedades
private:
string Color;
protected:
int Densidad;
public:
//--- 1. Seccin Propiedades
//--- 2. Seccin Constructores y Destructores
TArena();
TArena(int Densidad, string Color);
//--- 3. Seccin Procedimientos y Funciones
};
//------------------------------------------------//-- SECCION 3. Implementacin de las clases
TArena::TArena()
{ this->Densidad = 0 ;
this->Color
= "";
}
TArena::TArena(int Densidad, string Color)
{ this->Densidad = Densidad ;
this->Color
= Color;
}
Pgina 24 de 36
Pgina 25 de 36
TVidrio
-Opacidad: Integer
-Grosor: Integer
+TVidrio()
+TVidrio(Densidad: Integer, Color: String, Opacidad: Integer, Grosor: Integer)
+getOpacidad(): Integer
+setOpacidad(Value: Integer)
+getGrosor(): Integer
+setGrosor(Value: Integer)
+Traslucir()
+TraspasarImagen()
+getArea(): double
+getVolumen(): double
Paso 6.2 y 6.3 Implementar el constructor sin parmetros, y el que tiene parmetros
class TVidrio: public TArena {
//Seccin 1. Propiedades
private:
int Opacidad;
int Grosor;
protected:
public:
//--- 1. Seccin Propiedades
//--- 2. Seccin Constructores y Destructores
TVidrio();
TVidrio(int Densidad, string Color,
int Opacidad, int Grosor);
//--- 3. Seccin Procedimientos y Funciones
};
//-- SECCION 3. Implementacin de las clases
TVidrio::TVidrio():TArena()
{ this->Opacidad =0 ;
this->Grosor
= 0;
}
TVidrio::TVidrio(int Densidad, string Color, int Opacidad,
int Grosor):TArena(Densidad, Color)
{ this->Opacidad = Opacidad ;
this->Grosor
= Grosor;
}
Pgina 26 de 36
Pgina 27 de 36
Pgina 28 de 36
Clase Actual
Clase Actual
Pgina 29 de 36
f)
}
A la clase TParabrisa, agregarle los mtodos indicados en el encabezado, y luego
implementarlos.
class TParabrisa: public TVidrio{
//-----string getClassName();
string getClassName_full();
};
//-- SECCION 3. Implementacin de las clases
string TParabrisa::getClassName(){
return "TParabrisa";
}
string TParabrisa::getClassName_full(){
return TVidrio::getClassName_full() +" "+ TParabrisa::getClassName();
}
Clase Actual
g) A las dems clases del modelo, agregarle los mtodos indicados en el encabezado, y
luego implementarlos(los mtodos getClassName y getClassName_full). Proceder
de acuerdo al patrn propuesto.
29. Abrir el archivo main.cpp, y escribir en el programa principal una aplicacin que sirva para
crear objetos de las clases del diagrama.
using namespace std;
//-----------------------------------------------void print(string s)
{ printf("%s", s.c_str());
}
void println(string s)
{ printf("%s \n", s.c_str());
}
void println(int n)
{ printf(" %d \n", n);
}
void println(double d)
{ printf(" %f \n", d );
}
//-----------------------------------------------void Imprimir(TArena *O){
println("-------------------------------------- ");
print("la clase: "); println(O->getClassName());
print("la clase: "); println(O->getClassName_full());
if (O->InstanceOf("TArena")==true)
{ TArena *A = (TArena *) O;
print("El objeto es de color"); println(A->getColor());
print("Su densidad es: ");
println(A->getDensidad());
}
if (O->InstanceOf("TVidrio"))
{
TVidrio *Vi = (TVidrio *) O;
print("Su opacidad es: " ); println(Vi->getOpacidad());
print("Su grosor es: " ); println(Vi->getGrosor());
print("El area es: "
);
println(Vi->getArea());
print("El volumen es: ");
println(Vi->getVolumen());
Vi->Traslucir();
Vi->TraspasarImagen();
}
Pgina 30 de 36
if (O->InstanceOf("TLente"))
{ TLente *L = (TLente *) O;
print("Su nmero es: ");
println(L->getNumero());
print("Su diametro es: "); println(L->getDiametro());
L->AumentarImagen();
L->CentrarImagen();
}
if (O->InstanceOf("TParabrisa"))
{TParabrisa *P = (TParabrisa *) O;
print("Su Marca es: "); println(P->getMarca());
print("Su Largo es: "); println(P->getLargo());
print("Su Ancho es: "); println(P->getAncho());
P->CerrarVentana();
P->AbrirVentana();
}
if (O->InstanceOf("TVentana"))
{ TVentana *V = (TVentana *) O;
print("Su Largo es: ");
println(V->getLargo());
print("Su Ancho es: ");
println(V->getAncho());
print("La posicion es: "); println(V->getPosicion());
V->BloquearElViento();
}
if (O->InstanceOf("TPiso"))
{ TPiso *X = (TPiso *) O;
print("Se usa en: ");
println(X->getUso());
print("Su Antiguedad es:"); println(X->getAntiguedad());
X->Resbalar();
X->Quebrarse();
}
if (O->InstanceOf("TAsfalto"))
{ TAsfalto *Y = (TAsfalto *) O;
print("El petroleo es: "); println(Y->getTipoPetroleo());
}
if (O->InstanceOf("THormigon"))
{ THormigon *H = (THormigon *) O;
H->Chorrearse();
H->Mezclar();
}
if (O->InstanceOf("TEstacion"))
{ TEstacion *E = (TEstacion *) O;
print("El area es: "); println(E->getArea());
}
if (O->InstanceOf("TPared"))
{ TPared *Pa = (TPared *) O;
print("La ubicacion es: "); println(Pa->getUbicacion());
print("La altura es: ");
println(Pa->getAltura());
Pa->DarSoporte();
Pa->Proteger();
}
if (O->InstanceOf("TPista"))
{ TPista *Z = (TPista *) O;
print("La longitud es: "); println(Z->getLongitud());
print("El ancho es: ");
println(Z->getAncho());
print("El area es: ");
println(Z->getArea());
Z->AvanzarVehiculo();
Z->EmitirSenyales();
}
Pgina 31 de 36
}
int main(int argc, char *argv[])
{
//1. Declarar las variables
TArena *A, *B, *C, *D, *E, *F, *G;
// 2.
A =
B =
C =
D =
E =
F =
G =
TAREAS:
Implementar la siguiente estructura de clases.
Pgina 32 de 36
TAparato
-Marca: String
-Peso: double
+TAparato()
+TAparato(Material: String, ... Completar...)
+getMarca(): String
+setMarca(Value: String)
+getPeso(): double
+setPeso(Value: double)
+Apartar()
TMetal
-Material: String
-Solidez: double
-Uso: String
-Antiguedad: Integer
+TMetal()
+TMetal(Material: String, Solidez: double)
+getMaterial(): String
+setMaterial(Value: String)
+getSolidez(): double
+setSolidez(Value: double)
+Tensar()
+Endurecer()
TLampa
-Modelo: String
-Ruedas: Integer
-Calibre: double
-Largo: double
+TTanque()
+TTanque(Material: String, ...Completar ...)
+getModelo(): String
+setModelo(Value: String)
+getRuedas(): Integer
+setRuedas(Value: Integer)
+Circular()
+Atacar()
+TCanyon()
+TCanyon(Material: String, ...Completar...)
+getCalibre(): double
+setCalibre(Value: double)
+getLargo(): double
+setLargo(Value: double)
TVajilla
-Pico: String
+TPicota()
+TPicota(Material: String, ...Completar...)
+getPico(): String
+setPico(Value: String)
+Picotear()
+Clavar()
TCuchara
+Peso: double
+TCuchara()
+TCuchara(Material: String, ...Completar...)
+getPeso(): double
+setPeso(Value: double)
+Cargar()
Pgina 33 de 36
+getUso(): String
+setUso(Value: String)
+getAntiguedad(): Integer
+setAntiguedad(Value: Integer)
+Levantar()
+Utilizar()
TCanyon
TTanque
TPicota
THerramienta
#Largo: Integer
-Ancho: Integer
+TLampa()
+TLampa(Material: String, ...Completar...)
+getLargo(): Integer
+setLargo(Value: Integer)
+getAncho(): Integer
+setAncho(Value: Integer)
+Lampear()
+Cargar()
-Color: String
TCuchillo
+TVajilla()
+TVajilla(Material: String, ...Completar...)
+getColor(): String
+setColor(Value: String)
+Lavarse()
+Secarse()
TPlato
-Diametro: double
-Volumen: double
+TPlato()
+TPlato(Material: String, ...Completar...)
+getDiametro(): double
+setDiametro(Value: double)
+getVolumen(): double
+setVolumen(Value: double)
+Servir()
+TomarElPlato()
-Filo: String
+TCuchillo()
+TCuchillo(Materia: String, ...Completar...)
+getFilo(): String
+setFilo(Value: String)
+Cortar()
+Enfilar()
INICIO
1
Crear el proyecto
2
3
Relacionar las clases
de acuerdo al Modelo
6
Para k = 1 ----> N
TMyClase = Clase(k)
6.1
6.2
Declarar e Implementar el
Constructor sin parmetros
Ej: TMyClase()
Declarar e Implementar el
Constructor con parmetros
Ej: TMyClase(par1, par2, ...)
6.4
FIN
Pgina 34 de 36
6.3
6.5
Pgina 35 de 36
-Lar go : Int ege r
-An c ho : Int ege r
TVe n t a n a
-Us o: St ring
-An t igue da d: Int ege r
TPi so
TPi st a
TPa r e d
+g e t Ar ea ( ): do ubl e
-Ar ea : do ubl e
TEs t a c i on
+T A s f al to( )
+T A s f al to( De ns i da d: Int ege r , Co l or : St ring, Ti po Pe t rol eo : St ring)
+g e t Ti po Pe t rol eo ( ): St ring
TA s f al to
+T A r ena ( )
+T A r ena ( De ns i da d: Int ege r , Co l or : St ring)
+g e t De ns i da d( ): Int ege r
+s et De ns i da d( Va l ue : Int ege r )
+g e t Co l or (): St ring
+s et Co l or (Va l ue : St ring)
+p r int (St ring s)
+p r int ln( St ring s)
+g e t Us o( ): St ring
+B l oque a r El Vi ent o( )
+C e r rar Ve nt ana ( )
+g e t Po s i ci on( ): Int ege r +g e t An t igue da d( ): Int ege r
+A b r irVe nt ana ( )
+R e s ba l ar ()
+g e t Ar ea ( ): do ubl e
+g e t Ar ea ( ): do ubl e +g e t Lar go ( ): Int ege r +Q u e br ar se( )
+g e t Ma r ca( ): St ring +g e t An c ho ( ): Int ege r
+g e t Lar go ( ): Int ege r
+g e t An c ho ( ): Int ege r
TPa r a b r isa
TA r e n a
#D e ns i da d: Int ege r
-Co l or : St ring
+T Lent e( )
+T Lent e( De ns i da d: Int ege r , Co l or : St ring, Op a c i da d: Int ege r , Gr os or : Int ege r ,THo
. . . )r mi go n
+g e t Nu me r o( ): do ubl e
+s et Nu me r o( Va l ue : do ubl e)
+C h o r rea r se( )
+g e t Di ame t ro( ): do ubl e
+Me z cl ar ()
+s et Di ame t ro( Va l ue : do ubl e)
+A u me nt ar Ima ge n( )
+C e nt rar Ima ge n( )
+g e t Ar ea ( ): do ubl e
-Nu me r o: do ubl e
#D i ame t ro: do ubl e
TL e n t e
+T Vi dr io( )
+T Vi dr io( De ns i da d: Int ege r , Co l or : St ring, Op a c i da d: Int ege r , Gr os or : Int ege r )
+g e t Op a c i da d( ): Int ege r
+s et Op a c i da d( Va l ue : Int ege r )
+g e t Gr os or (): Int ege r
+s et Gr os or (Va l ue : Int ege r )
+T r as l uc i r()
+T r as pa s ar Ima ge n( )
+g e t Ar ea ( ): do ubl e
+g e t Vo l ume n( ): do ubl e
TVi dr io
BIBLIOGRAFA
CEVALLOS SIERRA, Francisco Javier. Enciclopedia del lenguaje C++. Mxico,
Alfaomega Grupo Editor, S.A. de C.V., 2004.
FARRELL, Joyce. Introduccin a la programacin: Lgica y diseo. Mxico,
International Thomson Editores, S.A. de C.V., 2000.
JOYANES AGUILAR, Luis. Fundamentos de Programacin. Mxico, McGraw
Hill. 1999.
Pgina 36 de 36