Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto
Samsung rinnova la serie pieghevole di punta con Galaxy Z Fold8 Ultra: pannello interno da 8 pollici quasi senza piega, cerniera Flex Titanium, Snapdragon 8 Elite Gen 5 for Galaxy e batteria finalmente da 5.000 mAh. Prezzo italiano da 2.299 a 2.899 euro. Tra colorimetro, benchmark reali e giorni di uso quotidiano, ecco dove questo pieghevole convince e dove il nome Ultra fatica ancora a trovare piena giustificazione
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing"
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing"
La nuova Insta360 X6 introduce sensori Sony da 1/1.1" e un SoC Triple AI a 4nm. Analizziamo le riprese 8K, il primo Dolby Vision nativo a 10-bit nel settore sferico e l'innovativo flusso di lavoro diretto sulla futura versione 22 di DaVinci Resolve.
Due settimane con Dacia Spring 2026: novità, consumi, autonomia reale e test bagagli
Due settimane con Dacia Spring 2026: novità, consumi, autonomia reale e test bagagli
Dopo due settimane trascorse al volante della Dacia Spring 2026 possiamo raccontarvi tutto, dalle novità di motore e batteria, fino ai consumi in tutti le situazioni, compresa l'autonomia reale ad alta velocità
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-01-2007, 18:28   #1
AYAMY
Senior Member
 
L'Avatar di AYAMY
 
Iscritto dal: Dec 2003
Messaggi: 704
ARRAY , VETTORE e SALVATAGGIO VALORI

Ciao a tutti.. ho questo problemino.. dovrei salvare dei NUMERI CON VIRGOLA in un array o vettore che si voglia ... il codice che mi genera i numeri secondo una determinata formula matematica già l'ho fatto e va bene...lo trovate poco sotto... adesso però dovrei salvare tutti questi valori all'interno di un array e sceglierne 1 a caso.. qualche idea?

PS: per la lettura a caso io ho pensato di leggere una "delle caselle" dell'array costituito da 100 numeri basandomi sulla lettura del valore della "cella" il cui indice andrei a generarlo in modo casuale (tra 100 numeri appunto)....ADESSO PERO' IL PROBLEMA RESTA SEMPRE LO STESSO COME SALVO I NUMERI IN UN ARRAY?

#include <iostream>
using namespace std;

