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

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

Avatar de Usuario
Azrael^^
Enteradillo
Enteradillo
Mensajes: 36
Registrado: 31 Mar 2010, 18:48

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

Mensaje por Azrael^^ »

Ejercicios:
1.
Spoiler:

Código: Seleccionar todo

#include <stdio.h>

int main(int argc, char *argv[])
{

int numero;

printf("Escriba un número del 1 al 100: ");
scanf("%d", &numero);
numero = numero / 10;

switch(numero)
{
  case 0:
    printf("El número está en la primera decena\n");
    break;
  case 1:
    printf("El número está en la segunda decena\n");
    break;
  case 2:
    printf("El número está en la tercera decena\n");
    break;
  case 3:
    printf("El número está en la cuarta decena\n");
    break;
  case 4:
    printf("El número está en la quinta decena\n");
    break;
  case 5:
    printf("El número está en la sexta decena\n");
    break;
  case 6:
    printf("El número está en la septima decena\n");
    break;
  case 7:
    printf("El número está en la octava decena\n");
    break;
  case 8:
    printf("El número está en la novena decena\n");
    break;
  case 9:
    printf("El número está en la decima decena\n");
    break;
  default:
    printf("Ese número no está entre 1 y 100\n");
}

return 0;
}
2.
Spoiler:

Código: Seleccionar todo

#include <stdio.h>

int main(int argc, char *argv[])
{

float num1, num2;
char operacion;

//Pedimos los dos números a operar
  printf("Escriba el primer número: ");
  scanf("%f", &num1);
  printf("Ahora escriba el segunda: ");
  scanf("%f", &num2);

//Ahora las operaciones
  printf("¿Qué quiere hacer con los dos números?\nSumarlos\nRestarlos\nMultiplicarlos\nDividirlos\n");
  scanf("%s", &operacion);

switch(operacion)
{
  case 's':   
    printf("El resultado es: %.0f\n", num1 + num2);
    break;
  case 'r':
    printf("El resultado es: %.0f\n", num1 - num2);
    break;
  case 'm':
    printf("El resultado es: %.0f\n", num1 * num2);
    break;
  case 'd':
    printf("El resultado es: %.2f\n", num1 / num2);
    break;
  default:
    printf("No has elegido ninguna opción de las posibles\n");
}

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 »

Bien, aunque te falla un poco el formateo ;)
Imagen

Avatar de Usuario
Dante
Enteradillo
Enteradillo
Mensajes: 42
Registrado: 28 May 2010, 01:51

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

Mensaje por Dante »

Mis ejercicios, haber que tal les parece, ya estoy con arto sueño asi que si tengo algo mal por favor diganme.

Ejercicio 1
Spoiler:

Código: Seleccionar todo

/*-------------------------*/
/*       Lección VII       */
/*       Ejercicio 1       */
/*                         */
/*    "Uso del switch"     */
/*                         */       
/*          Dante          */
/*                         */
/*        Curso de C       */
/*         M0skit0         */
/*-------------------------*/


#include <stdio.h>

int main()

{

//Numero designado:

int num;

//Instrucciones:
printf("Introduce una cifra entre 0 y 100 ");
scanf("%d", &num);
num = num / 10;

/*Uso del switch para posibles resultados.

ANTENCION en la ultima sección.*/

switch (num)

{

case ' ': printf("Espacio.\n");
break;

case 1: printf("El numero se encuentra en la primera decena\n");
break;

case 2: printf("El numero se encuentra en la segunda decena\n");
break;

case 3: printf("El numero se encuentra en la tercera decena\n");
break;

case 4: printf("El numero se encuentra en la cuarta decena\n");
break;

case 5: printf("El numero se encuentra en la quinta decena\n");
break;

case 6: printf("El numero se encuentra en la sexta decena\n");
break;

case 7: printf("El numero se encuentra en la septima decena\n");
break;

case 8: printf("El numero se encuentra en la octava decena\n");
break;

case 9: printf("El numero se encuentra en la novena decena\n");
break;

/*Aquí en este caso, como el nueve no alcansa el numero 10 no puede contar como si estubiera dentro de la primer decena*/

case 0: printf("El numero esta entre el 0 y el 9 \n");
break;

default: printf("No tecleaste un espacio o un digito\n");

}

getchar();

return 0;

}


Ejercicio 2

Spoiler:

Código: Seleccionar todo

/*-------------------------*/
/*       Lección VII       */
/*       Ejercicio 2       */
/*                         */
/*    "Mini Calculadora"   */
/*                         */       
/*          Dante          */
/*                         */
/*        Curso de C       */
/*         M0skit0         */
/*-------------------------*/

