function[nuEcran] = acp(tableau, lblObs, lblVar, nObs, nVar, nLblObs, nuEcran, methode, lst, nomFic, titre, flagLangue);

    exec('val2str.sci');
    exec('traitDonnees.sci');
    exec('plotadd.sci');
    exec('ficcr.sci');

//  Analyse en Composantes Principales

    lstPs = nomFic+'.ps';

//  Pr\'etraitement des donn\'ees

    [clas, nCl, X, R, moyX, moyY, CV] = traitDonnees(tableau, nObs, nVar, methode, 0);

//  Passage au tableau des donn\'ees centr\'ees, r\'eduites

    X = X - ones(nObs, nVar) * diag(moyX);
    X = X ./ (ones(nObs,nVar)*sqrt(diag(diag(CV))));

//  Calcul des valeurs et vecteurs propres

    [valProp, vectProp, info, lblValProp, lblInfo] = valvecP(R, nVar, methode);

//  Calcul des donn\'ees reconstitu\'ees
//  Y pour les observations et Z pour les variables

    Y = X * vectProp;
    Z= X' *(Y ./ (ones(nObs,nVar)*sqrt(diag(valProp))));
    Z = Z /nObs;

//  Contributions absolues
//  YC pour les obervations, ZC pour les variables

    YC = diag(Y*Y');
    ZC = (Z'*Z);

    RY = vectProp * diag(sqrt(valProp));

//  disp(RY,'Corr\'elations ACP - Init');

//  Graphiques

    nuEcran = plotAdd(Y,Z,clas,lblVar,lblObs,lblValProp,lblInfo,nObs,nVar,nCl,nuEcran,lstPs,methode,flagLangue,titre);

//  Ecriture du fichier de compte-rendu

    ple = ficCR(Y,Z,clas,moyX,CV,R,valProp,vectProp,info,nObs,nVar,lblVar,lblObs,lblValProp,lblInfo,lst);
    
endfunction      
    
