Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

Mostrar Mensajes

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

Mostrar Mensajes Menu

Mensajes - player

#136
Principiantes / ¿Qué es lo más importante?
02 de Julio de 2009, 05:22:44 PM
Para vosotros, qué puntos de un temario son los más importantes a la hora de aprender el lenguaje C++? Lo pregunto porque el libro que estoy siguiendo para aprender (cómo programar en C/C++ Deitel-Deitel) al principio empieza muy bien, pero a la que ya me he adentrado en los temas 5 y 6 veo que se está enrollando mucho y hay muchas cosas que supongo que son de relleno pero no sé si en el futuro pueden servirme de algo, se ha vuelto demasiado denso y me está agobiando bastante. Además algunas cosas están muy liadas y algo mal explicadas, aunque la gente dice que es el mejor libro para empezar  :-\

Alguna sugerencia de otro libro a seguir o tutorial? O alguna sugerencia para seguir con el mismo libro que estoy ahora pero dar un nuevo enfoque de las cosas teóricas en las que me tengo que centrar al 100% para luego trabajarlas a base de código y las que se pueden desechar?

Gracias.
#137
Principiantes / Re: Duda con while
01 de Julio de 2009, 11:47:02 AM
Entendido Buffon, gracias, estoy aprendiendo bastante en este foro!!!
#138
Principiantes / Re: Duda con while
01 de Julio de 2009, 09:39:52 AM
Entonces, por norma general, poner un if dentro de un while es una solución no muy recomendable o sólo en este caso en el que if y while están realizando la misma condición?

Muchas gracias por tu corrección Buffon.
#139
Principiantes / Re: Duda con while
30 de Junio de 2009, 10:35:26 PM
Bueno ya he hecho unas cuantas modificaciones, a ver qué tal:


#include <stdio.h>
#include <conio.h>

main()
{
   
     /*inicializacion de las variables*/
   
     float total = 0, contador = 0, gasolina, km, resultadoViaje, resultadoTotal;
   
     /* fase de proceso*/
   
     while ( gasolina != -1)
     {
         printf("\nIntroduce la gasolina consumida, (-1 para terminar): ");
         scanf("%f", &gasolina);
         if(gasolina != -1)
         {
            printf("\nIntroduce los km recorridos: ");
            scanf("%f", &km);
            resultadoViaje= (gasolina/km)*100;
            printf("\nEl consumo por 100km de este viaje es: %f\n", resultadoViaje);
            total += resultadoViaje;
            contador++;
         }
     }
   

/* fase final */

   if (contador > 0)
   {
     resultadoTotal = total / contador;
     printf("El resultado total es: %f", resultadoTotal);
   }
   else
       printf("No se ha introducido ningun dato");
     getch();
     return 0;
}


Bueno creo que ahora ya esta todo, gracias a los 2, he aprendido bastante con vuestra ayuda aunque aun queda mucho camino y me veréis más veces por aquí, jeje. Si tenéis alguna observación o corrección más no dudéis en decírmelo.
#140
Principiantes / Re: Duda con while
30 de Junio de 2009, 10:52:33 AM
Ya he conseguido que me haga bien los cálculos y me calcule el total al poner -1. Ha quedado así:



#include <stdio.h>
#include <conio.h>

main()
{
     
     float total, contador, gasolina, km, resultadoViaje, resultadoTotal;
     
     total=0;
     contador=0;
       
     while ( gasolina != -1){
           
                 
                   
     printf("\nIntroduce la gasolina consumida, (-1 para terminar):");
     scanf("%f", &gasolina);
     
     if ( gasolina != -1 )
     {
     
        printf("\nIntroduce los km recorridos, (-1 para terminar):");
        scanf("%f", &km);
             
        resultadoViaje= (km + gasolina)/2;     
        printf("\nLa media de este viaje fue: %f\n", resultadoViaje);
   
           total = total + resultadoViaje;
           contador = contador + 1;
     
     }
      else {
          resultadoTotal= (total / contador);
          printf("La media total es: %f", resultadoTotal);
         
           }
     }
     getch();
     
     return 0;
     
}


He cambiando los int por float para poder calcularlo en decimales. Falta ver lo de la fórmula del consumo medio y lo de controlar que se haya dado al menos un valor, que no sé hacerlo.
#141
Principiantes / Re: Duda con while
30 de Junio de 2009, 10:10:57 AM
Cita de: t-spy
Tienes algunos errores:

- El contador y el total se deben incrementar después de haber calculado la ruta. Al ponerlo donde lo tienes el contador se incrementa cada vez que entras en el bucle, tanto si introduces un -1 a gasolina como si no.

