Está en la página 1de 30

INSTITUTO POLITÉCNICO NACIONAL

Escuela Superior de Ingeniería Mecánica y


Eléctrica

Fecha: 26 de agosto de 2019

Sede: Zacatenco

Salón: 2EV3

Práctica 2

Morales Pérez Eduardo


Índice

Introducción 3

Marco teórico 4

Programa 1 5

Programa 2 11

Programa 3 16

Programa 4 20

Programa 5 24

Conclusión 29

Referencias 30

2
Introducción

Las clases (class) y estructuras (struct) son dos de las construcciones básicas

de Common Type System en .NET Framework. Cada una de ellas es básicamente

una estructura de datos que encapsula un conjunto de datos y comportamientos

que forman un conjunto como una unidad lógica. Los datos y comportamientos son

los miembros de la clase o estructura, e incluyen sus métodos, propiedades y

eventos, entre otros elementos, como se muestra más adelante en este tema.

3
El anidamiento (llamado nesting en inglés) es la práctica de
incorporar llamadas (calls) a funciones o procedimientos (unas) dentro
de otras, mediante la inclusión de diversos niveles de paréntesis.
Debido a que la potencial acumulación de éstos últimos suele hacer que
la edición y la detección de errores se vuelva un proceso engorroso, los
entornos de programación modernos -así como los programas de
planilla de cálculo- resaltan en negrita el par correspondiente a la
posición que está editando el programador o usuario en cada momento.
El control (automático) del balance o equilibrio entre los paréntesis de
apertura y de cierre se suele conocer como brace match checking en
inglés.
Naturalmente, para la resolución matemática de estas complejas
formulas encadenadas, las expresiones deben ser evaluadas
desde adentro hacia afuera, ya que los resultados de las más internas
sirven, temporalmente, de datos de entrada de las exteriores.

4
Programa 1

Desarrolle el concepto de acumuladores

Realice el siguiente ejercicio con una clase La clase struct lleva inicio, fin,
incremento y acumulador, para sumar un incremento dado por el usuario, que
inicie en un valor dado por el usuarios y un fin dado por el usuario.
Y que el usuario vuelva a preguntar inicio, fin e incremento en un rango de 0
a 100.

Realice funcion portada void void


Realice el Diagrama UML integrarlo a su programa
donde los datos, son:
inicio, fin , incremento y acumulador.

Ejemplo;
Inicio 3
Fin 12
Incremento 2
Debe considerara suma=0 o el primer valor de suma es=a inicio
suma= 3+2=5
Suma= 5+2=7
suma =7+2=9
suma=9+2=11 fin del proceso
Iteraciones 4

5
6
7
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
void Datos()
{
char Nombre[30],Edad[30],Escuela[30],Grupo[30],Boleta[30];
cout<<"\nIngrese su nombre: ";
cin>>Nombre;
cout<<"Ingrese su edad: ";
cin>>Edad;
cout<<"Escuela donde estudia: ";
cin>>Escuela;
cout<<"Grupo: ";
cin>>Grupo;
cout<<"Ingrese su Numero de Boleta: ";
cin>>Boleta;
cout<<endl;
}
void UML()
{
cout<<"|-----------------------------------|\n";
cout<<"| struct<Acumulador> |\n";
cout<<"|-----------------------------------|\n";
cout<<"| x : int |\n";
cout<<"| i : int |\n";
cout<<"| f : int |\n";
cout<<"| inc : int |\n";
cout<<"| acu : int |\n";
cout<<"| sum : int |\n";
cout<<"|-----------------------------------|\n";
cout<<"| |\n";
cout<<"|-----------------------------------|\n";
}
struct suma
{
int x,a,b,inc,acu,sum;
}obj;
int main()
{

8
UML();
Datos();
int y=0;
char op;
do
{
obj.sum=0;
cout<<"Programa que suma los incrimentos de los numeros
entre un parametro especifico\n\n";
do{
cout<<"Dame un parametro de inicio entre 0 y 100 con numero
entero: ";
cin>>obj.a;
if(obj.a<0||obj.a>100)
{
cout<<"\nopcion invalida\n";
}
}while(obj.a<0||obj.a>100);
cout<<endl;
do{
cout<<"Dame un parametro de fin entre 0 y 100 con numero
entero: ";
cin>>obj.b;
if(obj.b<0||obj.b>100)
{
cout<<"\nopcion invalida\n";
}
}while(obj.b<0||obj.b>100);
cout<<endl;
do{
cout<<"dame un parametro de incrimento entre 0 y 100 con
numero entero: ";
cin>>obj.inc;
if(obj.inc<0||obj.inc>100)
{
cout<<"\nopcion invalida\n";
}
}while(obj.inc<0||obj.inc>100);
cout<<endl;
for(obj.x=obj.a;obj.x<=obj.b;obj.x=obj.x+obj.inc)

9
{
obj.acu=obj.inc+obj.x;
cout<<obj.x<<"+ "<<obj.inc<<"="<<obj.acu<<endl;
obj.sum=obj.x+obj.sum;
y++;
}
cout<<"La suma total es: "<<obj.sum<<"\n";
cout<<"Fueron "<<y<<" iteraciones\n";
cout<<"Desea volver con otros numeros:\na.-si\nb.-no\n";
cin>>op;
}
while(op!='b');
return 0;
}

10
Programa 2

Desarrolle el concepto de multiplicadores

Realice el siguiente ejercicio con una clase. Struct lleva inicio, fin , incremento
, el multiplicador y el número de interaciones
Para multiplicar un incremento dado por el usuario, que inicie en un valor
dado por el usuarios y un fin dado por el usuario.

Realice funcion portada void void


Realice el diagrama UML integrarlo a su programa

Ejemplo;
Inicio 3
Fin 12
Incremento 2 fin de proceso

Debe considerar el mutlplicador =1 o el primer valor de suma es = inicio


mult=3*2=6
mult=6*2=12
Iteraciones 2

11
12
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
void Datos()
{
char Nombre[30],Edad[30],Escuela[30],Grupo[30],Boleta[30];
cout<<"\nIngrese su nombre: ";
cin>>Nombre;
cout<<"Ingrese su edad: ";
cin>>Edad;
cout<<"Escuela donde estudia: ";
cin>>Escuela;
cout<<"Grupo: ";
cin>>Grupo;
cout<<"Ingrese su Numero de Boleta: ";
cin>>Boleta;
cout<<endl;
}
void UML()
{
cout<<"|-----------------------------------|\n";
cout<<"| struct<Multiplicador> |\n";
cout<<"|-----------------------------------|\n";
cout<<"| x : int |\n";
cout<<"| i : int |\n";
cout<<"| f : int |\n";
cout<<"| inc : int |\n";
cout<<"| acu : int |\n";
cout<<"| mul : int |\n";
cout<<"|-----------------------------------|\n";
cout<<"| |\n";
cout<<"|-----------------------------------|\n";
}
struct multiplicacion
{
int x,a,b,inc,acu,mul;
}obj;
int main()
{

13
UML();
Datos();
int y=0;
char op;
do
{
obj.mul=1;
cout<<"Programa que multiplica los incrimentos de los
numeros entre un parametro especifico\n\n";
do{
cout<<"Dame un parametro de inicio entre 0 y 100 con numero
entero: ";
cin>>obj.a;
if(obj.a<0||obj.a>100)
{
cout<<"\nopcion invalida\n";
}
}while(obj.a<0||obj.a>100);
cout<<endl;
do{
cout<<"Dame un parametro de fin entre 0 y 100 con numero
entero: ";
cin>>obj.b;
if(obj.b<0||obj.b>100)
{
cout<<"\nopcion invalida\n";
}
}while(obj.b<0||obj.b>100);
cout<<endl;
do{
cout<<"dame un parametro de incrimento entre 0 y 100 con
numero entero: ";
cin>>obj.inc;
if(obj.inc<0||obj.inc>100)
{
cout<<"\nopcion invalida\n";
}
}while(obj.inc<0||obj.inc>100);
cout<<endl;
for(obj.x=obj.a;obj.x<=obj.b;obj.x=obj.x+obj.inc)

14
{
obj.acu=obj.inc*obj.x;
cout<<obj.x<<"* "<<obj.inc<<"="<<obj.acu<<endl;
obj.mul=obj.x*obj.mul;
y++;
}
cout<<"La multiplicacion final es: "<<obj.mul<<"\n";
cout<<"Fueron "<<y<<" iteraciones\n";
cout<<"Desea volver con otros numeros:\na.-si\nb.-no\n";
cin>>op;
}
while(op!='b');
return 0;
}

15
Programa 3

Realice una agenda con struct anidado separado.


Describa qué hace el programa.

Cree una función de usuario (es portada) para que imprima sus datos como
son nombre, grupo y fecha.

Revisar para que el programa no imprima 3 veces la estatura

16
17
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
using namespace std;
struct nombre
{
char nom[30],apep[30],apem[30];
};
struct agenda
{
nombre nombrec;
float calif[3],estatura;
}alumno;
void Datos()
{
char nombre[30],grupo[30],escuela[30],fecha[30];
cout<<"Ingrese su nombre:";
cin>>nombre;
cout<<"Ingrese su grupo:";
cin>>grupo;
cout<<"En que escuela estudia:";
cin>>escuela;
cout<<"Ingrese la fecha :";
cin>>fecha;
fflush(stdin);
}
void UML()
{
cout<<"|-----------------------------------|\n";
cout<<"| struct<Agenda,Nombre> |\n";
cout<<"|-----------------------------------|\n";
cout<<"| nomb : char |\n";
cout<<"| apep : char |\n";
cout<<"| apem : char |\n";
cout<<"| calif : float |\n";
cout<<"| estatura : float |\n";
cout<<"| |\n";
cout<<"|-----------------------------------|\n";

18
cout<<"| |\n";
cout<<"|-----------------------------------|\n";
}
int main()
{
UML();
int x;
system("color F9");
Datos();
cout<<"\nDame tu nombre: ";
cin>>alumno.nombrec.nom;
cout<<"\nDame tu apellido paterno: ";
cin>>alumno.nombrec.apep;
cout<<"\nDame tu apellido materno: ";
cin>>alumno.nombrec.apem;
for(x=0;x<3;x++)
{
cout<<"\nDame la colificacion "<<x+1<<": ";
cin>>alumno.calif[x];
}
cout<<"\nDame tu estatura: ";
cin>>alumno.estatura;
system("cls");
cout<<"\n\nEl alumno "<<alumno.nombrec.nom<<"
"<<alumno.nombrec.apep<<" "<<alumno.nombrec.apem<<" con
una estatura de: "<<alumno.estatura;
cout<<"mts y con las calificaciones: ";
for(x=0;x<3;x++)
{
cout<<"\nCalificacion "<<x+1<<": "<<alumno.calif[x];
}
cout<<endl;
return 0;
}

19
Programa 4

Modifique el ejercicio anterior de una agenda con struct anidado un struct dentro
de un struct tome en consideración lo siguiente:

Cree una función de usuario para que imprima sus datos como son nombre, grupo
y fecha.

20
21
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
using namespace std;
void UML()
{
cout<<"|-----------------------------------|\n";
cout<<"| struct<Agenda,Nombre> |\n";
cout<<"|-----------------------------------|\n";
cout<<"| nomb : char |\n";
cout<<"| apep : char |\n";
cout<<"| apem : char |\n";
cout<<"| calif : float |\n";
cout<<"| estatura : float |\n";
cout<<"| |\n";
cout<<"|-----------------------------------|\n";
cout<<"| |\n";
cout<<"|-----------------------------------|\n";
}
struct agenda
{
struct nombre
{
char nom[30],apep[30],apem[30];
}nombrec;
float calif[3],estatura;
}alumno;
void Datos()
{
char nombre[30],grupo[30],escuela[30],fecha[30];
cout<<"Ingrese su nombre:";
cin>>nombre;
cout<<"Ingrese su grupo:";
cin>>grupo;
cout<<"En que escuela estudia:";
cin>>escuela;
cout<<"Ingrese la fecha :";
cin>>fecha;
fflush(stdin);

22
}
int main()
{
UML();
int x;
system("color F9");
Datos();
cout<<"\nDame tu nombre: ";
cin>>alumno.nombrec.nom;
cout<<"\nDame tu apellido paterno: ";
cin>>alumno.nombrec.apep;
cout<<"\nDame tu apellido materno: ";
cin>>alumno.nombrec.apem;
for(x=0;x<3;x++)
{
cout<<"\nDame la colificacion "<<x+1<<": ";
cin>>alumno.calif[x];
}
cout<<"\nDame tu estatura: ";
cin>>alumno.estatura;
system("cls");
cout<<"\n\nEl alumno "<<alumno.nombrec.nom<<"
"<<alumno.nombrec.apep<<" "<<alumno.nombrec.apem<<" con
una estatura de: "<<alumno.estatura;
cout<<"mts y con las calificaciones: ";
for(x=0;x<3;x++)
{
cout<<"\nCalificacion "<<x+1<<": "<<alumno.calif[x];
}
cout<<endl;
return 0;
}

