[Duda] Alguien entiende este código en Pseudocódigo?

Iniciado por Dreamaker, 3 Abril 2010, 17:49 PM

0 Miembros y 4 Visitantes están viendo este tema.

Dreamaker

#10
Me parece que lo voy entendiendo, alguien me puede ayudar a armar más o menos el código para estos 2 TP's?

Algo así sencillo que funcione, yo después en todo caso lo mejoro, es para ver como funciona esto y como los puedo armar porque no se me ocurre :P

TP Nº1:

Hacer un programa donde el usuario ingrese 2 valores enteros y muestre los números pares existentes entre dichos valores. usar un subprograma para averiguar si un número es par.

TP Nº2:

Hacer un programa que permita el ingreso de N (puede ser cualquier valor, 50 números, 60 o cuantos quiera el usuario) cantidad de números y muestre al finalizar el ingreso el número de mayor y el de menor valor (El número mayor y menor de los números ingresados)

Al menos si me pueden ayudar a hacer el 1ro, ya que todavía no le agarro mucho la mano a Pseudocódigo, para el 2do en VB sería hacer un bucle While-Wend y en cada pregunta de ingresar un número que vaya comparando el ingresado con el número mayor de todos ingresados anteriormente y lo mismo con el menor pero en Pseudocódigo no se me ocurre que puedo hacer para estos 2 problemas con el código :-(

Gracias por su ayuda ;D

^Tifa^

CitarHacer un programa donde el usuario ingrese 2 valores enteros y muestre los números pares existentes entre dichos valores. usar un subprograma para averiguar si un número es par.

INICIO
Entero A
Mostrar("Ingrese un Numero :: ")
Leer(A)
Si (A(modulus)2=0) entonces
Mostrar("el numero es par")
sino
Mostrar("el numero es impar")
Finsi
FIN


Mas o menos por ahi va el asunto...

Y si sobre tu segunda pregunta, necesitarias dos bucles anidados y un arreglo que vaya guardando los 50 valores que ingreses.

Og.

Cita de: ^Tifa^ en  3 Abril 2010, 20:41 PM
CitarHacer un programa donde el usuario ingrese 2 valores enteros y muestre los números pares existentes entre dichos valores. usar un subprograma para averiguar si un número es par.

INICIO
Entero A
Mostrar("Ingrese un Numero :: ")
Leer(A)
Si (A(modulus)2=0) entonces
Mostrar("el numero es par")
sino
Mostrar("el numero es impar")
Finsi
FIN


Mas o menos por ahi va el asunto...

Y si sobre tu segunda pregunta, necesitarias dos bucles anidados y un arreglo que vaya guardando los 50 valores que ingreses.
tu pseudo programa solo te dice si un numero es par, no hace lo que te indica las instrucciones :P
masomenos la resolucion seria:

inicio:
entero A;
entero B;
leer(A);
leer(B);
mientras(A sea menor a B) hacer
    inicio:
        A ← A + 1;
        si(A(modulus)2 es igual a 0)
            imprime(A);
    fin;
fin;
|-

Dreamaker

#13
Ya lo entendí, en el programa principal donde muestra el resultado de la operación (Suma) llama a la subrutina o subprograma y le da los valores (A,B) que son los valores que ingresó el usuario a las variables del subprograma en este caso X e Y y efectúa la operación que contiene éste, la de sumar, y por eso pone el comando devolver

Ahora chicos, quise pasar esto a Visual basic y no me funciona me quedó así:

Programa principal:


Código (vb) [Seleccionar]
Private Sub Form_Load()
A = InputBox("Ingrese un valor para a:")
B = InputBox("Ingrese un valor para b:")
MsgBox "El resultado de la operación es:" & Suma(A, B)
End Sub


Subrutina o subprograma:

Código (vb) [Seleccionar]
Private Sub Suma(X As Integer, Y As Integer, Sumar As Integer)
Sumar = A + B
End Sub


No sé como tengo que hacer para igualar al comando devolver del pseudocódigo, trate de poner A+B sólo pero me saca el signo "+" y me deja A B, entonces le puse Sumar = A+B pero igual no funciona


Y después cuando trato de ejecutarlo me aparece esto y cuando le doy aceptar me marca en amarillo la línea


Private Sub Form_Load()



Gracias y espero que me puedan ayudar :-\

PD: No sería mejor moverlo a VB ahora?

^Tifa^

Cita de: Og. en  5 Abril 2010, 08:46 AM
Cita de: ^Tifa^ en  3 Abril 2010, 20:41 PM
CitarHacer un programa donde el usuario ingrese 2 valores enteros y muestre los números pares existentes entre dichos valores. usar un subprograma para averiguar si un número es par.

INICIO
Entero A
Mostrar("Ingrese un Numero :: ")
Leer(A)
Si (A(modulus)2=0) entonces
Mostrar("el numero es par")
sino
Mostrar("el numero es impar")
Finsi
FIN


Mas o menos por ahi va el asunto...

Y si sobre tu segunda pregunta, necesitarias dos bucles anidados y un arreglo que vaya guardando los 50 valores que ingreses.
tu pseudo programa solo te dice si un numero es par, no hace lo que te indica las instrucciones :P
masomenos la resolucion seria:

inicio:
entero A;
entero B;
leer(A);
leer(B);
mientras(A sea menor a B) hacer
    inicio:
        A ← A + 1;
        si(A(modulus)2 es igual a 0)
            imprime(A);
    fin;
fin;

Bien tu aporte mi vida, pero recuerdate que el enunciado del problema dice:

]Hacer un programa donde el usuario ingrese 2 valores enteros y muestre los números pares existentes entre dichos valores. usar un subprograma para averiguar si un número es par.