int main(){
double angle = 180;
// concetto di misura: la misura �data dal valor vero +- una certa incertezza
// data appunto dallo strumento di misurazione
// un buon strumento di misura , come assumiamo che sia la nostra antenna
// ha una precisione dell'ordine del 5% della grandezza misurata che �
// appunto il valore dell'angolo.
// Assumo che l'incertezza abbia un valore pari a 3sigma sfruttando cos�la propriet�
// della distribuzione di Gauss che mi garantisce una probabilit�pari al 99.7%
// di estrarre all'interno del nostro campione la Media della distribuzione
// della popolazione Madre
//IMPLEMENTAZIONE
// scelgo 3sigma = all'incertezza cio�appunto a 5% del valore dell'angolo
float triplo = (0.05*angle);
float singolo = (triplo/3);
float doppio = (singolo*2);
// impongo il valore di 3sigma= alla precisione dell'antenna * angolo non affetto
// da errore (cio�* la Media della distribuzione di Gauss)
int maxuno = ((((int)singolo)));
int maxdue = ((((int)doppio)));
int maxtre = ((((int)triplo)));
srand(time(0)); // inizializzo il seme per il calcolo dei numeri random
for (int i = 1; i <= 68; i++) {
// numero decimale con la virgola per aumentare la precisione o meglio
// la sensibilit�dell'antenna
float fValore = (float)rand() / (float)RAND_MAX;
// valore che pu�assumere un campione della distribuzione
float sim = rand()%maxdue ;
// ci aggiungo anche la parte decimale per avere maggiore precisione
float gauss = (sim)+fValore ;
// mi sposto sull'estremo inferiore della distribuzione centrata in angle
// cio�appunto angle meno triplosigma
float inferiore = (angle - (singolo));
// ho definito un intervallo centrato in Angle di ampiezza 3sigma
// all interno del quale e' contenuto "estrazione"
float estrazione = inferiore + gauss;
//effettuo la conversione in radianti
double conversionerad = (estrazione/57.325);
//return estrazione;
cout << "All'estrazione di " << endl;
cout << estrazione << endl;
cout << "Gradi dell'Angolo percepito corrispondono" << endl;
cout << conversionerad << endl;
cout << "radianti" << endl;
cout << i << endl;
}
cout << "INIZIO SECONDA SEZIONE VETTORE" << endl;
for (int i = 69; i <= 81; i++) {
// numero decimale con la virgola per aumentare la precisione o meglio
// la sensibilit�dell'antenna
float fValore = (float)rand() / (float)RAND_MAX;
// valore che pu�assumere un campione della distribuzione
float sim = rand()%maxuno ;
// ci aggiungo anche la parte decimale per avere maggiore precisione
float gauss = (sim)+fValore ;
// mi sposto sull'estremo inferiore della distribuzione centrata in angle
// cio�appunto angle meno triplosigma
float inferiore = (angle - (doppio));
// ho definito un intervallo centrato in Angle di ampiezza 3sigma
// all interno del quale e' contenuto "estrazione"
float estrazione = inferiore + gauss;
//effettuo la conversione in radianti
double conversionerad = (estrazione/57.325);
//return estrazione;
cout << "All'estrazione di " << endl;
cout << estrazione << endl;
cout << "Gradi dell'Angolo percepito corrispondono" << endl;
cout << conversionerad << endl;
cout << "radianti" << endl;
cout << i << endl;
}
cout << "INIZIO TERZA SEZIONE VETTORE" << endl;
for (int i = 82; i <= 95; i++) {
// numero decimale con la virgola per aumentare la precisione o meglio
// la sensibilit�dell'antenna
float fValore = (float)rand() / (float)RAND_MAX;
// valore che pu�assumere un campione della distribuzione
float sim = rand()%maxuno ;
// ci aggiungo anche la parte decimale per avere maggiore precisione
float gauss = (sim)+fValore ;
// mi sposto sull'estremo inferiore della distribuzione centrata in angle
// cio�appunto angle meno triplosigma
float inferiore = (angle + (singolo));
// ho definito un intervallo centrato in Angle di ampiezza 3sigma
// all interno del quale e' contenuto "estrazione"
float estrazione = inferiore + gauss;
//effettuo la conversione in radianti
double conversionerad = (estrazione/57.325);
//return estrazione;
cout << "All'estrazione di " << endl;
cout << estrazione << endl;
cout << "Gradi dell'Angolo percepito corrispondono" << endl;
cout << conversionerad << endl;
cout << "radianti" << endl;
cout << i << endl;
}
cout << "INIZIO ULTIMA SEZIONE VETTORE" << endl;
for (int i = 96; i <= 100; i++) {
// numero decimale con la virgola per aumentare la precisione o meglio
// la sensibilità dell'antenna
float fValore = (float)rand() / (float)RAND_MAX;
// valore che pu�assumere un campione della distribuzione
float sim = rand()%maxuno ;
// ci aggiungo anche la parte decimale per avere maggiore precisione
float gauss = (sim)+fValore ;
// mi sposto sull'estremo inferiore della distribuzione centrata in angle
// cio�appunto angle meno triplosigma
float inferiore = (angle - (triplo));
// ho definito un intervallo centrato in Angle di ampiezza 3sigma
// all interno del quale e' contenuto "estrazione"
float estrazione = inferiore + gauss;
//effettuo la conversione in radianti
double conversionerad = (estrazione/57.325);
//return estrazione;
cout << "All'estrazione di " << endl;
cout << estrazione << endl;
cout << "Gradi dell'Angolo percepito corrispondono" << endl;
cout << conversionerad << endl;
cout << "radianti" << endl;
cout << i << endl;
}

cout << "Press ENTER to continue..." << endl;
cin.get();
return 0;
}


Grazie a tutti in anticipo!!
AYAMY è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2007, 22:21   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
L'indentazione dov'è ? Così ci si capisce poco... Usa il tag code del forum...

Spigati cosa intendi per "salvare"...

Vuoi mettere i vari numeri in un vettore ?

double vett[100];

Nei vari for memorizzi i numeri nel vettore tramite l'indice...vett[i-1]
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2007, 22:30   #3
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2793
Codice:
#include <iostream>
#include <time.h>
#include <stdlib.h>

using namespace std;

typedef struct{
    float degree;
    double rad;
    }angolo;

