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 - leosansan

#831
Lo primero es lo primero, antes de empezar la eliminación gaussiana darle "contenido" a la matriz a[fil]col[]:

Código (cpp) [Seleccionar]

for (i=0;i<fil;i++){
   for (j=0;j<col;j++) {
   printf("a[%d][%d]= ",i+;1,j+1);
   scanf (" %lf",a[i][j])
   }
}


Lo segundo es lo de casi siempre, para poner código clickea en donde pone GeSHi y seleccionas C++, aunque sea el código en C, así sale coloreado, y en medio de las etiquetas que aparecen "pegas" tu código. Si te fijas en el que has puesto hay partes de la matriz que no aparecen, por no poner las mencionadas etiquetas.

Y después de "rellenar" la matriz y, antes de empezar con Gauss, revisa los índices de los for que tienes puestos, están mal y sin inicializar y comentas los "nuevos" problemas que tengas, pero cuelga el código entre etiquetas code. ;)

Saluditos!. ....
#832
Problema con el buffer, que en este caso se soluciona dejando un espacio en blanco en los scanf. Esto me da como salida:

Código (cpp) [Seleccionar]

                       MENU
1...Para los dias de la semana
2...SALIR

Ingrese su opcion y presione enter: 1

Ingrese la inicial del dia: s

El dia de la semana que le corresponde es el 7                  MENU
1...Para los dias de la semana
2...SALIR

Ingrese su opcion y presione enter: 1

Ingrese la inicial del dia: d

El dia de la semana que le corresponde es el 1                  MENU
1...Para los dias de la semana
2...SALIR


Y el código con los espacios puestos:

Código (cpp) [Seleccionar]
//Ultimo Programa de funciones
#include <stdio.h>
#include <conio.h>
//Prototipos
int menu(void);
int semana(char);
//Programa Principal
int main()
{ int opcion;
 char dia;
 float valor;

 while((opcion=menu())!=2)
 { switch(opcion)
   { case 1: clrscr();
             printf("\nIngrese la inicial del dia: ");
             scanf(" %c",&dia);
             printf("\nEl dia de la semana que le corresponde es el %d",semana(dia));
             break;
   }
 return 0;
}
}
//Funciones
int menu(void)
{ int opc;
 clrscr();
 printf("\t\t\tMENU");
 printf("\n1...Para los dias de la semana");
 printf("\n2...SALIR");
 do
 { printf("\n\nIngrese su opcion y presione enter: ");
   scanf(" %d",&opc);
   if(opc<1 || opc>2)
   { printf("\nHa ingresado un valor incorrecto!!!");
     getch();
   }
 }while(opc<1 || opc>2);
 return opc;
}


int semana(char fdia)
{ int fndia;
 switch(fdia)
 { case 'd': fndia=1;
             break;
   case 'l': fndia=2;
             break;
   case 'm': fndia=3;
             break;
   case 'M': fndia=4;
             break;
   case 'j': fndia=5;
             break;
   case 'v': fndia=6;
             break;
   case 's': fndia=7;
             break;
 }
return fndia;
}



Saluditos!. ....  

#833
[Recopilatorio] Sources interesantes

Cita de: Mini_Nauta en 14 Mayo 2010, 22:38 PM
hola, se preguntarán alguno que diablos es ncr, bueno mas especificamente es una parte del Teorema del binomio.

Mas especificamente es:


Entonces como en mis ratos libres y de oseo aprendo C, y dado que no tengo para comprarme una calculadora de esas Casio y que solo tengo una de esas chinas o japonesas, en fin, me hice mi propia calculadora para eso que entrega detalladamente los resultados para comprobarlos(si quieren a mano)...

..................................................

El uso de los factoriales para el cálculo de los números combinatorios tiene el inconveniente de su tamaño, desbordan las posibilidades de C/C++ desde 14 o 15. Una muestra de la salida de tu código:

Código (cpp) [Seleccionar]


Ingrese n y k: 16
14

n! = 2004189184
k! = 1278945280
(n - k)! = 2
k! * (n - k)! = -1737076736
n! / [k! (n - k)!] = -1
--------------------------
Resultado final (ncr): -1


Decepcionante, ¿verdad?.

Para evitarlo existe otra forma de calcular los números combinatorios que técnicamente consiste en dividir las variaciones de n tomados de p en p entre las permutaciones de p. Vamos que con un ejemplo se ve que es más fácil de lo que parece:

