Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //esame 19-09-2019
- //file190919.txt
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <math.h>
- struct dati{
- int h;
- int battiti;
- int fMin;
- int fMax;
- int fMean;
- int besv;
- int sonno;
- int pasto;
- int corsa;
- int sintomo;
- };
- /*struct dati2{
- int h;
- int battiti;
- int fMin;
- int fMax;
- int fMean;
- int besv;
- char listaAttivita[10];
- };*/
- struct dati *letturaFile(FILE *f, int *n);
- void stampaStructDati(struct dati *dati,int n);
- int totBesvTest(struct dati *d,int n,int *oraTot);
- //int totOreTest(struct dati *d,int n);
- int main(int argc, char *argv[]){
- FILE *f;
- struct dati *dati;
- //struct dati2 *d2;
- int nDati;
- int totBesv;
- int oreTot;
- //int nD2;
- if(argc!=2){
- return 1;
- }
- f=fopen(argv[1],"r");
- if(f==NULL){
- printf("file non trovato\n");
- return 1;
- }
- // funzioni per la lettura dei file
- dati=letturaFile(f,&nDati);
- stampaStructDati(dati,nDati);
- //richiesta 1
- totBesv=totBesvTest(dati,nDati,&oreTot);
- //oreTot=totOreTest(dati,nDati);
- printf("%d\n%d\n",totBesv,oreTot);
- // richiesta 2
- frequenzaMin=frequenzaMinima(struct dati *d,int n,int *ora);
- return 0;
- }
- struct dati *letturaFile(FILE *f, int *n){
- int nConv;
- int size=10;
- char buffer[100];
- char s[5];
- struct dati *d1,*d2;
- *n=0;
- d2=malloc(size*sizeof(struct dati));
- while(fgets(buffer,sizeof(buffer),f)){
- d1=d2+ *n;
- nConv=sscanf(buffer,"%d\t%d\t%d\t%d\t%d\t%d\t%s",&d1->h,&d1->battiti,&d1->fMin,&d1->fMax,&d1->fMean,&d1->besv,s);
- if(s[0]=='S'){
- d1->sonno=1;
- }else{
- d1->sonno=0;
- }
- if(s[1]=='P'){
- d1->pasto=1; // tutto questo per riempire le ultime 4 variabili della strcut
- }else{
- d1->pasto=0;
- }
- if(s[2]=='C'){
- d1->corsa=1;
- }else{
- d1->corsa=0;
- }
- if(s[3]=='D'){
- d1->sintomo=1;
- }else{
- d1->sintomo=0;
- }
- (*n)++;
- if(*n>size){
- size=2*size;
- d2=realloc(d2,size*sizeof(struct dati));
- }
- }
- d2=realloc(d2,(*n)*sizeof(struct dati));
- return d2;
- }
- void stampaStructDati(struct dati *dati,int n){
- int i;
- for(i=0;i<n;i++){
- //printf("%d\t%d\t%d\t%d\t%d\t%d\t%s\n",dati[i].h,dati[i].battiti,dati[i].fMin,dati[i].fMax,dati[i].fMean,dati[i].besv,dati[i].listaAttivita);
- printf("%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\n",dati[i].h,dati[i].battiti,dati[i].fMin,dati[i].fMax,dati[i].fMean,dati[i].besv,dati[i].sonno,dati[i].pasto,dati[i].corsa,dati[i].sintomo);
- }
- }
- int totBesvTest(struct dati *d,int n,int *oreTot){
- int i;
- int totBesv=0; // count da incrementare
- for(i=0;i<n;i++){
- totBesv+= d[i].besv;
- }
- *oreTot=d[n-1].h-d[0].h+1;
- return totBesv;
- }
- /*int totOreTest(struct dati *d,int n){
- int i;
- int oreTot;
- for(i+0;i<n;i++){
- oreTot=oreTot+d[i].h;
- }
- return oreTot;
- } */
- int frequenzaMinima(struct dati *d,int n,int *ora){
- int i;
- int frequenzaMin=100;
- for(i=0;i<n;i++){
- if(d[i].fmin<frequenzaMin){
- flag=d[i].fmin;
- *ora=d[i].h;
- }
- }
- return frequenzaMin;
- }//esame 19-09-2019
- //file190919.txt
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <math.h>
- struct dati{
- int h;
- int battiti;
- int fMin;
- int fMax;
- int fMean;
- int besv;
- int sonno;
- int pasto;
- int corsa;
- int sintomo;
- };
- /*struct dati2{
- int h;
- int battiti;
- int fMin;
- int fMax;
- int fMean;
- int besv;
- char listaAttivita[10];
- };*/
- struct dati *letturaFile(FILE *f, int *n);
- void stampaStructDati(struct dati *dati,int n);
- int totBesvTest(struct dati *d,int n,int *oraTot);
- //int totOreTest(struct dati *d,int n);
- int main(int argc, char *argv[]){
- FILE *f;
- struct dati *dati;
- //struct dati2 *d2;
- int nDati;
- int totBesv;
- int oreTot;
- //int nD2;
- if(argc!=2){
- return 1;
- }
- f=fopen(argv[1],"r");
- if(f==NULL){
- printf("file non trovato\n");
- return 1;
- }
- // funzioni per la lettura dei file
- dati=letturaFile(f,&nDati);
- stampaStructDati(dati,nDati);
- //richiesta 1
- totBesv=totBesvTest(dati,nDati,&oreTot);
- //oreTot=totOreTest(dati,nDati);
- printf("%d\n%d\n",totBesv,oreTot);
- // richiesta 2
- frequenzaMin=frequenzaMinima(struct dati *d,int n,int *ora);
- return 0;
- }
- struct dati *letturaFile(FILE *f, int *n){
- int nConv;
- int size=10;
- char buffer[100];
- char s[5];
- struct dati *d1,*d2;
- *n=0;
- d2=malloc(size*sizeof(struct dati));
- while(fgets(buffer,sizeof(buffer),f)){
- d1=d2+ *n;
- nConv=sscanf(buffer,"%d\t%d\t%d\t%d\t%d\t%d\t%s",&d1->h,&d1->battiti,&d1->fMin,&d1->fMax,&d1->fMean,&d1->besv,s);
- if(s[0]=='S'){
- d1->sonno=1;
- }else{
- d1->sonno=0;
- }
- if(s[1]=='P'){
- d1->pasto=1; // tutto questo per riempire le ultime 4 variabili della strcut
- }else{
- d1->pasto=0;
- }
- if(s[2]=='C'){
- d1->corsa=1;
- }else{
- d1->corsa=0;
- }
- if(s[3]=='D'){
- d1->sintomo=1;
- }else{
- d1->sintomo=0;
- }
- (*n)++;
- if(*n>size){
- size=2*size;
- d2=realloc(d2,size*sizeof(struct dati));
- }
- }
- d2=realloc(d2,(*n)*sizeof(struct dati));
- return d2;
- }
- void stampaStructDati(struct dati *dati,int n){
- int i;
- for(i=0;i<n;i++){
- //printf("%d\t%d\t%d\t%d\t%d\t%d\t%s\n",dati[i].h,dati[i].battiti,dati[i].fMin,dati[i].fMax,dati[i].fMean,dati[i].besv,dati[i].listaAttivita);
- printf("%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\n",dati[i].h,dati[i].battiti,dati[i].fMin,dati[i].fMax,dati[i].fMean,dati[i].besv,dati[i].sonno,dati[i].pasto,dati[i].corsa,dati[i].sintomo);
- }
- }
- int totBesvTest(struct dati *d,int n,int *oreTot){
- int i;
- int totBesv=0; // count da incrementare
- for(i=0;i<n;i++){
- totBesv+= d[i].besv;
- }
- *oreTot=d[n-1].h-d[0].h+1;
- return totBesv;
- }
- /*int totOreTest(struct dati *d,int n){
- int i;
- int oreTot;
- for(i+0;i<n;i++){
- oreTot=oreTot+d[i].h;
- }
- return oreTot;
- } */
- int frequenzaMinima(struct dati *d,int n,int *ora){
- int i;
- int frequenzaMin=100;
- for(i=0;i<n;i++){
- if(d[i].fmin<frequenzaMin){
- flag=d[i].fmin;
- *ora=d[i].h;
- }
- }
- return frequenzaMin;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement