Duda con algoritmo facil

Iniciado por NachoEx, 28 Febrero 2013, 21:01 PM

0 Miembros y 1 Visitante están viendo este tema.

NachoEx

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:

CitarImprimir 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 -

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 !
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!
El mago hizo un gesto y desapareció el hambre, hizo otro gesto y desapareció la injusticia, hizo otro gesto y se acabo la guerra. El político hizo un gesto y desapareció el mago

Meta personal :

1. Terminar de aprender metodología de programación en pseudocodigo
2. Terminar de aprender python
3. Empezar a programar en pygame..

avesudra

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 (asm) [Seleccionar]
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 MOD 2 = 0 Entonces
Imprimir nmenor
FinSi
nmenor<-nmenor+1
Sino
nmenor<-nmenor+1
FinSi
sw<-sw+1
FinMientras
FinProceso
Regístrate en

NachoEx

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 !
El mago hizo un gesto y desapareció el hambre, hizo otro gesto y desapareció la injusticia, hizo otro gesto y se acabo la guerra. El político hizo un gesto y desapareció el mago

Meta personal :

1. Terminar de aprender metodología de programación en pseudocodigo
2. Terminar de aprender python
3. Empezar a programar en pygame..