Combinaciones(15,4)= 15/4 * 14/3 * 13/2 * 12/1.

Y aún así se puede mejorar la eficiencia del cálculo. Por ejemplo:

Combinaciones(15,12)=15/12*14/11*13/10*12/9*11/8*10/7*.....

Muy largo, ¿verdad?. Pero eso se puede remediar aprovechado una propiedad de los números combinatorios que establece que :

Combinaciones(n,p)=Combinaciones(n,n-p)

Y aplicada al caso último daría:

Combinaciones(15,12)=Combinaciones(15,3)=15/3 *14/2 *13/1

Mucho más breve que el anterior método.

Así, aprovechando estas dos propiedades, la primera para cuando es inferior a la mitad de n y la segunda para cuando es superior surge el código mágico que te permitirá "meter" de exponente 20 y más sin problemas de que el C/C++ "cruja" soltando números "raros" porque se salen de sus capacidades:


Código (cpp) [Seleccionar]

#include <stdio.h>
#include <stdlib.h>

int comb(int n,int p)
{
   int i;
   if (n < 0 || p < 0 || p > n) return 0;
   float c = 1;
   if (p>n/2)
       p=n-p;
   for ( p; p>=1; p--,n--)
       c*= (float)n/p;
   return (int)c;
}
int main()
{
   int n, p, num , y;
   while (1){
       printf("\n\nIngrese n (0 para SALIR): " );
   if (n==0)
       break;
   fflush( stdout);
   scanf(" %d", &n);
   printf("\nIngrese p : " );
   fflush( stdout);
   scanf(" %d", &p);
   printf("\ncombinaciones(%d,%d)= %d",n,p,comb(n,p));
   fflush( stdout);
   }
   return 0;
}


Y ahora puedo meter números más grandes:

Código (cpp) [Seleccionar]

Ingrese n (0 para SALIR): 40

Ingrese p : 35

combinaciones(40,35)= 658008

Ingrese n (0 para SALIR): 35

Ingrese p : 12

combinaciones(35,12)= 834451776


Saluditos!. ...  

P.D: Más en http://foro.elhacker.net/programacion_cc/teorema_binomial-t388312.0.html
#834
Cita de: carrlos en  7 Mayo 2013, 22:21 PM
yo hago como  se me vienen las ideas q es no a lo  lo  y para el de la imgen del leon yo soy honesto nunca hables de alguien sin conocerlo xq t puedes llevar un castigo

El de la imagen del "LEÓN" no te deja nunca colgado, al final siempre creo que las cosas las haces con mucha voluntad. Pero en serio, lee antes un buen manual de C++ o fíjate en los "muchos" códigos que te hemos pasado ya.

Como no se entiende bien lo qie quieres, sigo el juego de adivinar y esto te puede servir de orientación:


Código (cpp) [Seleccionar]
#include <iostream>
#include<cstdlib>
#include <cmath>
using namespace std;

int main()
{
   int op;
   float radio,area, longitud;
   while(1){
       cout<<"introduzca una opcion: 1->Area, 2->Volumen, 0->Salir: ";
       cin>>op;
       if (op==0)
           return 0;
       cout<<"introduzca el Radio:";
       cin>>radio;
       if(op==1)
           cout<<"Area= "<<4*3.1415*pow(radio,2)<<endl;
       else if (op==2)
           cout<<"Volumen= "<<4*3.1415*pow(radio,3)/3<<endl;
       else
           cout<<"Opcion erronea. Vuelva a intentarlo"<<endl;
   }
}


Y conste que todo lo que te digo es en plan de buen rollo, amigo carrlos.


Saluditos!. ....  

P.D:Paso ya de los castigos. .....
#835
Cita de: Caster en  7 Mayo 2013, 21:53 PM
¿Haces caso de algo de lo que se te dice?

Ni debroma, él sigue ese método de códigos estrámboticos para que acabemos haciéndole la tarea. Sólo el ver como coloca las librerías da.... pena. Pero en fin, él es así. Si fuera más sincero no se llevaría las reprimendas que le estoy dedicando, aunque al final soy uno de los tontos que le acaba  haciendo la tarea. Y además siempre actúa de la misma forma, abre un primer tema donde sabe que va a "recibir" y luego vuelve y abre otro tema pero con lo mismo.

