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 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 15 juin 2013 à 12:17
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 15 juin 2013 à 12:17
A voir également:
- Carte velleman avec dev c++
- Carte d'identité - Accueil - Services publics
- Telecharger dev c++ - Télécharger - Langages
- Pile carte mere - Guide
- Massgrave dev - Accueil - Windows
- Dev home. - Télécharger - Développement
1 réponse
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
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