Título: Descomponer numero en factores.. Publicado por: ThePinkPanther en 12 Febrero 2013, 00:52 am Hola,acá les traigo un programa que hice hace unas semanas atras, la verdad es que tiene pocas lineas de código ,pero es funcional ,para los que trabajen con las matemáticas y necesitan descomponer un numero en factores,tal vez se les resulte aburrido andar dividiéndolo , hace poco cuando estaba estudiando matemáticas me sirvió,quisas a alguien le sirva.
Código
Ejemplo entrada : 8 Salida : 2.2.2 , que esto es .. base 2 potencia 3. Saludos. Título: Re: Descomponer numero en factores.. Publicado por: amchacon en 12 Febrero 2013, 14:54 pm Código
Porque usas funciones de C? Sería más apropiado usar los new y delete: Código
Título: Re: Descomponer numero en factores.. Publicado por: ThePinkPanther en 12 Febrero 2013, 18:44 pm Quisas tengas razón , pero recien empiezo con c++ me pase de ansi a c++ , por lo que se que los operadores new y delete me permiten reservar memoria dinamica y liberarla, pero estoy acostumbrado a usar calloc o malloc porque con realloc puedo hacer una reasignación, en c++ no se como seria una reasignacion de memoria..
Título: Re: Descomponer numero en factores.. Publicado por: amchacon en 12 Febrero 2013, 20:59 pm Para reasignaciones de memoria lo mejor es usar la clase vector:
Código
Si quieres hacer un vector de enteros: Código
Y para añadir elementos al vector: Código
Luego hay más funciones internas (busqueda, obtener tamaño del vector...). Las puedes consultar aquí: http://www.cplusplus.com/reference/vector/vector/ No es necesario borrar el vector, puesto que se borra solo cuando termina su ambito. Aunque si eres un esceptico lo puedes hacer explicitamente: Código
Título: Re: Descomponer numero en factores.. Publicado por: leosansan en 12 Febrero 2013, 22:23 pm Porque usas funciones de C? Sería más apropiado usar los new y delete: Como yo también soy nuevo en esto del C++, planteo una dudita; ¿otra forma más "inmediata" de inicializar factores a cero?: Código
Saluditos!. Título: Re: Descomponer numero en factores.. Publicado por: ThePinkPanther en 12 Febrero 2013, 22:29 pm Yo usaba la funcion calloc de c.
que automaticamente la memoria reservada es inicializada a 0 . ahora pruebo con new. Citar Y para añadir elementos al vector: Código
Luego hay más funciones internas (busqueda, obtener tamaño del vector...). Las puedes consultar aquí: http://www.cplusplus.com/reference/vector/vector/ No es necesario borrar el vector, puesto que se borra solo cuando termina su ambito. Aunque si eres un esceptico lo puedes hacer explicitamente: Código
gracias voy a tratar de familiarisarme con esto.. Como yo también soy nuevo en esto del C++, planteo una dudita; ¿otra forma más "inmediata" de inicializar factores a cero?: Código
Saluditos!. Segun mis pruebas, cuando usas new , la memoria ya es inicializada en 0. un saludo. Código: for (i=0;i<32;i++) no es necesario. Título: Re: Descomponer numero en factores.. Publicado por: amchacon en 12 Febrero 2013, 23:44 pm ¿otra forma más "inmediata" de inicializar factores a cero? En array estáticos se puede usar esto:Código
Título: Re: Descomponer numero en factores.. Publicado por: rir3760 en 13 Febrero 2013, 02:50 am Código Segun mis pruebas, cuando usas new , la memoria ya es inicializada en 0. Código no es necesario. Una discusión algo técnica (y en ingles) donde se explica el porque y se da una alternativa es Is new int[10]() valid c++? (http://stackoverflow.com/questions/2468367/is-new-int10-valid-c). Un saludo Título: Re: Descomponer numero en factores.. Publicado por: leosansan en 13 Febrero 2013, 19:55 pm Una discusión algo técnica (y en ingles) donde se explica el porque y se da una alternativa es En resumen, con paréntesis al final SÍ se inicializan a cero, comprobado: Código
No siendo necesario: Código
Saluditos!. . .... y gracias n-ésimas amigo rir. Título: Re: Descomponer numero en factores.. Publicado por: BatchianoISpyxolo en 13 Febrero 2013, 22:43 pm Al colocar los paréntesis lo que haces es llamar al constructor por defecto. Es decir que si hay constructor predeterminado o definido por el usuario, vamos a poder inicializar la variable a la hora de declararla.
Citar If T is a const-qualified type, or a (possibly cv-qualified) POD class type (or array thereof) containing (directly or indirectly) a member of const-qualified type, the program is ill-formed. Título: Re: Descomponer numero en factores.. Publicado por: rir3760 en 14 Febrero 2013, 02:02 am Citar If T is a const-qualified type, or a (possibly cv-qualified) POD class type (or array thereof) containing (directly or indirectly) a member of const-qualified type, the program is ill-formed. Un saludo Título: Re: Descomponer numero en factores.. Publicado por: BatchianoISpyxolo en 14 Febrero 2013, 02:15 am No entiendo el sentido de la cita. ¿Puedes aclararlo por favor? Un saludo A mi entender, es que si tienes estructuras o clases básicas (PODS), éstos carecen de inicializadores y, por tanto, el programa está mal formado. Título: Re: Descomponer numero en factores.. Publicado por: rir3760 en 14 Febrero 2013, 03:43 am si tienes estructuras o clases básicas (PODS), éstos carecen de inicializadores y, por tanto, el programa está mal formado. No. Si revisamos el tema que mencione con cuidado:Citar Paragraph 5.3.4/15 states that A new-expression that creates an object of type T initializes that object as follows: [...] * If the new-initializer is of the form (), the item is value-initialized (8.5) where value initialized for POD means zero-initialize. [...] If the new-initializer is omitted: * If T is a (possibly cv-qualified) non-POD class type (or array thereof), the object is default-initialized (8.5). If T is a const-qualified type, the underlying class type shall have a user-declared default constructor. * Otherwise, the object created has indeterminate value. If T is a const-qualified type, or a (possibly cv-qualified) POD class type (or array thereof) containing (directly or indirectly) a member of const-qualified type, the program is ill-formed; En resumen: * Si se utiliza el inicializador "()" en el caso de PODs su resultado es la asignación del valor 0. * Si se omite el inicializador el valor almacenado es no determinado. "ill-formed" solo aplica si 1) Se omite el inicializador y 2) el objeto esta calificado (directa o indirectamente) con el calificador const. Un saludo Título: Re: Descomponer numero en factores.. Publicado por: 85 en 21 Febrero 2013, 01:12 am me acuerdo que yo había usado una lógica parecida anteriormente..
http://foro.elhacker.net/programacion_cc/atoi_itoa_personalizadas-t358459.0.html;msg1734670#msg1734670 http://foro.elhacker.net/programacion_cc/aportacion_programas_en_c_basicos-t365766.0.html;msg1769441#msg1769441 |