problema 1 de la semana 6

23
// problema 1 de la semana 6.cpp: define el punto de entrada de la aplicación de consola. /* problema 1 considere un vector de enteros de tamaño 30 y realise lo siguiente. a. genere numeros aleatorios de tres ccifras y guardolos en todo el vector. inmediatamente muestre su contenido. b. muestre y cuente solo numeros capicuas que se encuentren en el vector c. muestre y cuente los numeros primo que se encuentren en el vector d. determine y muestre el promedio, la desviacion estandar y la varianza. e. ordene el arreglo en forma ascendente y muestre su contenido AUTOR:RAMOS LAZARO ARTURO SECCION:D */ #include "stdafx.h" #include <iostream> #include <conio.h> #include <time.h> using namespace std; //prototipos int menu(); void opcion1(); void opcion2(); void opcion3(); void opcion4(); void opcion5(); void llena(); void lista(); int capicuas(int n); int primos(int n); void estadistica(); double promedio(); double dvs(); double varianza(); int aleatorio(int min, int max); void ordenar(int v[],int n); #define TAM 30 int a[TAM]; void main(){

Upload: artmlpyv1

Post on 04-Jan-2016

2 views

Category:

Documents


1 download

DESCRIPTION

programacion

TRANSCRIPT

Page 1: Problema 1 de La Semana 6

// problema 1 de la semana 6.cpp: define el punto de entrada de la aplicación de consola./*problema 1considere un vector de enteros de tamaño 30 y realise lo siguiente.a. genere numeros aleatorios de tres ccifras y guardolos en todo el vector. inmediatamente muestre su contenido.b. muestre y cuente solo numeros capicuas que se encuentren en el vectorc. muestre y cuente los numeros primo que se encuentren en el vectord. determine y muestre el promedio, la desviacion estandar y la varianza.e. ordene el arreglo en forma ascendente y muestre su contenido

AUTOR:RAMOS LAZARO ARTUROSECCION:D*/

#include "stdafx.h"#include <iostream>#include <conio.h>#include <time.h>

using namespace std;

//prototiposint menu();void opcion1();void opcion2();void opcion3();void opcion4();void opcion5();

void llena();void lista();int capicuas(int n);int primos(int n);void estadistica();double promedio();double dvs();double varianza();int aleatorio(int min, int max);void ordenar(int v[],int n);

#define TAM 30int a[TAM];

void main(){int op;do{

op=menu();switch(op){case 1: opcion1();break;case 2: opcion2();break;case 3: opcion3();break;case 4: opcion4();break;

Page 2: Problema 1 de La Semana 6

case 5: opcion5();break;

}

}while(op!=0);

}

int menu(){int op;cout<<"MENU DE OPCIONES "<<endl;cout<<"[1]genera"<<endl;cout<<"[2]capicua"<<endl;cout<<"[3]primos"<<endl;cout<<"[4]estadistica"<<endl;cout<<"[5]orden ascendente"<<endl;cout<<"INGRESE SU OPCION :"<<endl;cin>>op;return op;

}void opcion1(){

llena();lista();

}void opcion2(){

int c=0;cout<<"numeros capicuas que estan en el vector"<<endl;for(int i=0;i<TAM;i++){

if(capicuas(a[i])==1){c++;printf("%5d%10d\n",c,a[i]);

}

}printf("hay %d capicuas\n\n",c);lista();

}void opcion3(){

int c=0;cout<<"numeros primos que estan en el vector"<<endl;for(int i=0;i<TAM;i++){

if(primos(a[i])==1){c++;printf("%5d%10d\n",i,a[i]);

}}printf("hay %d primos\n\n",c);lista();

}void opcion4(){

estadistica();lista();

}void opcion5(){

cout<<"ordena en forma ascendente"<<endl;ordenar(a,TAM);lista();

}

Page 3: Problema 1 de La Semana 6

