Pb language C

Bonjour à tous,

voila je débute en programmation en language C et j'ai une doute en ce qui concerne la ligne de code qui suit, je ne vois pas ce que ça veux dire :

for (PS=0, I=1; I<N+1; I++)
      PS += (float)U[I]*V[I];


Si quelqu'un a une explication, je vous remercie d'avance.
Bonne journée.
Configuration: Windows Vista
Firefox 3.0.4

4 réponses

  1. je reposte le code, j'en avais oublié un bout lol

     for (PS=0, I=1; I<N+1; I++)
          PS += (float)U[I]*V[I];
     
     printf("Produit scalaire : %f\n", PS);
     return 0;


    en fait je ne comprend pas les 2 preimières lignes ainsi que la dernière.
    Merci d'avance à tous
    0
    1. Contributeur
      Salut
      Voici ton code commenté :
       for (PS=0, I=1; I<N+1; I++) // on initialise PS à 0, I à 1. Et on parcourt la ligne d'après tant que I inférieur strictement à N+1 (I sera incrémenté de 1 à chaque ligne). 
            PS += (float)U[I]*V[I]; //Produit scalaire entre le vecteur U et V.  (Ux*Vx+Uy*Vy+Uz*Vz)
       
       printf("Produit scalaire : %f\n", PS);
       return 0; //Fin du programme (ou de la fonction), tout s'est bien passé.
      

      Cdlt
      0
      1. 1 ere ligne c'est une boucle for tu initialise P a 0 al'interieur du for
        2eme ligne P est egal au scalaire des deux tableaux U et V, tu connais la formule du scalaire je pense
        derniere ligne surment en rapport avec l'en tete de ta fonction qui precise que tu dois retourner un int
        0
        1. Modérateur
          Salut,

          Ton code on pourra par exemple l'écrire de cette manière explicite
          for (PS=0, I=1; I<N+1; I++)
            PS = PS + (((float)U[I])*V[I]);
          
          printf("Produit scalaire : %f\n", PS);
          return 0;


          La ligne
          PS += (float)U[I]*V[I];
          C'est un raccourci pour PS = PS + (((float)U[I])*V[I]);
          (float) c'est un opérateur de type qui fait la conversion de U[i] en float est il a une priorité plus grande que la multiplication *
          Les parenthèses que j'ai ajouter c'est juste pour te montrer les opérations qui seront traitées en premier mais elles (les parenthèses) ne sont pas nécessaires dans ce cas.

          return 0; veut dire que la fonction renvoie 0 si elle réussi en supposant que le type que ta fonctionne renvoie est un int
          Je suppose que c'est le int main()
          0
          1. Merci à tous pour vos réponses ;-)
            0