Visual C++ .NET - programa de estadistica

 
Vista:

programa de estadistica

Publicado por manuel (1 intervención) el 27/04/2009 21:12:19
buenas,
estoy en programacion 1. nos encargaron un programa donde se generen datos con randomize, y despues genere el histograma, ojiva y esas tablas.

la vd no tengo idea como generar las tablas, me imagino que con printf, y ordenar los datos con el metodo de burbuja, pero para calcular el valor, y ordenar las tablas no.

gracias por leer el comentario, espero su confirmacion
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Generación de datos aleatorios y creación de histograma y ojiva

Publicado por Alejandro (265 intervenciones) el 06/02/2024 23:16:18
¡Hola Manuel! Entiendo que estás buscando ayuda para generar un programa en el que se generen datos aleatorios y luego se creen un histograma y una ojiva. A continuación, te proporcionaré un ejemplo simple en C++ que puedes utilizar como punto de partida. En este ejemplo, usaré la biblioteca estándar de C++ para la generación de números aleatorios y la biblioteca de contenedores `vector` para almacenar y manipular los datos.

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <iostream>
#include <iomanip>
#include <vector>
#include <algorithm>
 
void generarDatos(std::vector<int>& datos, int cantidad) {
    // Inicializar el generador de números aleatorios con una semilla
    std::srand(static_cast<unsigned int>(std::time(nullptr)));
 
    // Generar datos aleatorios y almacenarlos en el vector
    for (int i = 0; i < cantidad; ++i) {
        datos.push_back(std::rand() % 100);  // Modificar el rango según sea necesario
    }
}
 
void imprimirHistograma(const std::vector<int>& datos) {
    // Calcular la frecuencia de cada valor
    std::vector<int> frecuencias(101, 0);  // Suponiendo que los datos están en el rango de 0 a 100
 
    for (int valor : datos) {
        frecuencias[valor]++;
    }
 
    // Imprimir el histograma
    std::cout << "Histograma:" << std::endl;
    for (int i = 0; i <= 100; ++i) {
        std::cout << std::setw(3) << i << ": ";
        for (int j = 0; j < frecuencias[i]; ++j) {
            std::cout << '*';
        }
        std::cout << std::endl;
    }
}
 
void imprimirOjiva(const std::vector<int>& datos) {
    // Copiar los datos y ordenarlos
    std::vector<int> datosOrdenados = datos;
    std::sort(datosOrdenados.begin(), datosOrdenados.end());
 
    // Calcular la frecuencia acumulativa
    std::vector<int> frecuenciaAcumulativa(datosOrdenados.size(), 0);
 
    for (size_t i = 0; i < datosOrdenados.size(); ++i) {
        frecuenciaAcumulativa[i] = i + 1;
    }
 
    // Imprimir la ojiva
    std::cout << "Ojiva:" << std::endl;
    for (size_t i = 0; i < datosOrdenados.size(); ++i) {
        std::cout << std::setw(3) << datosOrdenados[i] << ": ";
        std::cout << std::setw(3) << frecuenciaAcumulativa[i] << std::endl;
    }
}
 
int main() {
    std::vector<int> datos;
 
    // Generar datos aleatorios
    generarDatos(datos, 100);
 
    // Imprimir histograma
    imprimirHistograma(datos);
 
    // Imprimir ojiva
    imprimirOjiva(datos);
 
    return 0;
}

Este programa genera datos aleatorios, calcula y muestra el histograma y la ojiva. Puedes modificarlo según tus necesidades específicas. ¡Espero que te sea útil!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar