| 12
 3
 4
 5
 6
 7
 8
 9
 
 | OPEN (UNIT=50,FILE='sourceO.txt') 
    		DO 1001 S=1,280
    		READ (50,*)LTEST, ATEST
	IF ((L.NE.LTEST).AND.(NUMSPC.EQ.3)) GOTO 1001
	ATERM = 0.0
	BTERM = 0.0
	GOTO 1002
1001	CONTINUE
1002	CLOSE(50) | 
 
Deviendrait (si transformée en procédure) :
	
	| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 
 | #include <stdlib.h>
#include <stdio.h>
 
 
void MaFonction ( int L, int NUMSPC, double *ATERM, double *BTERM )
{
FILE *Fichier= NULL ;
char Ligne[1000] ;
int i ;
int LTEST ;
float ATEST ;
 
Fichier = fopen ( "sourceO.txt", "r" );
if ( Fichier != NULL )
  {
       while ( fgets ( Ligne, 999, Fichier) != NULL )
         {
            if ( sscanf ( Ligne,  "%d %g", <EST, &ATEST ) == 2 )
              {
                  if ( ! ((LTEST != L) && (NUMSPC == 3)) )
                    {
                        *ATERM = 0.0 ;
                        *BTERM = 0.0 ;
                        break ;
                    }
              }
         }
 
       fclose ( Fichier );  
  } | 
 
Fonction qui doit être appelée comme :
	
	MaFonction ( L, NUMSPC, &ATERM, &BTERM );
 
Par contre  :
a) il est possible d'optimiser le if...
b) il serait souhaitable de passer le nom du fichier en paramètre...
du style :
	
	MaFonction ( "source0.txt", L, NUMSPC, &ATERM, &BTERM );
 
Avec une définition comme :
	
	| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 
 | void MaFonction ( char *Filename, int L, int NUMSPC, double *ATERM, double *BTERM )
{
FILE *Fichier= NULL ;
char Ligne[1000] ;
int i ;
int LTEST ;
float ATEST ;
 
Fichier = fopen ( Filename, "r" );
if ( Fichier != NULL )
.. | 
 
						
					
Partager