¿determinar multiplos?

Iniciado por Bledniss, 25 Abril 2011, 13:13 PM

0 Miembros y 2 Visitantes están viendo este tema.

d(-_-)b

Cita de: Bledniss en 25 Abril 2011, 13:13 PM
Bueno que en un libro de C que estoy leyendo me pide que realize un ejercicio pero nose como aver si me lo dice alguen.
¿Como escribir un programa que lea un valor entero y determine si es multiplo de 2 y de 5.? :o

Cual libro es ese.  :-X

saludos...
Max 400; caracteres restantes: 366

Bledniss

Es uno pa empezar que tapoco soy tan listo :P
Se llama Introduccion a la programacion con C es de Marco A. Peña Basurto y José M. Cela Espín.
Lo descarge sde un link que me encontre por el foro, fijate que hay un monton :xD
<a href="http://www.userbars.be"><img src="http://img857.imageshack.us/img857/6337/44984.gif" alt="Free userbars" border="0"></a>

xassiz~

Cita de: Leo Gutiérrez. en 26 Abril 2011, 19:01 PM
No te ofendas, pero ese código lo hace cualquer niño de 8 años que lleve menos de un día con C. Docho de otra forma, tu código es tan básico que poner eso solo te acarreará burlas.

Saludos.
Aparte de que no tiene ninguna autoridad mientras no esté registrado con licencia.

~

Como sabemos un múltiplo es un número que es exactamente divisible entre el "mútliplo base", o en otras palabras, que al dividirlo da un residuo de 0. Con "exactamente divisible" lo que queremos decir es que la división da un resultado entero sin ningún decimal.

Por ejemplo 10 es múltiplo de 5 y de 2 porque

10/5==2,
10%5==0,
10/2==5,
10%2==0,
(int)(10/5)*5==10,
(int)(10/2)*2==10

___________

Como podemos ver también, si efectuamos una división inexacta (que produce decimales) con variables enteras, la parte decimal se pierde y solo queda la parte entera. Así que si dividimos dos números de variables enteras por ejemplo entre 2, y después los volvemos a multiplicar por dos, y el número es el mismo que antes de dividir, entonces también sabemos que el número en cuestión es un múltiplo del número por el que lo dividimos.
___________

Para determinar si el número es múltiplo de 2, de 5, etc., solo hay que dividir ese número entre 2, entre 5, etc., usando el operador de módulo %.

Este se aplica igual que el de división /, pero la diferencia es que % devuelve el residuo de la división.

Así que siempre que algo como numero % 2 o numero % 5 den como resultado 0 es porque el numero es un múltiplo de 2, 5, etc.

Esto es aplicable para C, C++, javascript, Java, ensamblador, y prácticamente todos los lenguajes mayores de programación.
Sitio web (si la siguiente imagen no aparece es porque está offline):

Garfield07

Cita de: Leo Gutiérrez. en 26 Abril 2011, 19:01 PM
No te ofendas, pero ese código lo hace cualquer niño de 8 años que lleve menos de un día con C. Dicho de otra forma, tu código es tan básico que poner eso solo te acarreará burlas.
Es cierto, pero a pesar de eso es un código, y lo he puesto en otro foro en el que se pide específicamente que no liberemos información que se encuentre en ese foro. Esa información, por muy simple que sea, es información, y aunque el código sea muy simple no está permitido copiarla. Así que ese código no se copia y punto. Supongo que aunque el código sea muy sencillo, he dicho explícitamente que no se copie, y hacerlo sería ilegal (sí que está protegido por licencia). Y supongo que sabrás que sé programar medianamente bien en C, así que espero no te "burles mucho" de que haya querido ayudar a alguien con un código sencillo y comprendible :¬¬.

Cita de: ~xassiz en 27 Abril 2011, 00:12 AM
Aparte de que no tiene ninguna autoridad mientras no esté registrado con licencia.
Todo el contenido del foro tiene licencia, mientras di lo que quieras...

Sagrini


* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo

leogtz

Cita de: Sagrini en 27 Abril 2011, 18:33 PM
Es cierto, pero a pesar de eso es un código, y lo he puesto en otro foro en el que se pide específicamente que no liberemos información que se encuentre en ese foro. Esa información, por muy simple que sea, es información, y aunque el código sea muy simple no está permitido copiarla. Así que ese código no se copia y punto. Supongo que aunque el código sea muy sencillo, he dicho explícitamente que no se copie, y hacerlo sería ilegal (sí que está protegido por licencia). Y supongo que sabrás que sé programar medianamente bien en C, así que espero no te "burles mucho" de que haya querido ayudar a alguien con un código sencillo y comprendible :¬¬.
Todo el contenido del foro tiene licencia, mientras di lo que quieras...

Sagrini

Es que simplemente es absurdo, es como si yo le pongo licencia a un Hola Mundo y voy diciendo que nadie me lo puede copiar, que porque tiene licencia, simplemente es absurdo, espero y no te enojes, pero así se ve. El operador módulo y la comprobación de múltiplos es sumamente común que aparezca en todos los libros de C, incluso en los tutoriales, así que van a estar copiando TÚ código cientos de veces.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

Garfield07

Realmente yo diferencio entre copiar y presentar, y mirar, comprobar, ver cómo funciona y escribir mi propio código aunque sea exactamente lo mismo. La diferencia es que en uno no aprendes y con el otro dos.


* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo

RyogiShiki

#17
Tal vez el problema no sea lo sencillo del código sino lo genérico que puede llegar a ser. Cualquier persona que nunca haya visto ese código en su vida puede llegar a hacer exactamente ese mismo código. para un ejercicio o trabajo similar.
--
EDIT: Siento el comentario innecesario, no me fije que este hilo tenia 2 páginas y solo ley las entradas de la primer página, pero mi mismo punto lo ilustra Leo en el primer post de esta página, y como no me gusta repetir pero no puedo borrar el comentario, pues dejo la aclaración

Saludos