static string TiposDeSucesion(TipoSucesion tipo) { string str = ""; if (tipo == TipoSucesion.NINGUNO) { str = "[NINGUNO]"; } else { if ((tipo & TipoSucesion.CRECIENTE) == TipoSucesion.CRECIENTE) { str += "[CRECIENTE]"; } if ((tipo & TipoSucesion.NO_CRECIENTE) == TipoSucesion.NO_CRECIENTE) { str += "[NO CRECIENTE]"; } if ((tipo & TipoSucesion.DECRECIENTE) == TipoSucesion.DECRECIENTE) { str += "[DECRECIENTE]"; } if ((tipo & TipoSucesion.NO_DECRECIENTE) == TipoSucesion.NO_DECRECIENTE) { str += "[NO DECRECIENTE]"; } } return(str); }
static TipoSucesion TipoSucesionFuncion(Func <int, int> funcion) { TipoSucesion tipo = TipoSucesion.CRECIENTE | TipoSucesion.DECRECIENTE | TipoSucesion.NO_CRECIENTE | TipoSucesion.NO_DECRECIENTE; int nPrevia; int nActual; nPrevia = funcion(1); for (int i = 2; i < 10; i++) { nActual = funcion(i); if (!(nPrevia < nActual)) { //No cumple con creciente tipo &= ~TipoSucesion.CRECIENTE; } if (!(nPrevia > nActual)) { //No cumple con decreciente tipo &= ~TipoSucesion.DECRECIENTE; } if (!(nPrevia <= nActual)) { //No cumple con no decreciente tipo &= ~TipoSucesion.NO_DECRECIENTE; } if (!(nPrevia >= nActual)) { //No cumple con no creciente tipo &= ~TipoSucesion.NO_CRECIENTE; } nPrevia = nActual; } return(tipo); }