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

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

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

Dreamaker

Bueno resulta que estamos viendo pseudocódigo en mi colegio y no entiendo este código, es de un subprograma que es llamado desde el programa principal:

Programa:

Inicio

Entero A, B
Mostrar ("Ingrese el valor para A:")
Leer (A) 'Que hace éste comando leer??
Mostrar ("Ingrese el valor para B:")
Leer (B)
Mostrar ("El resultado de la suma es:", Suma (a,b)

Subprograma:

Entero Suma (Entero X, Entero y)
         devolver (X+Y)

Fin [Suma]

Bueno la verdad que no entiendo, donde dice "Ingrese el valor para A:" y el usuario lo ingresa, donde queda guardado el valor a la variable?

En el subprograma aparece "Entero Suma" que le está poniendo un nombre a la variable? Por qué después pone entero X, entero Y y abajo devuelve los valores?

Si alguien me lo puede explicar medianamente le voy a estar agradecido...sino desde ya gracias igual ;)

PD: Yo estoy acostumbrado a programar en VB, esto es de programación para entender a programar y en laboratorio vemos VB, si alguien me puede explicar el equivalente a VB y las preguntas que puse que no entiendo...

:-\

h0oke

Para mi está clarísimo... es pseudocódigo, no hay mucho que analizar...

LEER(A), es leer y almacenar en A un dato ingresado por el usuario.

El subprograma, devuelve la suma de A y B, luego el programa principal, la muestra.

Dreamaker

#2
Cita de: algorythm en  3 Abril 2010, 17:53 PM
Para mi está clarísimo... es pseudocódigo, no hay mucho que analizar...

LEER(A), es leer y almacenar en A un dato ingresado por el usuario.

El subprograma, devuelve la suma de A y B, luego el programa principal, la muestra.

Cual sería el equivalente de LEER en VB? Lee el valor de A ingresado antes? Porque yo me acuerdo que para eso el profesor usaba otro comando, el de IMPRIMIR..

Y otra más, en el subprograma crean una variable llamada SUMA si mal no entiendo..para que pone entre paréntesis Entero X, Entero Y? Y después les pone devolver..cuando no tienen ningún valor asignado..

:P

^Tifa^

No se cual sea el equivalente en VB del lectura de datos por stdin  ;)  pero es lo de menos y estoy segura recibiras pronto respuesta a ello.

Ahora, Sobre tu pregunta:

CitarY otra más, en el subprograma crean una variable llamada SUMA si mal no entiendo..para que pone entre paréntesis Entero X, Entero Y? Y después les pone devolver..cuando no tienen ningún valor asignado..

Ahora el pseudocodigo:

CitarInicio

