Foro de elhacker.net

Programación => Ejercicios => Mensaje iniciado por: NachoEx en 28 Febrero 2013, 21:01 pm



Título: Duda con algoritmo facil
Publicado por: NachoEx en 28 Febrero 2013, 21:01 pm
Hola !
Estoy leyendo el libro en pdf Metodología de programación a través de pseudocodigo
Estoy por el capitulo cuatro , hay un ejercicio con el que tengo duda y el enunciado es el siguiente:

Citar
Imprimir los múltiplos de 3 que hay entre dos números determinados de una forma alternativa, es decir uno si y otro no.

En estos ejercicios se propone el uso de un switch o interruptor para el flujo del algoritmo, Y lo que hice hasta ahora es lo siguiente - cabe mencionar que el algoritmo lo hice en PSeInt -

Código:
Proceso Multiplosde3
nmenor<-0
nmayor<-0
sw<-0
aux<-0
Imprimir 'Primer numero: '
Leer nmenor;
Imprimir 'Segundo numero: '
Leer nmayor;
Si nmenor > nmayor Entonces
aux<-nmenor
nmenor<-nmayor
nmayor<-aux
FinSi
Mientras nmenor < nmayor Hacer
Si nmenor MOD 3 = 0 Entonces
Si sw=0 Entonces
Imprimir nmenor
FinSi
sw<-1
nmenor<-nmenor+1
Sino
nmenor<-nmenor+1
FinSi
sw<-0
FinMientras
FinProceso

Nota :
sw: switch o interruptor.
Estas lineas de codigo las puse por si el primer numero ingresado es mayor que el segundo !
Código:
Si nmenor > nmayor Entonces
aux<-nmenor
nmenor<-nmayor
nmayor<-aux

El problema que tengo es que en vez de imprimir un multiplo si , otro no. Me imprime todos! Y estuve intentando saber a donde poner el switch para que no pase eso , pero no puedo.
Espero que me ayuden . Gracias!


Título: Re: Duda con algoritmo facil
Publicado por: avesudra en 1 Marzo 2013, 15:50 pm
Es lógico que te imprima todos, pues vuelves a poner sw a 0  :laugh: , se me ha ocurrido que podrías hacer que sw fuese un contador y si ese contador es impar entrar a la condición, en caso contrario que no lo haga, te dejo el code:
Código
  1. Proceso Multiplosde3
  2. nmenor<-0
  3. nmayor<-0
  4. sw<-0
  5. aux<-0
  6.  
  7. Imprimir 'Primer numero: '
  8. Leer nmenor;
  9. Imprimir 'Segundo numero: '
  10. Leer nmayor;
  11. Si nmenor > nmayor Entonces
  12. aux<-nmenor
  13. nmenor<-nmayor
  14. nmayor<-aux
  15. FinSi
  16. Mientras nmenor < nmayor Hacer
  17. Si nmenor MOD 3 = 0 Entonces
  18. Si sw MOD 2 = 0 Entonces
  19. Imprimir nmenor
  20. FinSi
  21. nmenor<-nmenor+1
  22. Sino
  23. nmenor<-nmenor+1
  24. FinSi
  25. sw<-sw+1
  26. FinMientras
  27. FinProceso


Título: Re: Duda con algoritmo facil
Publicado por: NachoEx en 6 Marzo 2013, 21:46 pm
Muchisimas gracias avesudra

tu forma de solucionar el problema me sirve para tomarlo como tip para mis futuros algoritmos !

Me ayudo en este y me va ayudar en los que vienen jeje
 ;-)
Gracias por tomarte tu tiempo para responder !