Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Akai

#361
Programación C/C++ / Re: Estoy Aprendiendo
19 Marzo 2011, 16:02 PM
Este no es el subforo de visual basic, chocola, pero aun así:

instalar la versión del .net framework que hayas usado en tu programa.
#362
cuando haces el xrand con :

xrandr  --newmode "1024x968_60.00"   81.75  1024 1088 1192 1360  968 971 981 1005 -hsync +vsync

quita las comillas.
#363
Tienes un problema ahí, si haces float *matriz[][] le estás diciendo, que va a recibir una matriz de punteros a float, no una matriz de floats.

Y a parte, hay otro problema:

una matriz con arrays bidimensionales--> matriz[m][n]

matriz --> puntero a puntero del tipo que almacenes

matriz[] es un vector del tipo que almacenes
matriz[][] es el tipo que alamacenas.

cada vez que tu haces matriz[m] seleccionas un vector,  y cuando haces matriz[m][n] del vector m, seleccionas el elemento n

La diferencia con simplemente declarar un vector de n*m elementos, es que tu eso lo tienes, por así decirlo, en un único bloque, mientras que la matriz, primero tienes un bloque con los punteros a los vectores, y luego los distintos vectores apuntados.

te pongo un ejemplo:
Código (cpp) [Seleccionar]
funcion1(float **matriz)
//uso:
funcion1(matriz);


Código (cpp) [Seleccionar]
funcion2(float *vector)
//uso:
funcion2(matriz[algo]);
funcion2(vector);


Código (cpp) [Seleccionar]
funcion3(float elemento)
//uso:
funcion3(matriz[algo][otra_cosa]);
funcion3(vector[elemento_a_buscar]);
#364
Vale, acabo de echarle un ojo más a fondo (que antes andaba medio dormido)

El factorial de algo, en principio se calcula en tiempo n iteraciones:
n*(n-1)! --> n*(n-1)*(n-2)! y así.


Ejemplo: 6!
6*5! --> 6*5*4! --> 6*5*4*3! --> 6*5*4*3*2! --> 6*5*4*3*2*1

Pero a ti te limitan a (n/2)+1. iteraciones Posible solución?

Recorres a la vez por ambos lados.

fact=1
primera iteracion:
fact=fact=6*1

segunda:
fact=fact *5*2

tercera:
fact=fact*3*4

Iteraciones para el factorial de 6? 3.

En cambio, si tienes una n impar, tienes un número impar de términos en el factorial que podría causar que volvieses a multiplicar un término, por lo que si N fuese impar, en vez de desarrollar el factorial hasta 1, lo dejas en 2.

Factorial de 7:

fact=1
Primera iteración:
fact=fact*7*2

segunda:
fact=fact*6*3

tercera:
fact=fact*5*4

y en código, podría ser algo así:
Código (cpp) [Seleccionar]

if (n%2==0) // numero par
 empieza=1;
else
 empieza=2;

factorial=1;

for(i=0;i<n/2;i++)
 factorial=factorial*(n-i)*(i+empieza);


Y si no me he equivocado al trasladarlo a código, con eso desarrollas un factorial en n/2 iteraciones.

A partir de aquí, creo que ya puedes continuar por tu cuenta.

EDIT: vale, ya, que estaba probando si realmente funcionaba el código
#365
El hecho de que el factorial se defina como una función matemática recursiva, no implica que en algoritmia lo tengas que hacer así.

En programación, lo que más se aproximaría a su definición recursiva, sería utilizar recursividad:
Código (cpp) [Seleccionar]

int factorial(int n){
if (n<=1)
return 1;
else
return n*factorial(n-1)}


Pero que esa sea la forma más fácil de hacerlo, no te tiene que encerrar ahí, puesto que hacerlo con un bucle es más rápido que utilizar recursividad.

Da lo mismo si yo me hago un bucle de este estilo:
Código (cpp) [Seleccionar]
factorial=n;
for(i=n-1;i>=1;i--)
factorial=factorial*i

Mismo resultado si no me he equivocado yo en algo

O incluso yendo hacia adelante, en vez de recursivamente:
Código (cpp) [Seleccionar]
factorial=1;
for(i=2;i<=n;i++)
factorial=factorial*i;


Todo esto para decirte, que no te encierres en una única forma de hacerlo.

Tienes que calcular (i-1)! n! y j! ? Pregunto por el (i-1)!

Por otro lado, no se si lo he entendido bien, pero j y n son valores fijos, quiero decir, no van a iterarse, verdad?

puedes calcular su factorial directamente con un bucle como los puestos arriba y guardarte ese resultado en una variable antes de hacer nada más

y en caso de tener que calcular siempre el factorial de (i-1), en tu bucle de operaciones, puedes anidar un bucle para calcular dicho factorial (en caso de ser necesario, que no se si lo es. Ya digo que tengo en duda que se necesite calcular el n! * (i-1)! )
#366
Cita de: c0d3rSh3ll en 19 Marzo 2011, 02:52 AM
desintalar ubuntu e instalar alguna distro derivada de redhat como fedora o sino debian
En principio, ignorar respuestas como estas.

¿Probaste a reinstalar los controladores?

Después, puedes decirnos qué tarjeta de red tienes, qué gestor de red usas...

Danos info!!
#367
Cita de: Иōҳ en 19 Marzo 2011, 02:32 AM
C# creo que lo usan mas para web

Se usa en general, es similar a java. Por ponerte un ejemplo, todo el tema de desarrollo de aplicaciones para Windows Phone 7, es C#
#368
Mejor? Depende de para qué.

Más utilizado? Diría que C++
#369
Si, o al menos asignarle la dirección de otro elemento de tipo matriz.

matriz* puntero;
puntero=(matriz *)malloc(sizeof(matriz));


matriz no_puntero;
matriz* puntero;
puntero=&no_puntero;


Tu problema antes, era que si el puntero apunta a una dirección indeterminada, o a Null, cualquier acceso, da un segmentation fault.

#370
Si pruebas Eclipse Y Netbeans, elige uno y quédate con ese mientras aprendes.

Precisamente los debuggers vienen bien al principio cuando tienes fallos inexplicables que compilan y tu programa hace cosas raras.

Por norma general, si estás aprendiendo, no necesitas tanto un proceso automatizado, y si compilas por terminal, de paso vas aprendiendo como luego pueda ser el proceso automatizado (botón y compilado).