Saluditos!. ......
#836
Cita de: Caster en  7 Mayo 2013, 21:36 PM
Ya llevo leídos unos cuantos posts tuyos y en este no he podido evitar contestar:
Si quieres buenas respuestas, haz buenas preguntas..... y no hagas las cutreces que estás haciendo.

¡Bienvenido amigo Caster, estabas perdido en estos últimos tiempos, te echabamos de menos !!!!!

Saluditos! .....  
#837
Cita de: carrlos en  7 Mayo 2013, 20:18 PM
si ya lo que pasa es que la puse en el main y no e el encabezada del programa

Ejem ......, después de 89 post que llevas ya deberías al menos saber usar las librerías básicas y dónde ponerlas.

Y respecto al código que has posteado aquí, como los demás, insisto que es inconexo, sin sentido aparente.

"Intuyo" que quieres saber el área de un círculo, cosa que será a partir del radio del mismo que debes entrar como dato y como pones la librería math haciendo uso de la misma, cosa que en este caso estaría de más . Y puestos a hacer adivinanzas, por el if que pones con opcion==1 adivino que querrás calcular otra cosa, y no se me ocurre otra que la longitud de la circunferencia del círculo. Pero eso, son meras especulaciones o adivinanzas. Si estuviera en lo cierto a lo mejor lo que sigue te sirve:


Código (cpp) [Seleccionar]
#include <iostream>
#include<cstdlib>
#include <cmath>
using namespace std;

int main()
{
   int op;
   float radio,area, longitud;
   while(1){
       cout<<"introduzca una opcion: 1->Area, 2->Longitud, 0->Salir: ";
       cin>>op;
       if (op==0)
           return 0;
       cout<<"introduzca el Radio:";
       cin>>radio;
       if(op==1)
           cout<<"Area= "<<3.1415*pow(radio,2)<<endl;
       else if (op==2)
           cout<<"Longitud= "<<2*3.1415*radio<<endl;
       else
           cout<<"Opcion erronea. Vuelva a intentarlo"<<endl;
   }
}


Es elemental, pero es lo que "destila" de tus comentarios. Procura ser al menos concreto con el objetivo del código, ya que en el mismo no lo eres.

Saluditos!. ....  
#838
Programación C/C++ / Re: Time.h [HELP]
7 Mayo 2013, 19:47 PM
Cita de: Borluck en  7 Mayo 2013, 18:25 PM
Hola a todos compañeros!

Bueno...como siempre me surgen dudas y esta vez está referida al uso de la función time().

Quisiera poder obtener la hora del sistema y almacenarla en un archivo .txt pero cuando la intento sacar me devuelve un número ENORME que para mí no tiene sentido alguno.


Para que conste, lo primero que deberías es colgar el código o trozo donde podamos averiguar el posible error. No somos adivinos.

Para que no te vuelvas loco buscando ejemplos, te dejo un cronómetro simple  De ahí podrás sacar conclusiones en cuanto a las variables para guardar el tiempo:


Código (cpp) [Seleccionar]

#include <stdio.h>
#include <time.h>
#include <windows.h>
struct tm *tiempo;
time_t t;
void cronometro(void);
int main(void)
{
  cronometro();
  return 0;
}

void cronometro(void)
{
   int hora,minuto,limite,segundo;
   t=time(NULL);
   tiempo = localtime(&t);
   limite=tiempo->tm_min+2;
   while(1)
   {
       Sleep (1000);
       t=time(NULL);
       tiempo = localtime(&t);
       hora=tiempo->tm_hour;
       minuto=tiempo->tm_min;
       segundo=tiempo->tm_sec;
       printf("%d:%d:%d\r",hora,minuto,segundo);
   }
}


Saluditos!. .....  
#839
Cita de: carrlos en  7 Mayo 2013, 19:12 PM
\circulo.cpp F:\F cstdlib.h: No such file or directory.
no me dise esto

Estas en C++, ¿no te habías fijado en ese pequeño detalle?. Entonces sería

Código (cpp) [Seleccionar]
#include<cstdlib>

Saluditos!. .... 
#840
Cita de: carrlos en  7 Mayo 2013, 18:27 PM
ah ok el main tambien lo lleva

No, si te parece. Y falta la librería cstdlib para que usar la función system.

Saluditos!. ...