int main(){
double angle = 180;
// concetto di misura: la misura �data dal valor vero +- una certa incertezza
// data appunto dallo strumento di misurazione 
// un buon strumento di misura , come assumiamo che sia la nostra antenna
// ha una precisione dell'ordine del 5% della grandezza misurata che �
// appunto il valore dell'angolo.
// Assumo che l'incertezza abbia un valore pari a 3sigma sfruttando cos�la propriet�
// della distribuzione di Gauss che mi garantisce una probabilit�pari al 99.7% 
// di estrarre all'interno del nostro campione la Media della distribuzione
// della popolazione Madre 
//IMPLEMENTAZIONE
// scelgo 3sigma = all'incertezza cio�appunto a 5% del valore dell'angolo 
float triplo = (0.05*angle);
float singolo = (triplo/3);
float doppio = (singolo*2);
// impongo il valore di 3sigma= alla precisione dell'antenna * angolo non affetto
// da errore (cio�* la Media della distribuzione di Gauss)
int maxuno = ((((int)singolo)));
int maxdue = ((((int)doppio)));
int maxtre = ((((int)triplo)));
srand(time(0)); // inizializzo il seme per il calcolo dei numeri random

angolo angoli[100];

for (int i = 1; i <= 68; i++) {
    // numero decimale con la virgola per aumentare la precisione o meglio
    // la sensibilit�dell'antenna 
    float fValore = (float)rand() / (float)RAND_MAX;
    // valore che pu�assumere un campione della distribuzione 
    float sim = rand()%maxdue ;
    // ci aggiungo anche la parte decimale per avere maggiore precisione
    float gauss = (sim)+fValore ;
    // mi sposto sull'estremo inferiore della distribuzione centrata in angle
    // cio�appunto angle meno triplosigma
    float inferiore = (angle - (singolo));
    // ho definito un intervallo centrato in Angle di ampiezza 3sigma 
    // all interno del quale e' contenuto "estrazione"
    float estrazione = inferiore + gauss;
    //effettuo la conversione in radianti
    double conversionerad = (estrazione/57.325);
    angoli[i-1].degree=estrazione;
    angoli[i-1].rad =conversionerad;
    }
    
for (int i = 69; i <= 81; i++) {
    // numero decimale con la virgola per aumentare la precisione o meglio
    // la sensibilit�dell'antenna 
    float fValore = (float)rand() / (float)RAND_MAX;
    // valore che pu�assumere un campione della distribuzione 
    float sim = rand()%maxuno ;
    // ci aggiungo anche la parte decimale per avere maggiore precisione
    float gauss = (sim)+fValore ;
    // mi sposto sull'estremo inferiore della distribuzione centrata in angle
    // cio�appunto angle meno triplosigma
    float inferiore = (angle - (doppio));
    // ho definito un intervallo centrato in Angle di ampiezza 3sigma 
    // all interno del quale e' contenuto "estrazione"
    float estrazione = inferiore + gauss;
    //effettuo la conversione in radianti
    double conversionerad = (estrazione/57.325);
    angoli[i-1].degree=estrazione;
    angoli[i-1].rad=conversionerad;
    }
    
for (int i = 82; i <= 95; i++) {
    // numero decimale con la virgola per aumentare la precisione o meglio
    // la sensibilit�dell'antenna 
    float fValore = (float)rand() / (float)RAND_MAX;
    // valore che pu�assumere un campione della distribuzione 
    float sim = rand()%maxuno ;
    // ci aggiungo anche la parte decimale per avere maggiore precisione
    float gauss = (sim)+fValore ;
    // mi sposto sull'estremo inferiore della distribuzione centrata in angle
    // cio�appunto angle meno triplosigma
    float inferiore = (angle + (singolo));
    // ho definito un intervallo centrato in Angle di ampiezza 3sigma 
    // all interno del quale e' contenuto "estrazione"
    float estrazione = inferiore + gauss;
    //effettuo la conversione in radianti
    double conversionerad = (estrazione/57.325);
    angoli[i-1].degree=estrazione;
    angoli[i-1].rad=conversionerad;
    }

for (int i = 96; i <= 100; i++) {
    // numero decimale con la virgola per aumentare la precisione o meglio
    // la sensibilità dell'antenna 
    float fValore = (float)rand() / (float)RAND_MAX;
    // valore che pu�assumere un campione della distribuzione 
    float sim = rand()%maxuno ;
    // ci aggiungo anche la parte decimale per avere maggiore precisione
    float gauss = (sim)+fValore ;
    // mi sposto sull'estremo inferiore della distribuzione centrata in angle
    // cio�appunto angle meno triplosigma
    float inferiore = (angle - (triplo));
    // ho definito un intervallo centrato in Angle di ampiezza 3sigma 
    // all interno del quale e' contenuto "estrazione"
    float estrazione = inferiore + gauss;
    //effettuo la conversione in radianti
    double conversionerad = (estrazione/57.325);    
    angoli[i-1].degree=estrazione;
    angoli[i-1].rad=conversionerad;
    }

//return estrazione;
int i=rand()%100;
cout << "All'estrazione di " << endl;
cout << angoli[i].degree << endl;
cout << "Gradi dell'Angolo percepito corrispondono" << endl;
cout << angoli[i].rad << endl;
cout << "radianti" << endl;
cout << i << endl;
    
cout << "Press ENTER to continue..." << endl; 
cin.get();
return 0;
}
Te l'ho scritto con un array di strutture, così vedi anche una cosa in più...
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2007, 22:34   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Nota che tutto questo codice può essere messo in una funzione con max e l'angolo come parametri:

