Caricare documenti e articoli online 
INFtub.com è un sito progettato per cercare i documenti in vari tipi di file e il caricamento di articoli online.


 
Non ricordi la password?  ››  Iscriviti gratis
 

NUMERI INDICE - Statistica

informatica




NUMERI INDICE



- Statistica


I mutamenti di un fenomeno nel tempo sono rappresentati con delle serie storiche, che sono effettivamente delle matrici di dati. I numeri indice calcolano le variazioni effettive e si distinguono in semplici e composti. I numeri indice composti riguardano più fenomeni e sono suddivisi in 'normali' e di Laspeyres; i numeri indice semplici sono suddivisi a base fissa e a base mobile.

I numeri indice a base fissa da 333g61d nno la variazione di un fenomeno rispetto a un tempo base:


NIbf t = xt  * 100

xb




Per i numeri prima della base, se sono minori di 100 si ha un incremento e viceversa se sono maggiori si ha un decremento; per i numeri dopo la base, se sono minori di 100 si ha un decremento e viceversa se sono maggiori si ha un incremento. Per quantificare la variazione, si sottrae 100 al valore calcolato.

I numeri indice a base mobile danno la variazione di un fenomeno tempo per tempo:


NIbm t = xt  * 100

xt-1


Per quantificare la variazione, si sottrae 100 al valore calcolato: se il risultato è maggiore di 0, si ha un incremento, e se è minore, un decremento.

Si può anche passare da i numeri indice a base fissa a quelli a base mobile e viceversa:


- Da fissa a mobile: NIbm t = NIbf t * 100

NIbf t-1

- Da mobile a fissa:

t<b NIbf t-1 = NIbf t * 100

NIbm t


t>b NIbf t = NIbf t-1 * NIbm t

100


- Programma


DICHIARAZIONE VARIABILI


Define

ASSEX (410) : Valore corrispondente al numero di pixel dell'asse x

ASSEY (380) : Valore corrispondente al numero di pixel dell'asse y

Variabili di input

- float t[30] : Tempi della serie storica (decimale)

- float x[30] : Variazioni nel tempo della serie storica (decimale)

Variabili di output

- float Nibm[30] : Numeri indice semplici a base mobile (decimale)

- float NIbf[30] : Numeri indice semplici a base fissa (decimale)

Variabili ausiliarie

- float base : Tempo base per i Nibf (decimale)

- int indicebase : Indice nel vettore della base (intero)

- int val : Numeri inseriti nella serie storica (intero)

- int scheda,modo : Variabili per l'uso della grafica

- float xx,yy,max,min : Variabili utilizzate in grafica

- char rchar[30] : Stringa di caratteri utilizzata durante la visualizzazione del grafico

- int i,j,cont : Variabili per cicli e controlli (intero)


FUNZIONI


- Cerca : Funzione di controllo dell'esistenza della base

- Max : Funzione di ricerca del numero maggiore in un'array

- Min : Funzione di ricerca del numero minore in un'array


DESCRIZIONE DEL PGM


Immissione dati

Viene richiesto quanti elementi si vogliono inserire, e se è stato commesso un errore, con un controllo sul numero digitato, viene fatta ripetere l'operazione. L'inserimento dei tempi e dei rispettivi valori avviene in un modo simile, controllando sempre il numero immesso, e in tanto stampa a video la tabella di giuste dimensioni.

Numeri indice a base fissa

Viene richiesto quale tempo si desidera impostare come base, controllando che non vengano commessi errori, e poi con la funzione 'Cerca' si controlla che la base scelta sia effettivamente all'interno del vettore dei tempi. Se la base non viene trovata compare un messaggio di errore e viene richiesto l'inserimento; se invece la base viene trovata, viene salvato in una variabile l'indice della posizione in cui si trova. Dopodiché con un semplice ciclo vengono calcolati i numeri indici a base fissa con la formula.

Numeri indice a base mobile

Con un semplice ciclo vengono calcolati i numeri indici a base mobile con la formula. A fianco della tabella per l'immissione dati viene stampata la tabella contenente i numeri indici calcolati, sia fissi che mobili.

Grafica

La sessione di grafica inizia dopo aver premuto INVIO e disegna gli assi, le frecce, scrive il titolo, scrive i nomi degli assi e la didascalia per la base scelta. Viene calcolata la costante per l'asse x, disegnata la scala con un ciclo e stampati i rispettivi valori. L'unico valore stampato in rosso anziché in bianco è il valore della base. Viene calcolata la costante per l'asse x, disegnata la scala con un ciclo e stampati i rispettivi valori. In fine vengono disegnati i punti e collegati in successione da una linea spezzata.



- Listato



* Croci Jvan 4^ A Informatica 12-02-2000 *


// Input: Serie storica

// Output: Serie storica, NIbf,NIbm,grafico.

// Consegna: 12-03-2001

#include<conio.h>

#include<stdio.h>

#include<math.h>

#include<values.h>

#include<graphics.h>


#define ASSEX (410)  // Valore effettivo asse x

#define ASSEY (380)  // Valore effettivo asse y

///----- ----- --------- ----- -------- INPUT -------- ----- ------ ----

float t[30]; // Tempi

float x[30]; // x

//-------- ----- ------ OUTPUT -------- ----- ------ ---

float NIbm[30],NIbf[30]; // Numeri indice semplici a base mobile e a

// base fissa

//----- ----- ---------------- VARIABILI AUSILIARIE ----- ----- --------- ----- ----

float base=0;    // Tempo base

int indicebase=0;    // Indice della base

int val;  // Numeri inseriti

int scheda,modo; // Variabili di grafica

float xx=0,yy=0,max=0,min=0; // Variabili utilizzate i grafica

char rchar[30];  //

int i=0,j=0,cont=0;  // Variabili ausiliarie


int Cerca(float b);  // Funzione di ricerca della base

int Max(float vet[30],int n); // Funzione di ricerca del numero maggiore

int Min(float vet[30],int n); // Funzione di ricerca del numero minore


void main(void)


while(val<=1 || val>30);   // Controllo sul numero immesso


gotoxy(1,7);

printf("    ╔═════════╦═════════╗"); // Disegna la tabella

printf("\n ║ t ║ xt ║");

printf("\n    ╠═════════╬═════════╣");

for(i=0;i<val;i++)

printf("\n ║ ");

for(i=0;i<val;i++)


else

cont=0;

}

while(cont>0);

do


else

cont=0;

}

while(cont>0);

// Fine del ciclo di immissione dati


gotoxy(5,10+val);

printf("╚═════════╩═════════╝");


//----- ----- ------------ NUMERI INDICE A BASE FISSA ----- ----- ----------------

do


while(base<=0); // Controllo sul numero immesso

i=Cerca(base); // Ricerca della base scelta


while(i==1);


for(i=0;i<val;i++)

NIbf[i]=(x[i]/x[indicebase])*100; // Calcolo dei NIbf


//----- ----- ------------ NUMERI INDICE A BASE MOBILE ----- ----- ---------------

for(i=1;i<val;i++)

NIbm[i-1]=(x[i]/x[i-1])*100; // Calcolo dei NIbm


gotoxy(45,7);

printf("╔═════════╦═════════╗"); // Disegna la tabella

gotoxy(45,8);

printf("║ NIbf ║ NIbm ║");

gotoxy(45,9);

printf("╠═════════╬═════════╣");

gotoxy(45,10);

for(i=0;i<val;i++)


printf("╚═════════╩═════════╝");


gotoxy

printf("* * * *");

for(i=0;i<val;i++)


for(i=0;i<val-1;i++)


//----- ----- --------- ----- ------- GRAFICA -------- ----- ------ ---

printf("\n\n\n\n\n Per visualizzare il grafico premere il tasto INVIO  ");

getch

detectgraph(&scheda,&modo);

initgraph(&scheda,&modo,"c:\\borlandc\\bgi");

clrscr

setfillstyle

floodfill

line(100,440,100,20);   // Asse y

line(90,430,540,430);   // Asse x


line(95,25,100,20);

line(105,25,100,20);    // Freccia

line(95,25,105,25);


line(535,425,540,430);

line(535,425,535,435);  // Freccia

line(535,435,540,430);


settextstyle

setcolor(BLUE);

outtextxy(200,0,"SERIE STORICA"); // Titolo


setcolor(WHITE);

settextstyle(1,0,1);   // Nomi assi

outtextxy(550,450,"t");

outtextxy(40,10,"xt");


settextstyle(2,0,5);   // Didascalia

outtextxy(580,60,"Tempo");

outtextxy(580,75,"base");

setcolor(RED);

line(560,75,570,75);    // Lineetta rossa


setcolor(WHITE);

xx=ASSEX/(t[val-1]-t[0]);   // Costante asse x

settextstyle

for(i=0;i<val;i++)


else


}


setcolor(WHITE);

max=Max(x,val);

min=Min(x,val);

yy=ASSEY/(max-min);  // Costante asse y

settextstyle

for(i=0;i<val;i++)


setcolor(RED);

setfillstyle(1,RED);

for(i=0;i<val;i++)


setcolor(BLUE);

setfillstyle(1,BLUE);

for(i=0;i<val-1;i++)

line(110+((t[i]-t[0])*xx),420-((x[i]-min)*yy), // Grafico a linee

110+((t[i+1]-t[0])*xx),420-((x[i+1]-min)*yy));


setcolor(WHITE);

getch();

// Termine pgm


//----- ----- --------- ----- ---- FUNZIONE CERCA ----- ----- --------- ----- --------

int Cerca(float b)


else


}

while(i<val);

if(control==1)


return (control);


//----- ----- --------- ----- ---- FUNZIONE MAX -------- ----- ------ -

int Max(float vet[30],int n)


return(maggiore);



//----- ----- --------- ----- ---- FUNZIONE MIN -------- ----- ------ -

int Min(float vet[30],int n)


return(minore);





- Esempio di output






*** SERIE STORICA ***



Quanti numeri vuoi inserire ? 5



t ║ xt ║ ║ NIbf NIbm

╠═════╬═════╣ ╠═════╬═════╣

1 2130 * * * *

2 2050 98.795 96.244

3 2075

4 2040 98.313 98.313

5 2010 96.867 98.529

╚═════╩═════╝ ╚═════╩═════╝


Quale tempo desideri impostare come base ? 3


Per visualizzare il grafico premere il tasto INVIO










Privacy




Articolo informazione


Hits: 5330
Apprezzato: scheda appunto

Commentare questo articolo:

Non sei registrato
Devi essere registrato per commentare

ISCRIVITI



Copiare il codice

nella pagina web del tuo sito.


Copyright InfTub.com 2024