Comunidad Underground Hispana  

Retroceder   Comunidad Underground Hispana > Programacion > Carbide C/C#/C++


Respuesta Crear Nuevo Tema
 
Compartir en twitter LinkBack Herramientas Desplegado
Antiguo 07-may-2008, 10:31   #1
placa4
Guest
 
Amigos
Mensajes: n/a
Predeterminado Ternas pitagóricas

Buenas, pues aquí tengo un code bastante interesante, calcula todas las ternas pitagóricas, pero no lo hace mediante su fórmula correspondiente ( a^2-b^2 , 2ab, a^2+b^2) si no que lo he hecho creando todas las combinaciones posibles entre tres variables(lo que vendría a ser la terna), por eso a algún newbie que no quiera
calentarse la cabeza, pues este newbie ya se lo da hecho, el code está interesante tanto por lo que hace como por cómo lo hace, si necesitáis calcular todas las combinaciones posibles, pero sin tener en cuenta las reglas que le puse a mi programa para que el cateto menor no superase al mayor, ni el mayor a la hipotenusa, basta con quitar los decrementos de b--; Guarda los datos en un archivo txt usando la libreria fstream.h:

#include <iostream>
#include <fstream.h>

int main()
{
int a = 3; int b = 4; int c = 5; int i = 0; int s;

std::cout << "Escribe hasta donde quieres que llegue: "; //Se refiere hasta que numero llega el contador
std::cin >> s; std::cout << "\n";

ofstream Pit("Ternas pitagóricas.txt", ios::trunc);

while(i < s)
{
while(b > 0)
{
while(a > 0)
{
a--;
if(a * a + b * b == c * c)
{
Pit << "a = " << a << ", b = " << b << ", c = " << c << "\n";
}

}
b--;
a = b;
a--;
}
c++;
b = c;
b--;
}
return 0;
}

Bueno, pues ahí está el code, digo lo mismo de siempre, si alguien sabe acortarlo, o se le ocurre otra forma de calcular las ternas...que no se corte

Salu2

PD: El teorema de pitágoras dice que la suma de los cuadrados de los catetos es igual al cuadrado de la hipotenusa (a^2 + b^2 = c^2)

  Responder Citando
Antiguo 07-may-2008, 19:47   #2
DarkIker
Guest
 
Amigos
Mensajes: n/a
Predeterminado Re: Ternas pitagóricas

Seria bueno el que recordaras que existe la "precedencia de operadores", la recursividad y que "b--" es postdecremento por lo que va igual hacer:

Código:
a = --b;
--a;
  
o mejor aun y te ahorras toda la joda del decremente de a despues:

Código:
a = (--b - 1);
  
en el caso de C bastaria con:

b = c++;

dado el caso que b toma el valor de c y luego c es incrementado; por otra parte y perdona la pregunta peor para que coños sirven las variables "i" y "s" ya que no veo que en ninguna parte sean modificadas y tampoco intervienen en las operaciones.

Att: DarkIker
  Responder Citando
Antiguo 07-may-2008, 21:39   #3
Moderador
 
Avatar de Fashion
 
Fecha de Ingreso: junio-2007
Amigos 4
Mensajes: 2.056
Gracias: 55
Agradecido 845 veces en 327 mensajes.
Predeterminado Re: Ternas pitagóricas

Le falta mucha teoria, tiene que leer más, su idea es buena pero la forma en que utilizas los operadores deja mucho que desear, tampoco hace uso de funciones, utiliza muchas variables un cambio a cualquiera afecta a los demas, es por eso que no permites el ingreso de numeros negativos.

Tambien le hace falta leer mas sobre funciones por ejemplo: La libreria #Include<math.h>, con esta libreria podrás usar la función "pow(x, y)" para calcular x elevado a la potencia y, el cual le dará como resultado un valor postivo, es decir x puede ser positivo o negativo, esto siempre y cuando quiera ingresar cualquier numero sin importar el signo + ó -.


Cita:
Iniciado por DarkIker
Seria bueno el que recordaras que existe la "precedencia de operadores", la recursividad y que "b--" es postdecremento por lo que va igual hacer:

Código:
a = --b;
--a;
  
o mejor aun y te ahorras toda la joda del decremente de a despues:

Código:
a = (--b - 1);
  
en el caso de C bastaria con:

b = c++;

dado el caso que b toma el valor de c y luego c es incrementado; por otra parte y perdona la pregunta peor para que coños sirven las variables "i" y "s" ya que no veo que en ninguna parte sean modificadas y tampoco intervienen en las operaciones.

Att: DarkIker
Las variables "i, s" son para evitar el ingreso de numeros negativos.


Fashion
__________________

[Solo usuarios registrados pueden ver los links. REGISTRARSE]

Fashion está desconectado   Responder Citando
Antiguo 07-may-2008, 21:58   #4
DarkIker
Guest
 
Amigos
Mensajes: n/a
Predeterminado Re: Ternas pitagóricas

Las varaibles i, s generan un bucle infinito y se supone que s define el numero de itineraciones.

Att: DarkIker
  Responder Citando
Antiguo 07-may-2008, 23:50   #5
Colaborador
 
Fecha de Ingreso: junio-2006
Amigos 0
Mensajes: 398
Gracias: 0
Agradecido 2 veces en 2 mensajes.
Predeterminado Re: Ternas pitagóricas

pues de hecho sera un bucle infinito amenos (s si puede ser negativo, teoricamente) de que s <= 0

aparte pow no siempre regresa un numero positivo ya que un numero negativo elevado a una potencia impar el resultado sera negativo

pero es cierto lo que dice dark ya que a s pues es casi obvio que se le dara un valor positivo y este nunca veo que se decremente o que i aumente, pero bueno no compile el codigo como utilizo mis poderes de observacion... =p



lann está desconectado   Responder Citando
Antiguo 08-may-2008, 10:40   #6
placa4
Guest
 
Amigos
Mensajes: n/a
Predeterminado Re: Ternas pitagóricas

No, no saquéis hipotesis acerca de i y s ;D, es que se me olvidó poner en el code:

i++;

i es un contador,y s es hasta donde llega i, en cuanto i sea igual que s, el bucle se rompe. Se que me falta aun muchisima teoria, recursividad, usar los operadores mejor, etc, pero bueno, poco a poco aprendere a programar mejor.

Salu2

PD: Fashion ha encontrado otro uso a "i" y "s" para los numeros negativos, ni siquiera se me vino a la cabeza xD, gracias por responder.

Edito: Miraré la math.h para apañar un poco el programa y que admita negativos .
  Responder Citando
Respuesta

Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los Códigos BB están Activado
Las Caritas están Activado
[IMG] está Activado
El Código HTML está Desactivado
Trackbacks están Activado
Pingbacks están Activado
Refbacks están Activado



Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿Qué son las Aplicaciones Ricas de Internet? P4|3L0 Noticias Tecnologicas 0 16-mar-2009 06:44



Portal Hacker
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.0