Allink  v0.1
Segnali.cpp
1 #include "Segnali.h"
2  int NSegn=1000;
3  int Periodi=10000;
4  double Passo = .5;
5  double MediaSu=1.;
6  double ScartoSu=1.;
7  double MediaGiu=30.;
8  double ScartoGiu=1.;
9  double Incr=.01;
10 int main(int argc,char **argv){
11  char *NomeMedia;
12  char *Comando;
13  NomeMedia = new char[30];
14  Comando = new char[50];
15  Legenda();
16  Variabili *v1 = new Variabili(NSegn,Periodi,MediaSu,ScartoSu,MediaGiu,ScartoGiu,Passo,Incr);
17  for(int i=0;i<argc;i++){
18  if(!strcmp(*(argv+i),"-help")){
19  return 0;
20  }
21  if(!strcmp(*(argv+i),"-sim")){
22  (void)time(&ti);
23  v1->Simula();
24  (void)time(&tf);
25  printf("Il tutto dopo %d [s] ovvero %.1f [min]\n",
26  (int)(tf-ti),(double)(tf-ti)/60.);
27  // delete v1;
28  printf("Te ve be te e`?\n");
29  return 0;
30  }
31  }
32  while(strcmp(Comando,"esci") ){
33  printf("Segnali> ");
34  scanf("%s",Comando);
35  if(!strcmp(Comando,"num")){
36  printf("Introdurre il numero di segnali: ");
37  scanf("%d",&NSegn);
38  v1->Cambia(Comando,NSegn);
39  }
40  else if(!strcmp(Comando,"?") ){
41  Legenda();
42  }
43  else if(!strcmp(Comando,"!") ){
44  printf("Introdurre il comando per la shell");
45  scanf("%s",Comando);
46  system(Comando);
47  }
48  else if(!strcmp(Comando,"per")){
49  printf("Introdurre i periodi: ");
50  scanf("%d",&Periodi);
51  v1->Cambia(Comando,Periodi);
52  }
53  else if(!strcmp(Comando,"pas")){
54  printf("Introdurre il passo di campionamento: ");
55  scanf("%lf",&Passo);
56  v1->Cambia(Comando,Passo);
57  }
58  else if(!strcmp(Comando,"mSu") ){
59  printf("Introdurre la media: ");
60  scanf("%lf",&MediaSu);
61  v1->Cambia(Comando,MediaSu);
62  }
63  else if(!strcmp(Comando,"sSu") ){
64  printf("Introdurre lo scarto: ");
65  scanf("%lf",&ScartoSu);
66  v1->Cambia(Comando,ScartoSu);
67  }
68  else if(!strcmp(Comando,"mGiu") ){
69  printf("Introdurre la media: ");
70  scanf("%lf",&MediaGiu);
71  v1->Cambia(Comando,MediaGiu);
72  }
73  else if(!strcmp(Comando,"sGiu") ){
74  printf("Introdurre lo scarto: ");
75  scanf("%lf",&ScartoGiu);
76  v1->Cambia(Comando,ScartoGiu);
77  }
78  else if(!strcmp(Comando,"incr") ){
79  printf("Introdurre l'incremento: ");
80  scanf("%lf",&Incr);
81  v1->Cambia(Comando,Incr);
82  }
83  else if(!strcmp(Comando,"sim") ){
84  (void)time(&ti);
85  v1->Simula();
86  (void)time(&tf);
87  printf("Il tutto dopo %d [s] ovvero %.1f [min]\n",
88  (int)(tf-ti),(double)(tf-ti)/60.);
89  }
90  else if(!strcmp(Comando,"esci") );
91  else {
92  printf("Comando non valido, scrivere ?\
93  per la lista dei comandi\n");
94  }
95  }
96  // delete v1;
97  printf("Te ve be te e`?\n");
98  return 0;
99 }
100 void Legenda(){
101  printf("\n\
102 *****************************************************************\n\
103 ( )\n\
104 ) Qui inizia il programma che pasticcia con i segnali (\n\
105 ( Mettetevi comodi che saran ore di conti )\n\
106 ) (\n\
107 (-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-)\n\
108 ( num %%d imposta in numero di segnali (pred=%d) )\n\
109 ) per %%d impsta per il numero di periodi (pred=%d) (\n\
110 ( pas %%lf imposta il numero di passi (%.1f) )\n\
111 ( mSu %%lf imposta la media dei segnali (%.1f) )\n\
112 ) sSu %%lf imposta lo scarto su cui son distribuiti (%.1f) (\n\
113 ( mGiu%%lf imposta la media dei segnali (%.1f) )\n\
114 ) sGiu%%lf imposta lo scarto su cui son distribuiti (%.1f) (\n\
115 ) incr%%lf imposta lo l'incremento (%.1f) (\n\
116 ( sim simula )\n\
117 ( ! esegue un comando (come cambiare cartella) )\n\
118 ( esci ... )\n\
119 *****************************************************************\n",
120  NSegn,Periodi,Passo,MediaSu,ScartoSu,MediaGiu,ScartoGiu,Incr);
121 }
122