void llena(){srand(int(time(NULL)));for(int i=0;i<TAM;i++)

a[i]=aleatorio(100,999);}void lista(){

for(int i=0;i<TAM;i++)printf("%5d%10d\n",i,a[i]);

}int capicuas(int n){

if(n/100==n%10)return 1;

elsereturn 0;

}int primos(int n){

int c=0;for(int i=1;i<=n;i++){

if(n%i==0)c++;

}if (c==2)

return 1;else

return 0;}void estadistica(){

cout<<"promedio= "<<promedio()<<endl;cout<<"desviacion estandar= "<<dvs()<<endl;cout<<"varianza= "<<varianza()<<endl;

}double promedio(){

double s=0;for(int i=0;i<TAM;i++)

s+=a[i];return s/TAM;

}double dvs(){

return sqrt(varianza());}double varianza(){

double p=promedio(),suma=0;for(int i=0;i<TAM;i++)

suma+=pow(a[i]-p,2);return suma/TAM;

}int aleatorio(int min, int max){

return(int)(rand()%(max-min)+min);}void ordenar(int v[],int n){

for(int i=0;i<n-1;i++){for(int j=i+1;j<n;j++){

if(v[i]>v[j]){int aux=v[i];

v[i]=v[j];v[j]=aux;}

Page 4: Problema 1 de La Semana 6

}

}}

*PROBLEMA 2AUTOR :Juan Carlos Romero Gaspar SECCION:E*/

void opcion7(){// ordena columnasint aux[COLUM];for(int i=0; i<FILAS; i++){// pasa toda la fila al auxfor(int j=0; j<COLUM; j++)aux[j]=m[j][i];// aux se manda ordenarordena(aux,COLUM);// regresa de aux a la matrizfor(int j=0; j<COLUM; j++)m[j][j]=aux[j];}lista();}

problema 5autor:Ampuero Caro Mirna Dolores

void opcion5(){double prom [COLUM];for (int j=0;j<COLUM;j++)prom[j] =promedio1 (j);

Page 5: Problema 1 de La Semana 6

//llamando matriz lista();

cout<<endl;for (int j=0;j<filas;j++)//llamando resultadoprintf("%5.1f",prom[j]);cout<<endl;

}

/* Propuesto 2Autor: Evangelsita Busso carlos albertoSeccion E*/

# include  "stdafx.h"

#include <stdio.h>#include <conio.h>#include <iostream>#include<time.h>using namespace std;int opcion,sigue,continuar;int z=0,c1,c2,n1,n2,d[10];int cifras1[30];int i;void leer();void cifras();void veces();void salida();void main(){do{leer();cifras();veces();salida();do{cout<<"Desea continuar? <1=si o 0=no>"<<endl;cin>>continuar;}

Page 6: Problema 1 de La Semana 6

while(!(continuar<=1 && continuar>=0));}while(continuar==1);

}void leer(){ //Ingresamos los datoscout<<"Ingrese el numero 1"<<endl;cin>>n1;cout<<"Ingrese el numero 2"<<endl;cin>>n2;n1=abs(n1);n2=abs(n2);

}void cifras(){do{ sigue=1;i=0,z=0;do //Guardamos en el arreglo cifras1[i] las cifras del primer numero{c1=(n1-(int (n1/10))*10);n1=int (n1/10);cifras1[i]=c1;i=i++;z=z+1;}while(n1!=0);do //Guardamos en el arreglo cifras1[i] las cifras del segundo numero despues de las cifras del primer numero(no reiniciamos el valor i del anterior procedimiento) {c2=(n2-(int (n2/10))*10);n2=int (n2/10);cifras1[i]=c2;i=i+1;z=z+1;}while(n2!=0);if(n2==0)sigue=0;}while(!(sigue==0));}void veces(){i=0;opcion=0;for(int x=0;x<10;x++) // Iniciamos el contador d[x] para el numero de veces que se repite cada cifra{d[x]=0;}for(i=0;i<z;i++) // Contamos las veces que se repite cada cifra y lo guardamos en d[x]

Page 7: Problema 1 de La Semana 6

{opcion=cifras1[i];d[opcion]=d[opcion]+1; }}void salida(){for(int x=0;x<10;x++)// solo impimimos los numeros que se encuentran en n1 y n2{if(d[x]>0){cout<<x<<": ";for(int w=0;w<d[x];w++)// Imprimimos tantos asteriscos como veces que se repite cada cifra {cout<<"*";}cout<<endl;}}}

Convertir de vector a matrizAutor: Sanchez Escate Zaid */

void opcion6(){cout<<"Matriz de 6 x 5"<<endl;for (int i=0, aux=0; i<6; i++, aux+=5){for (int j=0; j<5 ; j++){m6x5[i][j]=a[j+aux];

}}impresion();}

void impresion(){for (int i=0; i<6; i++){for (int j=0; j<5 ; j++){cout<<"\t"<<m6x5[i][j];}cout<<endl;

Page 8: Problema 1 de La Semana 6

}}

PROBLEMA 2

AUTOR :Julio VasquezSECCION:D*/

# include  "stdafx.h"

#include <iostream>#include <time.h>using namespace std;

// prototiposint menu();void opcion1();void opcion2();void opcion3();void opcion4();void opcion5();void opcion6();

void llena();void lista();void ordena(int v[], int n);int aleatorio(int min, int max);int mayorValor();double promedio(int i);

// matriz de tamaño 10 filas, 10 columnas# define  FILAS 10 // define filas

#define COLUM 10 // define columnasint m[FILAS][COLUM]; // declara matriz

void main(){int op;do{op=menu();switch(op){case 1: opcion1(); break;case 2: opcion2(); break;case 3: opcion3(); break;

Page 9: Problema 1 de La Semana 6

case 4: opcion4(); break;case 5: opcion5(); break;case 6: opcion6(); break;}}while(op!=0); }// desarrollo de prototiposint menu(){int opcion;cout<<"MENU DE OPCIONES"<<endl;cout<<"[1] genera"<<endl;cout<<"[2] lista"<<endl;cout<<"[3] mayor valor"<<endl;cout<<"[4] promedio por fila"<<endl;cout<<"[5] promedio por columna"<<endl;cout<<"[6] ordena filas"<<endl;cout<<"[7] ordena columnas"<<endl;cout<<"[0] fin"<<endl;cout<<"INGRESE SU OPCION: "<<endl;cin>>opcion;return opcion;}void opcion1(){llena();lista();}void opcion2(){lista();}void opcion3(){cout<<"MAYOR VALOR"<<endl;for(int i=0; i<FILAS; i++){for(int j=0; j<COLUM; j++)if(m[i][j] == mayorValor())printf("(%d,%d)%5d\n",i,j,m[i][j]); }}void opcion4(){double prom[FILAS];for(int i=0; i<FILAS; i++)prom[i] = promedio(i);

// muestra matriz + promediocout<<"CONTENIDO DE LA MATRIZ CON PROMEDIO"<<endl;for(int i=0; i<FILAS; i++){

Page 10: Problema 1 de La Semana 6

for(int j=0; j<COLUM; j++)printf("%5d",m[i][j]);printf("%5.1f\n",prom[i]);}

}void opcion5(){

}

