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

#701
Cita de: tadprox en  2 Junio 2013, 17:04 PM

Recien lo que hice fue una funcion Gotoxy aqui en Debian (Linux) que me permite posicionar el texto o algo donde yo quiera.. Pero no se como graficar esas funciones asi de esa forma


Pues te muestro una imagen del seno entre 0 y 2Pi:



mejorable eligiendo más adecuadamente los valores de i. Pero de muestra creo que te sirve.

Por cierto, el código de gotoxy es para windows. Tan solo tienes que adaptar tu Goto de linux y el dibujo en sí, con el bucle for, te sirve igual:


Código (cpp) [Seleccionar]
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <windows.h>

int main(){
   float i=0,j=0,seno[100]={0},temp=0;
   int x=0,y=0,cont=0;
   for (i=0;i<=2*3.14165;i+=0.10)
   {
       x=(int)(i*10);
       y=(int)(10-sin (i)*10);
       gotoxy (x,y);
       printf ("*");
   }
   gotoxy (0,20);
   system ("pause");
   return 0;
}
int gotoxy(int x, int y)
{
  COORD coord;
  HANDLE h_stdout;
  coord.X = x;
  coord.Y = y;
  if ((h_stdout = GetStdHandle(STD_OUTPUT_HANDLE)) == INVALID_HANDLE_VALUE)
     return 0;
  if (SetConsoleCursorPosition(h_stdout, coord) == 0)
     return 0;
  return 1;
}



Saluditos! .... ..
#702
Cita de: amchacon en  4 Junio 2013, 14:08 PM
Código (cpp) [Seleccionar]
printf("Haga su jugada: ");
scanf("%d",&k);     
matriz[k][n]='X';

Has puesto la coordenada x pero no la y  :silbar:

Es decir debería ser algo así::

printf("Haga su jugada: ");
scanf("%d",&k); 
scanf("%d",&n);     
matriz[k][n]='X';


Y además:

Código (cpp) [Seleccionar]
printf("%c",matriz[k][n]+matriz[i][j]);

te dará un cararacter "rarito". Debe ser tan solo:

Código (cpp) [Seleccionar]
printf("%c",matriz[k][n]);

Saluditos! . ... ..
#703
Cita de: edr89 en  4 Junio 2013, 05:05 AM
Gracias, lo reviso con tiempo.

Perdon pero me cuesta trabajo entender el código, tengo que resolverlo con la formula 1+x+(x^n)/n!... por eso solo traduje a C usando la funcion pow y factorial.

