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

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 (V)

Mensaje por m0skit0 »

Vamoooooooooooooooos :mrgreen:
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 (V)

Mensaje por Dark Pallacus »

Duda:
Supongo que lo veremos mas adelante pero sengún entiendo el comando "if", se comporta al contrario de lo que deberia.
Y por otro lado he tenido que usar [ if(sumam<1)] en vez de [ if(sumam=0)] porque me cambiaba el valor de "sumam" a cero. Supongo que será cuestión de sintaxis.

De momento la suma funciona bien, seguiré revisando el resto. ;)
PS3 - PSP 2000

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 (V)

Mensaje por ~Rdavid~ »

Dark Pallacus escribió:Duda:

Y por otro lado he tenido que usar [ if(sumam<1)] en vez de [ if(sumam=0)] porque me cambiaba el valor de "sumam" a cero. Supongo que será cuestión de sintaxis.

De momento la suma funciona bien, seguiré revisando el resto. ;)


Eso es porque le estas dando el valor de 0 a sumam, para comprarlo tienes que poner == en vez de =, eso lo veras ya casi.
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 (V)

Mensaje por Dark Pallacus »

Poseso, sintaxis. Gracias Rdavid.

Y para diferente?
PS3 - PSP 2000

Avatar de Usuario
dark_sasuke
Moderador Global
Moderador Global
Mensajes: 3380
Registrado: 03 Sep 2009, 02:13
Twitter: D4rkyt0

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

Mensaje por dark_sasuke »

!=
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 (V)

Mensaje por Dark Pallacus »

Gracias Darky ;)

No se porque "meda = 4196176" Mirad:
Spoiler:

Código: Seleccionar todo

//incluimos las librerias requeridas.
#include <stdio.h>
#include <unistd.h>

int main(int argc, char *argv[])
{
 //Declaramos las variables:
   float edad1, edad2, medm;
   int ano1, ano2, mes1, mes2, sumam, sumaa, meda;
 //Pedimos al usuario que introduzca su edad y la de otra persona:
   printf("\nPor favor, introduce tu edad, anhos y meses (aa mm): ");
   scanf("%d %d", &ano1, &mes1);
   printf("Por favor, introduce otra edad(aa mm): ");
   scanf("%d %d", &ano2, &mes2);

 //Preparamos los datos para poder operar con ellos:
   edad1 = ano1 * 12 + mes1;
   edad2 = ano2 * 12 + mes2;

 //Hacemos la suma de las edades:
   sumam = edad1 + edad2;
   while(sumam>11)
   {
      sumaa = sumaa +1;
      sumam = sumam -12;
   }
   printf("\nLa suma de vuestras edades es de %d anhos", sumaa);
   if(sumam != 0)
   {   
      printf(" y %d meses", sumam);
   }
   printf(".\n");

 //Hacemos la media de las edades:
//   meda = 0;
   medm = ( edad1 + edad2 ) / 2;
//   while(medm>11)
//   {
//      meda = meda + 1;
//      medm = medm - 12;
//   }
   printf("La media de vuestras edades es de %d anhos", meda);
   if(medm!=0)
   {
      printf(" y %.1f meses", medm);
   }
   printf(".\n");

// linea de control para saber si se preparan bien los datos:
printf("\nmeda: %d \n medm: %f \n \n", meda, medm);
}

Código: Seleccionar todo

Por favor, introduce tu edad, anhos y meses (aa mm): 33 4
Por favor, introduce otra edad(aa mm): 25 9

La suma de vuestras edades es de 59 anhos y 1 meses.
La media de vuestras edades es de 4196176 anhos y 354.5 meses.

meda: 4196176
 medm: 354.500000
 
Última edición por Dark Pallacus el 03 Ene 2011, 01:33, editado 1 vez en total.
PS3 - PSP 2000

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 (V)

Mensaje por ~Rdavid~ »

Eso es porque no le has dado ningún valor a meda, has meda = 0 cuando defines esa variable, ah y usa nombres en variables más descriptivas xD
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 (V)

Mensaje por Dark Pallacus »

Al final lo he calculado todo a partir de los meses, por tanto he vuelto a empezar :P

Rdavid, en cuanto a las variables, he intentado sintetizar lo maximo posible, pero estoy abierto a sugerencias.
Esta era mi intención:
Spoiler:
ano1: para tomar los años del individuo 1.
ano2: para tomar los años del individuo 2.
mes1: para tomar los meses del individuo 1.
mes2: para tomar los meses del individuo 2.
edad1: para trabajar con la "edad en meses" del individuo 1.
edad2: para trabajar con la "edad en meses" del individuo 2.
sumam: para trabajar la suma de edades en meses.
sumaa: para trabajar la suma de edades en años.
meda: para trabajar la media en años.
prodm: para trabajar el producto en meses.
proda: para trabajar el producto en años.
difm: para trabajar la diferencia en meses.
difa: para trabajar la diferencia en años.

medm: para trabajar la media en meses.


Al final:
Spoiler:

Código: Seleccionar todo

//incluimos las librerias requeridas.
#include <stdio.h>
#include <unistd.h>

int main(int argc, char *argv[])
{
 //Declaramos las variables:
   int ano1, ano2, mes1, mes2, edad1, edad2, sumam, sumaa, meda, prodm, proda, difm, difa;
   float medm;
 //Pedimos al usuario que introduzca su edad y la de otra persona:
   printf("\nPor favor, introduce tu edad, anhos y meses (aa mm): ");
   scanf("%d %d", &ano1, &mes1);
   printf("Por favor, introduce otra edad(aa mm): ");
   scanf("%d %d", &ano2, &mes2);

 //Preparamos los datos para poder operar con ellos:
   edad1 = ano1 * 12 + mes1;
   edad2 = ano2 * 12 + mes2;

 //Hacemos la suma de las edades:
   sumam = edad1 + edad2;
   while(sumam>11)
   {
      sumaa = sumaa +1;
      sumam = sumam -12;
   }
   printf("\nLa suma de vuestras edades es de %d anhos", sumaa);
   if(sumam != 0)
   {   
      printf(" y %d meses", sumam);
   }
   printf(".\n");

 //Hacemos la media de las edades:
   meda = 0;
   medm = ( edad1 + edad2 ) / 2;
   while(medm>11)
   {
      meda = meda + 1;
      medm = medm - 12;
   }
   printf("La media de vuestras edades es de %d anhos", meda);
   if(medm!=0)
   {
      printf(" y %.1f meses", medm);
   }
   printf(".\n");

 //Calculamos mal el producto, de momento:
   proda = 0;
   prodm = edad1 * edad2 / 12;
   while(prodm>11)
   {
      proda = proda + 1;
      prodm = prodm - 12;
   }
   printf("El producto de ambas edades es de %d anhos", proda);
   if(prodm!=0)
   {
      printf(" y %d meses", prodm);
   }
   printf(".\n");

 //Calculamos la diferencia de edad:
   difa = 0;
   difm = edad1 - edad2;
   if(difm<0)
   {
      difm = difm * -1;
   }
   while(difm>11)
   {
      difa = difa +1;
      difm = difm -12;
   }
   printf("Os llevais %d anhos", difa);
   if(difm!=0)
   {
      printf(" y %d meses", difm);
   }
   printf(".\n");

 //Y nos despedimos.
   printf("\n");

}

Código: Seleccionar todo

albert@albert-K50IE:~/Documents/Programació/C/Lección 05/Variables 3$ ./var5a
Por favor, introduce tu edad, anhos y meses (aa mm): 33 9
Por favor, introduce otra edad(aa mm): 25 4

La suma de vuestras edades es de 59 anhos y 1 meses.
La media de vuestras edades es de 29 anhos y 6.0 meses.
El producto de ambas edades es de 855 anhos.
Os llevais 8 anhos y 5 meses.

albert@albert-K50IE:~/Documents/Programació/C/Lección 05/Variables 3$
PS3 - PSP 2000

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 (V)

Mensaje por ~Rdavid~ »

Dark Pallacus escribió:
Rdavid, en cuanto a las variables, he intentado sintetizar lo maximo posible, pero estoy abierto a sugerencias.


Bueno es solo una sugerencia para que cuando hagas cosas más complejas sea más fácil para ti y para los que te ayuden entender tu código además es una buena costumbre :oki:
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 (V)

Mensaje por m0skit0 »

Es aconsejable poner nombres de variables lo más descriptivos posibles. No influye en nada, y si se utiliza un editor de código decente no hace falta ni escribirlas enteras.

Saludos.
Imagen

Responder