Saltar al contenido principal
MedCalc
Enviar una copia en PDF de esta página a:
(Su dirección de correo electrónico no se añadirá a una lista de distribución)
working

Scripts - Funciones definidas por el usuario

Definición de función

Function myfunc([ param1,param2,...]) declara una función llamada myfunc que opcionalmente acepta entradas param1,param2,...

La función puede devolver opcionalmente un valor. Ver Return Declaración a continuación.

  • Todas las variables definidas y utilizadas en la función son locales. No pueden usarse en el cuerpo principal del script. Una variable var utilizada en una función tendrá valores distintos a los de una variable con el mismo nombre fuera de la función. Este comportamiento se puede modificar con la función global que se describe a continuación.
  • Una función no se puede definir dentro de otra función (no se permiten funciones anidadas).
  • Después de definir una función, también puede usarla en la hoja de cálculo de MedCalc. Sin embargo, primero debe ejecutar el script que contiene la función. Cargar automáticamente un script que contenga sus funciones favoritas puede ser útil.

Recursión

Una función puede llamarse a sí misma (recursión). Sin embargo, el número de recursiones está limitado a aproximadamente 500.

El siguiente código generará un error [Error: La recursión de función es demasiado profunda] después de aproximadamente 500 iteraciones:

function  plusone(var) {
	var=var+1;
	 print  var;  println ;
	plusone(var);
}
plusone(0);	

Puede controlar el número de recursiones, por ejemplo de la siguiente manera:

function  plusone(var) {
	var=var+1;
	 print  var;  println ;
	 if  (var<500) { plusone(var); }
}
plusone(0);	

O puede contar el número de iteraciones utilizando una variable global (consulte a continuación la función Variables globales):

iterations=0;

function plusone(var) {
	global(iterations);  // make iterations global
  	var=var+1;
	print var; println;
	iterations++;
	if (iterations>99) {  return; }	
	plusone(var);
}

plusone(0);	
print ('iterations ',iterations, '\n');

Declaración Return

La declaración return finaliza una función y, opcionalmente, devuelve un valor.

function calcbmi(height,weight) {
	bmi=weight/square(height);
	return bmi;
}
mybmi = calcbmi(1.76,70);
print ('My BMI is ',mybmi:1);

Declaración anticipada

Una función solo puede llamar a otras funciones ya definidas. Si tiene más de una función y deben llamarse entre sí, debe declarar la función hacia adelante.

El siguiente código genera un error porque funcTwo no está definido cuando se utiliza en el cuerpo de funcOne.

function funcOne(var) {
	 if (var>100) {  return var; }
	 return< funcTwo(var*2);
}

function funcTwo(var) {
	 return funcOne(var+1);
}

v=funcOne(1);
?v;

Este problema se resuelve mediante una declaración adelantada de funcTwo, de la siguiente manera:

function funcTwo(var);

function funcOne(var) {
	 if (var>100) {  return  var; }
	 return funcTwo(var*2);
}

 function funcTwo(var) {
	 retur funcOne(var+1);
}

v=funcOne(1);
?v;

Función de variables globales

La función Global(variable1[,variable2)) marca las variables listadas utilizadas en la función como globales. Estas variables, al definirse fuera del cuerpo de la función, también pueden usarse en la función; o bien, al definirse en la función, pueden usarse en el cuerpo principal del script.

Véase también