while (serie1!=serie2)
          {
               serie1=serie2;
               frac=frac*x/i++;
               serie2=serie1+frac;



La solucion como tal no la puedo dar usando la funcion exp, forzosamente tengo que usar la formula con factorial  :(  (aunque aqui esta solo como referencia)

Me gusto mucho este otro código, lo reviso con tiempo. Yo estaba probando a hacerlo por partes para aprender a definir varias funciones y usarlas en main.


La serie es: 1+1x/1 + x^2/ 1*2 + x^3/ 1*2*3 + x^4/1*2*3*4 + .......

Si observas cada nuevo sumando se obtiene del anterior multiplicando por una nueva x y dividiendo por un nuevo numero, que es justo el siguiente del último que se uso. Así la variable frac*x/i+1  irá dando:

i=0        frac=0
i=1        frac=x/1
i=2        frac=x/1 * x/2 = x^2/ 1*2
i=2        frac=x/1 * x/2 * x/3= x^3/ 1*2*3


Y así sucesivamente y la suma de frac dará el desarrollo en serio, Así de simple.

Como aplicación de lo anterior y sin usar exp sino tomando, como tu  habías propuesto, el número de términos:

Código (cpp) [Seleccionar]
Teclea el valor de x: 1
Numero de terminos: 3
Valor estimado: 2.666666666666667


Teclea el valor de x: 10
Numero de terminos: 10
Valor estimado: 12842.30511463845


Teclea el valor de x: 1000
Numero de terminos: 100
Valor estimado: 1.190420382778621e+142


Código (cpp) [Seleccionar]

#include <stdio.h>
#include <math.h>
int main(void)
{
    double x, serie=0, frac;
    int i, n;
    while (1)
    {
       serie=1;
       printf("Teclea el valor de x: ");
       scanf("%lf", &x);
       printf(" Numero de terminos: ");
       scanf("%d",&n);
       frac=1;
       for(i=0;i<n;i++)
       {
           frac=frac*x/(i+1);
           serie+=frac;
       }
       printf("\nValor estimado: %1.16g\n\n\n", serie);
    }
   return 0;
}


Por lo que respecta al uso de funciones yo soy partidario de usarlas en casos de que se repita una parte del código, por ejemplo si estas calculando números combinatorios  hay  teóricamente que calcular tres factoriales, por lo que en este caso el uso de una función factorial nos evita repetir el código para calcular el mismo tres veces. O bien cuando entre varios se esté haciendo un código y queramos repartir la tarea, cada uno hará su parte como una función. Pero en estos casos tan sencillos me parece más oportuno estrujarse el cerebro buscando formas simples y más eficientes, como habrás visto con el uso de la variable frac.

Saluditos! .... ..
#704
Programación C/C++ / Re: Numeros Romanos
4 Junio 2013, 05:32 AM
Cita de: KaL3o en  4 Junio 2013, 04:51 AM
El problema con ese codigo es que si ingresas por ejemplo el cuatro (IV) el va a decir que es seis...

Pues no, no se puede ingresar el IV, sólo los símbolos que el usuario estimó considerar:



Otra cosa es que hubiese incluido a:



En cuyo sencillamente caso habría que considerar a un caracter y su anterior.

Pero eso sería otra cosa distinta a la propuesta por 05K4R1N.

Si estas interesado en el tema publica el avance de lo que lleves y con gusto te echaré una manita.

Saluditos! .... ..
#705
Programación C/C++ / Re: Numeros Romanos
4 Junio 2013, 01:03 AM
Cita de: dato000 en  3 Junio 2013, 23:46 PM

la de leo esta mejor, puesto que usa de una vez las variables que fueron llamadas a la función, es mucho mejor, aunque es confuso al principio XD

No veo donde puede estar la confusión, salvo porque no explico ni pijo lo que va haciendo el código, mea culpa.

En esencia se va pasando cada caracter de la cadena introducida, romano, a la función y en ella se va comparando con los caracteres/valores en romano, que conforman el array rom. Caso de encontrar una coincidencia retorno el equivalente en decimal de la variable valor. Así de sencillo.

Lo que no entendí fue el uso, a mi parecer innecesario, de la variable anterior.

No dejo de reconocer que el código que posteo 05K4R1N era muy deficiente, le faltaba el tipo int de la función main, el correspondiente return 0, el uso de .lengh, más cercano al C++ y alejado del C -creo que ahí confundió conceptos-, la presencia de la librería conio.h -para nada-, el uso de la función  indeseable fflush(stdin) y el resto de código muy disperso/descuidado.

Pero, en fin, parece que algo se lo había currado.

Tampoco entiendo el uso de una función para algo tan simple y  a la que sólo se le va a llamar una vez, para eso no hacen falta tantas alforjas. Mi criterio es reservar el uso de funciones para casos repetitivo, códigos muy complejos o que se va a trabajar entre varios y cada uno se va a encargar de una parte/función, pero en este caso ¡puafffff!, me sobra la función. Si la puse fue porque imagino será una tarea que le piden haga con una función.

Saluditos!. ... ..
#706
Programación C/C++ / Re: Numeros Romanos
3 Junio 2013, 23:40 PM
Cita de: 05K4R1N en  3 Junio 2013, 23:13 PM
por ultima vez no espero que me lo hagan ¬¬ !!!!

Una pequeña variante operativa, sin el cero que no tiene sentido en los números romanos:

Código (cpp) [Seleccionar]
#include <stdio.h>
#include <string.h>

int main(){
    char romano [100]={0};
    printf("Ingrese Numero Romano: ");
    scanf ("%s",romano);
    printf ("Romano: %s\n",romano);
    char rom[8]={'I','V','X','L','C','D','M'};
    int valor[7]={1,5,10,50,100,500,1000};
    convertidor(romano, rom, valor);
    return 0;
}
void convertidor ( char romano [], char rom [9],int valor [8])
{
    int suma=0,i,j;
    for (i=0;i<strlen(romano);i++)
        for (j=0;j<9;j++){
            if (romano[i]==rom[j]){
                suma+=valor [j];
                break;
            }
            else
                continue;
        }
    printf ("Numero: %d",suma);
}


Saluditos!!. ....
#707
Programación C/C++ / Re: leer fichero .txt
3 Junio 2013, 21:50 PM
Cita de: raquelsg88 en  3 Junio 2013, 16:30 PM

Yo tengo dos ficheros,  uno es archivo.txt y dentro estará escrito el nombre de otro fichero. Y ( corrijo yo) en ese otro fichero esta escrito "download.mot".

Es decir, en el mismo directorio tengo:

- archivo.txt. En la primera linea esta escrito (corrijo yo) el nombre del otro fichero .
- (corrijo yo) En el otro fichero está escrito "download.mot"

Quiero hacer esto porque no siempre se va a llamar igual el archivo que queremos abrir. Y una solución que se nos ha ocurrido es escribir en un .txt, (amplio yo) o sea archivo.txt,  (amplio yo) el nombre del otro fichero que queremos usar en ese momento.


Con las puntualizaciones que he puesto tengo esta salida:


Código (cpp) [Seleccionar]

Creando el primer fichero archivo.txt y escribiendo el nombre del otro fichero
         que es: el_otro_fichero


Leyendo del fichero archivo.txt el nombre del otro fichero

"el_otro_fichero"

Escribo en el_otro_fichero:
"download.mot"


Leyendo de el_otro_fichero
"download.mot"



No sé si me he liado, si es así sorry. Pero la idea que capto es que tienes un fichero llamado archivo.txt en donde está escrito el nombre de otro fichero, que hay que leer mediante una variable, ya que lo iras cambiando, y a su vez en ese otro fichero tienes escrito algo, por ejemplo "download.mot". ¿No lo he entendido mal?.

Si es como he supuesto, una solución rapidita, sin comprobaciones de que los ficheros existen y esas cosas -¡faltaría más haciéndolo yo!  :laugh:- es la que te pongo a continuación y si es otra cosa ya me contaras con más detalles. Por cierto, en la realidad el fichero archivo.txt existe por lo que en lugar de abrirlo con la opción "w" se abriría con "r". Lo he hecho con "w" para comprobar que todo iba bien y que además pudieras ejecutar el código que te paso.


Código (cpp) [Seleccionar]
#include <stdio.h>
int main()
{
   FILE  *fichero1,*fichero2;
   char linea[81],leo[81],linea_sin_nulo[81];

   puts ("Creando el primer fichero archivo.txt y escribiendo el nombre del otro fichero\n\
         que es: el_otro_fichero\n\n");
   fichero1 = fopen("archivo.txt", "wt");

   fputs("\"el_otro_fichero\"", fichero1);
   fclose(fichero1);

   puts ("Leyendo del fichero archivo.txt el nombre del otro fichero\n\
         ");
   fopen("archivo.txt", "r");
   fgets(linea, 80, fichero1);
   printf("%s\n\n",linea);
   fclose(fichero1);

   puts("Escribo en el_otro_fichero:");
   puts("\"download.mot\"\n\n");
   fichero2 = fopen("linea", "wt");

   fputs("\"download.mot\"\n\n", fichero2);
   fclose(fichero2);


   puts ("Leyendo de el_otro_fichero");
   fopen("linea", "r");
   fgets(leo, 80, fichero2);
   printf("%s\n",leo);
   fclose(fichero2);

   return 0;
}


Funcionar, funciona pero no es el tema de ficheros mi fuerte. Seguro que alguien más curtido en el tema podrá colgar un código mejor. Pero, en fin, para que veas que lo que pretendes tiene solución.

Saluditos! ... ..
#708
Cita de: eterno21 en  3 Junio 2013, 17:18 PM
Hola, no, es en cadiz, en canarias seria de 9 a 13, muchas gracias y un saludo.

Me alegra saber que si de programación andas "peladito" al menos sabes restar.

¿No te das cuenta de que lo que propones es, cuando menos y por decirlo finamente y sin ofender, una insensatez?.


Saluditos!. .... ...

Sniff,Sniff no es en Gran Canaria.

#709
Cita de: eterno21 en  3 Junio 2013, 16:59 PM
Hola, busco a alguien, que el dia 11 de Junio entre las 10 y las 14 pueda resolverme un examen de c++, por favor es muy urgente, ponerse en contacto conmigo, muchas gracias y un saludo.

¿Es en Gran Canaria?.

#710
Cita de: bemone en  3 Junio 2013, 15:52 PM
Perdon pero no lei mucho, leete el concepto de Sobrecarga de Funciones para poder utilizar el tipo acorde a tu situacion.

¿Sobrecarga de Funciones en C? . Creo que debes leerte mejor los post anteriores.


Saluditos! ... ..