Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Mensaje iniciado por: UsuarioZ en 10 Junio 2019, 04:14 AM

Título: Duda algorritmica (seudocodigo)
Publicado por: UsuarioZ en 10 Junio 2019, 04:14 AM
Seria correcto pasar el valor de un elemento de un arreglo al parámetro de una función o acción, de esta manera:

arreglo[4] <--- 2  //Se asigna 2 al elemento del indice 4 del arreglo.

EJAccion (arreglo[4]) // Invocación de la acción, se pasa el elemento del indice 4, del arreglo como
                                     parámetro.

Acción EJAccion (dato: entero ∈ Z) // Declaración de la acción.

¿O debería declarar el parámetro de tipo de dato de tipo arreglo?

El arreglo seria de enteros.
Título: Re: Duda algorritmica (seudocodigo)
Publicado por: Serapis en 10 Junio 2019, 21:16 PM
Si, es válido...

Puedes hacer asignaciones directas entre variables y arrays y viceversa...
Array(n) = z
z = Array(n)


Al caso el parámetro de una función, sigue siendo una variable...
así esto:
z = array(3)
x = funcion Sumar(20, z)


Es lo mismo que esto:
x = funcion Sumar(20, array(3) )

Siendo la función:
entero = Funcion Sumar(entero X, entero Y)
   devolver (X + Y)
fin funcion


Solo basta que los tipos de datos sean compatibles. Incluso puede forzarse una conversión (casting) explícita si implícitamente el lenguaje no lo tolera...

byte x = 45
array enteros s(20 elementos)
s(5) = x  // conversión implícita.
s(5) = convertirAentero(x)  // conversión explícita
s(5) = x.toInteger //conversión explícita con objetos



Título: Re: Duda algorritmica (seudocodigo)
Publicado por: UsuarioZ en 11 Junio 2019, 01:47 AM
Cita de: NEBIRE en 10 Junio 2019, 21:16 PM
Si, es válido...

Puedes hacer asignaciones directas entre variables y arrays y viceversa...
Array(n) = z
z = Array(n)


Al caso el parámetro de una función, sigue siendo una variable...
así esto:
z = array(3)
x = funcion Sumar(20, z)


Es lo mismo que esto:
x = funcion Sumar(20, array(3) )

Siendo la función:
entero = Funcion Sumar(entero X, entero Y)
   devolver (X + Y)
fin funcion


Solo basta que los tipos de datos sean compatibles. Incluso puede forzarse una conversión (casting) explícita si implícitamente el lenguaje no lo tolera...

byte x = 45
array enteros s(20 elementos)
s(5) = x  // conversión implícita.
s(5) = convertirAentero(x)  // conversión explícita
s(5) = x.toInteger //conversión explícita con objetos





Gracias.