No especifica que solicite cuando un numero sea mayor o menor que cualquiera de los insertados.... (Y que ocurrira cuando A sea mayor a B? tu programa no seguira corriendo, terminara sin ejercer ningun funcion). De hecho... podrias traducirme tu pseudocodigo a lenguaje de programacion... es que, o no soy buena en pseudocodigo o estoy entendiendo mal.. porque dices que mientras (bucle) A sea menor a B haga un bucle infinito que imprima el valor de A  :-\ ....

Dreamaker :) tendras que realizar tu ultima pregunta en el subforo de Visual Basic.

LeGNa29A

#15

CitarHacer un programa donde el usuario ingrese 2 valores enteros y muestre los números pares existentes entre dichos valores. usar un subprograma para averiguar si un número es par.

INICIO
Entero A
Mostrar("Ingrese un Numero :: ")
Leer(A)
Si (A(modulus)2=0) entonces
Mostrar("el numero es par")
sino
Mostrar("el numero es impar")
Finsi
FIN


Mas o menos por ahi va el asunto...

Y si sobre tu segunda pregunta, necesitarias dos bucles anidados y un arreglo que vaya guardando los 50 valores que ingreses.

tu pseudo programa solo te dice si un numero es par, no hace lo que te indica las instrucciones :P
masomenos la resolucion seria:

inicio:
entero A;
entero B;
leer(A);
leer(B);
mientras(A sea menor a B) hacer
   inicio:
       A ← A + 1;
       si(A(modulus)2 es igual a 0)
           imprime(A);
   fin;
fin;



Los dos teneis una parte de razón:

lo que ha escrito Tifa sería la función para saber si es par.

Lo de Og, en realidad antes haría falta saber si no son iguales y despues comprobar cual de los dos es mayor.
si A = B entonces
   escribir('los numeros son iguales')
sino
 si A > B entonces
   hacer la parte de Og, pero con la parte de Tifa como función
 sino
   hacer la parte de Og cambiando A por B (con la parte de Tifa como función)
finsi
finsi
"Sólo en la medida en que nos exponemos a la aniquilación una y otra vez, encontramos aquello que nos hace verdaderamente indestructibles."
(Pema Chödrön)

LeGNa29A

En cuanto al segundo ejercicio, ya has descrito que es lo que debes hacer.
Pseudocodigo es programar tal como hablas, por lo que sólo debes seguir los pasos q tu mismo has descrito.

Pedir un número, pedir un segundo número, realizar un bucle, comparar si es mayor al más grande o menor al pequeño y pedir el numero siguiente hasta q el usuario diga basta. (introduzca 0 o cualquier cosa por el estilo.

Un saludo,
"Sólo en la medida en que nos exponemos a la aniquilación una y otra vez, encontramos aquello que nos hace verdaderamente indestructibles."
(Pema Chödrön)

SeC

Creo que el más complejo es el primero y ya está todo dicho =P, y el segundo sería tal y como decias, en pseudocódgio sería algo como:

REAL mayor = -99999999    //consideramos inicialmente mayor como un número muy pequeño
REAL menor =  99999999    //consideramos inicialmente menor como un número muy grande
REAL numero
ENTERO cantidad
ENTERO i = 0


LEER(cantidad)
MIENTRAS ( i < cantidad )
INICIO MIENTRAS
   LEER(numero)
   SI ( numero >= mayor)
       mayor = numero
   SI ( numero <= menor)
       menor = numero
   i = i + 1
FIN MIENTRAS



PD:
@LeGNa29A  No hagas doble post.
Educad a los niños y no sera necesario castigar a los hombres - Pitagoras.

LeGNa29A

Si introducen 3 números (2,5,8)
el mayor sería 99999 y menor -999999 lo cual no sería correcto.

En mi opinión,  daría como mayor el número y menor el número porq si sólo introducen un número ese sería el mayor y el menor, si introducen más iría haciendo las comparaciones que ha hecho SeC en el código.

Además primero de todo controlaría si piden de  cantidad 0, con algún mensaje de "no introduce números" o algo así.



PD: perdón por el doble post y gracias por avisar @SeC
"Sólo en la medida en que nos exponemos a la aniquilación una y otra vez, encontramos aquello que nos hace verdaderamente indestructibles."
(Pema Chödrön)

SeC

Cita de: LeGNa29A en  5 Abril 2010, 23:31 PM
Si introducen 3 números (2,5,8)
el mayor sería 99999 y menor -999999 lo cual no sería correcto.

En mi opinión,  daría como mayor el número y menor el número porq si sólo introducen un número ese sería el mayor y el menor, si introducen más iría haciendo las comparaciones que ha hecho SeC en el código.

Además primero de todo controlaría si piden de  cantidad 0, con algún mensaje de "no introduce números" o algo así.

Falso hazle seguimiento a mi código ;) , funciona bien :) ...

Cita de: LeGNa29A en  5 Abril 2010, 23:31 PM
PD: perdón por el doble post y gracias por avisar @SeC

No pasa nada, solo decía.
Educad a los niños y no sera necesario castigar a los hombres - Pitagoras.