void llena(){srand(time(NULL));for(int i=0; i<FILAS; i++)for(int j=0; j<COLUM; j++)m[i][j] = aleatorio(10,99);}void lista(){cout<<"CONTENIDO DE LA MATRIZ"<<endl;for(int i=0; i<FILAS; i++){for(int j=0; j<COLUM; j++)printf("%5d",m[i][j]);cout<<endl;}}

void ordena(int v[], int n){for(int i=0; i<n-1; i++)for(int j=i+1; j<n; j++){if(v[i] > v[j]){// intercambio de datosint aux=v[i];v[i] = v[j];v[j] = aux;}}}int aleatorio(int min, int max){return (int)(rand()%(max-min+1)+min);}int mayorValor(){// supuesto falsoint mayor=10; for(int i=0; i<FILAS; i++)for(int j=0; j<COLUM; j++)if(m[i][j] > mayor)mayor = m[i][j];

Page 11: Problema 1 de La Semana 6

return mayor;}

double promedio(int i){double suma=0;for(int j=0; j < COLUM; j++)suma += m[i][j];

return suma/COLUM;}

void opcion6(){// ordena filasint aux[COLUM];for(int i=0; i<FILAS; i++){// pasa toda la fila al auxfor(int j=0; j<COLUM; j++)aux[j]=m[i][j];// aux se manda ordenarordena(aux,COLUM);// regresa de aux a la matrizfor(int j=0; j<COLUM; j++)m[i][j]=aux[j];}lista();}

/*

PROBLEMA UNICO:

Considere una matriz de 10x6 para números enteros y a través de un menú desarrolle y ejecute las siguientes opciones:

[1] Generar: genere números enteros aleatorios de 3 cifras, guárdelos en la matríz e inmediatamente muestre su contenido en forma de tabla.

[2] Intercambia columnas: ingresa los números de columna que se quiere intercambiar y luego de intercambiar dichas columnas muestra el nuevo contenido de la matriz en forma de tabla.

[3] Menor de fila: Ingresa el número de fila y encuentra y muestra el menor valor encontrado en dicha fila de la matríz.

Page 12: Problema 1 de La Semana 6

[0] Fin

*/

#include "stdafx.h"

#include <iostream>

#include <conio.h>

#include <time.h>

using namespace std;

//prototipos

int matriz[10][6];

int menu();

int aleatorio(int n, int m);

void opcion1();

void opcion2();

void opcion3();

void generar();

void mostrartabla();

//funcion principal

void main(){

int op;

do{

op = menu();

switch (op) {

case 1: opcion1(); break;

case 2: opcion2(); break;

Page 13: Problema 1 de La Semana 6

case 3: opcion3(); break;

}

} while (op != 0);

}

//desarrollo de parametros

int menu(){

int m;

cout << "[1] Gemerar" << endl;

cout << "[2] Intercambia Columnas" << endl;

cout << "[3] Menor fila" << endl;

cout << "[0] Terminar" << endl;

cout << "OPCION: "; cin >> m;

return m;

}

void opcion1(){

generar();

mostrartabla();

}

int aleatorio(int n, int m){

return(int)(rand() % (m - n + 1) + n);

}

void generar(){

srand(time(NULL));

for (int i = 0; i < 10;i++)

for (int j = 0; j < 6; j++)

Page 14: Problema 1 de La Semana 6

matriz[i][j] = aleatorio(100, 999);

}

void mostrartabla(){

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

for (int j = 0; j < 6; j++){

printf("%4d\t", matriz[i][j]);

}

cout << "\n";

}

}

void opcion2(){

}

int p, q;

cout << "indique que columna quiere cambiar"; cin >> p;

void opcion3(){

}

Page 15: Problema 1 de La Semana 6

SEGUNDA PARTE

/*Diseñe una clase de nombre Punto que tenga como atributo sus coordenadas en el plano, lafuncionalidad básica y un método/función adicional que calcule la distancia al centro del origen.

*/#include "stdafx.h"#include <iostream>#include <conio.h>

using namespace std;

class Punto{//atributosprivate:

double x,y;

public://funcionalidad basica

double getX(){return x;}void setX(double nx){x=nx;}double getY(){return y;}void setY(double ny){y=ny;}

//funcionalidad adicionaldouble distancia(){return sqrt(pow(x,2)+pow(y,2));}

};

//en la funcion principal declare objetos para utilizar la funcionalidad

void main(){//declarando objetoPunto p;//leer datosdouble x,y;cout<<"ingrese valor de x: ";cin>>x;cout<<"ingrese valor de y: ";cin>>y;

//coloca valores leidos, en el objetop.setX(x);p.setY(y);

//muestra informacion del objeto

cout<<"X="<<p.getX()<<endl;cout<<"Y="<<p.getY()<<endl;

Page 16: Problema 1 de La Semana 6

cout<<"distancia="<<p.distancia()<<endl;

_gettch();

}

/*Diseñe una clase de nombre Punto que tenga como atributo sus coordenadas en el plano, lafuncionalidad básica y un método/función adicional que calcule la distancia al centro del origen..-Considere una función para leer los datos y otra función para mostrar lainformación dentro de la clase y reescriba la función principal.

*/#include "stdafx.h"#include <iostream>#include <conio.h>

using namespace std;

class Punto{//atributosprivate:

double x,y;

public://funcionalidad basica

double getX(){return x;}void setX(double nx){x=nx;}double getY(){return y;}void setY(double ny){y=ny;}

//funcionalidad adicionaldouble distancia(){return sqrt(pow(x,2)+pow(y,2));}void lee(){

cout<<"ingrese valor de x: ";cin>>x;cout<<"ingrese valor de y: ";cin>>y;}void imprime(){cout<<"X="<<getX()<<endl;cout<<"Y="<<getY()<<endl;cout<<"distancia="<<distancia()<<endl;}

};

//en la funcion principal declare objetos para utilizar la funcionalidad

void main(){

Punto p;

p.lee();p.imprime();

Page 17: Problema 1 de La Semana 6

//sumar un numero cual quierap.setX(p.getX()+2);p.setY(p.getY()+2);

p.imprime();_gettch();

}

/*Diseñe una clase de nombre Punto que tenga como atributo sus coordenadas en el plano, lafuncionalidad básica y un método/función adicional que calcule la distancia al centro del origen.-.Declare un arreglo de objetos de tamaño 10, ingrese los datos y muestre suscoordenadas y su distancia en forma de tabla

*/#include "stdafx.h"#include <iostream>#include <conio.h>

using namespace std;

class Punto{//atributosprivate:

double x,y;

public://funcionalidad basica

double getX(){return x;}void setX(double nx){x=nx;}double getY(){return y;}void setY(double ny){y=ny;}

//funcionalidad adicionaldouble distancia(){return sqrt(pow(x,2)+pow(y,2));}void lee(){

cout<<"ingrese valor de x: ";cin>>x;cout<<"ingrese valor de y: ";cin>>y;}void imprime(){printf("%6.1f%6.1f%10.1f\n",getX(),getY(),distancia());

}

};

//en la funcion principal declare objetos para utilizar la funcionalidad

void main(){

Page 18: Problema 1 de La Semana 6

Punto p[10];

for(int i=0;i<3;i++)p[i].lee();

cout<<endl;printf("%6s%6s%10s%\n","X","Y","distancia");for(int i=0;i<3;i++)

p[i].imprime();

_gettch();

}

/*Diseñe una clase de nombre Punto que tenga como atributo sus coordenadas en el plano, lafuncionalidad básica y un método/función adicional que calcule la distancia al centro del origen.-.Determine el valor de la mayor y menor distancia.

*/#include "stdafx.h"#include <iostream>#include <conio.h>

using namespace std;

class Punto{//atributosprivate:

double x,y;

public://funcionalidad basica

double getX(){return x;}void setX(double nx){x=nx;}double getY(){return y;}void setY(double ny){y=ny;}

//funcionalidad adicionaldouble distancia(){return sqrt(pow(x,2)+pow(y,2));}void lee(){

cout<<"ingrese valor de x: ";cin>>x;cout<<"ingrese valor de y: ";cin>>y;}void imprime(){printf("%6.1f%6.1f%10.1f\n",getX(),getY(),distancia());

}

};

Page 19: Problema 1 de La Semana 6

void main(){

Punto p[10];

for(int i=0;i<3;i++)p[i].lee();

cout<<endl;printf("%6s%6s%10s%\n","X","Y","distancia");for(int i=0;i<3;i++)

p[i].imprime();double mayor=p[0].distancia(),menor=p[0].distancia();for(int i=0;i<3;i++){if(p[i].distancia()>mayor)

mayor=p[i].distancia();if(p[i].distancia()<menor)

menor=p[i].distancia();}

printf("%6s%10.1f\n","la mayor distancia",mayor);printf("%6s%10.1f\n","la menor distancia",menor);

_gettch();

}