Entonces debería ir al final no? Pero si lo pongo al final del else, cuando meta -1 y me saque del while lo almacenará en total y volverá a sumar el contador no? Y si lo pongo al final del if como he hecho ahora, ya almacenará el valor en total y sumará al contador 1 y cuando meta -1 lo pasará por alto y me calculará el resultadoTotal. Es así?

if ( gasolina != -1 )
     {
     
        printf("\nIntroduce los km recorridos, (-1 para terminar):");
        scanf("%d", &km);
             
        resultadoViaje= (km + gasolina)/2;     
        printf("\nLa media de este viaje fue: %d\n", resultadoViaje);


           total = total + resultadoViaje;
           contador = contador + 1;
     

}
      else {
          resultadoTotal= total / contador;
          printf("La media total es: %d", resultadoTotal);
         
           }
         

Cuando realiza los cálculos almacena el valor del viaje en total y suma 1 al contador, es correcto?

Cita de: t-spy
- Por lo que parece buscas obtener la media de consumo del coche. Si es así, la fórmula (km + gasolina ) / 2 es erronea.
Sí. cuál sería la fórmula, km / gasolina consumida?

Cita de: t-spy
- Tienes que controlar que se haya dado al menos un valor o te dará un error de división por 0 al obtener el resultado total.
Cómo hago eso?

Muchas gracias por la ayuda.
#142
Principiantes / Re: Duda con while
30 de Junio de 2009, 12:23:53 AM
Bueno he intentado arreglarlo con un else y ya me saca del while y me da el resultado, lo que pasa que siempre me da un resultado que no es meta los datos que meta (7776611) y creo que es porque no pongo la línea de   resultadoTotal= total / contador;   donde debo, dejo el código de nuevo a ver si me podéis explicar por qué pasa esto al ponerla después del else y cuál es su solución. Gracias!!!

#include <stdio.h>
#include <conio.h>

main()
{
     
     int total, contador, gasolina, km, resultadoViaje, resultadoTotal;
     
     total=0;
     contador=0;
         
     while ( gasolina != -1){
           
           total = total + resultadoViaje;
           contador = contador + 1;
           
                   
     printf("\nIntroduce la gasolina consumida, (-1 para terminar):");
     scanf("%d", &gasolina);
     
     if ( gasolina != -1 )
     {
     
        printf("\nIntroduce los km recorridos, (-1 para terminar):");
        scanf("%d", &km);
             
        resultadoViaje= (km + gasolina)/2;     
        printf("\nLa media de este viaje fue: %d\n", resultadoViaje);
     }
      else {
          resultadoTotal= total / contador;
          printf("La media total es: %d", resultadoTotal);
         
           }
     }
     getch();
     
     return 0;
     
}
#143
Principiantes / Re: Duda con while
30 de Junio de 2009, 12:06:09 AM
Sí, más o menos así pero necesito que cuando me pida que introduzca la gasolina, si le meto el valor -1 me saque del while y me de la media total de todos los valores que he metido. Si el total de los valores es 1140 y he metido los datos 6 veces, me hará

resultadoTotal = total / contador;

El código que me has puesto me funciona pero al meter el valor -1 me saca del programa y no me da el resultado total. Estoy intentando arreglarlo para que me de el resultado pero me pasa lo mismo de antes, que me hace meter el -1 dos veces, me da el resultado y sale del programa. Seguiré intentándolo media hora más por mi cuenta y si no lo consigo me paso por aquí a ver si me habéis puesto alguna solución.

ZaelSiuS muchas gracias por tu ayuda!!!, por cierto aunque esto ya no entra en el tema, vi un vídeo tuyo en el que salías en canal9 y te entrevistaban, jeje. Saludos.
#144
General / Re: ¿ERES NUEVO EN STRATOS? ¡PRESÉNTATE AQUÍ!
29 de Junio de 2009, 10:00:54 PM
Hola, no había visto este tema ya que aún no he estado mucho por el foro, así que aprovecho para presentarme. Tengo 22 años y estoy estudiando ing. técnica en informática de gestión, hasta ahora me he dedicado a sacar todas las asignaturas rollo de matemáticas y demás y ahora voy a empezar a coger las de programación. Este verano lo voy a dedicar a estudiar C++ por mi cuenta para que cuando empiece el próximo curso tener ciertos conocimientos y no ir tan perdido. Me veréis mucho por la sección de principiantes preguntando dudas porque me cuesta bastante el tema de la programación y de momento no se me da muy bien. Espero que entre todos me podáis ayudar en mis dudas y poder ir mejorando en este lenguaje de programación. Un saludo a todos y gracias por las futuras ayudas que reciba.
#145
Principiantes / Duda con while
29 de Junio de 2009, 09:39:42 PM
Hola a todos. Esta vez tengo una duda con el while. Estoy intentado hacer un programa en el que yo introduzco la gasolina y los km que recorro con el coche en distintos viajes y en el momento que introduzca que el valor de la gasolina sea -1 debe salir del while y calcularme la media total de todos los viajes. El código es el siguiente:

#include <stdio.h>
#include <conio.h>

main()
{
     
     /*inicializacion de las variables*/
   
     int total, contador, gasolina, km, resultadoViaje, resultadoTotal;
     
     total=0;
     contador=0;
     
     /* fase de proceso*/
     
     printf("Introduce la gasolina consumida, (-1 para terminar):");
     scanf("%d", &gasolina);
     
     printf("\nIntroduce los km recorridos, (-1 para terminar):");
     scanf("%d", &km);
             
     resultadoViaje = (km + gasolina)/2;     
     printf("\nLa media de este viaje fue: %d\n", resultadoViaje);
     
                     
     while ( gasolina != -1){
           
           total = total + resultadoViaje;
           contador = contador + 1;
           
                   
     printf("\nIntroduce la gasolina consumida, (-1 para terminar):");
     scanf("%d", &gasolina);
                 
     
     printf("\nIntroduce los km recorridos, (-1 para terminar):");
     scanf("%d", &km);
             
     resultadoViaje= (km + gasolina)/2;     
     printf("\nLa media de este viaje fue: %d\n", resultadoViaje);
     }
   

/* fase final */
 
  if (contador !=0){
    resultadoTotal = total / contador;
    printf("El resultado total es: %d", resultadoTotal);
    }
     
    getch();
    return 0;
}

El problema es que al meter la gasolina como -1 me vuelve a hacer todo el while teniendo que meter de nuevo los km como -1, me dice que la media del viaje es -1 y a continuación me da el total de todos los viajes. Cómo puedo hacer para que sólo metiendo el -1 en gasolina me saque del while y me de el resultado total? Llevo varias horas dándole vueltas y no consigo verlo. Gracias.
#146
Principiantes / Re: Duda de un principiante
27 de Junio de 2009, 03:21:27 PM
Cita de: Netto22 en 27 de Junio de 2009, 01:47:20 PM
Gracias por el anote, creo que empezare a aplicarlo asi sin mas en los mios.

Para el pause hay que llamar a ninguna cabecera en particular no?
Tienes que usar stdlib.h
#147
Principiantes / Re: Duda de un principiante
27 de Junio de 2009, 01:33:33 PM
Cita de: Netto22 en 27 de Junio de 2009, 10:38:09 AM
con la funcion pause es lo que te sale de "Presione una tecla para continuar..." no?
Sí, así es.
#148
Principiantes / Re: Duda de un principiante
25 de Junio de 2009, 08:02:38 AM
Bueno ya me acordé, la función getch(); era la que necesitaba, así ya me sale el resultado de la suma en pantalla y cuando aprieto de nuevo intro se cierra.
#149
Principiantes / Re: Duda de un principiante
24 de Junio de 2009, 11:20:32 PM
Perdón se me olvidó especificarlo, estoy siguiendo un tutorial de C/C++, y este es el código que he hecho:

#include <stdio.h>

main()
{
      int num1, num2, sum;
     
      printf("Introduce dos numeros:");
      scanf("%d%d", &num1, &num2);
     
      sum= num1+num2;
     
      printf("la suma es: %d", sum);

return 0;
}

Si no recuerdo mal, había algo para poner en el código para que la ventana del ms-dos no se cierre hasta que yo no le vuelva a dar a intro, así puedo ver el resultado bien y no se cierra la ventana sola. Me podéis decir como era? Por mucho que le doy vueltas a la cabeza ahora mismo no caigo.
#150
Principiantes / Duda de un principiante
24 de Junio de 2009, 09:24:33 PM
Hola a todos, estoy empezando en el mundo de la programación. Intento hacer un sencillo programa que sume 2 números, compilo y ejecuto. Al ejecutar meto el primer numero y le doy a intro, luego el segundo numero y le doy a intro, y en vez de aparecerme el mensaje de:

la suma es: X

lo que pasa es que se cierra la ventana del ms-dos sin mostrarme el resultado, creo que habia algun comando para que esto no sucediera pero no consigo dar con él, podéis recordarme cuál era? Gracias.





Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.