La plataforma de Yahoo Respuestas cerrará definitivamente el próximo 4 de mayo de 2021 y solo estará disponible en modo de lectura. Ningún otro producto de Yahoo ni tu cuenta personal se verán afectados por este cambio. Si necesitas más información sobre el cierre de Yahoo Respuestas y cómo descargar tus datos puedes acceder a esta página de ayuda.

?
Lv 5
? preguntado en Computadoras e internetDiseño y Programación · hace 1 década

¿Una ayuda con un ejercicio C++?

El ejercicio es que se tiene una matriz1, esta se debe llenar con números aleatorios entre 0 y 1.

En otra matriz del mismo tamaño de la primera matriz, se debe comparar la respectiva casilla de la matriz uno, si es mayor a 0.5 se debe poner que es 1, si no 0; esta es una implementación manual de las funciones techo y piso de la librería math.h. Entonces el ejercicio es hacer esta implementacion manual (usando funciones) y hacer una utilizando las funciones de la libreria. el usuario puede escoger si usa la implementación manual o la de la librería por medio de un menú.

Le agradezco si me ayudan a hacerlo o en su defecto me dicen cómo puedo hacerlo.

Gracias

3 respuestas

Calificación
  • Anónimo
    hace 1 década
    Respuesta preferida

    /*

    Espero poder ayudarte...Cualquier duda hazmela saber.

    (Este es un ejemplo)

    crear_matriz=Genera una matriz bidimencional fil x col

    llenar_matriz=Inicializa la matriz con valores de 0-1

    manual_matriz=LLena una matrizfinal dependiendo de

    los elementos de la matrizinicial y las condiciones

    que se requiere.(si >0.5 --->1 caso contrario 0)

    *-Todo de manera manual-*

    libre_matriz=LLena una matrizfinal dependiendo de

    los elementos de la matrizinicial y las condiciones

    que se requiere.(si >0.5 --->1 caso contrario 0)

    *-Usando ceil y floor-*

    mostrar_matriz=Muestra en pantalla una matriz

    remover_matriz=Remueve la memoria asignada a una matriz

    RAND_MAX=32767

    */

    #include <conio.h>

    #include <stdlib.h>

    #include <stdio.h>

    #include <math.h>

    void crear_matriz(float **&matriz,int fil,int col)

    {

    //Crea la matriz que deseas filas x columnas

    //y al mismo tiempo reserva memoria

    matriz=new float*[fil];

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

    matriz[i]=new float[col];

    }

    void llenar_matriz(float **matriz,int fil,int col)

    {

    srand(time(NULL));

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

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

    matriz[i][j]=1.0*rand()/RAND_MAX;

    //Lo multiplique * 1.0 par que se convierta en

    //float ya que rand() genera enteros.

    }

    void manual_matriz(float **matriz2,float **matriz1,int fil,int col)

    {

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

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

    {

    if(matriz1[i][j]>=0.5)

    matriz2[i][j]=1;

    else

    matriz2[i][j]=0;

    }

    }

    void libre_matriz(float **matriz2,float **matriz1,int fil,int col)

    {

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

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

    {

    if(matriz1[i][j]>=0.5)

    matriz2[i][j]=ceil(matriz1[i][j]);

    else

    matriz2[i][j]=floor(matriz1[i][j]);

    }

    }

    void mostrar_matriz(float **matriz,int fil,int col)

    {

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

    {

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

    printf("\t %.2f",matriz[i][j]);

    printf("\n");

    }

    }

    void remover_matriz(float **&matriz,int fil)

    {

    //Libera la memoria ocupada por la matriz

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

    delete []matriz[i];

    delete []matriz;

    matriz=0;

    }

    void main(){

    float **matriz1=0,**matriz2=0;

    int fil,col,opcion;

    printf("\tFilas de la matriz:");scanf("%d",&fil);

    printf("\tColumnas de la matriz:");scanf("%d",&col);

    crear_matriz(matriz1,fil,col);

    crear_matriz(matriz2,fil,col);

    llenar_matriz(matriz1,fil,col);

    printf("\n\n\t\t Menu\n\n");

    printf("\t 1.Implementacion manual\n");

    printf("\t 2.Implementacion de libreria\n");

    printf("\t Elija opcion:");scanf("%d",&opcion);

    if(opcion==1)

    manual_matriz(matriz2,matriz1,fil,col);

    else if(opcion==2)

    libre_matriz(matriz2,matriz1,fil,col);

    else

    printf("Opcion incorrecta!");

    if(opcion==1||opcion==2)

    {

    printf("\n\n\tMatriz Inicial\n\n");

    mostrar_matriz(matriz1,fil,col);

    printf("\n\tMatriz Final\n\n");

    mostrar_matriz(matriz2,fil,col);

    }

    remover_matriz(matriz1,fil);

    remover_matriz(matriz2,fil);

    getch();

    }

  • oser
    Lv 4
    hace 4 años

    Esta facil!!!! a million. #include79abd8cf35895c56cc4d955c5355dbe #incorporate<conio.h> utilising namespace std; int considerable(){ int a,b,r; char operador; cout << "Digite el primer numero" << endl; cin >> a; cout << "Digite un operador" << endl; cin >> operador if (operador='+'||operador='-'||operador='*... cout << "Digite un segundo numero" << endl; cin >> b; if(operador='+'){ r = a+b; }else if(operador='-'){ r = a-b; }else if(operador='*'){ r = a*b; }else if (a=0 && b=0){ cout << "indeterminacion" << endl; }else if (a<0 && b=0) { cout << "la respuesta es menos infinito" << endl; }else if (a>0 && b=0){ cout << "la respuesta es mas infinito" << endl; }else{ r= a/b; } }else{ cout << "la operacion no es valida" << endl; } cout << "la respuesta es:" << r << endl; getch(); return =; } EL OTRO YA ME DIO PEREZA HACERLO xd

  • hace 1 década

    include <iostream.h>

    #include <stdlib.h>

    #include <conio.h>

    void main(){

    int mat1[2][2];

    int mat2[2][2];

    int x;

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

    {

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

    {

    x=rand () % 2; //hace random entre 0 y 1

    mat1[i][j]=x;

    if(mat1[i][j] > 0.5)

    mat2[i][j]=1;

    else

    mat2[i][j]=0;

    }

    }

    cprintf("listo !!");

    getche();

    }

    lo entendi asi si te sirve me visas si no tambien :D

¿Aún tienes preguntas? Pregunta ahora para obtener respuestas.