elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ayuda con un programa de c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda con un programa de c++  (Leído 1,726 veces)
max9100

Desconectado Desconectado

Mensajes: 14


Ver Perfil
ayuda con un programa de c++
« en: 4 Abril 2014, 12:39 pm »

bueno me dijeron que trabajara en el codigo ok trabaje jeje pero no me salio como me lo piden creo tengo una menera no rustica de programar  esto es lo que me piden
Realizar un programa que suma de manera recursiva los elementos de una matriz de 2 columnas y 2 filas. El algoritmo debe tener los siguientes elementos:
1. Declaración de dos valores constantes enteras Fila y Columna
2. Una función recursiva Sumar que retorne un entero, debe recibir como parámetro un arreglo bidimensional y dos enteros (Fila y Columna). Debe realizar las siguientes acciones:
a. Imprimir el valor de la Fila y Columna
b. Validar si el valor de la Fila y Columna es igual a cero si es asi ha de retornar el elemento del arreglo en la posición 0,0.
c. Si no se cumple la validación anterior se ha de validar si el valor de la columna es menor que cero si es así debe retornar el valor de la invocación de la función Sumar pasándole el arreglo, el valor de la Fila menos 1 y la posición 1.
d. Si no se cumple la condición anterior se ha de retornar el arreglo posición Fila, Columna más la invocación de la función Sumar pasándole el arreglo, la fila y la columna menos 1.
3. Un procedimiento Cargar_Datos que cargue los valores del arreglo con números aleatorios, debe recibir como parámetro un arreglo y dos enteros (Fila y Columna).
4. Un procedimiento Imprimir_Datos , que imprima los datos del arreglo debe recibir como parámetro un arreglo y dos enteros (Fila y Columna).
5. Un procedimiento principal que contenga los siguientes elementos:
a. Declaración de un arreglo de dos filas dos columna
b. Invocación del procedimiento Cargar_Datos para cargar los valores del arreglo, debe pasar el arreglo y los valores de Fila y Columna.
c. Invocación del procedimiento Imprimir_Datos para imprimir los valores del arreglo.
d. Imprimir el valor de la suma de los elementos del arreglo mediante la invocación de la función Sumar.

Código:
#include <stdio.h>
#include <iostream>
using namespace std ;

int sumaR(int mat[][2], int fil, int col){//problema no deve ir todo aqui
printf("En columna = %d\n",col);
printf("En fila = %d\n",fil);

    if (col==0 && fil==0){

        return mat[0][0];
       
    }else if (col<0){


        return sumaR(mat, fil-1, 1);
   
    }else{

return mat[fil][col] + sumaR(mat, fil, col-1);

}
}                                                         
int main(){                                 
    int A[2][2];
int i=0,j;
for(i=0;i<2;i++){
printf("----Ingrese numero entero en la fila %d----\n",i+1);       
j=0;
for(j=0;j<2;j++){
printf("Ingrese numero entero en la columna %d\n",j+1);     
scanf("%d",&A[i][j]);
}
}                         
   

                                       
    printf("La suma recursiva de los elementos es: %d\n",sumaR(A,1,1));
system ("pause");
    return 0;

}
         

como podemos ver donde e puesto el comentario tengo problemas porque como entiendo que me lo piden es en diferentes funciones no en una sola pero solo haci lo puedo hacer haci que necesito ayuda de como pasar a funciones separadas.
o en caso de que este bien que es lo que nesesita para terminarlo   :huh: :huh:
           


En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: ayuda con un programa de c++
« Respuesta #1 en: 4 Abril 2014, 12:53 pm »

1. Declaración de dos valores constantes enteras Fila y Columna

Código
  1. const int MaxFilas = 2;
  2. const int MaxColumnas = 2;

a. Imprimir el valor de la Fila y Columna

estás en C++, luego es más correcto usar:

Código
  1. cout << "En la columna = " << col << endl;
  2. cout << "En la fila = " << col << endl;

b. Validar si el valor de la Fila y Columna es igual a cero si es asi ha de retornar el elemento del arreglo en la posición 0,0.
c. Si no se cumple la validación anterior se ha de validar si el valor de la columna es menor que cero si es así debe retornar el valor de la invocación de la función Sumar pasándole el arreglo, el valor de la Fila menos 1 y la posición 1.
d. Si no se cumple la condición anterior se ha de retornar el arreglo posición Fila, Columna más la invocación de la función Sumar pasándole el arreglo, la fila y la columna menos 1.

Correcto

3. Un procedimiento Cargar_Datos que cargue los valores del arreglo con números aleatorios, debe recibir como parámetro un arreglo y dos enteros (Fila y Columna).
4. Un procedimiento Imprimir_Datos , que imprima los datos del arreglo debe recibir como parámetro un arreglo y dos enteros (Fila y Columna).
5. Un procedimiento principal que contenga los siguientes elementos:
a. Declaración de un arreglo de dos filas dos columna
b. Invocación del procedimiento Cargar_Datos para cargar los valores del arreglo, debe pasar el arreglo y los valores de Fila y Columna.
c. Invocación del procedimiento Imprimir_Datos para imprimir los valores del arreglo.
d. Imprimir el valor de la suma de los elementos del arreglo mediante la invocación de la función Sumar.

Esto falta

Por lo demás, el código está bien, cumple con lo que te piden.

Y sí, tu comentario "problema no deBe ir todo aqui" es erróneo.


En línea

max9100

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: ayuda con un programa de c++
« Respuesta #2 en: 5 Abril 2014, 13:22 pm »

termine el codigo completo  >:D >:D >:D  nesesito la opinion por si me salte algun detalle jeje

