4 réponses
je reposte le code, j'en avais oublié un bout lol
en fait je ne comprend pas les 2 preimières lignes ainsi que la dernière.
Merci d'avance à tous
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
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 835
22 nov. 2008 à 17:00
22 nov. 2008 à 17:00
Salut
Voici ton code commenté :
Cdlt
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
mype
Messages postés
2435
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
16 août 2010
436
22 nov. 2008 à 17:00
22 nov. 2008 à 17:00
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
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
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
22 nov. 2008 à 17:09
22 nov. 2008 à 17:09
Salut,
Ton code on pourra par exemple l'écrire de cette manière explicite
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()
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()