SoloCodigo

Programación Específica => Matlab => Mensaje iniciado por: PPP2TES en Martes 21 de Abril de 2009, 03:46

Título: REVISION, QUE LE FALTA PARA QUE CORRA
Publicado por: PPP2TES en Martes 21 de Abril de 2009, 03:46
Que tan bien codificado esta que no logro hacer que corra como debe ser que tiene de mas mi codificacion o que le falta???
el enunciado es este:
Dado un capital C, que se coloca en una cuenta bancaria a un interés anual R, averiguar al cabo de cuántos años se doblará el capital.

cont=0
ban=1
while(ban==1)
    x=input('Dame capital:');
    y=input('Dame interes:');
    if x>0
        cont=cont+1
       
    elseif x==x*2
        break;
    end
   
end
fprintf('El total del capital es: %d',cont)

Gracias por su ayuda. :D  ;)
Título: Re: REVISION, QUE LE FALTA PARA QUE CORRA
Publicado por: Toph en Martes 21 de Abril de 2009, 17:22
Cita de: "PPP2TES"
Que tan bien codificado esta que no logro hacer que corra como debe ser que tiene de mas mi codificacion o que le falta???
el enunciado es este:
Dado un capital C, que se coloca en una cuenta bancaria a un interés anual R, averiguar al cabo de cuántos años se doblará el capital.

cont=0
ban=1
while(ban==1)
    x=input('Dame capital:');
    y=input('Dame interes:');
    if x>0
        cont=cont+1
       
    elseif x==x*2
        break;
    end
   
end
fprintf('El total del capital es: %d',cont)

Gracias por su ayuda. :D  ;)

 :wacko: Ese programa no tiene sentido, pide capital e interes y luego solo esta incrementando una variable infinitamente puesto que ban siempre va a ser cero, ademas x no esta cambiando su valor, ademas ese X==X*2 es imposible que  X valga dos veces ella misma, ese programa esta por todos lados malo.
Título: Re: REVISION, QUE LE FALTA PARA QUE CORRA
Publicado por: Richi254 en Sábado 6 de Junio de 2009, 04:56
Dado un capital C, que se coloca en una cuenta bancaria a un interés anual R, averiguar al cabo de cuántos años se doblará el capital.

cont=0
ban=1
x=input('Dame capital:');
y=input('Dame interes:');
Doble=2*x;

while(ban==1)
x=x+x*y;
cont=cont+1
if x>=Doble
ban=0;
end

end
fprintf('El total del capital es: %d',cont)

Los input los tenias que poner fuera del bucle si no te estaría preguntando en cada iteración, break es para for, en lugar de break como habrás visto lo que hago es cambiar la condición(ban=0;), Lo que no estoy seguro es lo de x=x+x*y yo lo he pensado así:
x=20
y=0.10 (10% de interés)
entonces x=20+20*0.1=20.2
en la próxima será:
x=20.2+20.2*0.1=20.402
y así sucesivamente hasta llegar al valor que sea igual o mayor a 40 que es la variable Doble.

     Espero que sí     ;)

Gracias por su ayuda.