Carte velleman avec dev c++
Fermé
retyry
Messages postés
49
Date d'inscription
mardi 22 janvier 2013
Statut
Membre
Dernière intervention
5 octobre 2016
-
Modifié par mamiemando le 15/06/2013 à 12:04
mamiemando Messages postés 32283 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 mars 2023 - 15 juin 2013 à 12:17
mamiemando Messages postés 32283 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 mars 2023 - 15 juin 2013 à 12:17
A voir également:
- Carte velleman avec dev c++
- Telecharger dev c++ - Télécharger - Langages
- Carte vitale v3 - Guide
- Carte bancaire machine à laver ✓ - Forum Matériel informatique
- Carte sim reconnue mais aucun service - Forum Mobile
- Autorité de délivrance carte d'identité ✓ - Forum Vos droits sur internet
1 réponse
mamiemando
Messages postés
32283
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
17 mars 2023
7 572
Modifié par mamiemando le 15/06/2013 à 12:25
Modifié par mamiemando le 15/06/2013 à 12:25
Une petite erreur pour commencer, ton "return 0" devrait être juste avant la dernière accolade du programme.
Ensuite truc qui ne va pas (mais qui ne remet pas en cause le fait que le code marche) toutes tes variables sont globales ce qui est une TRÈS mauvaise habitude, et il manque le type des paramètres de tes fonctions pour tes fonctions de conversion. Ce devrait être :
Note que dans tes fonctions de conversion tu pourrais même directement écrire :
Voilà donc sinon n'oublie pas que ces divisions seront arrondies puisque ce sont des divisions entières. Par ailleurs si ces entiers sont forcément positifs ce serait mieux d'utiliser des "unsigned int" (aussi notés "unsigned").
Pour revenir à ton problème, pour calculer tes moyennes, tu dois mémoriser ton échantillon de valeur. Pour cela le plus simple c'est de les stocker dans un tableau. Si la taille de ton tableau peut-être déterminée à la compilation (c'est à dire qu'elle ne dépend pas de la manière dont se déroule le programme) tu peux faire une allocation statique, sinon tu dois faire une allocation dynamique (voir malloc).
Allocation statique :
Allocation dynamique :
Ensuite pour calculer ta moyenne, voici à quoi ça ressemble :
Cet exemple donne à l'exécution :
Bonne chance
Ensuite truc qui ne va pas (mais qui ne remet pas en cause le fait que le code marche) toutes tes variables sont globales ce qui est une TRÈS mauvaise habitude, et il manque le type des paramètres de tes fonctions pour tes fonctions de conversion. Ce devrait être :
int conversionA(int A){
int U = A/40;
return U;
}
int conversionB(int B){
int I = B/8.5;
return I;
}
int main(int argc, char *argv[])
{
int i,A,B,P,E,U,I,M;
...
I = conversionB(A);
...
return 0;
}
Note que dans tes fonctions de conversion tu pourrais même directement écrire :
int conversionA(int A){
return A / 40;
}
Voilà donc sinon n'oublie pas que ces divisions seront arrondies puisque ce sont des divisions entières. Par ailleurs si ces entiers sont forcément positifs ce serait mieux d'utiliser des "unsigned int" (aussi notés "unsigned").
Pour revenir à ton problème, pour calculer tes moyennes, tu dois mémoriser ton échantillon de valeur. Pour cela le plus simple c'est de les stocker dans un tableau. Si la taille de ton tableau peut-être déterminée à la compilation (c'est à dire qu'elle ne dépend pas de la manière dont se déroule le programme) tu peux faire une allocation statique, sinon tu dois faire une allocation dynamique (voir malloc).
Allocation statique :
void f() {
int tab[3]; // 3 est une constante
// Pour remplir le tableau
tab[0] = 10;
tab[1] = 20;
tab[2] = 5;
}
Allocation dynamique :
#include <stdlib.h>
#include <stdio.h>
void f() {
size_t n = 3; // n est une variable !
int *tab = malloc(sizeof(int) * n);
if (!tab) {
fprintf(stderr, "Not enough memory\n");
return;
}
// Pour remplir le tableau
tab[0] = 10;
tab[1] = 20;
tab[2] = 5;
// Désalloue le tableau de la mémoire, il ne sera plus utilisable après
// A chaque malloc correspond un free
// On déclenche le free quand le tableau n'est plus utilisé
free(tab);
}
Ensuite pour calculer ta moyenne, voici à quoi ça ressemble :
#include <stdlib.h>
#include <stdio.h>
double mean(int * values, size_t num_values) {
double sum = 0;
size_t i;
for(i = 0; i < num_values; ++i) {
sum += values[i];
}
return sum / num_values;
}
int main() {
size_t n = 3; // n est une variable !
int *tab = malloc(sizeof(int) * n);
if (!tab) {
fprintf(stderr, "Not enough memory\n");
return EXIT_FAILURE;
}
tab[0] = 10;
tab[1] = 20;
tab[2] = 5;
printf("mean = %lf\n", mean(tab, n));
return EXIT_SUCCESS;
}
Cet exemple donne à l'exécution :
mean = 11.666667
Bonne chance