[Hilo Oficial] Esto también es otro arte...el ARTE de programar
#49
Cita
Hola.

Vaya, y yo esperando este hilo por el off topic, me da por entrar a este subforo, y me lo encuentro aquí, y ya bastante avanzado. No tengo perdón.

Mi problema va más allá de la sintaxis o de algún calculo, ya que ahora mismo es la nula motivación que me da programar. Empecé con muchas ganas cuando salí de la ESO queriendo hacer un curso de grado medio de informatica, para no chuparme Bachillerato (relleno, como el de los Anime) ... pero no tuve suerte con las listas, y entré en espera y por la cola.

Al final tuve que ponerme a trabajar de lo primero que me surgió, pero me tocó en la época en la que ya estaba empezando lo que por aquel entonces se llamaba "desaceleración desacelerada", así que cuando cumplió el contrato de seis meses me mandaron a fregar. Entonces me ví en una situación bastante desmotivante, ya que me había quedado sin nada, y claro, cuando te acostumbras a trabajar incluso los sabados, cuando no tienes nada que hacer en casa, se te cae el mundo encima.

Entonces, cuando ví que había ahorrado suficiente, me picó la vena de probar programación por mi cuenta, hasta que surgiese algo, y buscando y buscando dí con una academia bastante maja donde había un profesor que daba C. Lo cogí sin dudarlo y ahí he dado C, y ahora Java. Tuve suerte porque a mitad de curso me llegó una carta de la comunidad de Madrid para asistir a un curso de .NET (que aún a dia de hoy me pregunto como me llegó, si yo no recuerdo haberme apuntado a nada), así que ahí pude ver .net, algo de sql y algo de xhtml.

Iba todo bien, hasta que llegué a Java, y nada más empezar ya noté que no lo estaba cogiendo con tanta fuerza, y a medida que iba viendo los objetos gráficos y los eventos, ni me esforzaba por memorizar la mayoria, por pura vagancia cojo los apuntes y aún a dia de hoy miro cual es el que necesito y cuales son sus metodos. Pero la peor parte ha llegado con los Thread y los arboles ... intenté comprenderlo, y más o menos lo comprendí, pero a mí los más o menos no me sirven, y si no lo domino al 100%, me desmotivo, y estando ya demotivado, me encuentro con ganas de dejar la programación.

Me sigue entreteniendo programar, pero ya no es lo mismo, y si sigo es por obligación propia, porque ponerme ahora con cualquier otra cosa tiraría a la basura todos estos años, e incluso el dinero que he invertido en ello.

Un saludo.
#50
Cita
Alguien que también programe juegos?
#51
Cita
(24-10-2012 23:42)helmerpunk link Alguien que también programe juegos?

Buf, yo casi termino, salvo por la despedida, un remake de un viejo juego de MSX, en 2D claro.

[Imagen: Temp2.png]

Saludos.
[Imagen: 2en8arn.jpg]
#52
Cita
Solucion a katas. Pseudocodigo

Sol=0
For i=1 a i<=(100-1)/5
  Sol+=i*5

For i=1 a i<=(100-1)/3
  If i*3%5 != 0
    Sol+=i*3
Retum sol

Explico cogiendo el ejemplo de 20

19/5 es 3, algo. 3 en entero.

Por tanto tenemos 5, 10, 15
19/3 es 6

Por tanto tenemos 3, 6,  9, 12, 15, 18

Pero el 15 se descarta porque es multiplo de 5, y ya lo hemos tenido en cuenta antes.

Asi que en este caso, en 9 pasos(en lugar de 19 como he llegado a ver) se resuelve el tema.

De hecho se puede hacer incluso mas corto...
((3+1)*5)*3/2=15
((6+1)*3)*6/2=63
3*5 es 15... Con lo que usando solo un bucle se podria quitar los repetidos. No se si me explico, es que estoy con el ipad y el pseudocodigo da palo
(Ultima edición: 25-10-2012 00:13 por thewazaa.)
[align=center]Y mientras, en SobreLoQueOpinar...

[b]Análisis: Metroid Prime 3: Corruption
#53
Cita
Vayamos por partes X-D

@Nikayurii, tu algoritmo creo que sigue sumando los múltiplos comunes, por ejemplo supongamos I = 6 y M5 = 30

Código:
IF M5 mod 3 = 0 THEN
    ContMC := ContMC + 1;
┬á ┬á  CheckMC := M5;
END IF;

IF M3 /= CheckMC THEN
    SumaMult := SumaMult + M3;
END IF;

M5 mod 3 = 0 se cumple y CheckMC = 30.

M3 valdrá 30 cuando I sea igual a 10, sin embargo con I = 9, M5 = 45 y 45 también es
divisible entre 3 y ahí se actualiza CheckMC a 45.

Cuando I llegue a 10 y M3 sea igual a 30 y M5 a 50; CheckMC seguirá valiendo 45.

Código:
IF M3 /= CheckMC THEN
            SumaMult := SumaMult + M3;

30 != 45 se cumple la condición y sumas M3(30) cuando ya lo habías sumado con I = 6 porque ahí M5(30).

Pf, no sé si se me entiende o incluso estoy errado que a estas horas...el caso es que te da lo mismo que le daba a ifar B cuando sumaba los múltiplos comunes┬á lol:

@Led, las cosas más difíciles de dominar acaban siendo las más gratificantes y en esto no te puedes desanimar porque dominarlo al 100% es sólo para unos pocos y requiere mucho trabajo, leer a gente que sabe de verdad y mucha práctica. Anímate a participar┬á birra:


@Babull, ese remake tiene muy buena pinta  adorar:


@thewazaa, buena solución, yo no tuve en cuenta que podría restringir el for a (1000 / 5). Bien visto. En lo último que propones ya me perdí┬á roto2: que estoy muy espeso, luego lo vuelvo a ver.

Gracias a todos.
#54
Cita
Definitivamente se puede hacer sin bucle alguno

N = lo que queramos, en este caso 100. Entero

Div5 = (n-1)/5
Div3 = (n-1)/3
Divchoque =(n-1)/(3*5)
Sol= ((div5+1)*5)*div5/2
Sol+= ((div3+1)*3)*div3/2
Sol-= ((divchoque+1)*(3*5))*divchoque/2
Return sol

Es la solucion optima.

Sencillamente aplico triangulacion. No recuerdo el nombre del teorema, pero la cosa es sencilla.

En el caso de 20, que se convierte en 15..., en vez de sumar 5 10 y 15... Si lo dibujamos, en una grafica... Nos encontramos con un triangulo. Si coge os este triangulo y lo superponemos, tenemos un cuadrado, donde

El alto es 20 (3+1)*5
El largo, 3
Si hacemos el area de esto es 60...
Y la del triangulo interior, 30

Resultado: se puede hacer la suma sin sumarlo todo. Las condiciones son fijas y el problema es sencillamente matematico.
Lo mismo para el 3
Y los choques cumplen la condicion que son multiplos de 3 y 5(15)... Por lo que con la misma tecnica, solo hace falta restar el area de estos.

Resultado. Se puede hacer el programa sin bucle alguno. Que es lo que mas interesa.

Vamos, que... Los que aun esteis en el colegio...
Vigilad que no os pongan el ejercicio en un examen de algebra
[align=center]Y mientras, en SobreLoQueOpinar...

[b]Análisis: Metroid Prime 3: Corruption
#55
Cita
Sólo me queda quitarme el sombrero y esta es una de las razones por las que las matemáticas son tan importantes para un buen programador cosa a la que le dí importancia tarde y ahora me hace flaquear de lo lindo. Gracias por el aporte thewazza.
#56
Cita
(25-10-2012 07:47)Margaruga link Sólo me queda quitarme el sombrero y esta es una de las razones por las que las matemáticas son tan importantes para un buen programador cosa a la que le dí importancia tarde y ahora me hace flaquear de lo lindo. Gracias por el aporte thewazza.
Por si las moscas ahora que estoy en el trabajo y hacer estas cosas es un poco más comodo... he hecho la prueba matemática y es correcto

(1000-1)/5 = 199
(1000-1)/3 = 333
(1000-1)/15 = 66
Solución = (199+1)*5*199/2 + (333+1)*3*333/2 - (66+1)*15*66/2

Y si, las matemáticas son muy importantes en la informática. Pero no es tanto el tema de grandes conocimientos (integrales, fractales, funciones de fourier...)... como aplicar el pensamiento lógico para resolver sus problemas, en la mayoría de los casos.

Ahora, más que matemáticas puras, a muchos informáticos recomendaría otra cosa: lógica.

Modus ponens y compañía se puede llegar a considerar una de las más antiguas formas de programación que existen... y es en base 2 como la programación estandard.
[align=center]Y mientras, en SobreLoQueOpinar...

[b]Análisis: Metroid Prime 3: Corruption
#57
Cita
Sí, tienes toda la razón del mundo, cuando estaba en primero maldecía tener álgebra, cálculo y matemáticas discretas y ahora miro hacia atrás y me doy cuenta de que tuve que haberles puesto mucho más interés. Además de que en segundo de bachillerato no cogí matemáticas y llegue a la universidad sin tener ni puta idea y aún les cogí más tirria. No cometáis mi error.

Edit: Me gusta el diseño de tu página, ¿Qué haces profesionalmente? ¿Diseño y desarrollo web?
#58
Cita
Muy buena thewazaa Big Grin Sospechaba que debía haber alguna fórmula o algo, gracias Smile

Ya entiendo en qué falla el algoritmo. Tendría que seguir dándole vueltas, pero la solución de thewaz es mucho mejor, así que... para el próximo Smile

Las matemáticas y las discretas sí que son importantes, siempre que tengas buenos profesores. Todavía estoy en primero y...┬á Digamos que nadie se entera mucho de las primeras y la profesora de las segundas... en fin xD
(Ultima edición: 25-10-2012 11:01 por Nikayuri.)
#59
Cita
Perfecto! Dejaré unos días más por si alguien más se anima a resolverlo o si queréis proponer algo adelante.

Añado un enlace a una biblioteca libre online con un montón de material sobre programación (y otras cosas)
http://www.etnassoft.com/biblioteca/
#60
Cita
De paso deciros, que si quereis resolver problemas de esta indole... lo mejor es que pilleis números antiguos de la revista Novática (en la facultad seguro pillais números antiguos). En la última página publicaban un problema y en el siguiente número la solución.

Eso sí, pillé un par de soluciones incorrectas, con planteamientos totalmente equivocados... pero no por eso los problemas eran menos interesantes.
[align=center]Y mientras, en SobreLoQueOpinar...

[b]Análisis: Metroid Prime 3: Corruption


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)