[Curso] Introducción a la programación en C (VII)

Moderadores: Kravenbcn, largeroliker, fidelcastro, cerealkiller, pspCaracas, m0skit0, LnD, ka69, zacky06

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: [Curso] Introducción a la programación en C (VII)

Mensaje por m0skit0 »

JeF-G escribió:El primero:

Código: Seleccionar todo

if (numero == 10)
{
   printf ("Felicitaciones por selecionar el cien!\n");
}

Pues no. ¿Y el 101? ¿102? ¿103? :roll:

JeF-G escribió:El segundo:

Código: Seleccionar todo

  if (operacion > 4)
  {
     printf ("Debes elegir el numero de una operacion melon.\n");
  }

Melón tú :lol: ¿Y si meto -2? :twisted:

Código: Seleccionar todo

      //Resuelve operaciones
      suma = num1 + num2;
      resta = num1 - num2;
      producto = num1 * num2;
      division = num1 / num2;

¿Para qué haces 4 operaciones cuando sólo se te está solicitando una?

Venga, a por ello :oki:
Imagen

JeFNDZ
Habitual
Habitual
Mensajes: 378
Registrado: 11 Sep 2009, 06:44

Re: [Curso] Introducción a la programación en C (VII)

Mensaje por JeFNDZ »

m0skit0 escribió:Pues no. ¿Y el 101? ¿102? ¿103? :roll:

¿Te refieres a añadir otra decena?
Aqui esta con otra decena:
Spoiler:

Código: Seleccionar todo

#include "stdio.h"

int main (int argc, char* argv[])
{
    int numero;
   
    //Solicita el numero
    printf ("Introduce un numero del 0 al 100:\n");
    scanf ("%d", &numero);
   
    numero = numero / 10;
   

    switch (numero)
    {
           
           case 0:
                printf ("Esta en la primera decena.\n");
                break;
           
           case 1:
                printf ("Esta en la segunda decena.\n");
                break;
           
           case 2:
                printf ("Esta en la tercera decena.\n");
                break;
           
           case 3:
                printf ("Esta en la cuarta decena.\n");
                break;
           
           case 4:
                printf ("Esta en la quinta decena.\n");
                break;
           
           case 5:
                printf ("Esta en la sexata decena.\n");
                break;
           
           case 6:
                printf ("Esta en la septima decena.\n");
                break;
           
           case 7:
                printf ("Esta en la octava decena.\n");
                break;
           
           case 8:
                printf ("Esta en la novena decena.\n");
                break;
           
           case 9:
                printf ("Esta en la decima decena.\n");
                break;
           
           case 10:
                printf ("Esta en la decimoprimera decena.\n");
                break;
           
           default:
                printf ("Tiene que ser entre 0 y 100 Melon.\n");
    }
   
    return 0;
}

En el segundo espero aver corregido todo:
Spoiler:

Código: Seleccionar todo

#include <stdio.h>

int main(int argc, char *argv[])
{
  float num1 , num2;
  int operacion;
 
  printf ("Escriba el numero de la operacion que desea hacer:\n1 Suma\n2 Resta\n3 Multiplicacion\n4 Division\n");
  printf ("Numero: ");
  scanf ("%d", &operacion);
 
  if (operacion > 4)
  {
      printf ("Debes elegir el numero de una operacion melon.\n");
  }
 
  else if (operacion < 1)
  {
      printf ("No puede ser negativo (debe ser entre +1 y +4).\n");
  }
 
  else
  {   
      //Solicita el primer numero
      printf ("Introduzca el primer numero:\n");
      scanf ("%f", &num1);
 
      //Solicita el segundo numero
      printf ("Introduzca el segundo numero:\n");
      scanf ("%f", &num2);
     
 
      switch (operacion)
      {
             case 1:
                  printf("La suma de los numeros es: %f\n", num1 + num2);
                  break;
           
             case 2:
                  printf ("La resta de los numeros es: %f\n", num1 - num2);
                  break;
             
             case 3:
                  printf ("La multiplicacion de los numeros es: %f\n", num1 * num2);
                  break;
             
             case 4:
                  printf ("La division de los numeros es: %f\n", num1 / num2);
                  break;                       
      }           
  }
 
  return 0;
}

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: [Curso] Introducción a la programación en C (VII)

Mensaje por m0skit0 »

JeF-G escribió:¿Te refieres a añadir otra decena?

No, me refiero a que si meto 105, tu programa me dice: Felicitaciones por selecionar el cien!. Esto está mal. Nadie ha dicho de poner otra decena, sino que soluciones ese comportamiento erróneo. No inventes requisitos ;)

JeF-G escribió:En el segundo espero aver corregido todo:

"haber" :roll:

Código: Seleccionar todo

  if (operacion > 4)
  {
      printf ("Debes elegir el numero de una operacion melon.\n");
  }
 
  else if (operacion < 1)
  {
      printf ("No puede ser negativo (debe ser entre +1 y +4).\n");
  }

Se puede dar por válido, pero realmente Debes elegir el numero de una operacion melon te vale para cambas condiciones, no hace falta una explícitamente para negativos. Pon ambas condiciones en el mismo if con el mismo mensaje.

En cuanto al switch, está bien, no hay pegas. Ahora intenta hacerlo parecido a como lo tenías antes

Código: Seleccionar todo

//Resuelve operaciones
suma = num1 + num2;
resta = num1 - num2;
producto = num1 * num2;
division = num1 / num2;

pero sólo haciendo la operación que se pida.
Imagen

JeFNDZ
Habitual
Habitual
Mensajes: 378
Registrado: 11 Sep 2009, 06:44

Re: [Curso] Introducción a la programación en C (VII)

Mensaje por JeFNDZ »

Aquí estan los dos ejercicios de nuevo :D .

El primero:
Spoiler:

Código: Seleccionar todo

#include "stdio.h"

int main (int argc, char* argv[])
{
    int numero;
   
    //Solicita el numero
    printf ("Introduce un numero del 0 al 100:\n");
    scanf ("%d", &numero);
   
   
   
if (numero == 100)
   {
    printf ("Es el cienesimo...\n");
   }
   
   else
   {
        numero = numero / 10;
           
        switch (numero)
        {
               
               case 0:
                    printf ("Esta en la primera decena.\n");
                    break;
               
               case 1:
                    printf ("Esta en la segunda decena.\n");
                    break;
               
               case 2:
                    printf ("Esta en la tercera decena.\n");
                    break;
               
               case 3:
                    printf ("Esta en la cuarta decena.\n");
                    break;
               
               case 4:
                    printf ("Esta en la quinta decena.\n");
                    break;
               
               case 5:
                    printf ("Esta en la sexata decena.\n");
                    break;
               
               case 6:
                    printf ("Esta en la septima decena.\n");
                    break;
               
               case 7:
                    printf ("Esta en la octava decena.\n");
                    break;
               
               case 8:
                    printf ("Esta en la novena decena.\n");
                    break;
               
               case 9:
                    printf ("Esta en la decima decena.\n");
                    break;
               
               default:
                    printf ("Tiene que ser entre 0 y 100 Melon.\n");
        }
   }
    return 0;
}

El segundo:
Spoiler:

Código: Seleccionar todo

#include <stdio.h>

int main(int argc, char *argv[])
{
  float num1 , num2;
  int operacion;
  float suma , resta , producto , division;
 
  //Solicita el numero para la opercion
  printf ("Escriba el numero de la operacion que desea hacer:\n1 Suma\n2 Resta\n3 Multiplicacion\n4 Division\n");
  printf ("Numero: ");
  scanf ("%d", &operacion);
 
  if (operacion < 1 || operacion > 4)
  {
      printf ("Debes elegir el numero de una operacion melon.\n");
  }
 
  else
  {   
      //Solicita el primer numero
      printf ("Introduzca el primer numero:\n");
      scanf ("%f", &num1);
 
      //Solicita el segundo numero
      printf ("Introduzca el segundo numero:\n");
      scanf ("%f", &num2);
     
 
      switch (operacion)
      {
             case 1:
                  suma = num1 + num2;
                  printf("La suma de los numeros es: %f\n", suma);
                  break;
           
             case 2:
                  resta = num1 - num2;
                  printf ("La resta de los numeros es: %f\n", resta);
                  break;
             
             case 3:
                  producto = num1 * num2;
                  printf ("La multiplicacion de los numeros es: %f\n", producto);
                  break;
             
             case 4:
                  division = num1 / num2;
                  printf ("La division de los numeros es: %f\n", division);
                  break;                       
      }           
  }
 
  return 0;
}

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: [Curso] Introducción a la programación en C (VII)

