AYAMY
25-02-2007, 15:08
Ciao a tutti... innanzitutto vi ringrazio per l'aiuto che ho trovato in questo forum....
Vengo subito al dunque...
Ho un programma che funziona nel seguente modo:
Parte A) crea un serie di valori
Parte B) Vede quante volte quel numero di valori deve ripetuto in un determinato vettore da cui fare delle estrazioni
Adesso Vorrei creare un vettore finale in cui introdurre tutte le varie ripetizioni dei valori creati....
Come posso fare?
Il problema è che non riesco a sommare tutte le ripetizioni per vedere quanto deve essere grande il vettore finale...
Cioè ad esempio nella fase A) ho visto che ho questi valori 88-90-92 ecc
Nella fase B) ad esempio ho visto che 88 deve starci 3 volte , 90 invece 5 volte e 92 di nuovo 3
Adesso dovrei creami un vettore fatto in questo modo
88 88 88 90 90 90 90 90 92 92 92
Ma come dovrei fare?
Questo è il mio codice
Per ora sono riuscito a fare soltato la scrittura a video dei valori... come potrei fare per risolvere il problema?
Grazie
#include <iostream>
#include <math.h>
using namespace std;
int main (){
//PARTE A
int valori;
float passo;
float angle;
float minimo;
float massimo;
float triplo;
float singolo;
float frequenzarelativa;
float alla;
int z;
int j;
z=0;
cout << "Inserire il valore dell angolo" << endl;
cin >> angle;
triplo = (0.1*angle);
singolo= (triplo/3);
cout << "Inserire il numero di valori in 3 sigma" << endl;
cin >> valori ;
passo = (triplo)/valori;
minimo = angle-triplo;
massimo = angle+triplo;
float vettorex[2*valori+1];
for (int i = 1; i <= 2*valori+1 ; i++)
{
vettorex[i]=minimo+(z*passo);
z++;
//cout << vettorex[i] << endl;
//FINE PARTE A
//INIZIO PARTE B
alla= -(((vettorex[i]-angle)*(vettorex[i]-angle))/(2*singolo*singolo ));
frequenzarelativa =(1/(singolo*(sqrt(2*3.14159))))*(exp(alla));
float frequenzaassoluta=frequenzarelativa*angle;
int ripetizioni= (int)frequenzaassoluta + 1;
float vettorey[ripetizioni];
for (int j=1; j <=ripetizioni; j++)
{
vettorey[j]=vettorex[i];
}
//cout << "frequenza Relativa" << endl;
//cout << frequenzarelativa << endl;
//cout << "frequenza Assoluta" << endl;
//cout << frequenzaassoluta << endl;
//cout << "Ripetizioni" << endl ;
//cout << ripetizioni << endl ;
//cout << " " << endl;
//cout << "VETTORE TOTALE" << endl;
// STAMPA DEI VALORI CHE DOVREI ANDARE A METTERE NEL VETTORE FINALE
for (int j=1; j <=ripetizioni; j++)
{
cout << vettorey[j] << endl;
}
}
cout << "3sigma" << endl;
cout << triplo << endl;
cout << "ecco il passo" << endl;
cout << passo << endl;
cin.get();
cin.get();
cin.get();
}
Vengo subito al dunque...
Ho un programma che funziona nel seguente modo:
Parte A) crea un serie di valori
Parte B) Vede quante volte quel numero di valori deve ripetuto in un determinato vettore da cui fare delle estrazioni
Adesso Vorrei creare un vettore finale in cui introdurre tutte le varie ripetizioni dei valori creati....
Come posso fare?
Il problema è che non riesco a sommare tutte le ripetizioni per vedere quanto deve essere grande il vettore finale...
Cioè ad esempio nella fase A) ho visto che ho questi valori 88-90-92 ecc
Nella fase B) ad esempio ho visto che 88 deve starci 3 volte , 90 invece 5 volte e 92 di nuovo 3
Adesso dovrei creami un vettore fatto in questo modo
88 88 88 90 90 90 90 90 92 92 92
Ma come dovrei fare?
Questo è il mio codice
Per ora sono riuscito a fare soltato la scrittura a video dei valori... come potrei fare per risolvere il problema?
Grazie
#include <iostream>
#include <math.h>
using namespace std;
int main (){
//PARTE A
int valori;
float passo;
float angle;
float minimo;
float massimo;
float triplo;
float singolo;
float frequenzarelativa;
float alla;
int z;
int j;
z=0;
cout << "Inserire il valore dell angolo" << endl;
cin >> angle;
triplo = (0.1*angle);
singolo= (triplo/3);
cout << "Inserire il numero di valori in 3 sigma" << endl;
cin >> valori ;
passo = (triplo)/valori;
minimo = angle-triplo;
massimo = angle+triplo;
float vettorex[2*valori+1];
for (int i = 1; i <= 2*valori+1 ; i++)
{
vettorex[i]=minimo+(z*passo);
z++;
//cout << vettorex[i] << endl;
//FINE PARTE A
//INIZIO PARTE B
alla= -(((vettorex[i]-angle)*(vettorex[i]-angle))/(2*singolo*singolo ));
frequenzarelativa =(1/(singolo*(sqrt(2*3.14159))))*(exp(alla));
float frequenzaassoluta=frequenzarelativa*angle;
int ripetizioni= (int)frequenzaassoluta + 1;
float vettorey[ripetizioni];
for (int j=1; j <=ripetizioni; j++)
{
vettorey[j]=vettorex[i];
}
//cout << "frequenza Relativa" << endl;
//cout << frequenzarelativa << endl;
//cout << "frequenza Assoluta" << endl;
//cout << frequenzaassoluta << endl;
//cout << "Ripetizioni" << endl ;
//cout << ripetizioni << endl ;
//cout << " " << endl;
//cout << "VETTORE TOTALE" << endl;
// STAMPA DEI VALORI CHE DOVREI ANDARE A METTERE NEL VETTORE FINALE
for (int j=1; j <=ripetizioni; j++)
{
cout << vettorey[j] << endl;
}
}
cout << "3sigma" << endl;
cout << triplo << endl;
cout << "ecco il passo" << endl;
cout << passo << endl;
cin.get();
cin.get();
cin.get();
}