Página 2 de 7

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

Publicado: 22 Ene 2010, 12:37
por finfantasy
Puedes llamarlo como floats, igual que tienes declarado x1 y x2, aunque creo recordar que los floats eran 4 bytes y los double 8 bytes. Supongo que para eso que haces, con 4 bytes tendrás suficiente, así que declaralas todas como floats.

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

Publicado: 22 Ene 2010, 12:41
por m0skit0
finfantasy escribió:cambia las variables a double's

Con float normalmente tienes de sobra. Pero ojo larger, estamos hablando de cambiar el tipo de a, b y c, no sólo x1 y x2.

largeroliker escribió:Y pasa esto...

Claro, has puesto una ecuación con soluciones complejas, no reales. Es decir, b^2 - 4ac < 0, en tu caso preciso 3^3 - 4*3*3 = -27, y la raíz cuadrada de un número negativo es un número complejo. Para evitar soluciones complejas tienes que comprobar que el discriminante (b^2 - 4ac) siempre sea >= 0, o lo que es lo mismo b^2 >= 4ac ;)

Un pequeño truco para calcular mentalmente las raíces de una ecuación de segundo grado es: x^2 - Sx + P = 0, donde S = suma de las raíces y P = factor de las raíces. Por ejemplo si yo quiero una ecuación de segundo grado con raíces 2 y -5, sería S = -3 y P = -10, por tanto la ecuación sería: x^2 + 3x - 10 = 0. En caso de que a > 1, se divide toda la ecuación por a para obtener a = 1. Por ejemplo: 16x^2 - 16x + 3 = 0 -> x^2 - x + 3/16 = 0, por tanto S = 1 y P = 3/16 -> x1 = 1/4 = 0.25 y x2 = 3/4 = 0.75.

Saludos

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

Publicado: 22 Ene 2010, 13:21
por largeroliker
m0skit0 escribió:
finfantasy escribió:cambia las variables a double's

Con float normalmente tienes de sobra. Pero ojo larger, estamos hablando de cambiar el tipo de a, b y c, no sólo x1 y x2.

Oka.
m0skit0 escribió:
largeroliker escribió:Y pasa esto...

Claro, has puesto una ecuación con soluciones complejas, no reales. Es decir, b^2 - 4ac < 0, en tu caso preciso 3^3 - 4*3*3 = -27, y la raíz cuadrada de un número negativo es un número complejo. Para evitar soluciones complejas tienes que comprobar que el discriminante (b^2 - 4ac) siempre sea >= 0, o lo que es lo mismo b^2 >= 4ac ;)

Ostia, patinón! Ya decía que me sonaba esa notación, pero no recordaba de qué...

El caso es que quería basarme muy por encima en un programita de VB que hacía eso mismo, pero se me olvidó por completo el check de 4ac=<b^2 :roll:
m0skit0 escribió:Un pequeño truco para calcular mentalmente las raíces de una ecuación de segundo grado es: x^2 - Sx + P = 0, donde S = suma de las raíces y P = factor de las raíces. Por ejemplo si yo quiero una ecuación de segundo grado con raíces 2 y -5, sería S = -3 y P = -10, por tanto la ecuación sería: x^2 + 3x - 10 = 0. En caso de que a > 1, se divide toda la ecuación por a para obtener a = 1. Por ejemplo: 16x^2 - 16x + 3 = 0 -> x^2 - x + 3/16 = 0, por tanto S = 1 y P = 3/16 -> x1 = 1/4 = 0.25 y x2 = 3/4 = 0.75.

Saludos

Aunque ahora esté un poco espeso, me acuerdo perfectamente de haber dado eso. Eso sí, de darlo, porque lo que es en el tema no tengo ni mucho menos soltura :P yo lo calculo a pelo, que no tardo tanto.

Cambio los números a ver si da bien, y aparco el programita para más adelante que sepa como registrar datos y añadir condicionales :)

Saludos! ;)

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

Publicado: 23 Ene 2010, 01:15
por Puzky
Que pasa? no me salen los numeros

Código: Seleccionar todo

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
 
  int edad_isaac;
  int edad_uziel;
 
  edad_isaac = 8;
  edad_uziel = 16;
  printf("Edad de Isaac hace 2 años: &d\n", edad_isaac);
  printf("Edad de Mia hace 3 años: &d\n", edad_uziel);
 
  getch();   
  return 0;
}

Spoiler:
Imagen

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

Publicado: 23 Ene 2010, 01:17
por wf19
Puzky escribió:printf("Edad de Isaac hace 2 años: &d\n", edad_isaac);
printf("Edad de Mia hace 3 años: &d\n", edad_uziel);


Cambia esos &d........ por %d........... ;)

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

Publicado: 23 Ene 2010, 01:19
por Puzky
cierto me confundi :juasjuas: gracias wf19 :oki:

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

Publicado: 23 Ene 2010, 01:21
por dark_sasuke
mira como pusiste el %d en las frase ;)

y podrias declarar los valores en las mismas variables y tambien puedes declarar todas las variables en una misma linea

osea:

int edad=00 edad2=00;

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

Publicado: 23 Ene 2010, 01:31
por Puzky

Código: Seleccionar todo

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
 
  int edad_isaac;
  int edad_uziel;
 
  edad_isaac = 6;
  edad_uziel = 13;
  printf("Edad de Isaac hace 2 años: %d\n", edad_isaac);
  printf("Edad de Mia hace 3 años: %d\n", edad_uziel);
 
  edad_isaac = 8;
  edad_uziel = 16;
  printf("Edad de Isaac: %d\n", edad_isaac);
  printf("Edad de Mia: %d\n", edad_uziel);

  getch();   
  return 0;
}


Que opina profe??

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

Publicado: 23 Ene 2010, 10:10
por m0skit0
Muy bien, aunque tu firma es demasiado grande :juasjuas:

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

Publicado: 23 Ene 2010, 17:03
por arisma
dark_sasuke escribió:mira como pusiste el %d en las frase ;)

y podrias declarar los valores en las mismas variables y tambien puedes declarar todas las variables en una misma linea

osea:

int edad=00 edad2=00;


Con coma separando las variables ','