Entero A, B
Mostrar ("Ingrese el valor para A:")
Leer (A) 'Que hace éste comando leer??
Mostrar ("Ingrese el valor para B:")
Leer (B)
Mostrar ("El resultado de la suma es:", Suma (a,b)

Suma no es una variable  ;)  Suma es una funcion (fijate que tiene le estan pasando 2 parametros, previamente con datos insertados a y b. Por lo que Suma pasa a ser una funcion que recibe estos 2 parametros y dentro de si evalua una expresion donde el resultado es la suma de esos 2 parametros. La funcion Suma me temo no esta definida en el pseudocodigo mostrado, obviamente puedes crearla tu, o hacerlo mas rapido.. obviar una funcion para algo tan simple y hacer de una vez

Mostrar ("El resultado de la suma es:", (a+b))

Ten pendiente que cuando veas :

Funcion(a,b)

Estan haciendo referencia a una funcion o un procedimiento (que no todo debe retornar lol) que recibe 2 parametros.  Dices que porke al final tiene que devolver...si las variables segun estan vacias.. Fijate que antes de llamar a  la Funcion 'Suma' (Esa que tiene el devolver) se cumple los pasos de peticionarte 2 numeros (Se te pide primero que insertes 1 numero para la variable a luego otro para la variable b ) y ya cumplidas esas 2 peticiones (donde ambas variables obtienen un valor) entonces las 2 variables pasan a la FUncion Suma y proceden a ser sumadas y el resultado de dicha suma se retorna para ser imprimido por pantalla (stdout)

:D

jdc

En visual basic tendría que ser cuando asignas un text a una variable... Ahí estas leyendo el campo...


h0oke

O también la lectura de:

Código (vb) [Seleccionar]
A=inputbox("Ingresa a:")

Dreamaker

#6
Muchas gracias por sus respuestas (espero no me dejen abandonado ahora) espero ir entendiendo...

Cuando tu ^TiFa^ dices:

Citar(Se te pide primero que insertes 1 numero para la variable a luego otro para la variable b ) y ya cumplidas esas 2 peticiones (donde ambas variables obtienen un valor) entonces las 2 variables pasan a la FUncion Suma y proceden a ser sumadas y el resultado de dicha suma se retorna para ser imprimido por pantalla (stdout)

Entiendo hasta la parte que pide ingresar un valor para A y otro para B pero: ¿Dónde guarda el valor que el usuario ingresó para A y para B? Con el comando Leer (A) y Leer (B) se guardan los resultados de la petición en cada variable?

Después con la función suma, no tendría que sumar A + B y después ser llamado por el programa principal?

No sería mas fácil (Lo inventé yo, no sé si está bien):

Entero A, B
Mostrar ("Ingrese el valor para A:",(A)) 'Para que guarde el valor ingresado en A
Mostrar ("Ingrese el valor para B:", (B)) 'Para que guarde el valor ingresado en A
Mostrar ("El resultado de la suma es:", A+B)

Y listo??? Sin tantas complicaciones.. :¬¬

PD: O en VB crearía 3 Textbox's, una variable para cada valor de Text1, Text2, Text3, que se guarden en las variables valor1, valor2, resultado3, valor 1 y valor 2 son los 2 datos ingresados, y resultado3 la suma de A+B, luego con un MsgBox o un Print que muestre los valores por pantalla de la suma obtenida

Debe ser porque lo único que se es VB que no puedo entender esto..la verdad me pone medio mal porque la prox semana tengo evaluación y quiero aprender y no se que voy a hacer.. :P

jdc

Es que con visual basic lo haces en modo gráfico...

Por ejemplo en vez de ingresé a e ingresé b, pones 3 texts y un botón...

En el text1 pones a, en el text2 b y en el text3 el resultado. El botón suma text1 y text2 y luego muestra el resultado en text 3, algo asi como...

text3.text = val(text1.text) + val(text2.text)

Eso sería el código de tu botón

Dreamaker

Si pero pues lo entiendo para VB pero no para Pseudocódigo :-\

^Tifa^

Citar¿Dónde guarda el valor que el usuario ingresó para A y para B? Con el comando Leer (A) y Leer (B) se guardan los resultados de la petición en cada variable?

Exactamente  ;)  los valores insertados se guardan en cada variable. Porque dices Leer(A) imaginate que Leer es una funcion que hace eso... Leer lo que escribas por el teclado pero no es suficiente con leerlo cierto? tienes que guardarlo en alguna parte si quieres que tenga sentido leer algo.. entonces que haces? lo guardas en este caso en la variable A por esa razon la instruccion dice Leer(A)  (leeme lo que sea que se escriba por teclado en A)  ;)

CitarDespués con la función suma, no tendría que sumar A + B y después ser llamado por el programa principal?

Si mi nino, de hecho aunque la funcion Suma No esta detallada en ninguna parte de tu pseudocodigo, se supone que la funcion Suma dentro de si deberia tener algo como:

Suma(A,B)
Devolver(A+B)

Pero hacerlo de la manera anterior.. pasa muy directo a parecerse a un lenguaje de programacion  :-\  y el pseudocodigo pretende ser lo mas humanamente entendible y legible... pero mas o menos es para que tuvieras una idea, cuando la funcion Suma dice Devolver y dentro del parentesis sumas A+B Devolver (que dicho sea de paso es otra funcion) lo que hace es sacar de manera global (para la aplicacion) el valor resultante de (A+B) la aplicacion llama el resultado si te fijas cuando dices:

Mostrar ("El resultado de la suma es:", Suma(A,B))

Recuerdate que como te dije previamente, la funcion Suma tiene una instruccion que dice Devolver(A+B) entonces que devuelve la funcion SUma?? un valor, cual valor? el resultado de la suma de A+B, cuando hagas la linea de Mostrar como la funcion Suma esta retornando un valor este sera imprimido en pantalla cuando llames a Mostrar...Si la funcion Suma no tuviera dentro de si 'Devolver' no podrias imprimir nada en pantalla con Mostrar porque no se dijo en ninguna parte en la funcion Suma que se mostrase globalmente el resultado de la suma de (A+B) y tu quieres ver el resultado de esa Suma asi que la unica forma es usando un Devolver o imprimiendo dentro de la misma funcion el resultado de (A+B) pero en este caso si la funcion no retorna valor alguno, pasaria a ser un procedimiento (Void) y no una funcion como tal.