elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ... 30
111  Programación / Programación C/C++ / Re: Compila bien y no corre en: 2 Julio 2010, 20:29 pm
cbug, fijate en esta parte...

Código:
int mcd( int a, int b )
{
  if ( b == 0 )
    return a;
  else
    mcd( b, a % b ); //mcd( a, a % b );
}

Yo usaria la funcion abs() dentro de la funcion mcd(), debido a lo que habia aclarado do-while, que a mi se me habia pasado por alto. Ya que haciendo esto uno se olvida de tener que aplicarle el valor absoluto a los numeros antes de pasarlos a la funcion mcd().

Otro punto que se podria ver, seria usar la funcion abs() de la libreria stdlib.h

Código:
#include <stdio.h>
#include <stdlib.h>
 
int mcd( int a, int b )
{
    a = abs( a );
    b = abs( b );
    return ( b == 0 ) ? a : mcd( b, a % b );
}
 
int main( void )
{
    int x, y;
    scanf( "%d %d", &x, &y );
    printf( "mcd: %d\n", mcd( x, y ) );
    return 0;
}

Salu10.
112  Programación / Programación C/C++ / Re: Compila bien y no corre en: 2 Julio 2010, 01:56 am
Cita de: do-while
... lo correcto seria trabajar con el valor absoluto de los datos introducidos ...

Tenes razon do-while, esto ultimo se me habia pasado por alto! Gracias ;)

Salu10.
113  Programación / Programación C/C++ / Re: Compila bien y no corre en: 2 Julio 2010, 01:10 am
Muy bien (señido a la definición, como debe de ser).

Saludos.

Código:
function mcd(a, b)
    while b ≠ 0
       t := b
       b := a mod b
       a := t
    return a

Salu10.
114  Programación / Programación C/C++ / Re: Es correcto? en: 2 Julio 2010, 00:53 am
jairogon, seria de esta forma

Código:
fact = fact * n;
if ( fact == 0 ) return 1.0;
else return n;

Lo anterior esta mal declarado ya que == tiene mas precedencia que *= por lo tanto tendria que quedar asi...

Código:
(fact *= n) == 0 ? 1.0 : n;

Salu10.
115  Programación / Programación C/C++ / Re: Compila bien y no corre en: 2 Julio 2010, 00:09 am
OK nicolas_cof si 0 es un valor válido como entrada para el programa que calcula el M.C.D de dos números dime cuanto es el MCD de 0 y 1?

1

Salu10.
116  Foros Generales / Foro Libre / Re: Mejor guitarrista en: 2 Julio 2010, 00:05 am
Aca sumo algunos a mi lista...

Antoine Dufour - 30 Minutes in London


Andy McKee - Art of Motion


Jimmy Page - I Can't Quit You  


Y aca dejo algunos de mi patria ( Argentina )

Pappo - Juntos a la par


Claudio Marciello - De pie ("el tano" guitarrista de Almafuerte)


PD. Giardino no existe  :P

 ;-)

Salu10.
117  Foros Generales / Sugerencias y dudas sobre el Foro / Re: Sugerencia en cambio de subforo en: 1 Julio 2010, 23:26 pm
se deja como antes:

.NET subforo de Programación General.

Muchas gracias el-brujo ;)

Salu10.
118  Programación / Programación C/C++ / Re: Compila bien y no corre en: 1 Julio 2010, 22:41 pm
Citar
... si te fijas bien en el codigo no seria lo mismo hacer un while que un do-while ya que con este ultimo estarias ejecutando 3 sentencias totalmente innecesarias.

Bueno, eso solo sucederia cuando uno de los números dados como entrada es cero lo cual no es una entrada válida para el programa. Si se ha de verificar por la entrada válida, ¿porqué no tambien verificar por la entrada de números negativos?

czealt, porque pensas que se tendria que verificar por la entrada de numeros negativos?

Citar
El máximo común divisor (abreviado mcd o m.c.d.) de dos o más números enteros es el mayor número que los divide sin dejar resto. - Wikipedia

Que se ingrese como entrada el valor 0, no quiere decir que este sea una entrada invalida para el programa, ya que por definicion seria correcto. Yo lo que te queria decir con respecto del do-while es que ejecutarias 3 sentencias totalmente innecesarias que no aportan ningun valor al objetivo del programa. Por eso es mejor usar el while y evitar ejecutar ese bloque de codigo.

Salu10.
119  Programación / Programación C/C++ / Re: Compila bien y no corre en: 1 Julio 2010, 21:21 pm
nicolas_cof, tienes razón en que la variable resultado no es necesaria. En lo del bucle (en tu version del  programa)..., da lo mismo si es while o do..while. Como  quitaste la linea resultado=dividendo/divisor; ya no existe la posibilidad de una división por 0.

czealt, si te fijas bien en el codigo no seria lo mismo hacer un while que un do-while ya que con este ultimo estarias ejecutando 3 sentencias totalmente innecesarias.

Salu10.
120  Foros Generales / Sugerencias y dudas sobre el Foro / Re: Sugerencia en cambio de subforo en: 1 Julio 2010, 08:57 am
no creo que se cambie de nuevo

En fin, es una lastima porque se presta para muchas confusiones, por lo expuesto anteriormente tanto por mi como por lo que puso Littlehorse.

Igual gracias a todos por contestar! ;)

Salu10.
Páginas: 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ... 30
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines