====== 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.