<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://www.glc.us.es/~jalonso/SLEAM2010/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=D.ciccarone</id>
	<title>Software Libre para la Enseñanza y el Aprendizaje de las Matemáticas (2010-11) - Contribuciones del usuario [es]</title>
	<link rel="self" type="application/atom+xml" href="https://www.glc.us.es/~jalonso/SLEAM2010/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=D.ciccarone"/>
	<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/SLEAM2010/index.php/Especial:Contribuciones/D.ciccarone"/>
	<updated>2026-07-19T22:35:31Z</updated>
	<subtitle>Contribuciones del usuario</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://www.glc.us.es/~jalonso/SLEAM2010/index.php?title=2010_Ejercicio_9:_Encontrar_la_%C3%BAnica_terna_pitag%C3%B3rica_que_cumple_que_a%2Bb%2Bc%3D1000&amp;diff=473</id>
		<title>2010 Ejercicio 9: Encontrar la única terna pitagórica que cumple que a+b+c=1000</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/SLEAM2010/index.php?title=2010_Ejercicio_9:_Encontrar_la_%C3%BAnica_terna_pitag%C3%B3rica_que_cumple_que_a%2Bb%2Bc%3D1000&amp;diff=473"/>
		<updated>2010-05-10T10:35:00Z</updated>

		<summary type="html">&lt;p&gt;D.ciccarone: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;La solución al problema es a=200, b=375, c=425&lt;br /&gt;
luego a*b*c= 31875000&lt;br /&gt;
Lo he resuelto a través de la regla de formación de las ternas pitagóricas&lt;br /&gt;
que son:&lt;br /&gt;
a=m^2-n^2&lt;br /&gt;
b=2*m*n&lt;br /&gt;
c=m^2+n^2&lt;br /&gt;
y resolviendo la ecuación que te resulta al sustituir&lt;br /&gt;
pero me parece este método más interesante por maxima.&lt;br /&gt;
Espero que podáis corregirme el error porque no logro &lt;br /&gt;
que me funcione correctamente.&lt;br /&gt;
&lt;br /&gt;
 for a:1 thru 333 do &lt;br /&gt;
    for b:a thru 500 do &lt;br /&gt;
    c=1000-(a+b);&lt;br /&gt;
    if (a**2+b**2=c**2) then return (a*b*c);&lt;br /&gt;
&lt;br /&gt;
Resuelto por Javi.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
La solución es correcta así como el algoritmo, pero Maxima necesita que las instrucciones estén separadas por comas y el cuerpo del &amp;#039;&amp;#039;do&amp;#039;&amp;#039; entre paréntesis. Finalmente la variable que controla un ciclo (variable-control) “es siempre local respecto de &amp;#039;&amp;#039;do&amp;#039;&amp;#039;, por lo que se puede utilizar cualquier nombre de variable sin afectar el valor de cualquier otra variable externa a &amp;#039;&amp;#039;do&amp;#039;&amp;#039; y que tenga el mismo nombre. &amp;#039;&amp;#039;&amp;#039;La variable-control no tendrá asignado ningún valor una vez se haya concluido el &amp;#039;&amp;#039;do&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;.” Por esta razón tenemos que utilizar dos variables locales, indice1 e indice2.&lt;br /&gt;
&lt;br /&gt;
 for indice1 from 1 thru 333 do  &lt;br /&gt;
   (&lt;br /&gt;
     for indice2 from indice1 thru 500 do &lt;br /&gt;
     (&lt;br /&gt;
     a:indice1, b:indice2, c:1000-(a+b),&lt;br /&gt;
     if (equal(c,sqrt(a^2+b^2))) then (display (a,b,c,a*b*c))&lt;br /&gt;
     )&lt;br /&gt;
   );&lt;br /&gt;
Por otro lado este algoritmo no es eficiente, por qué ejecuta todas las iteraciones posibles (por esta misma razón el return no surtiría los efectos esperado, devolviendo a=333, b=500). Si sabemos que hay una sola solución, es más eficiente recurrir al ciclo &amp;#039;&amp;#039;while&amp;#039;&amp;#039; (o &amp;#039;&amp;#039;unless&amp;#039;&amp;#039;) y salir en cuanto la encontremos:&lt;br /&gt;
&lt;br /&gt;
 encontrado:false,&lt;br /&gt;
 a:1,&lt;br /&gt;
 while (is (encontrado=false)) do&lt;br /&gt;
    (&lt;br /&gt;
     b:a, &lt;br /&gt;
     c:1000-(a+b),&lt;br /&gt;
     encontrado:false,&lt;br /&gt;
     indice:b,&lt;br /&gt;
       while (is(indice&amp;lt;=500) and is(encontrado=false)) do &lt;br /&gt;
        (if (equal(c,sqrt(a^2+b^2))) then encontrado:true&lt;br /&gt;
         else (b:b+1,indice:indice+1)&lt;br /&gt;
         ),&lt;br /&gt;
     a:a+1&lt;br /&gt;
     ),&lt;br /&gt;
     a:a-1,&lt;br /&gt;
 display (a-1,b,c,a*b*c);&lt;br /&gt;
&lt;br /&gt;
Pero esto tampoco funciona, hasta ahora…&lt;br /&gt;
Resuelto por --[[Usuario:D.ciccarone|D.ciccarone]] 10:35 10 may 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>D.ciccarone</name></author>
		
	</entry>
</feed>