Números y Letras II

domingo, 9 de noviembre de 2003

Escriban en letras (y en castellano) los números entre el 1 y el 1.000.000.

Ordenen el listado en forma alfabética.

¿Cuál es el primer número de la lista? ¿Cuál es el último?

También son bienvenidas las respuestas en otros idiomas.

Update:
Escribieron y descubrieron: Jane_s, Elessar, 71, Mario y Anejo.
También participaron los lingüistas Alejandro, Santiago, Otis B. Driftwood y David

58 comentarios:

jane_s dijo...

catorce
(????)

Elessar dijo...

Sí, comparto con Jane, el primero es 14, y el último, creo, es el veintiuno.

71 dijo...

El primero es catorce y el último es veintiuno.
Como se aceptan otros idiomas...
En inglés el primero es ocho (eight) y el último el dos mil (two thousand)

Elessar dijo...

Logré hacer un programa que me escriba todos los números de 1 a 1.000.000 (con el pequeño problema de que me quedó unomil...lo que sea en vez de mil aunque se podría arreglar, no tengo ganas) en letras en un archivo *.txt, que intenté fallidamente abrirlo en cualquiera de las opciones de Windows para archivos de textos. Creo que el problema quizá era que el archivo mide 16 Mb... o yo que sé, no se me ocurre otra... pero 16 Mb ¡Por Dios, no quiero ver tantos números! Pensaba quizá después, si lograba abrirlo, ordenarlo alfebéticamente y ver si mi respuesta estaba bien... pero sigo traumado por 16 Mb...

Mario dijo...

Elessar, modifica tu programa para almacenar el numero en letras en una variable, luego comparalo con el significado en letras del siguiente numero, y si el siguiente es menor sustituye la variable.
Al llegar al millon, imprimelo.

PD. estoy suponiendo que el lenguaje de programacion que usas permite comparar cadenas de texto de la forma IF text1 Elessar, modifica tu programa para almacenar el numero en letras en una variable, luego comparalo con el significado en letras del siguiente numero, y si el siguiente es menor sustituye la variable.
Al llegar al millon, imprimelo.

PD. estoy suponiendo que el lenguaje de programacion que usas permite comparar cadenas de texto de la forma IF text1 Elessar, modifica tu programa para almacenar el numero en letras en una variable, luego comparalo con el significado en letras del siguiente numero, y si el siguiente es menor sustituye la variable.
Al llegar al millon, imprimelo.

PD. estoy suponiendo que el lenguaje de programacion que usas permite comparar cadenas de texto de la forma IF text1 Elessar, modifica tu programa para almacenar el numero en letras en una variable, luego comparalo con el significado en letras del siguiente numero, y si el siguiente es menor sustituye la variable.
Al llegar al millon, imprimelo.

PD. estoy suponiendo que el lenguaje de programacion que usas permite comparar cadenas de texto de la forma IF text1 Elessar, modifica tu programa para almacenar el numero en letras en una variable, luego comparalo con el significado en letras del siguiente numero, y si el siguiente es menor sustituye la variable.
Al llegar al millon, imprimelo.

PD. estoy suponiendo que el lenguaje de programacion que usas permite comparar cadenas de texto de la forma IF text1 Elessar, modifica tu programa para almacenar el numero en letras en una variable, luego comparalo con el significado en letras del siguiente numero, y si el siguiente es menor sustituye la variable.
Al llegar al millon, imprimelo.

PD. estoy suponiendo que el lenguaje de programacion que usas permite comparar cadenas de texto de la forma IF text1 Elessar, modifica tu programa para almacenar el numero en letras en una variable, luego comparalo con el significado en letras del siguiente numero, y si el siguiente es menor sustituye la variable.
Al llegar al millon, imprimelo.

PD. estoy suponiendo que el lenguaje de programacion que usas permite comparar cadenas de texto de la forma IF text1 Elessar, modifica tu programa para almacenar el numero en letras en una variable, luego comparalo con el significado en letras del siguiente numero, y si el siguiente es menor sustituye la variable.
Al llegar al millon, imprimelo.

PD. estoy suponiendo que el lenguaje de programacion que usas permite comparar cadenas de texto de la forma IF text1 < texto2 THEN ...

Mario dijo...

me uno a los que dicen 14, y además afirmo que Catorce es el menor entre 1 y el infinito!! :D

o me equivoco?

Mario dijo...

Por cierto Elessar, no se tu edad pero en "la vieja escuela" de MSDOS hay un programa que se llama sort.exe.

c:\sort archivo.txt

Aunque si tu archivo es tan grande y la memoria de tu pc es poca, en una de esas se queda colgada .. asi que usese bajo su propio riesgo :)

