6
Ejercicio 1 #include <iostream> #include <math.h> #include <conio.h> using namespace std; class Ecuacion{ private: float x,y; float *x1; float *y1; public: Ecuacion (){ cout<<"Introduce un valor para x los intervalo …….."<<endl; cin>>x; if (-2>x<=2) { cout<<"Numero fuera de rango >>"<<endl; cin>>x;} X1=new float[9]; Y1=new float[9];} void imprime(){ y=exp(x)*pow(x,2); cout<<"el valo: "<<x<<endl <<"La funcion evaluada en ese valor es"<<y<<endl <<"Desplegando datos del intervalo...."<<endl <<endl<<"x \t"<<"y=e^x*x^2"<<endl<<endl; float x1; for (int i=0;i<9;i++){ cout<<x1[i]<<"\t"<<y1[i]<<endl;}} friend void calculo (Ecuacion);}; void calculo (Ecuacion objEc1){ float cont=-2.0; for (int i=0;i<9;i++){ objEc1.xA[i]=cont; objEc1.yA[i]=exp(objEc1.xA[i])*pow(objEc1.x1[i],2); cont=cont+0.5;}} int main(){ Ecuacion objEc1; calculo(objEc1); objEc.imprime(); getch();} Ejercicio 2 #include <iostream> #include <string.h> #include <conio.h> using namespace std; class Persona{ protected: char boleta[20],nombre[60],especialidad[30]; public: Persona(){} void leer_datos(){ cout<<" boleta de estudiante: "; cin>>boleta; cout<<"Nombre completo del estudiante: "; gets(nombre); cout<<"Especialidad del estudiante: "; cin>>especialidad;} void imprimir(){ cout<<"Boleta: "<<boleta<<endl; cout<<"Nombre: "<<nombre<<endl; cout<<"Especialidad: "<<especialidad<<endl;} friend class Salon;}; class Estudiante:public Persona{ private: int mat; double*cal,prom; public: Estudiante():Persona(){} double leer_datoss(){ cout<<"\n\nCuantas materias toma(1-15)? "; cin>>mat; cal=new double[mat]; for(int i=0;i<mat;i++){ cout<<"Calificacion de la materia "<<i+1<<": "; cin>>cal[i]; }} void imprimir_datos(){ cout<<"\n\nDATOS DEL ESTUDIANTE---"<<endl; imprimir_datoss(); cout<<"Calificaciones: "; for(int i=0;i<mat;i++){ cout<<cal[i]<<","; prom+=cal[i]; } prom/=mat;

Instituto Poltecnico Nacional

Embed Size (px)

DESCRIPTION

hoy

Citation preview

Page 1: Instituto Poltecnico Nacional

Ejercicio 1

#include <iostream>

#include <math.h>

#include <conio.h>

using namespace std;

class Ecuacion{

private:

float x,y;

float *x1;

float *y1;

public: Ecuacion (){

cout<<"Introduce un valor para x los intervalo …….."<<endl;

cin>>x; if (-2>x<=2) {

cout<<"Numero fuera de rango >>"<<endl;

cin>>x;} X1=new float[9]; Y1=new float[9];}

void imprime(){

y=exp(x)*pow(x,2);

cout<<"el valo: "<<x<<endl

<<"La funcion evaluada en ese valor es"<<y<<endl

<<"Desplegando datos del intervalo...."<<endl

<<endl<<"x \t"<<"y=e^x*x^2"<<endl<<endl;

float x1; for (int i=0;i<9;i++){

cout<<x1[i]<<"\t"<<y1[i]<<endl;}}

friend void calculo (Ecuacion);};

void calculo (Ecuacion objEc1){

float cont=-2.0;

for (int i=0;i<9;i++){

objEc1.xA[i]=cont;

objEc1.yA[i]=exp(objEc1.xA[i])*pow(objEc1.x1[i],2);

cont=cont+0.5;}}

int main(){

Ecuacion objEc1;

calculo(objEc1);

objEc.imprime();

getch();}

Ejercicio 2

#include <iostream>

#include <string.h>

#include <conio.h>

using namespace std;

class Persona{

protected:

char boleta[20],nombre[60],especialidad[30];

public:

Persona(){}

void leer_datos(){

cout<<" boleta de estudiante: ";

cin>>boleta;

cout<<"Nombre completo del estudiante: ";

gets(nombre);

cout<<"Especialidad del estudiante: ";

cin>>especialidad;}

void imprimir(){

cout<<"Boleta: "<<boleta<<endl;

cout<<"Nombre: "<<nombre<<endl;

cout<<"Especialidad: "<<especialidad<<endl;}

friend class Salon;};

class Estudiante:public Persona{

private:

int mat;

double*cal,prom;

public:

Estudiante():Persona(){}

double leer_datoss(){

cout<<"\n\nCuantas materias toma(1-15)? ";

cin>>mat;

cal=new double[mat];

for(int i=0;i<mat;i++){

cout<<"Calificacion de la materia "<<i+1<<": ";

cin>>cal[i]; }}

void imprimir_datos(){

cout<<"\n\nDATOS DEL ESTUDIANTE---"<<endl;

imprimir_datoss();

cout<<"Calificaciones: ";

for(int i=0;i<mat;i++){

cout<<cal[i]<<",";

prom+=cal[i]; }

prom/=mat;

cout<<"\nPromedio: "<<prom;}

friend class Salon; }*pt_Alumno;

class Salon{

private:

int numest;

public:

Salon(){numest=0;}

void Leer(){

Page 2: Instituto Poltecnico Nacional

cout<<"Cuantos alumnos quieres ingresar: ";

cin>>numest;

pt_Alumno=new Estudiante[numest];

for(int i=0;i<numest;i++){

cout<<"\n\nDatos del Alumno "<<i+1<<endl;

pt_Alumno[i].leer_datos();

pt_Alumno[i].leer_datoss();

}} void Imprimir(){

for(int i=0;i<numest;i++){

pt_Alumno[i].imprimir_datos();}}};

int main() {

Salon S1;

S1.Leer();

S1.Imprimir();

getch();

return 0;}

Ejercicio 3

#include <iostream>

#include <conio.h>

using namespace std;

class Computadora{

protected:

int memoria,discoduro,tamanomonitor;

double precio;

public:

PC (){}

void leer_datos(){

cout<<"Memoria: "<<endl;

cin>>memoria;

cout<<"Disco Duro: "<<endl;

cin>>discoduro;

cout<<"Tamanio Monitor: "<<endl;

cin>>tamanomonitor;

cout<<"Precio: "<<endl;

cin>>precio;}

void imprimir_datoss(){

cout<<"Memoria: "<<memoria<<endl;

cout<<"Disco Duro: "<<discoduro<<endl;

cout<<"Tamanio Monitor: "<<tamanomonitor<<endl;

cout<<"Precio: "<<precio<<endl;}};

class Cliente:public PC{

private:

char nombre[30],RFC[11];

public:

Cliente():PC(){}

void leer_datoss(){

cin.ignore();

cout<<"Nombre: "<<endl;

cin>>nombre;

cout<<"RFC: "<<endl;

cin>>rfc;

leer_datos();}

void imprimir_datos(){

imprimir_datoss();}

friend class Negocio;

}*pt_Cliente;

class Negocio{

private:

int num;

double ventas;

public:

Negocio(){num=0;}

void Leer(){

cout<<" Clientes a ingresar: ";

cin>>num;

pt_Cliente=new Cliente[num];

cout<<"\n\nIngresa Datos:"<<endl;

for(int i=0;i<num;i++){

cout<<"\nCliente "<<i+1<<endl;

pt_Cliente[i].leer_datoss();}}

void Imprimir(){

cout<<"\n\nImpresion negocio:"<<endl;

for(int i=0;i<num;i++){

cout<<"\nCliente: "<<i+1<<endl;

pt_Cliente[i].imprimir_datos();

ventas+=pt_Cliente[i].precio;}

cout<<"\n\nVenta total: "<<ventas<<endl;}};

int main() {

Negocio C1;

C1.Leer();

C1.Imprimir();

getch();

return 0;}

Ejercicio 5

#include <iostream>

#include <conio.h>

Page 3: Instituto Poltecnico Nacional

#include <string.h>

using namespace std;

class CadenaCar{

private:

int Tam;

char Cadena[30];

public:

CadenaCar(){

Tam=0;

cout<<"Introduce cadena: ";

cin>>Cadena;}

int operator ==(CadenaCar Cad){

for(int i=0; Cadena[i]==Cad.Cadena[i];i++)

if(Cadena[i]==NULL && Cad.Cadena[i]==NULL)

return (1);

return (0);}

int operator !=(CadenaCar Cad){

for(int i=0; Cadena[i]!=Cad.Cadena[i];i++)

if(Cadena[i]==NULL && Cad.Cadena[i]==NULL)

return (1);

return (0);}

int operator <(CadenaCar Cad);

int operator >(CadenaCar Cad);

CadenaCar operator +(CadenaCar Cad);

void imprime();};

int main(){

CadenaCar Cade1,Cade2;

if(Cade1==Cade2){

cout<<"Son iguales"<<endl;}

if(Cade1!=Cade2){

cout<<"Son diferentes"<<endl;}

getch();

return 0;}

Ejercicio 6

#include<iostream>

#include<conio.h>

#include<string.h>

using namespace std;

class fruta{

protected:

public:

char nombrefruta[30];

char color[10];

fruta(char nombrefruta,char color){}

int operator == (fruta f);

friend istream & operator >> (istream &lee,fruta &f);

friend ostream & operator >> (ostream &ver,fruta &f);

int fruta::operator == (fruta f){

if(strcmp(nombrefruta,f.nombrefruta)==0 && strcmp(color,f.color)==0)

{return 1; }}istream &operator >> (istream &lee,fruta &f){

cout<<"Introduce el nombre de la fruta"<<endl;

lee>>f.nombrefruta;

cout<<"Introduce el color de la fruta"<<endl;

lee>>f.color;

return lee; }

ostream &operator<<(ostream &ver,fruta &f){

ver<<"Fruta:"<<f.nombrefruta<<"\tColor:"<<f.color<<endl;

return ver;}};

int main() {

fruta fruta1,fruta2;

cin>>fruta1;

cin>>fruta2;

cout<<"FRUTA 1"<<endl;

cout<<fruta1;

cout<<"FRUTA 2"<<endl;

cout<<fruta2;

if (fruta1==fruta2) { cout<<"Son iguales"<<endl; }

else

cout<<"Son diferentes"<<endl;

getch(); return 0; }

Ejercicio 7

#include<iostream>

#include<conio.h>

using namespace std;

template<class f,class i>//se declara la plantilla o en ingles template capaz de calcular el maximo de dos valores de cualquier tipo

void muestraArray(f *array,i cont)//muestra los valores del array, que es una matriz o un vector de almacenamiento continuo para evitar sobrecarga de funciones

{ int j;//se declara la variable j

for(j=0;j<cont; j++)//ciclo for

cout<<array[j]<<",";//imprime la matriz o vector de almacenamiento continuio del mimsmo tipo

cout<<endl;//fin de linea}

int main()

{ float precios[]={1.1,2.2,3.3,4.4};//Se declaran los precios y se imprimen en la pantalla

int pag[]={10,20,30,40,50,60,70};//se declaran los pagos y se imprimen en la pantalla

Page 4: Instituto Poltecnico Nacional

muestraArray(precios,4);//se manda a llamar a la funcion en conjunto a los precios

muestraArray(pag,7);//se manda a llamar a la funcion en conjunto a pag

getch();

return 0;}

Ejercicio 8

#include<iostream>

#include<conio.h>

using namespace std;

template<class s>//se crea un template o plantilla para evitar sobrecarga de funciones

s suma(s x, s y)//se declaran las variables que se usaran para suma{

return (x+y);//regresa el valor de las variables arriba asignadas}

int main()

{ cout<<suma(10,2)<<endl;//se hace la suma que da como salida un 12

cout<<suma(1.0,2.3434)<<endl;//nuevamente se hace la suma de los tres numeros asignados y se imprimen en pantalla

getch();

return 0;}

Ejercicio 9

#include <iostream>

#include <conio.h>

using namespace std;

template <class t>

class materia{

private:

t*ap_num;

int calificaciones;

public:

materia()//costructo {

cout<<"introduce el numero de materias"<<endl;

cin>>calificaciones;

ap_num=new t [calificaciones]; }

friend istream & operator >> ( istream & leer, materia & M) { cout<<"introduce datos"<<endl;

for(int i=0;i<M.calificaciones;i++){

leer>>M.ap_num[i]; }}

friend ostream & operator<<(ostream & ver, materia & M){

cout<<"desplegando datos del arreglo"<<endl;

for(int i=0;i<M.calificaciones;i++) {

cout<<"Elemento["<<i<<"]=";

ver<<M.ap_num[i];

cout<<endl;}}};

