Hace 10 años | Por fraggle a juanmacias.net
Publicado hace 10 años por fraggle a juanmacias.net

Hay principalmente dos tipos de programadores, los que hacen las cosas extremadamente bien pero fuera de plazo, y los que aún no tienen experiencia y son incapaces de hacerlo, pero claro, quieren cobrar como los que saben hacerlo, pero… es que ninguno de los dos valen!!!!! Nos comen empresas de otros países que van mucho más rápido y hay que ser productivo.

Comentarios

x

#c-11" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/2173563/order/11">#11 El enunciado me sigue pareciendo claro que la solución es como puso #16. Es decir, no se indica que se ponga 2 veces CHOCOLATE sino que se imprima CHOCO cuando sea multiplo de 3 y LATE cuando lo sea de 5 y cuando lo sea de los dos se imprime primero el de 3 y luego el de 5.
Sino podría imprimir para el 15: LATECHOCOCHOCOLATE y también sería válido pues no se indica el orden de validación de los términos.
De ahí que en el enunciado del problema no se indique el orden porque deja claro que primero es 3 y sin un else el 5.
Por eso solo necesitas 2 if.

Modificando el codigo de #14 (y #15)
#!/usr/bin/python
for i in range(1,101):
if (i % 3 == 0):
print str(i) + " " + "choco";
if (i % 5 == 0):
print str(i) + " " + "late";

#4 El problema trata de indicarte que a veces la solución más obvia es la mejor solución, que es usar 2 mod en vez de 3.
Normalmente estos problemas se hacen para que uses el menor numero de condiciones (que en el fondo de leer el problema). En el código de #15 se realiza una validacion que no es necesaria. (15) para imprimir el mismo resultado.
Por eso digo lo de los dos if y no 3.

D

#17 El problema es que pide que se imprima "chocolate" todo junto cuando sea múltiplo de 15.

Tu script me devuelve esto:

ander@ander-H61H2-I3:~$ python choco2.py
3 choco
5 late
6 choco
9 choco
10 late
12 choco
15 choco
15 late
18 choco
20 late
21 choco
24 choco
25 late
27 choco
30 choco
30 late
33 choco
35 late
36 choco
39 choco
40 late
42 choco
45 choco
45 late
48 choco
50 late
51 choco
54 choco
55 late
57 choco
60 choco
60 late
63 choco
65 late
66 choco
69 choco
70 late
72 choco
75 choco
75 late
78 choco
80 late
81 choco
84 choco
85 late
87 choco
90 choco
90 late
93 choco
95 late
96 choco
99 choco
100 late

Solo me baso en lo que requiren los resultados. Si se concatenan las cadenas, mejor que mejor.

tsumy

#0 Como se llama la empresa del tan juan?Por si pide un presupuesto enviarlo a india directamente y tal.
Me respondo: demartina.com

D

Lo mejor de todo es ver como habla de china en varios de sus posts, si pagas poco no iremos a comprar a tu tienda.


"¿Se apretarán los reyes magos el cinturón?"
http://juanmacias.net/2008/10/cuando-el-distribuidor-hace-competencia-desleal/

Y por último, los “listos”
Que acuden a juguetes de baja calidad made in china, como Jugueterías Poly, Imaginarium, Juguetoon, etc…

Tsubasa.Akai

Vamos ver, hay puntos en los que tienen razón, hay empresas que piden una burrada por trabajos sencillos, pero, pagar 50 € para que te den un programa de terceros es de traca.

Yo he montado web sencillas con Joomla, con plantillas prefabricadas, con plantillas creadas a mano e incluso con un complejo sistema de reservas de hoteles.

Ahora, estoy creando una pagina, bastante compleja que no he podido montar con Joomla por 3 razones:

1º No me daba la gana, quería montarla con Symfony.
2º La pagina, las necesidades del cliente son demasiado particulares como para poder usar un complemento de joomla.

3º Joomla tiene graves fallos de seguridad.

¿Soy un mal programador por eso?¿Debí de cobrar 50 + costes de licencias y entregarle un producto de prefabricado y que no se adapta al 100% de sus necesidades?

Nitros

#3 1º No me daba la gana, quería montarla con Symfony.
Me encantaría ver la cara de tu cliente cuando en una de las reuniones expones esta razón.

Tsubasa.Akai

De otro de los post de este genio:

"En uno de los proceso de selección, pusimos este problema a los candidatos:

CHOCO-LATE. Escribe un algoritmo en cualquier lenguaje de programación (uno de los 20 que aparecen aqui:
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html ) que cuente del 1 al 100 y que muestre por pantalla “CHOCO” cuando el número sea divisible por 3, “LATE” cuando se divisible por 5 y “CHOCOLATE” cuando sea divisible por 15.