aqui esta lo que me pedian


Realizar un programa que suma de manera recursiva los elementos de una matriz de 2 columnas y 2 filas. El algoritmo debe tener los siguientes elementos:
1. Declaración de dos valores constantes enteras Fila y Columna
2. Una función recursiva Sumar que retorne un entero, debe recibir como parámetro un arreglo bidimensional y dos enteros (Fila y Columna). Debe realizar las siguientes acciones:
a. Imprimir el valor de la Fila y Columna
b. Validar si el valor de la Fila y Columna es igual a cero si es asi ha de retornar el elemento del arreglo en la posición 0,0.
c. Si no se cumple la validación anterior se ha de validar si el valor de la columna es menor que cero si es así debe retornar el valor de la invocación de la función Sumar pasándole el arreglo, el valor de la Fila menos 1 y la posición 1.
d. Si no se cumple la condición anterior se ha de retornar el arreglo posición Fila, Columna más la invocación de la función Sumar pasándole el arreglo, la fila y la columna menos 1.
3. Un procedimiento Cargar_Datos que cargue los valores del arreglo con números aleatorios, debe recibir como parámetro un arreglo y dos enteros (Fila y Columna).
4. Un procedimiento Imprimir_Datos , que imprima los datos del arreglo debe recibir como parámetro un arreglo y dos enteros (Fila y Columna).
5. Un procedimiento principal que contenga los siguientes elementos:
a. Declaración de un arreglo de dos filas dos columna
b. Invocación del procedimiento Cargar_Datos para cargar los valores del arreglo, debe pasar el arreglo y los valores de Fila y Columna.
c. Invocación del procedimiento Imprimir_Datos para imprimir los valores del arreglo.
d. Imprimir el valor de la suma de los elementos del arreglo mediante la invocación de la función Sumar.

y aqui esta el codigo terminado demen su opinión si necesita algo mas


Código:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <iostream>

const int MaxFilas = 2;
const int MaxColumnas = 2;

using namespace std ;

int sumaR(int [][MaxColumnas], int , int );
void Cargar_Datos(int [][MaxColumnas]);
void Imprimir_Datos(int [][MaxColumnas]);

int sumaR(int mat[][MaxColumnas], int fil, int col){
cout<<"En columna = \t"<<col<<endl;
cout<<"En fila = \t"<<fil<<endl;

    if (col==0 && fil==0){

       return mat[0][0];
      
    }else if (col<0){
        return sumaR(mat, fil-1, 1);
 
    }else{
return mat[fil][col] + sumaR(mat, fil, col-1);
}
}      
void Cargar_Datos(int mat[][MaxColumnas]){
    srand(time(0));
    for (int i=0;i<MaxFilas;i++)
    {
        for (int j=0;j<MaxColumnas;j++)
        {
            mat[i][j]=rand()%21;
        }  
    }
}
void Imprimir_Datos(int mat[][MaxColumnas]){
for (int i=0;i<MaxFilas;i++)
    {
        for (int j=0;j<MaxColumnas;j++)
        {
cout <<"El numero ser :"<<mat[i][j]<<"\t";
        }
      cout<<"\n\n";
    }
}

int main(){
    int A[MaxFilas][MaxColumnas];
int i=0;
Cargar_Datos(A);
Imprimir_Datos (A);                                      
cout<<"La suma recursiva de los elementos es: \t"<<sumaR(A,1,1)<<endl;
system ("pause");
    return 0;
}        
     

por cierto me sale el siguiente error alguien me da una explicacion warning C4244: 'argument' : conversion from 'time_t' to 'unsigned int', possible loss of data.
creo que es porque utilizo Time.h o cTime.
« Última modificación: 5 Abril 2014, 13:25 pm por max9100 » En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: ayuda con un programa de c++
« Respuesta #3 en: 5 Abril 2014, 15:49 pm »

Lo primero que deberías hacer es:
* Eliminar la inclusión de <stdio.h> y <conio.h> (no se recomienda el uso de esta ultima, mas información en la pagina |Lo que no hay que hacer en C/C++. Nivel basico|).
* Cambiar el nombre de los encabezados <stdlib.h> y <time.h> por <cstdlib> y <ctime>.
* Eliminar la variable "i" de main ya que no se utiliza en la función.

El mensaje de advertencia que mencionas se debe a la llamada a srand, para que no se genere debes convertir explícitamente el valor de retorno de la función time, de esta forma:
Código
  1. srand((unsigned) time(0));

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
max9100

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: ayuda con un programa de c++
« Respuesta #4 en: 8 Abril 2014, 08:31 am »

gracias me ayudaron mucho ;-) ;-) ;-) ;-)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
AYUDA CON PROGRAMA
Diseño Gráfico
Luisango 1 2,458 Último mensaje 17 Abril 2005, 13:25 pm
por Sub_Cero
ayuda con mi programa
Programación Visual Basic
nitrox 2 2,357 Último mensaje 31 Julio 2005, 00:48 am
por Slasher-K
ayuda programa!!
Programación C/C++
rodrigo_103 4 3,378 Último mensaje 16 Septiembre 2012, 21:58 pm
por rodrigo_103
[Ayuda] ¿Cómo ejecutar otro programa desde mi programa de C#?
.NET (C#, VB.NET, ASP)
Zodiak98 1 6,167 Último mensaje 8 Diciembre 2013, 01:51 am
por Eleкtro
Ayuda con un programa de minisumo
ASM
RAMONDELTEC 0 1,910 Último mensaje 16 Diciembre 2021, 01:05 am
por RAMONDELTEC
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines