C C programma di elaborazione dei risultati C legge il file *.out prodotto da cor_tstx C C PARAMETER (NSTUD=1000,NQUE=14,NSC=10) DIMENSION AVESC(NSC),AVESC1(NSC),AVEISTSC(NSC) DIMENSION AVEMATSC(NSC) DIMENSION IVOTO(NSC,NSTUD),INDX(NSTUD) DIMENSION SCORE(NSC,NSTUD),SCORE1(NSC,NSTUD) DIMENSION ISTO(NSC,NSTUD),IX(NSC,0:NQUE) DIMENSION NOME(NSC,NSTUD),MATR(NSC,NSTUD),SCUOLA(NSC,NSTUD) CHARACTER FILEIN*30,STRING*100 CHARACTER NOME*30,MATR*10,SCUOLA*2 CHARACTER NM*30,MA*10,SCU*2 C STRING='ALICITLCLS' NOSC=5 DO I=1,NOSC INDX(I)=0 ENDDO C WRITE(*,*) 'Entra il file di input' READ(*,'(A)') FILEIN C C Leggi il File di Input C OPEN(UNIT=20,FILE=FILEIN,STATUS='OLD') READ(20,*) NPOINT AVE=0. DO IN=1,NPOINT C C READ(20,'(50X,F10.5,I3,1X,F7.3)',END=200) C ^ SCORE(IN),ISTO(IN),SCORE1(IN) C WRITE(*,*) SCORE(IN),ISTO(IN),SCORE1(IN) C READ(20,'(A30,A6,6X,A2,3X,I3,F7.3,2X,I3,1X,F7.3)',END=200) ^ NM,MA,SCU,IV,SC,IS,SC1 WRITE(*,*) NM,MA,SCU,IV,SC,IS,SC1 READ(20,*) READ(20,*) READ(20,*) C JX=(INDEX(STRING,SCU)+1)/2 INDX(JX)=INDX(JX)+1 NOME(JX,INDX(JX))=NM MATR(JX,INDX(JX))=MA SCUOLA(JX,INDX(JX))=SCU IVOTO(JX,INDX(JX))=IV SCORE(JX,INDX(JX))=SC ISTO(JX,INDX(JX))=IS SCORE1(JX,INDX(JX))=SC1 C ENDDO C 200 CONTINUE NPOINT=IN-1 CLOSE(20) write(6,*) '----->', npoint C C CALCOLO MEDIE C AVE=0. AVE1=0. AVEIST=0. AVEMAT=0. NOMAT=0 DO JX=1,NOSC C WRITE(*,*) SCUOLA(JX,1) AVESC(JX)=0.0 AVESC1(JX)=0.0 AVEISTSC(JX)=0. AVEMATSC(JX)=0.0 DO IN=1,INDX(JX) C WRITE(*,*) NOME(JX,IN),IVOTO(JX,IN),SCORE(JX,IN), C ^ ISTO(JX,IN),SCORE1(JX,IN) IF(INDEX(MATR(JX,INDX(JX)),'000').NE.0) NOMAT=NOMAT+1 AVEMATSC(JX)=AVEMATSC(JX)+IVOTO(JX,IN) AVESC(JX)=AVESC(JX)+SCORE(JX,IN) AVESC1(JX)=AVESC1(JX)+SCORE1(JX,IN) AVEISTSC(JX)=AVEISTSC(JX)+ISTO(JX,IN) AVE=AVE+SCORE(JX,IN) AVE1=AVE1+SCORE1(JX,IN) AVEIST=AVEIST+ISTO(JX,IN) AVEMAT=AVEMAT+IVOTO(JX,IN) ENDDO IF(INDX(JX).NE.0) THEN AVESC(JX)=AVESC(JX)/FLOAT(INDX(JX)) AVESC1(JX)=AVESC1(JX)/FLOAT(INDX(JX)) AVEISTSC(JX)=AVEISTSC(JX)/FLOAT(INDX(JX)) AVEMATSC(JX)=AVEMATSC(JX)/FLOAT(INDX(JX)) ENDIF ENDDO C AVE=AVE/FLOAT(NPOINT) AVE1=AVE1/FLOAT(NPOINT) AVEIST=AVEIST/FLOAT(NPOINT) AVEMAT=AVEMAT/FLOAT(NPOINT) C SIGMA=0. SIGMA1=0. SIGMAIST=0. SIGMAMAT=0. DO JX=1,NOSC SIGMASC=0.0 SIGMASC1=0.0 SIGMAISTSC=0.0 SIGMAMATSC=0. DO IN=1,INDX(JX) SIGMA=SIGMA+(SCORE(JX,IN)-AVE)**2 SIGMA1=SIGMA1+(SCORE1(JX,IN)-AVE1)**2 SIGMAIST=SIGMAIST+(ISTO(JX,IN)-AVEIST)**2 SIGMAMAT=SIGMAMAT+(IVOTO(JX,IN)-AVEMAT)**2 SIGMASC=SIGMASC+(SCORE(JX,IN)-AVESC(JX))**2 SIGMASC1=SIGMASC1+(SCORE1(JX,IN)-AVESC1(JX))**2 SIGMAISTSC=SIGMAISTSC+(ISTO(JX,IN)-AVEISTSC(JX))**2 SIGMAMATSC=SIGMAMATSC+(IVOTO(JX,IN)-AVEMATSC(JX))**2 ENDDO IF(INDX(JX).NE.0) THEN SIGMASC=SQRT(SIGMASC/FLOAT(INDX(JX))) SIGMASC1=SQRT(SIGMASC1/FLOAT(INDX(JX))) SIGMAISTSC=SQRT(SIGMAISTSC/FLOAT(INDX(JX))) SIGMAMATSC=SQRT(SIGMAMATSC/FLOAT(INDX(JX))) ENDIF WRITE(*,*) SCUOLA(JX,1),INDX(JX), ^ 100.0*FLOAT(INDX(JX))/FLOAT(NPOINT) WRITE(*,*) 'maturita ',AVEMATSC(JX),SIGMAMATSC WRITE(*,*) 'domande ',AVEISTSC(JX),SIGMAISTSC WRITE(*,*) 'punteggio ',AVESC(JX),SIGMASC c WRITE(*,*) 'punteggio2 ',AVESC1(JX),SIGMASC1 ENDDO C SIGMA=SQRT(SIGMA/FLOAT(NPOINT)) SIGMA1=SQRT(SIGMA1/FLOAT(NPOINT)) SIGMAIST=SQRT(SIGMAIST/FLOAT(NPOINT)) SIGMAMAT=SQRT(SIGMAMAT/FLOAT(NPOINT)) C WRITE(*,*) '------ TOTALI -----' WRITE(*,*) 'maturita ',AVEMAT,SIGMAMAT WRITE(*,*) 'domande ',AVEIST,SIGMAIST WRITE(*,*) 'punteggio ',AVE,SIGMA C WRITE(*,*) 'punteggio 2 ',AVE1,SIGMA1 WRITE(*,*) 'senza matricola',NOMAT C C istogramma C C WRITE(*,*) '-------------' C DO I=0,NQUE C IX(I)=0 C ENDDO C C DO I=1,NPOINT C IX(ISTO(I))=IX(ISTO(I))+1 C ENDDO C C DO I=0,NQUE C WRITE(*,*) I,IX(I) C ENDDO C STOP END