====== Teoría 2 ====== ===== Estrategias ===== En [[http://www.unicen.edu.ar/introprog/Intro1/index.html]] puede acceder a: * [[http://www.unicen.edu.ar/introprog/Intro1/3-Estrategias/Estrategias-1.html|Estrategias --> Concepto de Estrategia]] * [[http://www.unicen.edu.ar/introprog/Intro1/3-Estrategias/DiagramaEstructura.html|Estrategias --> Diagrama de Estructura]] * [[http://www.unicen.edu.ar/introprog/Intro1/4-Parametros/Concepto.html|Parametros --> Concepto de Parametros]] ===== Procedimientos ===== Conceptos: * Módulo. * Definición. * Concepto de invocación. Invocación múltiple. * Parámetro. * Es funcion o procedimiento? * Una modificación del valor del parámetro se propaga? ===== Comentarios en módulos ===== ===== Función ===== = 1; $valor--) { $fact *= $valor; } return $fact; } $nro = 4; print "El factorial de $nro es " . factorial($nro) . " \n"; ?> Comentarios: * Es FUNCION porque tiene RETURN. * Todo camino posible de ejecución debe tener RETURN. * Debiera haber un único RETURN. * Todo código posterior a un RETURN no se ejecuta. * La invocación cambia porque retorna un valor y debe ser utilizado. * Si es función NO debe ejecutar acciones colaterales. ===== Pasaje de parámetros por referencia ===== Comentarios: * Diferencia entre pasaje de parametros por copia y por referencia. * Normalmente se pasa por copia. * Si el parámetro se pasa por referencia se usa: (&). * Concepto de dirección de memoria. Estan en la misma dirección de memoria, por lo tanto cualquier cambio en uno de ellos impacta en el otro porque "son lo mismo". ===== Parámetros optativos ===== = 1; $cant--) { print $msg . "\n"; } } $texto = "Este es otro texto"; imprimir("Ejemplo de mensaje de prueba",2); imprimir($texto); imprimir("y otro más.",1); ?> Los últimos (más a la derecha), pueden tener un valor por defecto, esto significa que si en la invocación no son indicados(instanciados) asumirán ese valor.