// numero decimale con la virgola per aumentare la precisione o meglio
// la sensibilit�dell'antenna
float fValore = (float)rand() / (float)RAND_MAX;
// valore che pu�assumere un campione della distribuzione
float sim = rand()%maxuno ;
// ci aggiungo anche la parte decimale per avere maggiore precisione
float gauss = (sim)+fValore ;
// mi sposto sull'estremo inferiore della distribuzione centrata in angle
// cio�appunto angle meno triplosigma
float inferiore = (angle + (singolo));
// ho definito un intervallo centrato in Angle di ampiezza 3sigma
// all interno del quale e' contenuto "estrazione"
float estrazione = inferiore + gauss;
//effettuo la conversione in radianti
double conversionerad = (estrazione/57.325);
angoli[i-1].degree=estrazione;
angoli[i-1].rad=conversionerad;
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2007, 07:48   #5
AYAMY
Senior Member
 
L'Avatar di AYAMY
 
Iscritto dal: Dec 2003
Messaggi: 704
grazie x l'info.. ma poi in notturna , vedendo qualche esempio non c'ho messo molto a risolvere il problema del salvataggio:
ho aggiunto
float numGenerati[100]; (ma mi sa che dovrei mettere double...poi vedo)
e per ogni ciclo ho fatto appunto....
numGenerati[i]=estrazione;

Mi pare che vada bene...Secondo voi? ho fatto qualche errore di cui non mi sono reso conto?
Grazie ancora!!

PS: una cosa non ho capito...
Codice:
angoli[i-1].degree=estrazione;
angoli[i-1].rad=conversionerad;
in sostanza cosa significano?
AYAMY è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2007, 08:44   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Come ti dicevo puoi creare una funzione con il codice sopra...rendenderebbe il tutto molto + leggibile... Anche l'inserimento di qualche riga vuota, senza commenti, farebbe bene ogni tanto.

Devi fare numGenerati[i-1]=estrazione; perchè il tuo ciclo va da 1 a 100, mentre un vettore di 100 elementi va da 0 a 99. Metti pure double.
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto Recensione Samsung Galaxy Z Fold8 Ultra: il pieg...
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing" Insta360 X6: Dolby Vision, 8K e montaggio "...
Due settimane con Dacia Spring 2026: novità, consumi, autonomia reale e test bagagli Due settimane con Dacia Spring 2026: novit&agrav...
AORUS GeForce RTX 5080 INFINITY WOOD 16G: una scheda video diversa dalle altre AORUS GeForce RTX 5080 INFINITY WOOD 16G: una sc...
Hyundai Ioniq 9: dopo due settimane di test non avremmo voluto restituirla Hyundai Ioniq 9: dopo due settimane di test non ...
Il nuovo iPhone Ultra si farà attendere:...
POCO F9 Pro e F9 Ultra in arrivo in Euro...
Anthropic spiega come funziona il waterm...
Lutnick dice no alle memorie cinesi, ma ...
AGCOM ha introdotto un nuovo modo per id...
Oltre 2.000 robotaxi Pony.ai in Europa, ...
Continua la guerra silenziosa nello Spaz...
Blue Origin: inizia la costruzione del s...
Per Isaacman è stato giusto cance...
iPhone 18, un report conferma l'incremen...
Sonos ha in programma il lancio delle Ac...
Debutta Grok Bot, l'IA agentica diventa ...
iPhone Ultra, un accessorio conferma un'...
AstroRad funziona: superato il test luna...
Apple dichiara iPhone X obsoleto: stop d...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 06:20.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v