/*Diseñe una clase de nombre Punto que tenga como atributo sus coordenadas en el plano, lafuncionalidad básica y un método/función adicional que calcule la distancia al centro del origen.-.Aplique herencia y cree una nueva clase de nombre Punto3D que herede a la clasePunto. Considere como nuevo atributo a la coordenada z.

*/#include "stdafx.h"#include <iostream>#include <conio.h>

using namespace std;

class Punto{//atributosprivate:

double x,y;

public://funcionalidad basica

double getX(){return x;}

Page 20: Problema 1 de La Semana 6

void setX(double nx){x=nx;}double getY(){return y;}void setY(double ny){y=ny;}

//funcionalidad adicionaldouble distancia(){return sqrt(pow(x,2)+pow(y,2));}void lee(){

cout<<"ingrese valor de x: ";cin>>x;cout<<"ingrese valor de y: ";cin>>y;}void imprime(){printf("%6.1f%6.1f%10.1f\n",getX(),getY(),distancia());

}};

class Punto3D:public Punto{

//atributosprivate:

double z;

public://funcionalidad basica

double getZ(){return z;}void setZ(double nz){z=nz;}

//funcionalidad adicionaldouble distancia(){return sqrt(pow(getX(),2)+pow(getY(),2)+pow(z,2));}

void leer();void imprimet();

};

void Punto3D::leer(){Punto::lee();cout<<"ingrese valor de z: ";cin>>z;

};

void Punto3D::imprimet(){

printf("%6.1f%6.1f%6.1f%10.1f\n",getX(),getY(),getZ(),distancia());

};

void main(){

Punto3D p[10];

for(int i=0;i<3;i++)

Page 21: Problema 1 de La Semana 6

p[i].leer();cout<<endl;printf("%6s%6s%6s%10s%\n","X","Y","Z","distancia");for(int i=0;i<3;i++)

p[i].imprimet();double mayor=p[0].distancia(),menor=p[0].distancia();for(int i=0;i<3;i++){if(p[i].distancia()>mayor)

mayor=p[i].distancia();if(p[i].distancia()<menor)

menor=p[i].distancia();}

printf("%6s%10.1f\n","la mayor distancia",mayor);printf("%6s%10.1f\n","la menor distancia",menor);

_gettch();

}