Título: Ayuda con sintaxis For Publicado por: oq.JULIO.po en 25 Abril 2018, 06:40 am Hola!, tengo que hacer un programa que sume los múltiplos de 3 que haya contenidos en un número dado por el usuario.
Si digito un 9 la suma de sus múltiplos debería dar 3+6+9=18 Lo que pasa es que no sé si estoy ingresando bien la sintaxis del for... Código
· Los códigos deben ir en etiquetas GeSHi >aquí las reglas del foro (http://foro.elhacker.net/reglas.htm) -Engel Lex Título: Re: Ayuda con sintaxis For Publicado por: engel lex en 25 Abril 2018, 06:56 am primero que nada
Código: n==n no hace nada... eso es una comparación que retorna verdadero por otro lado, el for se ejecutará siempre y cuando Código: n==3 es decir, si n no es 3 no funciona... te recomiendo la forma de hacer esto mejor es Código: for(;n%3==0;n/=3){ puede ser una forma extrana XD pero tiene sentido... primero, no hay primer valor en el for porque no importa..., el for se repetirá siempre que n sea multiplo de 3 (implica que tiene multiplos de 3) y avanzará dividiendo n entre 3 XD pruebalo bien XD es de madrugada no he dormido bien y lo hice sin probar XD por cierto... no resto 1 o busco valores porque por teoría de matemática los productos son comutativos... así que no importa el orden de los factores el producto es igual... es decir... 2*3*3*7*11 se podrá dividir entre cualquiera de sus factores sin importar como fue multiplicado Título: Re: Ayuda con sintaxis For Publicado por: JPS en 26 Abril 2018, 00:37 am Yo tb soy nuevo en esto.
Por lo poco que sé el for se utiliza para recorrer intervalos usando ciclos, de 0 a n (ascendente), o de n a 0 (descendente). Estos intervalos se pueden recorrer de ciclo a ciclo con i++ o i-- o la progresión que le quieras poner(x+=2 para ir saltando de dos en dos por ejemplo), sea ascendente o descendente según el propósito que le quieras dar. Por ejemplo de 0 a n (ascendente) sería así, siendo n=5: Código: ... ... Ciclo 0 Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 ... 3 a n (descendente) sería así, siendo n=-5: Código: ... ... Ciclo 3 Ciclo 2 Ciclo 1 Ciclo 0 Ciclo -1 Ciclo -2 Ciclo -3 Ciclo -4 ... Para el uso de vectores se usa un for desde 0 (principio del vector) hasta n (final del vector). Para el uso de matrices se usan dos for anidados. Uno usa i para recorrer el intervalo de las filas (primera dimension (un simple vector)) y el otro usa j para recorrer el intervalo de las columnas (segunda dimensión). te aconsejo ver este curso en youtube: https://www.youtube.com/watch?v=hZXFl4n6854&list=PLWtYZ2ejMVJmUTNE2QVaCd1y_6GslOeZ6&index=33 Ánimo, no desesperes y si ves que algo se te olvida anótalo en una libreta. Título: Re: Ayuda con sintaxis For Publicado por: oq.JULIO.po en 26 Abril 2018, 02:28 am Okok muchas gracias a ambos, y si quisiera que se inicializara desde el valor de la variable "n" dada por el usuario,y termine hasta que sea igual a 3?
Título: Re: Ayuda con sintaxis For Publicado por: dijsktra en 27 Abril 2018, 14:57 pm Hola!
... que haya contenidos en un número dado por el usuario. Si digito un 9 la suma de sus múltiplos debería dar 3+6+9=18 Yo diría mejor contenidos en un rango empezando desde 3 hasta un número (mayor o igual que 3) dado por el usuario. La sintaxis de la instrucción de control "for", a no dudarlo, una de las señales más características del lenguaje C, sobretodo porque es tan versátil que su expresividad es equivalente a la de la instrucción "while"... Esto no era así en otros lenguajes de su época, como el mítico Pascal, en el que se usaba como azucar sintáctico de una construcción while particular (donde había una variable contadora "n", que se comparaba contra una expresión "n=e(...)" y se incrementaba o disminuía en un valor constante 1,2...) Tiene 4 partes Código que vienen a coincidir con lo que en algoritmia clásica se conoce como
En el cuerpo del bucle pueden aparecer instrucciones como break; o continue, y aunque muy útiles en programación se sistemas y en el mundo real, en algoritmia clásica son el "patito feo" que rompe la llamada "programación estructurada" o "composicional"... Pero esto es otro tema aparte..... C no fue hecho para estudiar algoritmia, sino para la programación de sistemas operativos, y es ahí donde encuentran todo su valor... Ahi va una solución a tu problema. Los comentarios tienen más importancia en cursos avanzados de algoritmia. Por el momento fífate en la rutina mult3. Después intenta programarla en sentido descendente (con nn--...) Código
La salida que da el programa es: Código: 3 Título: Re: Ayuda con sintaxis For Publicado por: dijsktra en 27 Abril 2018, 22:58 pm Okok muchas gracias a ambos, y si quisiera que se inicializara desde el valor de la variable "n" dada por el usuario,y termine hasta que sea igual a 3? Un poco más raro... pero igual de bonito. La expresión Código
se evalúa de la siguiente manera: Si N es divisible entre 3, entonces (N%3==0) es 1, y entonces c, vale 1*N . En otro caso, pues 0. Código
La salida del programa da Código: 3 |