PROFRAMACION EN C

Iniciado por gmojon, 28 Noviembre 2013, 05:19 AM

0 Miembros y 1 Visitante están viendo este tema.

gmojon

Q TAL! SOY ESTUDIANTE DE INGENIERIA AUTOMOTRIZ, LLEVO LA MATERIA DE LOGICA DE PROGRMACION, UTILIZO EL PROGRAMA DEV-C PARA LA MATERIA, EL PROBLEMA ES QUE NO ENTIENDO LA LOGICA!!!

conozco ALGUNAS FUNCIONES Y COMO "ACTUAN" HASTA CIERTO PUNTO, SOLO QUE NO SE KOMO PLANTEAR UN PROBLEMA, KOMO SOLUCIONARLO, VA DESDE EL DIAGRAMA DE FLUJO, EL PSEUDOKODIGO HASTA EL CODIGO FUENTE, PERO KREO Q ENTIENDO UN POKO MAS EN EL CODIGO FUENTE.

PODRIAN FACILITARME ALGUNA AYUDA

OTRO PROBLEMA ES MI PROFESORA, NOS EXPLIKA BIEN ALGNOS EJERCICIOS PERO LLEGA UN MOMENTO EN EL QUE ME PIERDO EN LA EXPLIKACION POR TRATAR DE ENTENDER OTRA KOSA, OJALA PUEDAN AYUDARME! GRACIAS DE ANTEMANO

gmojon

#1
TENGO QUE REALIZAR UN PROBLEMA!

OBTENER UN VECTOR CON 10 CASILLAS, LLENARLO KON NUMEROS ALEATORIOS, MOSTRARLO EN PANTALLA, OBTENER PROMEDIO

TODO ESTO YA LO LOGRE, AHORA DEBO OBTENER LA VARIANZA Y LA DESVIACION ESTANDAR, TENGO UNA IDEA DE KOMO HACERLO PERO NO LO SE CONCRETAMENTE

DE ANTEMANO GRACIAS PORR LA AYUDA!

______________________________________________
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define TAM 10

int main()
{
    int i, v[TAM];
    float prom, suma, var, dest;
    srand(time(0));
       
    for(i=0; i<TAM; i++)
    {
             v=10+rand()%80;
             printf("\n VECTOR [%d]=%d\n",i , v);
             suma=suma+v;
             prom=suma/TAM;
             var=
             dest=

    }
    printf("\nSUMA = %.2f\n", suma);
    printf("\nPROMEDIO = %.2f\n", prom);
   
    printf("\n");
    system("PAUSE");
return 0;
}
________________________________________________

Delacure Mihawk

#2
Revisa tus apuntes de C, tu código me ha dado cáncer por lo siguiente:

- No inicializas las variables, la parte de "suma=suma+v;" la variable suma tiene un valor desconocido en el primer ciclo del bucle, antes de usar la variable la inicializas con un "suma=0;"
- Cuando usas un vector tienes que indicarle un índice! "v=10+rand()%80;":
y[i]10+rand()%80;


Para calcular la desviación y la varianza son simples procedimientos matemáticos, que parte de ellos es la que no sabes aplicar?

Y no uses mayúsculas todo el rato..

dato000

Hacia tiempo no venia por aqui, estaba ocupado con estudios y trabajo, pero vamos a ver que sale.

Mira, no escribas en mayúsculas, es algo muy incomodo, molesto e irritante, es feo, es como andar gritando a todas horas.

Aquí estamos para ayudarte, entendemos tus problemas, todos hemos pasado por lo mismo:

Mira, tienes varios problemas, uno de ellos como mencionaron anteriormente, es que no usas indices en el vector (yo lo denomino arreglo o simplemente array por cuestiones tecnicas, pues un vector en programación es algo diferente). Un indice se utiliza para referenciar la posición que se esta utilizando en el momento de utilizar ese arreglo.

Una cosa muy importante es que si realizas operaciones entre variables flotantes y enteras te daran errores de cálculo, valores incorrectos, dependiendo en que variable se guarden, se asignara un espacio de memoria diferente que solo podra albergar una determinada cantidad de información, lo que necesitas entender es que no resultara correcto una operación int - float, para este ejercicio, como es importante las decimas, pues dejalo todo a float, y es más, si quieres más precisión, usa double

Aquí en el foro hay unas etiquetas para poner codigo, se pueden usar diferentes identificadores para otros lenguajes de programación

[code=c][/ code]


Por lo demás, mira, te ayudare:


#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#define TAM 10

int main()
{
    int i;
    float v[TAM];
    float prom=0.0, suma=0.0, var=0.0, d_est=0.0;
    //srand(time(0)); solo trabaja con enteros int, y al usar time(0) no aleatoriedad
    srand48(time(NULL)); // numeros aleatorios con aleatoriedad relativa al reloj del procesador

    for(i=0; i<TAM; i++)
    {
            v[i] = drand48() * 100; // se usa esta funciona para generar numeros randomicos coma flotante
                                    // separa adecuadamente los espacios para entender el código
                                    // me gusta dejarlo en el rango de 0  a 99

             // nuevamente, hay que indicar la posición del indice
             printf("\n Valor Vector/Array [%d] =  %.2f", i , v[i]);

             suma = suma + v[i]; // El vector/array con el indice
             prom = suma / TAM; // suma de los elementos dividido por el numero de elementos, facil.


             // Varianza Es la media de las diferencias con la media elevadas al cuadrado
             // Consulta http://www.disfrutalasmatematicas.com/datos/desviacion-estandar.html
             // Para más información

             // sumando cada varianza de cada indice con respecto a la media
             var = var + pow( (v[i]-prom), 2 );
             // funciona tambien con
             // var += pow ( (v[i] - prom ), 2);

    }

    // ya fuera del ciclo con todos los elementos sumados, calculamos la relacion con el total de elementos
    var = var / 10.0;

    // La desviación estandar es simplemente la raiz cuadrada de la varianza
    d_est = sqrt( var );

    float aux = v[0] - prom;
    float prueba = pow ( (v[0]-prom), 2);

    printf("\n\n\n *SUMA = %.2f\n", suma);
    printf("\n *PROMEDIO = %.2f\n", prom);
    printf("\n *VARIANZA = %.2f\n", var);
    printf("\n *DESVIACION ESTANDAR = %.2f\n", d_est);

    // Valores de prueba
    /*printf("\n *posicion prueba v[0] =    %.2f\n", v[0]);
    printf("\n *promedio prueba =    %.2f\n", prom);
    printf("\n *diferencia prueba =    %.2f\n", aux);
    printf("\n *prueba =    %.2f\n", prueba);*/

    printf("\n");
    getchar(); // horrible ese system, solo funciona en windows y provoca conflictos en el sistema, bueno, a veces...
    return 0;
}


Fue un buen experimento, una buena practica, el cerebro hay que estimularlo, ejercitarlo, alimentarlo y enriquecerlo con esta clase de ejercicios XD

suerte amigo que te rinda

PD: Se que faltan tildes, pero es que la etiqueta del foro no me deja colocarlas... :silbar: :silbar:[/code]



gmojon

Muchas gracias po el apoyo!!! me sirvio de mucho!
Tenia idea de algunas cosas pero no sabia komo plantearlas.

Tengo un proyecto final, mas adelante lo posteare para hacerlo igual kon mi avance, ojala pudieran ayudarme, muchas gracias de antemano!