void usoplantilla(){

materia <int> obj1;

cout<<"plantilla int"<<endl;

cin>>obj1;//uso de la sobrecarga operador(>>)

cout<<obj1;//uso de la sobrecargta operador(<<)

cout<<"plantilla char"<<endl;

materia<char>obj2;

cin>>obj2;

cout<<obj2;

getch();}

int main(){

usoplantilla();

return 0;}

Ejercicio 10

#include <iostream>

using namespace std;

class poligono {

protected:

float lado, altura;

public:

void set_dim(double i, double j=0) {

lado = i;

altura = j;

}

virtual void imprimir_poligono() {}};

class triangulo : public poligono {

public:

void imprimir_poligono() {

cout << "Area del triangulo ";

cout << lado * 0.5 * altura << ".\n"; }};

class rectangulo : public poligono {

public:

void imprimir_poligono() {

cout << "Area del rectangulo ";

cout << lado * altura << ".\n"; };};

class cuadrado : public poligono {

public:

void imprimir_poligono() {

cout << "Area del cuadrado ";

cout << lado * lado }};

int main(){

poligono *p; // crear un puntero al tipo base

triangulo t; // crear objetos de tipos derivada

rectangulo r;

Page 5: Instituto Poltecnico Nacional

cuadrado c;

p = &t;

p->set_dim(10.0, 5.0);

p->imprimir_poligono();

p = &r;

p->set_dim(10.0, 5.0);

p->imprimir_poligono();

p = &c;

p->set_dim(9.0);

p->imprimir_poligono();

cout<<endl;

system ("PAUSE");

return 0;}

Cuestionario

¿Qué es herencia? Tipos de herencia.

Es la característica de la Programación orientada a objetos en la que comparte atributos y métodos de una clase base (padre, subclase).

En la cual se divide en:

Herencia simple: permite heredar atributos y métodos de una clase hacia una o más derivadas.

Herencia múltiple: Si tiene más de una clase base que heredan a una clase derivada.

Herencia de niveles múltiples: De una clase derivada se puede heredar otra subclase.

¿Qué es una función amiga?

Es una funciones ajenas a una clase que puede tener acceso a los miembros protegidos como privados de estas.

¿Qué es una clase amiga?

Es una función que te permite acceder a los atributos y métodos de otra clase sin la necesidad de usar herenia.

¿Qué es sobrecarga de operadores y sobrecarga de funciones?

La sobrecarga de operadores es el proceso en donde se asigna uno o más de un operador y Sobrecarga de funciones es la que nos permite escribir y utilizar múltiples funciones con el mismo nombre, pero con diferente lista de argumentos.

¿Por qué surge la necesidad de sobrecargar un operador o una función?

Para que sean llamadas según el contexto en que se utilice y no modificar mucho el código. Lo que nos facilita manejar diferentes tipos de datos ayudando a reytilizar coodigo

¿Qué es un Template? (Tipos)

Es el que nos permite parametrizar estas clases para la adaptación de cualquier tipo de dato.

Ejemplos stl, esta biblioteca incluye un juego de contenedores genericos

¿Qué es polimorfismo?

El la acción que nos permite mejorar la organización del código y su legibilidad así como la creación de programas.

¿Qué es una función virtual?

Función con el comportamiento virtual, es determinado por la definición de una función con la misma cabecera en alguna de sus subclases