Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: sTaborracho en 18 Octubre 2011, 22:01 pm



Título: Ayuda urgente con matriz DEV C++ [Ya trae código]
Publicado por: sTaborracho en 18 Octubre 2011, 22:01 pm
Hola. Buenos dias. Disculpen la molestia quisiera saber si podrian revisar mi codigo... El programa es una matriz 3x3 en donde nosotros introducimos los 9 valores, debe imprimirse la matriz con sus cuadrantes en el orden en que ingresamos nuestros valores y al final sumar todas las cifras de la matriz... Gracias por el tiempo que se tomen en leerlo y la molestia que se tomen en ayudarme.. ya que soy nuevo en eso de programar.

Muchas Gracias a esos programadores  que comparten su conocimiento con nosotros los novatos

Citar
Esto es lo que tengo:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/wait.h>

#define MAX 3

int main(void){
int matriz[MAX][MAX];
int i,j;
int valor;
int suma=0;
int edo;
int var=0;
pid_t pid;
for (i=0;i<MAX;i++)
{
for (j=0;j<MAX;j++)
{
printf("Introduce el valor para la fila %d columna %d: ",i+1,j+1);
scanf("%d", &valor);
matriz [j]=valor;
}
}

for(i=0;i<MAX;i++)
{
for(j=0;j<MAX;j++)
{
printf(" %d", matriz [j]);
}
printf("\n");
}

for(i=0;i<3;i++)
{
if((pid=fork()==0))
{
for(j=0;j<3;j++)
{
suma=suma+matriz [j];
}

exit(suma);
}
wait(&edo);/*La función wait suspende la ejecución del proceso actual haste que un proceso hijo ha terminado*/
edo=edo/256;
printf("Fila ",i+1," ",edo);
var=var+edo;
}   
printf("La suma final de todas las filas son: %d \n",var);
//printf("%d", var);
}


Título: Re: Ayuda urgente con matriz DEV C++ [Ya trae código]
Publicado por: Aberroncho en 18 Octubre 2011, 22:53 pm
El primer fallo que veo es en la asignación de valores a la matriz:

Código:
...
for (i=0;i<MAX;i++)
{
for (j=0;j<MAX;j++)
{
printf("Introduce el valor para la fila %d columna %d: ",i+1,j+1);
scanf("%d", &valor);
matriz[j]=valor;
}
}
...

La asignación que estás haciendo es

Código:
matriz[j]=valor;

cuando debiera ser

Código:
matriz[i][j]=valor;

El mismo error lo tienes al imprimir la matriz:

Código:
printf(" %d", matriz[j]);

en vez de

Código:
printf(" %d", matriz[i][j]);

Y lo vuelves a repetir en la suma:

Código:
suma=suma+matriz[j];

en vez de

Código:
suma=suma+matriz[i][j];



Estas preguntas obtienen respuesta antes si las colocas en el foro correcto: Programación C/C++ (http://foro.elhacker.net/programacion_cc-b49.0/)



Título: Re: Ayuda urgente con matriz DEV C++ [Ya trae código]
Publicado por: sTaborracho en 19 Octubre 2011, 03:24 am
Muchas Gracias por la ayuda si disculpa que no supiera donde publicar mi duda... soy nuevo en el foro.. Gracias!!

Y si tengo el codigo asi como me lo indicaste pero por alguna razon la pagina no muestra la i entre [] (al editar el tema aparece).

Y al ejecutarlo me muestra 4errores:
1°.- sys/wait.h: No such file or directory (No existe el fichero o directorio)
2°.- In function 'int main()'
3°.- 'fork' was not declarated in this scope (no fue declarada en este ámbito)
4°.- 'wait' was not declarated in this scope (no fue declarada en este ámbito)

Alguien sabe que sucede??


Título: Re: Ayuda urgente con matriz DEV C++ [Ya trae código]
Publicado por: Aberroncho en 21 Octubre 2011, 18:13 pm
que no te salgan los "[ i ]" es porque pones el código entre las etiquetas quote y \quote. Mejor ponlo entre etiquetas code y \code.

En cuanto al error es porque no te encuentra el fichero de cabecera "sys/wait.h". Cambia el "#include <sys/wait.h>" por "#include <unistd.h>" que creo recordar que el prototipo de wait y fork está ahí y con eso deberías solucionar los cuatro errores de compilación.


Título: Re: Ayuda urgente con matriz DEV C++ [Ya trae código]
Publicado por: sTaborracho en 30 Octubre 2011, 05:17 am
Muchas Gracias por tomarte la molestia de leer, analizar y comentar, por compartir tu conocimiento.

Ya pude resolver mi problema y de hecho era algo sencillo.

**Nota: El problema es que windows no reconoce el fork... la duda fue debido a que nos pusieron a programar en windows y no teniamos la menor idea de que era programacion para linux


Título: Re: Ayuda urgente con matriz DEV C++ [Ya trae código]
Publicado por: sTaborracho en 30 Octubre 2011, 06:15 am
Buenas. Me dejaron de trabajo el tema de recursividad especificamente el tratamiento de expresiones aritmeticas. (estaria muy agredecido si me pudieras explicar)

Tengo que realizar algoritmos y programas de expresiones prefijas, infijas y postfijas.

Lo que necesito saber es que tengo que programar (que tiene que hacer el programa) que sea prefija, infija y postfija (como diferenciar uno de otro).

He leido que puede ser el de factorial, palindromo, fibonachi ejemplos de expresiones recursivas.... pero como se cual es infija, prefija y postfija (que debe hacer cada una).

Agradezco el tiempo que se tomen en leer y comentar.... Muchas gracias por compartir su conocimiento.