Markelo dijo...

¿21? ¿les parece?

alejandro dijo...

21,421

alejandro dijo...

en ingles el ultimo no seria 2,222 (two thousand two hundred twenty two)?

alejandro dijo...

creo que en italiano el primero es 100(cento)y el ultimo, 21,321(ventuno milla tre cento ventuno)

Mario dijo...

Alejandro,
veintiUno es mayor que veintiCuatro etc etc

alejandro dijo...

o se me olvido 21,421 es en espanol

Mario dijo...

perdon ... veintiunO es mayor que veintiunMil ... etc etc

alejandro dijo...

o si mario apenas vi lo que hice. gracias

alejandro dijo...

entonces sera 21 el mayor?

Mario dijo...

a mi me parece que si, pero parece que Markelo opina algo diferente ...

alejandro dijo...

pienso que tambien hice el mismo error con el ultimo de italiano pero no estoy seguro. entonces no se si es ventuno milla... o ventun milla. Manana le pregunto a mi profe.

santiago dijo...

Son todos unos tramposos, las instrucciones dicen claramente "escriban con letra todos los numeros entre uno y un millón" evidentemente, no les ha dado tiempo de hacerlo desde que el acertijo está en línea.

Están descalificados

santiago dijo...

en latín el primero es C (cien)y hasta el mil novecientos noventa y nueve, que no sé como se escriba más allá, el XV (quince) creo

santiago dijo...

que diga, tres mil novecientos noventa y nueve

santiago dijo...

pero bien escrito, probablemente el último sería el primero, es decir que 1, VNVS, iría al final. Pero no estoy seguro

santiago dijo...

pero bien escrito, probablemente el último sería el primero, es decir que 1, VNVS, iría al final. Pero no estoy seguro

71 dijo...

el mayor, en español, es 21.321

71 dijo...

y el ultimo, en ingles, no es 2000 ni 2222(twenty-two twenty-two).
Es 2002 (two thousand two)

Otis B. Driftwood dijo...

En alemán, el más pequeño sería el ocho (acht)
El mayor, si no me equivoco, el veintidós (zweiundzwanzig)

Cosas del idioma :)

alejandro dijo...

ve. yo si que hice errores. Les cambio mi respuesta: el ultimo de italiano es 21(ventuno) bueno, eso creo.

alejandro dijo...

71 te equivocastes porque en ingles 2,222 se escribe: two thousand two hundred twenty two y no Twentytwo twentytwo. Tampoco seria 2002 porque eso es two thousand two, que obviamente no viene despues que 2,222.

alejandro dijo...

71 Y tambien creo que Mario ya demostro que ventiunMil trecientos veintiuno no viene antes que veintiunO, porque yo tambien estaba pensando por los mismos lados pero no era esa la respuesta

alejandro dijo...

por que sera que markelo parece que tenga otro numero en mente para el ultimo de espanol? o sera que esta jugando con nosotros?

alejandro dijo...

Quise escribir Y tambien creo que Mario ya demostro que ventiunMil trecientos veintiuno no viene DESPUES que veintiunO, porque yo tambien estaba pensando por los mismos lados pero no era esa la respuesta.

71 dijo...

si estaba equivocado. es que yo aprendi a decir en ingles los numeros de 4 cifras separandolos en 2 numeros de 2 cifras, por ejemplo, 5496 sería "fifty-four ninety-six". Incluso existe una cancion más o menos conocida donde se hace eso.

David dijo...

Los ordinales son :
Cardinales: uno, dos, tres, ...
Ordinales: primero, segundo, tercero, ...
Partitivos: medio, tercio, cuarto, ...

Se pueden usar como adjetivos, pronombres y sustantivos.
Bueno, nos centramos en los cardinales que son los de nuestro problema.

Cuando son pronombres y sustantivos o adjetivos se escriben diferente:
Sustantivos --> Adjetivos
uno --> un (un caballo)
dos --> dos (dos caballos)
tres --> tres (tres caballos)
veinte --> veinte (veinte caballos)
veintiuno --> veintiún (veintiún caballos)
treinta y uno --> treinta y un (treinta y un caballos)
veintiuno mil --> veintiún mil (veintiún mil caballos)

De esta forma, escribiendo los números como si fueran sustantivos:
El primero por orden alfabético es catorce (14)
El último es veintiuno mil veintiuno (21021)

Elessar dijo...

Pero creo yo, David, que se escribe veintiunmil... leí tu respuesta, pero de todas formas me parece eso.
Gracias Mario por las recomendaciones, la verdad que tengo 14 años y el único lenguaje que sé (más o menos) es Perl, así que usé ese. Ya arreglé el problema (porque además quería ver todos los números escritos) e hice que me los pusiera en archivos diferentes, de los cuales después copié su interior en MSWord y los ordené (bueno, todavía no lo hice, porque ayer me aburrí y no cambié nada). (Tengo que admitir que e MSDOS no tengo más idea que DIR).

Elessar dijo...

71, yo escuché varias veces que dicen 2002 como twenty hundred two (veinte cientos dos), sobre todo en las seriales y eso...

Markelo dijo...

jajajaj

Chicos, chicos...

Yo lo único que hice fue preguntar si estaban seguros del 21 ¡y parece que no! :-)

Interesante el comment de David, pero la verdad que veintiuo mil suena bastante feo. ¿Tenés alguna fuente más o menos creible que lo afirme?

71 dijo...

bueno, yo ya me quede muy confundido en eso del ingles. mejor me retiro.

Markelo dijo...

El DRAE nos complica un poco más.

Dice que "veintiún" es un apócope de veintiuno y que se usa solo delante de un sustantivo.

¿Será que debemos considerar a "mil" como un sustantivo?

¿No es lo mismo hablar de "veintiuno" que de "veintiún mil"?

Alguna idea.

anejo dijo...

aquí estamos hablando de números, lo cual significa, morfológicamente hablando, que hablamos de determinantes numerales (no sé si en argentina se usa el mismo nombre, sorry)

tanto "veintiuno" como "veintiún" (sin importar que sea o no un apócope) son determinantes numerales, sea que se usen como pronombre (sustituyendo a un sustantivo), o como determinante puro (acompañando a un sustantivo).

en el caso de "veintiún mil", "veintiún" es un determinante numeral de otro determinante numeral. por explicarlo de manera simple -y por tanto, entendible-, es similar decir "tengo veintiún coches" (ojalá), que decir "tengo veintiún mil.. lo-que-sean": el determinante numeral "veintiún" modifica, determina, complementa a la palabra que le sigue.

y todo eso a que venía? je

David dijo...

Veo que no convenció. Pero fue un buen intento :P

KIKA dijo...

14 y 21. Una anécdota: final de Calculo Numerico hace muchos años (apenas habian PC AT y XT). Se podia utilizar calculadora programable. Siempre hay un zarpado y esta vez hubo uno que trajo su nueva PC a la sala (algunos compañeros nunca habian visto una). No paso el examen porque tenia varios errores en el programa que no pudo corregir antes que finalice la prueba.
No importa el camino si llega a la solucion pero noto que muchos ponen esfuerzo mental en el programa que resuelve cuando lo divertido es resolverlo mentalmente. Que opinan?

Elessar dijo...

Yo opino que también es divertido hacer un programa, aunque también lo es responder mentalmente. Yo hice primero mentalmente y después me fui a la máquina, y eso creo es la forma más divertida de hacerlo.

c_u_m_i_c... dijo...

veintiuno, veintiuno
o veintiuno con veintiuno, como quieran
es decir: 21,21
que es un número entre 1 y 1.000.000

Elessar dijo...

Yo diría 21,21 x 10**(elevado a la)21,21; que es un número entre 1 y 1.000.000...

c_u_m_i_c... dijo...

jeje elessar, ese número es mayor de un millon... ;D

Elessar dijo...

¿Sí?... ¡Ay! Casi doy con el numero entonces, voy a intentarlo después de que sintonize de vuelta el canal...

LlegueTarde dijo...

El primero es como ya dijeron 'Catorce' y el último es 'Veintiun mil veintiuno'

Para los que usan VB lo hice así:


Private Sub Form_Load()
Dim nro As Integer
Dim maxMontoEscrito As String
Dim minMontoEscrito As String
minMontoEscrito = "UNO"
maxMontoEscrito = "UNO"
Dim i As Double

For i = 1 To 1000000
'nro = i
If Trim(CantidadEnLetra(i)) maxMontoEscrito Then
maxMontoEscrito = Trim(CantidadEnLetra(i))
End If
Next i
MsgBox maxMontoEscrito & " " & minMontoEscrito
End
End Sub

Function CantidadEnLetra(tyCantidad As Double) As String
Dim lyCantidad As Double, lyCentavos As Currency, lnDigito As Byte, lnPrimerDigito As Byte, lnSegundoDigito As Byte, lnTercerDigito As Byte, lcBloque As String, lnNumeroBloques As Byte, lnBloqueCero
tyCantidad = Round(tyCantidad, 2)
lyCantidad = Int(tyCantidad)
lyCentavos = (tyCantidad - lyCantidad) * 100
laUnidades = Array("UN", "DOS", "TRES", "CUATRO", "CINCO", "SEIS", "SIETE", "OCHO", "NUEVE", "DIEZ", "ONCE", "DOCE", "TRECE", "CATORCE", "QUINCE", "DIESISEIS", "DIESISIETE", "DIESIOCHO", "DIESINUEVE", "VEINTE", "VEINTIUN", "VEINTIDOS", "VEINTITRES", "VEINTICUATRO", "VEINTICINCO", "VEINTISEIS", "VEINTISIETE", "VEINTIOCHO", "VEINTINUEVE")
laDecenas = Array("DIEZ", "VEINTE", "TREINTA", "CUARENTA", "CINCUENTA", "SESENTA", "SETENTA", "OCHENTA", "NOVENTA")
laCentenas = Array("CIENTO", "DOSCIENTOS", "TRESCIENTOS", "CUATROCIENTOS", "QUINIENTOS", "SEISCIENTOS", "SETECIENTOS", "OCHOCIENTOS", "NOVECIENTOS")
lnNumeroBloques = 1
Do
lnPrimerDigito = 0
lnSegundoDigito = 0
lnTercerDigito = 0
lcBloque = ""
lnBloqueCero = 0
For i = 1 To 3
lnDigito = lyCantidad Mod 10
If lnDigito > 0 Then
Select Case i
Case 1
lcBloque = " " & laUnidades(lnDigito - 1)
lnPrimerDigito = lnDigito
Case 2
If lnDigito 0, " Y", Null) & lcBloque
End If
lnSegundoDigito = lnDigito
Case 3
lcBloque = " " & IIf(lnDigito = 1 And lnPrimerDigito = 0 And lnSegundoDigito = 0, "CIEN", laCentenas(lnDigito - 1)) & lcBloque
lnTercerDigito = lnDigito
End Select
Else
lnBloqueCero = lnBloqueCero + 1
End If
lyCantidad = Int(lyCantidad / 10)
If lyCantidad = 0 Then
Exit For
End If
Next i
Select Case lnNumeroBloques
Case 1
CantidadEnLetra = lcBloque
Case 2
CantidadEnLetra = lcBloque & IIf(lnBloqueCero = 3, Null, " MIL") & CantidadEnLetra
Case 3
CantidadEnLetra = lcBloque & IIf(lnPrimerDigito = 1 And lnSegundoDigito = 0 And lnTercerDigito = 0, " MILLON", " MILLONES") & CantidadEnLetra
End Select
lnNumeroBloques = lnNumeroBloques + 1
Loop Until lyCantidad = 0

End Function

Markelo dijo...

Efectivamente... llegaste medio tarde y no leiste lo que ya dijeron... veintiunO está después que el veintiunMil

Levy Rachel dijo...

Only the hand that erases can write the true thing.

weo dijo...

"DIESISEIS", "DIESISIETE", "DIESIOCHO", "DIESINUEVE", .... mmmmmmmmmmmmmmmmm.

Petete dijo...

En cuanto al inglés:

Lo semánticamente correcto es decir

(Miles) (centenas) and (decenas y unidades)

Es muy usado, sin embargo, en la cotidianeidad el simplificar los miles y las centenas (siempre que el número sea menor a 10000) en una "Decena de centenas".

Así, 2002 sería: "Two thousand and two" o "Twenty houndreds and two"

Espero haberme explicado bien.

Para 'llegué tarde', el programa me parece demasiado largo; la semana que viene le pegaré una ojeada y chequearé si lo puedo optimizar (para sacarme el gusto nomás). Te recomiendo un diccionario y un buen corrector ortográfico (va con onda).

JESSY dijo...

PLEASE, QUE ALGUIEN ME ESCRIBA EN LERTA EL SIGUINTE NUM.
105 EUROS

santiago dijo...

ciento cinco euros... como se dice... ¡Que rara pregunta!

Markelo dijo...

La verdad que si.

Se me ocurriría preguntar cuántos años tiene Jessy, aunque, si sabe manejar un navegador y un buscador y logró llegar a esta página, probablemente tenga mas de 6 años.

Ah! lo que pasa es que santiago lo escribió en letras y Jessy quería en "LERTAS". Ahí te quiero ver.

fernando dijo...

deseo q si me pueden escrivir los numeros del uno al cien bien escritos. porfavor

lara dijo...

nesecito los numeros del uno al cien en ingles

rocio dijo...

que biene despues de las centenas de millon

aleyka dijo...

que número ba despues de las centenas de millon