Mensaje por m0skit0 »

Están muy bien, pero te sigo dando la vara :lol:

JeF-G escribió:float suma , resta , producto , division;

¿4 variables cuando sólo vas a usar una? ;)
Imagen

JeFNDZ
Habitual
Habitual
Mensajes: 378
Registrado: 11 Sep 2009, 06:44

Re: [Curso] Introducción a la programación en C (VII)

Mensaje por JeFNDZ »

Ya esta:
Spoiler:

Código: Seleccionar todo

#include <stdio.h>

int main(int argc, char *argv[])
{
  float num1 , num2 , numOper;
  int operacion;
 
  //Solicita el numero para la opercion
  printf ("Escriba el numero de la operacion que desea hacer:\n1 Suma\n2 Resta\n3 Multiplicacion\n4 Division\n");
  printf ("Numero: ");
  scanf ("%d", &operacion);
 
  if (operacion < 1 || operacion > 4)
  {
      printf ("Debes elegir el numero de una operacion melon.\n");
  }
 
  else
  {   
      //Solicita el primer numero
      printf ("Introduzca el primer numero:\n");
      scanf ("%f", &num1);
 
      //Solicita el segundo numero
      printf ("Introduzca el segundo numero:\n");
      scanf ("%f", &num2);
     
 
      switch (operacion)
      {
             case 1:
                  numOper = num1 + num2;
                  printf("La suma de los numeros es: %f\n", numOper);
                  break;
           
             case 2:
                  numOper = num1 - num2;
                  printf ("La resta de los numeros es: %f\n", numOper);
                  break;
             
             case 3:
                  numOper = num1 * num2;
                  printf ("La multiplicacion de los numeros es: %f\n", numOper);
                  break;
             
             case 4:
                  numOper = num1 / num2;
                  printf ("La division de los numeros es: %f\n", numOper);
                  break;                       
      }           
  }
 
  return 0;
}

PD: Talvez tome un receso en C para avanzar un capitulo en C++.

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: [Curso] Introducción a la programación en C (VII)

Mensaje por m0skit0 »

OK :oki:
Imagen

Avatar de Usuario
cripii5
Experto
Experto
Mensajes: 1948
Registrado: 14 Dic 2010, 03:15
Gamertag Xbox Live: cripii5
Steam ID: cripii5
Twitter: cripii5
Ubicación: Uruguay

Re: [Curso] Introducción a la programación en C (VII)

Mensaje por cripii5 »

Me encanta leer estos post porque me refresco la memoria en cuanto a C++, pero no ando capaz de crear nada, espero volver a los estudios pronto. Primero pones al libreria, luego declaras las variables.... no se porque recuerdo esas cosas y quiero volver a estudiar :cry:

-- Doble Post --

buah, mensaje viejo en este hilo :lol: no pense en aquel entonces que iba a llegar aca con ganas de aprender :lol:

Mi problema es que cuando pongo case con varios numeros, mi tira error, aun con el ejemplo de moskito, me señala la linea con el case que contiene varios numeros, en el caso del ejemplo de moskito seria case 4, 5: y pone
In function "main":
syntax error before "," token
[Build Error] [main.o] Error 1

Tratare de adivinar que me dira moskito.... "No uses Windows" :lol:
Yo

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: [Curso] Introducción a la programación en C (VII)

Mensaje por m0skit0 »

Pon el cacho del código que corresponde con dicha parte.
Imagen

Avatar de Usuario
cripii5
Experto
Experto
Mensajes: 1948
Registrado: 14 Dic 2010, 03:15
Gamertag Xbox Live: cripii5
Steam ID: cripii5
Twitter: cripii5
Ubicación: Uruguay

Re: [Curso] Introducción a la programación en C (VII)

Mensaje por cripii5 »

Es que, ya dije que me pasa aun con tu ejemplo:

Código: Seleccionar todo

        case 4, 5:
            printf("El cuatro o el cinco!\n");
            break;

C:\Dev-Cpp\main.c In function `main':
25 C:\Dev-Cpp\main.c syntax error before ',' token
C:\Dev-Cpp\Makefile.win [Build Error] [main.o] Error 1

Si a vos te corre tu ejemplo en Linux, entonces el problema es algo fuera de C
Última edición por cripii5 el 18 May 2011, 19:20, editado 2 veces en total.
Yo

Responder