23
Programa 5

Modifique el programa anterior pero ahora realice para 30 alumnos, utilice


ciclos y objeto tipo arreglo con 3 alumnos. Piense que pueden ser 30
alumnos. Recordar limpiar el buffer con fflush(stdin);

En la estructura agenda adicione una nueva variable que será el promedio de


las calificaciones utilice el concepto de A C U M U L A D O R E S .

Cree una función de usuario para que imprima sus datos como son nombre,
grupo y fecha.

24
25
26
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
using namespace std;
void UML()
{
cout<<"|-----------------------------------|\n";
cout<<"| struct<Agenda,Nombre> |\n";
cout<<"|-----------------------------------|\n";
cout<<"| nomb : char |\n";
cout<<"| apep : char |\n";
cout<<"| apem : char |\n";
cout<<"| calif : float |\n";
cout<<"| estatura : float |\n";
cout<<"| |\n";
cout<<"|-----------------------------------|\n";
cout<<"| |\n";
cout<<"|-----------------------------------|\n";
}
struct agenda
{
struct nombre
{
char nom[30],apep[30],apem[30];
}nombrec;
float calif[3],estatura;
}alumno[3];
void Datos()
{
char nombre[30],grupo[30],escuela[30],fecha[30];
cout<<"Ingrese su nombre:";
cin>>nombre;
cout<<"Ingrese su grupo:";
cin>>grupo;
cout<<"En que escuela estudia:";
cin>>escuela;
cout<<"Ingrese la fecha :";
cin>>fecha;
fflush(stdin);

27
}
int main()
{
UML();
int x,i;
system("color F9");
//Datos();
for(i=0;i<3;i++)
{
fflush(stdin);
cout<<"\nDame tu nombre alumno "<<i+1<<":" ;
cin.getline(alumno[i].nombrec.nom,30);
cout<<"\nDame tu apellido paterno alumno "<<i+1<<":" ;
cin>>alumno[i].nombrec.apep;
cout<<"\nDame tu apellido materno alumno "<<i+1<<":" ;
cin>>alumno[i].nombrec.apem;
for(x=0;x<3;x++)
{
cout<<"\nDame la colificacion "<<x+1<<": ";
cin>>alumno[i].calif[x];
}
cout<<"\nDame tu estatura: ";
cin>>alumno[i].estatura;
}
system("cls");
for(i=0;i<3;i++)
{
cout<<"\n\nEl alumno "<<alumno[i].nombrec.nom<<"
"<<alumno[i].nombrec.apep<<" "<<alumno[i].nombrec.apem<<"
con una estatura de: "<<alumno[i].estatura;
cout<<"mts y con las calificaciones: ";
for(x=0;x<3;x++)
{
cout<<"\nCalificacion "<<x+1<<": "<<alumno[i].calif[x];
}
cout<<endl;
}
return 0;
}

28
Conclusión

En la P.O.O un objeto no es un dato simple, tiene contenido en su interior un

gran número de componentes muy bien estructurados, ese objeto no es un ente

aislado sino que forma parte de una organización jerárquica o de otro tipo.

Este tipo de programación contiene una identidad, una clasificación, un

polimorfismo y una herencia para caracterizar un lenguaje orientado a objetos, estos

términos podrían utilizarse de un modo independiente uno de otro, pero juntos

complementan una relación sinérgica. Son muchos los beneficios que se

pueden obtener de la programación orientada a objetos de los que podemos ver a

simple vista.

29
Referencias

A. Coruna, «teleformacion,» teleformacion.edu, [En línea]. Available:


http://teleformacion.edu.aytolacoruna.es/PASCAL/document/modular.htm#intro. [Último
acceso: Agosto 2019

T. d. programacion, «lcorientadoaobjetos,» 5 Febrero 2015. [En línea]. Available:


https://lcorientadoaobjetos.wordpress.com/tag/abstraccion/. [Último acceso: 20 Agosto 2019].

30

También podría gustarte