PBYetml / PROG_SLO1_C_PRJ2

Resultat des Etudiants
HomePage
0 stars 3 forks source link

LMS => bugs/remarques => fichier fonctionPontDiv.c -> fct CalculTensionPontDivisueur #23

Closed PBYetml closed 1 year ago

PBYetml commented 1 year ago

voici un listing des points à améliorer/corriger dans le fichier fonctionPontDiv.c

=> voir fichier vidéo lien vidéo

LeoMendesEsEtml commented 1 year ago

=> structure d'une fct => paramètre d'entrée / sortie => :

void CalculTensionPontDiviseur(pontDiviseur* demoPontDiv)

LeoMendesEsEtml commented 1 year ago

=> algorithme => somme de résistance => boucle / itération => voir formule du CDC => algorithme => calcul d'une tension sur un pont résistif => voir formule du CDC :

void CalculTensionPontDiviseur(pontDiviseur* demoPontDiv) { float rTot = 0; float tensionSuivante = 0;

// Calcul de la résistance totale
for (int i = 0; i < demoPontDiv->nbrRes; i++) {
    rTot += demoPontDiv->tab_ValRes[i];
}

// Calcul du facteur de correction
float correction = demoPontDiv->vAlim / rTot;

// Calcul de la tension du potentieé chaque résistance
for (int i = demoPontDiv->nbrRes - 1; i >= 0; i--) {
    tensionSuivante = tensionSuivante + demoPontDiv->tab_ValRes[i] * correction;
    demoPontDiv->tab_ValTension[i] = tensionSuivante;
}

}

LeoMendesEsEtml commented 1 year ago

Nouveau fichier fonctionnel et corriger disponible sur la Branche "LMS" ainsi que sur mon dépôt

PBYetml commented 1 year ago

Selon votre algorithme fournit dans le commentaire : https://github.com/PBYetml/PROG_SLO1_C_PRJ2/issues/23#issuecomment-1513997262

Attention à ne pas mélanger les instructions écrites en C/C++ bien qu'il y a des grands similitudes, certaines choses ne sont pas tolérée sur un compilateur 100%, exemple :

float correction = demoPontDiv->vAlim / rTot;

cette instruction ne peut pas être placée comme ceci normalement dans votre code + est-ce que le terme de correction vous semble correcte ou justifiée

LeoMendesEsEtml commented 1 year ago

void CalculTensionPontDiviseur(pontDiviseur* demoPontDiv) { float rTot = 0; float facteurCorrection float tensionSuivante = 0;

// Calcul de la résistance totale for (int i = 0; i < demoPontDiv->nbrRes; i++) { rTot += demoPontDiv->tab_ValRes[i]; }

// Calcul du facteur de correction facteurCorrection = (demoPontDiv->vAlim) / rTot;

// Calcul de la tension du potentieé chaque résistance for (int i = demoPontDiv->nbrRes - 1; i >= 0; i--) { tensionSuivante = tensionSuivante + demoPontDiv->tab_ValRes[i] * correction; demoPontDiv->tab_ValTension[i] = tensionSuivante; } }

Le nom correction avait été choisi car il correspond a ça fonction qui sert à ajuster les tensions calculée pour prendre en compte la résistance totale du pont diviseur, permettant ainsi de mesurer avec précision la tension aux bornes de chaque résistance. Je l'ai changer avec facteurCorrection afin de simplifier la compréhension et déclarer en dehors du calcul même afin de limité les erreurs de compatibilité

PBYetml commented 1 year ago

Je ne peux pas encore fermer cette issue -> bien que vous faite de la programmation, votre algorithme doit être compréhensif :

Si je vous dit : I = U / R, à quoi cela vous fait penser, maintenant regarder votre instruction, à quoi cela vous fait-il penser ;) :

facteurCorrection = (demoPontDiv->vAlim) / rTot;
LeoMendesEsEtml commented 1 year ago

=> algorithme => calcul d'une tension sur un pont résistif => voir formule du CDC

// Calcul du courant total sur le pont float courant = demoPontDiv->vAlim / rTot;

PBYetml commented 1 year ago

Oki -> issue fermée