#include <stdio.h>

int main()

{

//Asignacion de numero y operaciones.

int num, num2, eleccion ;
int suma, resta, resta2, multiplicacion;
float  division, division2;

//Intrucciones.
 
printf("Introdusca un numero: \n");
scanf("%d", &num);

printf("Introdusca otro numero: \n");
scanf("%d", &num2);


printf("¿Quieres \n 1.-Sumar.\n 2.-Restar el segundo numero del primer numero\n 3.-Restar el primer numero del segundo numero\n 4.-Dividir el primer numero entre el segundo\n 5.-Dividir el segundo numero entre el primero\n 6.-Multiplicar\n estos dos numeros?\n");

printf("Para poder elegir porfavor introducir el numero de la operacion deseada: ");
scanf("%d", &eleccion);

//Asignacion de valor a las variables.

suma = num + num2;
resta = num - num2;
resta2 = num2 - num;
multiplicacion = (num * num2);
division = num / num2;
division2 = num2 / num;

//Posibilidades de eleccion del usuario.

switch (eleccion)

{

case 1: printf("\nLa suma de los dos numero es: %d\n", suma);
break;
case 2: printf("\nLa resta de el segundo numero del primer numero es: %d\n", resta);
break;
case 3: printf("\nLa resta de el primer numero del segundo numero es: %d\n", resta2);
break;
case 4: printf("\nLa division de el primer numero entre el segundo es: %f\n", division);
break;
case 5: printf("\nLa division de el segundo numero entre el primero es: %f\n", division2);
break;
case 6: printf("\nLa multiplicacion de los dos numeros es: %d\n", multiplicacion);
break;

default: printf("\nNo introdujiste un numero con una opcion dada anteriormente\n");

}

getchar();

return 0;

}


Creo que hay un error en el ejercicio de Azrael, en esta parte.
Spoiler:

Código: Seleccionar todo

switch(numero)
{
  case 0: /*Segun yo aqui el error ya que numero = numero / 10 */
    printf("El número está en la primera decena\n");
    break;
  case 1:
    printf("El número está en la segunda decena\n");
    break;
  case 2:
    printf("El número está en la tercera decena\n");
    break;
  case 3:
    printf("El número está en la cuarta decena\n");
    break;


Según yo esta mal, pienso esto porque si yo eligiera 10 , el programa me indiciaria "El numero esta en la segunda decena" Y así sucesivamente, no se si me explico.

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 »

Lo siento Dante, pero no puedo revisar tu código si no está mínimamente formateado.

Dante escribió:pienso esto porque si yo eligiera 10 , el programa me indiciaria "El numero esta en la segunda decena"

Es correcto porque 10 está en la segunda decena.
Imagen

Avatar de Usuario
Dante
Enteradillo
Enteradillo
Mensajes: 42
Registrado: 28 May 2010, 01:51

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

Mensaje por Dante »

Bueno creo que en esta manera esta algo mas legible.

A lo que me refería era que el 10 se se encuentra en la primera decena no en la segunda, por que hasta el numero 10 se completa la primera decena, hasta el veinte la segunda decena. Por lo menos es lo que sigo creyendo que la primera decena esta del 10 al 19 u.u

Spoiler:

Código: Seleccionar todo

/*-------------------------*/
/*       Lección VII       */
/*       Ejercicio 1       */
/*                         */
/*    "Uso del switch"     */
/*                         */       
/*          Dante          */
/*                         */
/*        Curso de C       */
/*         M0skit0         */
/*-------------------------*/


#include <stdio.h>

int main()

{

   int num; //Numero designado:

   printf("Introduce una cifra entre 0 y 100 "); //Instrucciones:
   scanf("%d", &num);
   
   num = num / 10;

   switch (num) /*Uso del switch para posibles resultados. ANTENCION en la ultima sección.*/
   {
       case ' ': printf("Espacio.\n");
       break;

       case 1: printf("El numero se encuentra en la primera decena\n");
       break;

       case 2: printf("El numero se encuentra en la segunda decena\n");
       break;

       case 3: printf("El numero se encuentra en la tercera decena\n");
       break;

       case 4: printf("El numero se encuentra en la cuarta decena\n");
       break;

       case 5: printf("El numero se encuentra en la quinta decena\n");
       break;

       case 6: printf("El numero se encuentra en la sexta decena\n");
       break;

       case 7: printf("El numero se encuentra en la septima decena\n");
       break;

       case 8: printf("El numero se encuentra en la octava decena\n");
       break;

       case 9: printf("El numero se encuentra en la novena decena\n");
       break;

       /*Aquí en este caso, como el nueve no alcansa el numero 10 no puede contar como si estubiera dentro de la primer decena*/

       case 0: printf("El numero esta entre el 0 y el 9 \n");
       break;

       default: printf("No tecleaste un espacio o un digito\n");
   }

    getchar();

    return 0;

}


Spoiler:

Código: Seleccionar todo

/*-------------------------*/
/*       Lección VII       */
/*       Ejercicio 2       */
/*                         */
/*    "Mini Calculadora"   */
/*                         */       
/*          Dante          */
/*                         */
/*        Curso de C       */
/*         M0skit0         */
/*-------------------------*/

#include <stdio.h>

int main()

{

   int num, num2, eleccion ;
   int suma, resta, resta2, multiplicacion;
   float  division, division2;

   printf("Introdusca un numero: \n"); //Instrucciones
   scanf("%d", &num);

   printf("Introdusca otro numero: \n");
   scanf("%d", &num2);

   printf("¿Quieres \n 1.-Sumar.\n 2.-Restar el segundo numero del primer numero\n 3.-Restar el primer numero del segundo numero\n 4.-Dividir el primer numero entre el segundo\n 5.-Dividir el segundo numero entre el primero\n 6.-Multiplicar\nestos dos numeros?\n");

   printf("Para poder elegir porfavor introducir el numero de la operacion deseada: ");
   scanf("%d", &eleccion);

   suma = num + num2; //Asignacion de valor a las variables.
   resta = num - num2;
   resta2 = num2 - num;
   multiplicacion = (num * num2);
   division = num / num2;
   division2 = num2 / num;

   switch (eleccion) //Posibilidades de eleccion del usuario.
   {
        case 1: printf("\nLa suma de los dos numero es: %d\n", suma);
        break;

        case 2: printf("\nLa resta de el segundo numero del primer numero es: %d\n", resta);
        break;

        case 3: printf("\nLa resta de el primer numero del segundo numero es: %d\n", resta2);
        break;

        case 4: printf("\nLa division de el primer numero entre el segundo es: %f\n", division);
        break;

        case 5: printf("\nLa division de el segundo numero entre el primero es: %f\n", division2);
        break;

        case 6: printf("\nLa multiplicacion de los dos numeros es: %d\n", multiplicacion);
        break;

        default: printf("\nNo introdujiste un numero con una opcion dada anteriormente\n");

   }

   getchar();

   return 0;

}


Edit: No note el error con la división, pero ya esta arreglado. En un rato me pongo a hacer los de la leccion VIII
Spoiler:

Código: Seleccionar todo

/*-------------------------*/
/*       Lección VII       */
/*       Ejercicio 2       */
/*                         */
/*    "Mini Calculadora"   */
/*                         */       
/*          Dante          */
/*                         */
/*        Curso de C       */
/*         M0skit0         */
/*-------------------------*/

#include <stdio.h>

int main()

{

   int num, num2, eleccion ;
   int suma, resta, resta2, multiplicacion;
   
   printf("Introdusca un numero: \n"); //Instrucciones
   scanf("%d", &num);

   printf("Introdusca otro numero: \n");
   scanf("%d", &num2);

   printf("¿Quieres \n 1.-Sumar.\n 2.-Restar el segundo numero del primer numero\n 3.-Restar el primer numero del segundo numero\n 4.-Dividir el primer numero entre el segundo\n 5.-Dividir el segundo numero entre el primero\n 6.-Multiplicar\n estos dos numeros?\n");

   printf("Para poder elegir porfavor introducir el numero de la operacion deseada: ");
   scanf("%d", &eleccion);

   suma = num + num2; //Asignacion de valor a las variables.
   resta = num - num2;
   resta2 = num2 - num;
   multiplicacion = (num * num2);
   
   switch (eleccion) //Posibilidades de eleccion del usuario.
   {
        case 1: printf("\nLa suma de los dos numero es: %d\n", suma);
        break;

        case 2: printf("\nLa resta de el segundo numero del primer numero es: %d\n", resta);
        break;

        case 3: printf("\nLa resta de el primer numero del segundo numero es: %d\n", resta2);
        break;

        case 4: printf("\nLa division de el primer numero entre el segundo es: %f\n", (float)num / (float)num2);
        break;

        case 5: printf("\nLa division de el segundo numero entre el primero es: %f\n", (float)num2 / (float)num);
        break;

        case 6: printf("\nLa multiplicacion de los dos numeros es: %d\n", multiplicacion);
        break;

        default: printf("\nNo introdujiste un numero con una opcion dada anteriormente\n");

   }

   getchar();

   return 0;

}
Última edición por Dante el 30 Sep 2010, 22:55, editado 1 vez en total.

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 »

Ya sé que te referías a eso, no hay nada más a qué referirse xD Y estás equivocado. 10 está en la segunda decena. La primera decena va del 0 al 9, la segunda del 10 al 19 y así sucesivamente. No veo por qué del 0-9 no van en ninguna decena. Llámala decena 0 si quieres, pero es son diez números, por tanto una decena. No confundas una decena con las decenas (el número que va en posición de 10^1).

En el segundo ejercicio pecas de sobrecálculo, es decir, sólo necesitas calcular lo que se te ha pedido, no todo. Si por ejemplo se te pide una suma, ¿para qué calculas la división, la resta y la multiplicación? Es un gasto de recursos inútil. Limítate a hacer lo que ha pedido el usuario. Además, la división la realizas mal, los resultados que se obtienen son erróneos. Puedes comprobarlo dividiendo 5 entre 3 por ejemplo. Esto deberías comprobarlo tú mismo antes de postear el ejercicio :S Y aparte de todo esto, no veo la utilidad de realizar 2 restas y 2 divisiones. Se supone que es el primer número menos/entre el segundo número, no te compliques la vida.

Y efectivamente, mucho mejor el formateo, así los demás no enteramos de algo.
Imagen

Avatar de Usuario
~Rdavid~
Experto
Experto
Mensajes: 965
Registrado: 12 Nov 2009, 17:29
Ubicación: Costa Rica

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

Mensaje por ~Rdavid~ »

Dejo los ejercicios de esta lección :oki:

Spoiler:

Código: Seleccionar todo

#include <stdio.h>

int main(int argc, char *argv[])
{
  int num, num2;
 
  printf("Escriba un numero del 0 al 100: \n");
  scanf("%d", &num);
 
  num2 = num /10;
 
  switch (num2)
  {
    case 0:
      printf("%d esta en la 1° decena\n", num);
      break;
    case 1:
      printf("%d esta en la 2° decena\n", num);
      break;
    case 2:
      printf("%d esta en la 3° decena\n", num);
      break;
    case 3:
      printf("%d esta en la 4° decena\n", num);
      break;
    case 4:
      printf("%d esta en la 5° decena\n", num);
      break;
    case 5:
      printf("%d esta en la 6° decena\n", num);
      break;
    case 6:
      printf("%d esta en la 7° decena\n", num);
      break;
    case 7:
      printf("%d esta en la 8° decena\n", num);
      break;
    case 8:
      printf("%d esta en la 9° decena\n", num);
      break;
    case 9:
      printf("%d esta en la 10° decena\n", num);
      break;
    case 10:
      printf("%d esta en la 11° decena\n", num);
    default:
      printf("Tiene que ser entre 1 y 100\n");
      break;
  } 
 
 
  return 0;
}


Spoiler:

Código: Seleccionar todo

#include <stdio.h>

int main(int argc, char *argv[])
{
  float num1, num2, result;
  int fact;
 
  printf("Introduce el primer número: ");
  scanf("%f", &num1);
  printf("Introduce el segundo número: ");
  scanf("%f", &num2);
 
  printf("\nEscoje una de las siguientes opciones\n\n");
  printf("Escribe 1 para multiplicarlos\n");
  printf("Escribe 2 para dividirlos\n");
  printf("Escribe 3 para restarlos\n");
  printf("Escribe 4 para sumarlos\n\n");
 
  scanf("%d", &fact);
 
  switch (fact)
  {
    case 1:
      result = num1 * num2;
      printf("Escogiste multiplicar\n");
      printf("Resultado: %.2f\n",result);
      break;
    case 2:
      result = num1 / num2;
      printf("Escogiste divir\n");
      printf("Resultado: %.2f\n", result);
      break;
    case 3:
      result = num1 - num2;
      printf("Escogiste restar\n");
      printf("Resultado: %.2f\n", result);
      break;
    case 4:
      result = num1 + num2;
      printf("Escogiste sumar\n");
      printf("Resultado: %.2f\n", result);
      break;
    default:
      printf("No pulsaste ninguna opcion\n");
      break;
  }
 
  return 0;
}
Imagen

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 »

Muy bien, ~Rdavid~. Como única indicación, me gustaría que dieras nombres más adecuados a las variables. Por ejemplo, en el primer ejercicio, num2 sería más correctamente nombrada decena. Acostúmbrate a dar nombres lo más descriptivos y cortos posible (la descripción tiene preferencia sobre la longitud).
Imagen

Avatar de Usuario
~Rdavid~
Experto
Experto
Mensajes: 965
Registrado: 12 Nov 2009, 17:29
Ubicación: Costa Rica

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

Mensaje por ~Rdavid~ »

Claro, lo tendré en cuenta (aunque tal vez ya cometí este error en la parte VIII del curso xD . Gracias :oki:
Imagen

Avatar de Usuario
Dark Pallacus
ViP Hordes
ViP Hordes
Mensajes: 1509
Registrado: 03 Sep 2009, 00:35
PSN ID: Pallacus
Ubicación: Barcelona
Contactar:

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

Mensaje por Dark Pallacus »

Ahora entiendo el daño que hace tanto off-topic :$
Pues yo quiero construirme un R2-D2 con control remoto, que me siga, que se enchufe él mismo a la corriente. Y llevará integrado un PC y una PS3 y un proyector en la cúpula. :tongue:

Al lio, he hecho el primero considerando que la primera decena es del 1 al 10. Pero como el jefe ha definido la primera decena del 0 al 9 lo he modificado. :P
Spoiler:

Código: Seleccionar todo

#include <stdio.h>

int main()
{
  int numero, decena;
 
  // Pedimos al usuario que introduzca un número del 1 al 100
  printf("\n Selecciona un número del 1 al 100: ");
  scanf("%i", &numero);
 
  //Comprobamos que el número introducido está dentro del rango.
  if (numero<0)
    decena = 111;
  else if (numero>100)
    decena = 111;
  else
    //Calculamos la decena
    decena = numero / 10;
   
  //Comprobamos en que decena se encuentra y mostramos el resultado.
  switch(decena)
  {
    case 0:
      printf("\n %d pertenece a la primera decena.\n\n", numero);
      break;
    case 1:
      printf("\n %d pertenece a la segunda decena.\n\n", numero);
      break;
    case 2:
      printf("\n %d pertenece a la tercera decena.\n\n", numero);
      break;
    case 3:
      printf("\n %d pertenece a la cuarta decena.\n\n", numero);
      break;
    case 4:
      printf("\n %d pertenece a la quinta decena.\n\n", numero);
      break;
    case 5:
      printf("\n %d pertenece a la sexta decena.\n\n", numero);
      break;
    case 6:
      printf("\n %d pertenece a la septima decena.\n\n", numero);
      break;
    case 7:
      printf("\n %d pertenece a la octava decena.\n\n", numero);
      break;
    case 8:
      printf("\n %d pertenece a la novena decena.\n\n", numero);
      break;
    case 9:
      printf("\n %d pertenece a la decima decena.\n\n", numero);
      break;
    case 10:
      printf("\n Es el 100!!!\n\n Undecima decena ;)\n\n");
      break;
    default:
      printf("\n Tenias 100 para elegir! No eran suficientes?\n\n");
      break;
  }
 
  return 0;
}

Ciertamente el segundo era el fácil ;)

Al final del programa dice "Gracias por usar opera." porque lo he nombrado opera.c. XD
Spoiler:

Código: Seleccionar todo

#include <stdio.h>

int main(int argc, char *argv[])
{
  float numero_1, numero_2;
  int opcion;
 
  // Pedimos al usuario que introduzca dos números.
  printf("\n Por favor, introduce dos numeros enteros: ");
  scanf("%f %f", &numero_1, &numero_2);
 
  //Pedimos al usuario que elija la operación que se aplicará a ambos números.
  printf("\n Elije que operacion se aplicara a los anteriores numeros: \n");
  printf("\n 1 - Suma.");
  printf("\n 2 - Diferencia.");
  printf("\n 3 - Producto.");
  printf("\n 4 - Division.\n\n ");
  scanf("%d", &opcion);
 
  //Según la opción elegida por el usuario mostraremos el resultado.
  switch(opcion)
  {
    case 1:
      printf("\n La suma de %.0f y %.0f da: %.0f ", numero_1, numero_2, numero_1 + numero_2);
      break;
    case 2:
      printf("\n La diferencia entre %.0f y %.0f es de: %.0f ", numero_1, numero_2, numero_1 - numero_2);
      break;
    case 3:
      printf("\n El producto de %.0f y %.0f es: %.0f ", numero_1, numero_2, numero_1 * numero_2);
      break;
    case 4:
      printf("\n %.0f dividido entre %.0f da: %.0f ", numero_1, numero_2, numero_1 / numero_2);
      break;
    //Si se ha elegido cualquier otra opción devolvemos un error.
    default:
      printf("\n Mira que solo habia 4 opciones! Que significa %d?", opcion);
      break;
  }
 
  //Nos despedimos. No está de mas ser educado.
  printf("\n\n     Gracias por usar opera!\n\n");
 
  return 0;
}
PS3 - PSP 2000

Responder