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.
¿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
- Anónimohace 1 décadaRespuesta 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();
}
- oserLv 4hace 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