La mayoría de los que respondieron a la pregunta lo hicieron de forma incorrecta y ninguno dio una respuesta mejor o igual a la que había dado yo. Y no fallaron por que no supieran programar, fallaron por que no leyeron correctamente el problema, no hicieron un análisis exhaustivo, simplemente se pusieron a programar.
"


Un for y tres if en PHP. ¿Que clase de prueba es esa?

D

#6 Esa anécdota la he leído en mil sitios diferentes.
Pondría la mano en el fuego que se lo ha inventado.

Tsubasa.Akai

#7 incluso si quieres afinarlo, puedes hacerlo con un switch

x

#6 Aparte de ser más viejo que el tebeo me sobra un if.
No necesitas hacer un "si n = 15 ..." cuando puedes validar sin un si n MOD 3 CHOCO y a continuacion si n MOD 5 LATE,
de esta forma muestro por pantalla CHOCOLATE con el 15.

Ala ya os jodi la gracia por un tiempo.

Tsubasa.Akai

#9 ¿Mi manera ha dejado de funcionar?

Sharezzade

#9 Lo dicho, no leéis el problema, la solucion por lo tanto está mal. Cuando un número es divisible por 15, también lo es por 3 y por 5 --> por pantalla has de mostrar CHOCOLATECHOCOLATE. No parece tan complicado de entender, ¿me equivoco?

D

#11 Primero comprueba el % 15, si es % 15, imprime y continua.

Despues % 5 y finalmente % 3.

D

#11 Yo prefiero imprimir las cadenas "chocolate", "choco" y "late", pues es lo que me han pedido.

D

#c-11" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/2173563/order/11">#11 (Meneame se cargará el formateo)

#!/usr/bin/python
for i in range(1,101):
if (i % 15 == 0):
print "chocolate";
elif (i % 5 == 0):
print "late";
elif (i % 3 == 0):
print "choco";

D

#c-11" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/2173563/order/11">#11 "-> por pantalla has de mostrar CHOCOLATECHOCOLATE. No parece tan complicado de entender, ¿me equivoco?"


Por eso en #15 compruebo que el %15 se ejecute primero, para que los otros casos se evalúen despues e impriman igualmente:

Podría hacer un (if i % 5 == 0 && i % 3 == 0) pero se pierde más tiempo por interación.

#!/usr/bin/python
for i in range(1,101):
if (i % 15 == 0):
print str(i) + " " + "chocolate";
if (i % 5 == 0):
print str(i) + " " + "late";
elif (i % 3 == 0):
print str(i) + " " + "choco";



python choco.py
3 choco
5 late
6 choco
9 choco
10 late
12 choco
15 chocolate
15 late
18 choco
20 late
21 choco
24 choco
25 late
27 choco
30 chocolate
30 late
33 choco
35 late
36 choco
39 choco
40 late
42 choco
45 chocolate
45 late
48 choco
50 late
51 choco
54 choco
55 late
57 choco
60 chocolate
60 late
63 choco
65 late
66 choco
69 choco
70 late
72 choco
75 chocolate
75 late
78 choco
80 late
81 choco
84 choco
85 late
87 choco
90 chocolate
90 late
93 choco
95 late
96 choco
99 choco
100 late

danibishop

Si, porque el enlace va de que todos se la saquen y demuestren (o no) que saben hacer ifs. Justo va de eso.

Muy productivo todo.

k

Lo que dice el articulo tiene razon, siempre podemos conseguir programadores mas baratos y cada vez mejores en paises emergentes y muy pronto en china, y a precios irrisorios para nuestro mercado.
Eso quiere decir que seamos unos paquetes, que cobremos demasiado, o mas bien que la globalizacion nos por saco todo lo que puede y mas.

Si lo que prima es la rapidez y el precio, pues si se lo encargas a un polaco por cuatro duros, cuidado con bombas logicas, puertas traseras y botnets, igual ese sofware si no sabes testearlo tiene un gran secreto.

Yo recomiendo casi siempre que es mejor algun producto testeado que no programar de cero una aplicacion, mejor tener soporte de una comunidad que ir por libre, es mas facil que entre muchos tengamos mas vision sobre los problemas de cierto software que uno solo, que por muy bien que lo quiera hacer, fuera en internet hay miles de hackers que se las saben todas.

Lo cierto es que igual al final los programadores de aqui nos tendremos que ir a la india o a donde podamos a trabajar, al final igual ese programa se lo realiza un programador de aqui que se fue a trabajar alli, ironias del destino.

f

Nuff said.