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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Mensajes
Páginas: 1 ... 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 [24] 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 ... 45
231  Programación / Programación C/C++ / Re: Duda pasar de vector<BYTE> a string en C++ en: 12 Junio 2016, 02:07 am
No estoy muy seguro, pero ¿y si haces flush?

Código
  1. std::string fullMessage;
  2. fullMessage = ArrayToString(data);
  3. cout << fullMessage;
  4. cout.flush();
  5. system("pause");

Ya digo que no sé si estoy diciendo alguna tontería
232  Programación / Programación C/C++ / Re: Proyecto en Dev C++ (Arreglo de dimensión variable en archivo .h") en: 10 Junio 2016, 05:46 am
La función 'vacío' se puede hacer más sencilla:

Código
  1. bool funciones::vector_vacio(vector_n V){
  2.    for(int i = 0; i < V.n; i++) {
  3.        if(0 != V.elementos[i])
  4.            return false;
  5.    }
  6.  
  7.    return true;
  8. }

A parte de eso, en la función 'media' hay varios errores:

Código
  1. double funciones::media(vector_n V){
  2.    double resultado = 0.0;
  3.    int i;
  4.  
  5.    for(i = 0; i < V.n; i++)
  6.        resultado += V.elements[i];
  7.  
  8.    if(0 == V.n) {// Damos el error
  9.        printf(stdout, "Error. Se ha intentado calcular la media de un conjunto vacío.\n");
  10.        return 0.0;
  11.    } else {
  12.        return resultado / (double)V.n;
  13.    }
  14. }
233  Programación / Programación C/C++ / Re: Proyecto en Dev C++ (Arreglo de dimensión variable en archivo .h") en: 9 Junio 2016, 22:16 pm
No me fijé en eso antes. Si quieres acceder a las funciones de una estructura de forma estática, primero, en la estructura, tienes que definirlas como estáticas:

Código
  1. struct funciones {
  2.    static void carga_arreglo(arreglo V);
  3.    static double media(arreglo V);
  4.    static double varianza(arreglo V);
  5.    static double desv_est(arreglo V);
  6. };

Definirlas de forma estática le dice al compilador que esos métodos (funciones dentro de una clase/estructura) no modificarán ningún miembro del objeto.

Una vez declaras las funciones como estáticas, puedes usarlas así:

Código
  1. funciones::carga_arreglo(arreglo);
234  Programación / Programación C/C++ / Re: Proyecto en Dev C++ (Arreglo de dimensión variable en archivo .h") en: 9 Junio 2016, 21:42 pm
Si nos guiamos por el ejemplo dado por AlbertoBSD, el argumento sería el vector. Es decir, puedes hacer esto:
Código
  1. funciones.carga_arreglo(arreglo);

Solo quería aclarar que creo que hay algunos pequeños errores en el código de AlbertoBSD. Creo que este sería el código bueno (puede que me equivoque):

Código
  1. #include<stdio.h>
  2. #include<math.h>
  3. #include "Calculos_estadisticos.h"
  4.  
  5. void funciones::carga_arreglo(vectorN &V) {// Si no lo pasas por referencia, no afectará al vector.
  6.    int z = V.n; // Aquí antes estaba vectorN.n, pero lo que quieres hacer es acceder al miembro de 'V'
  7.    for(int i=0; i<z; i++){
  8.        scanf("%d",&vectorN.elementos[i]); // Aquí tienes que poner los corchetes para acceder a cada elemento
  9.    }
  10. }
235  Programación / Programación C/C++ / Re: Proyecto en Dev C++ (Arreglo de dimensión variable en archivo .h") en: 9 Junio 2016, 18:44 pm
Cita de: AlbertoBSD
segun veo si tiene el (int *) Junto al calloc.

Creo que se refería al fragmento de código que proporcioné. Puse en código pensando en C, porque no caí en la cuenta de que el usuario está trabajando en C++. Entonces, antes de la función calloc yo tendría que haber puesto (int *)
236  Programación / Programación C/C++ / Re: Proyecto en Dev C++ (Arreglo de dimensión variable en archivo .h") en: 9 Junio 2016, 17:27 pm
Claro. Estás trabajando en C++. En C++, el casteo de tipos es más estricto. Mientras que en C ese código no produciría errores, en C++ tienes que castear el retorno de la función (tienes que poner int * porque calloc retorna el tipo void *).

Básicamente, C++ es más estricto en esas situaciones
237  Programación / Programación C/C++ / Re: Proyecto en Dev C++ (Arreglo de dimensión variable en archivo .h") en: 9 Junio 2016, 07:02 am
Si lo que quieres hacer es declarar un tipo de variable que almacene un vector de n elementos, podrías crear la siguiente estructura:

Código
  1. typedef struct {
  2.    int *elementos; // Este puntero apuntará al primer byte del vector
  3.    unsigned int n; // Esta variable almacenará cuantas dimensiones tiene el vector
  4. } vectorN;

Entonces, una vez tenemos esa estructura, cuando obtengamos del usuario las dimensiones que quiere para su vector, solamente rellenamos la estructura:

Código
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. int main() {
  5.    vectorN vector = {NULL, 0};
  6.  
  7.    fprintf(stdout, "Introduzca las dimensiones que quiera para su vector: ");
  8.    fscanf(stdin, "%u", &vector.n);
  9.    vector.elementos = calloc(vector.n, sizeof(int));
  10.  
  11.    return 0; // No olvides liberar la memoria cuando termines!
  12. }

También podrías crear una función que te haga el trabajo:
Código
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. void init_vectorN(vectorN *vector, unsigned int n);
  5.  
  6. int main() {
  7.    vectorN vecto = {NULL, 0};
  8.    unsigned int n;
  9.  
  10.    fprintf(stdout, "Introduzca las dimensiones que quiera para su vector: ");
  11.    fscanf(stdin, "%u", &n);
  12.    init_vectorN(&vector, n);
  13.  
  14.    return 0;
  15. }
  16.  
  17. void init_vectorN(vectorN *vector, unsigned int n) {
  18.    vector.n = n;
  19.    vector.elementos = calloc(n, sizeof(int));
  20. }
238  Programación / Programación C/C++ / Re: Void para imrpimir varias veces. en: 7 Junio 2016, 01:43 am
No sé a que te refieres con ciclos 'void'. Supongo que refieres a recursividad... En tal caso, podrías hacer esto:

Código
  1. void puntos(int j) {
  2.    if(j >= 1) {
  3.        printf ("que tal"); //que repita "que tal" una x cantidad de veces
  4.        puntos(j - 1);
  5.    }
  6. }

Aunque este código funcione, es mejor usar un ciclo 'for' o 'while'...
239  Programación / Programación C/C++ / Re: [C](Consulta) Pregunta sobre si una característica es de ANSI C (sobre arreglos) en: 5 Junio 2016, 23:17 pm
Ups. No consideré el tamaño del arreglo... qué despiste el mío XDD Gracias por la aclaración
240  Programación / Programación C/C++ / Re: [C](Consulta) Pregunta sobre si una característica es de ANSI C (sobre arreglos) en: 4 Junio 2016, 21:27 pm
En 32 bits sí que sería lo mismo XDD

En 64 bits no, pues la primera se incrementa en 4 y la segunda en 8 :P

Gracias :D
Páginas: 1 ... 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 [24] 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 ... 45
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines