Código:
// Contar presencias del signo:
Si Num < 0
NumSigno = 1;
sino
NumSigno = 0;
Código:
// El punto:
Si el num abs > num abs floor
NumPunto = 1;
sino
NumPunto = 0;
Código:
// Los caracteres X.
// Este código sirve para lo mismo que los anteriores, y más.
Num = 1234567890;
// Asignar a X el caracter que quiera contarse. Ej: X = 4.
X = 0;
NumXs = 0;
Cursor = 0;
CursorMaxpos = String(Num).length;
do {
trace ("the char "+Cursor+" is "+String(Num).charAt(Cursor));
if (String(Num).charAt(Cursor) == X) {
NumXs = NumXs+1;
}
Cursor = Cursor+1;
} while (Cursor<CursorMaxpos);
trace (X+" is "+NumXs+" veces.");
Código:
// Caracteres XY.
Num = 1234567890;
// Asignar a XY el conjunto de 2 caracteres que quiera contarse. Ej: XY = "48".
XY = 10;
NumXYs = 0;
Cursor = 0;
CursorMaxpos = String(Num).length-1;
// Ese 1 depende de la cantidad de caracteres extra.
do {
trace ("the char "+Cursor+" is "+String(Num).slice(Cursor, Cursor+2));
// Ese 2 creo que es el largo del conj a contar.
if (String(Num).slice(Cursor, Cursor+2) == XY) {
NumXYs = NumXYs+1;
}
Cursor = Cursor+1;
} while (Cursor<CursorMaxpos);
trace (XY+" is "+NumXYs+" veces.");
Código:
// Conjuntos C (un elemento o varios contiguos).
Num = 1234567890;
// Asignar a ConjaContar el conjunto que quiera contarse. Ej: ConjaContar = "4861".
// Debe tener al menos 1 caracter o este código malfuncionará, creo. También, su largo no debe ser mayor que el largo del número, sino no sé bien qué hace.
ConjaContar = 567;
NumConjs = 0;
ConjaContarLargo = String(ConjaContar).length;
Cursor = 0;
CursorMaxpos = String(Num).length-(ConjaContarLargo-1);
// Eso es que si el conjunto fuese de 3 caracteres por ejemplo, cuando sólo falte revisar 2 del número entonces ya se sabe que el conjunto no estará ahí. 2 = el largo del conj-1.
do {
trace ("the char "+Cursor+" is "+String(Num).slice(Cursor, Cursor+ConjaContarLargo));
// Eso es tomar una parte del número, desde Cursor hasta Cursor + el largo del conj.
if (String(Num).slice(Cursor, Cursor+ConjaContarLargo) == ConjaContar) {
NumConjs = NumConjs+1;
}
Cursor = Cursor+1;
} while (Cursor<CursorMaxpos);
trace (ConjaContar+" is "+NumConjs+" veces.");
Código:
// Conjuntos I (que tienen algún salto o caso de elementos NO contiguos, o que tienen algún caso de "flexibilidad infinita").
Num = 1234567890;
// Asignar a ConjaContar el conjunto que quiera contarse. Ej: ConjaContar = "4I61".
ConjaContar = 234;
NumConjs = 0;
ConjaContarLargo = String(ConjaContar).length;
NumCursor = 0;
NumCursorMaxpos = String(Num).length-(ConjaContarLargo-1);
do {
ConjCursor = 0;
CifrasIguales = 0;
trace ("the char "+NumCursor+" is "+String(Num).charat(NumCursor));
do {
trace ("Analizando "+String(Num).charat(NumCursor+ConjCursor)+" y "+String(ConjaContar).charat(ConjCursor));
if (String(ConjaContar).charat(ConjCursor) == "I" or String(Num).charat(NumCursor+ConjCursor) == String(ConjaContar).charat(ConjCursor)) {
trace ("son iguales");
CifrasIguales = CifrasIguales+1;
ConjCursor = ConjCursor+1;
if (CifrasIguales == ConjaContarLargo) {
NumConjs = NumConjs+1;
trace ("NumConjs+1");
}
} else {
// El conj no se incluye en la parte analizada, pasar a la siguiente.
ConjCursor = ConjaContarLargo;
}
} while (ConjCursor<ConjaContarLargo);
NumCursor = NumCursor+1;
} while (NumCursor<NumCursorMaxpos);
trace (ConjaContar+" is "+NumConjs+" veces.");
Código:
// Conjuntos V (que tienen cierta flexibilidad con posibildad de ser desequilibrada, o “variedad”).
Num = 13295152867;
// Asignar a ConjaContar el conjunto que quiera contarse. Ej: ConjaContar = "4V61".
ConjaContar = "1V2IV";
// Asignar a cada V los caracteres aceptados...
V1N1 = “3”;
// Eso es Variedad y Número o forma de ella.
V1N2 = “4”;
V1N3 = “5”;
V1Ns = 3;
V4N1 = “4”;
V4N2 = “5”;
V4Ns = 2;
NumConjs = 0;
ConjaContarLargo = String(ConjaContar).length;
NumCursor = 0;
NumCursorMaxpos = String(Num).length-(ConjaContarLargo-1);
do {
ConjCursor = 0;
CifrasIguales = 0;
trace ("the char "+NumCursor+" is "+String(Num).charat(NumCursor));
do {
trace ("Analizando "+String(Num).charat(NumCursor+ConjCursor)+" y "+String(ConjaContar).charat(ConjCursor));
if (String(ConjaContar).charat(ConjCursor) == "I" or String(Num).charat(NumCursor+ConjCursor) == String(ConjaContar).charat(ConjCursor)) {
trace ("son iguales");
CifrasIguales = CifrasIguales+1;
ConjCursor = ConjCursor+1;
if (CifrasIguales == ConjaContarLargo) {
NumConjs = NumConjs+1;
trace ("NumConjs+1");
}
} else if (String(ConjaContar).charat(ConjCursor) == "V") {
NCursor = 1;
NCursorMaxpos = eval(“V”+ConjCursor+“Ns”);
do {
if (String(Num).charat(NumCursor+ConjCursor) == eval(“V”+ConjCursor+”N”+NCursor)) {
trace ("son iguales");
if (CifrasIguales == ConjaContarLargo) {
NumConjs = NumConjs+1;
trace ("NumConjs+1");
}
NCursor = NCursorMaxpos;
}
NCursor = NCursor+1;
} while (NCursor < NCursorMaxpos);
if (NCursor == NCursorMaxpos) {
// El conj no se incluye en la parte analizada, pasar a la siguiente.
ConjCursor = ConjaContarLargo;
}
} else {
// El conj no se incluye en la parte analizada, pasar a la siguiente.
ConjCursor = ConjaContarLargo;
}
} while (ConjCursor<ConjaContarLargo);
NumCursor = NumCursor+1;
} while (NumCursor<NumCursorMaxpos);
trace (ConjaContar+" is "+NumConjs+" veces.");