Exercice d'algorithme
Gugu
-
john -
john -
Bonjour,
Pouvez vous m'aider s'il vous plait à résoudre ce problème en algorithme?
Ecrire un algorithme permettant la lecture et la recherche du Max et du Min d'un tableau à une dimension de 10 entier et afficher en plus le nombre d'occurence(d'apparition) de Max et le nombre d'occurence de Min.
et
Ecrire l'algotihme permettant d'inverser les éléments dans un tableau à une dimension d'entiers de 10 éléments.
Je vous remercie d'avance j'ai commencé mais je n'arrive pas à terminer l'algo... C'est trop compliqué :s
Pouvez vous m'aider s'il vous plait à résoudre ce problème en algorithme?
Ecrire un algorithme permettant la lecture et la recherche du Max et du Min d'un tableau à une dimension de 10 entier et afficher en plus le nombre d'occurence(d'apparition) de Max et le nombre d'occurence de Min.
et
Ecrire l'algotihme permettant d'inverser les éléments dans un tableau à une dimension d'entiers de 10 éléments.
Je vous remercie d'avance j'ai commencé mais je n'arrive pas à terminer l'algo... C'est trop compliqué :s
A voir également:
- Exercice d'algorithme
- Logiciel algorithme euromillion - Télécharger - Loisirs créatifs
- Logiciel algorithme gratuit - Télécharger - Édition & Programmation
- Algorithme euromillion excel gratuit - Forum Algorithmes / Méthodes
- Créer exercice à relier word ✓ - Forum Word
- Exercice opérateur de saisie ✓ - Forum Études / Formation High-Tech
4 réponses
Voyons déjà le premier problème.
Je pense que pour un tableau de 10 éléments, on peut se permettre de le parcourir deux fois ^^
L'idée : on prend 4 entiers : iMin, iMax, iCompteurMin, iCompteurMax.
On parcourt chaque cellule : si le nombre dans la cellule est supérieur au max, on change le iMax. Si il est inférieur au min, on change le min. Sinon on ne fait rien.
Ensuite on reparcourt, pour incrémenter les compteurs.
Voila mon algorithme :
// on a tout ! a toi de rentrer les 4 valeurs dans un tableau de 4 cases s'il le faut
Je pense que pour un tableau de 10 éléments, on peut se permettre de le parcourir deux fois ^^
L'idée : on prend 4 entiers : iMin, iMax, iCompteurMin, iCompteurMax.
On parcourt chaque cellule : si le nombre dans la cellule est supérieur au max, on change le iMax. Si il est inférieur au min, on change le min. Sinon on ne fait rien.
Ensuite on reparcourt, pour incrémenter les compteurs.
Voila mon algorithme :
iMax = tableau[0] : entier iMin = tableau[0] : entier iCompteurMax = 0 : entier iCompteurMin = 0 : entier pour i allant de 1 à 9 si (tableau[i] > iMax) alors iMax = tableau[i] si (tableau[i] < iMin) alors iMin = tableau[i] fin pour // ici on connait donc notre min et notre max ! pour j allant de 0 à 9 si (tableau[i] = iMax) alors iCompteurMax++ si (tablau[i] = iMin) alors iCompteurMin++ fin pour
// on a tout ! a toi de rentrer les 4 valeurs dans un tableau de 4 cases s'il le faut
Bonjour,
Le comptage des occurences peut se faire dans la première boucle, ce qui réduit significativement la compléxité en temps, les ordinateurs actuels sont puissants mais arrêtons de programmer comme des boeufs.
J.
Le comptage des occurences peut se faire dans la première boucle, ce qui réduit significativement la compléxité en temps, les ordinateurs actuels sont puissants mais arrêtons de programmer comme des boeufs.
J.
Je serais curieux de savoir comment tu fais.
Ne connaissant pas les valeurs finales des minimums et maximums...
Cela impliquerait de faire une liste comptant les occurences pour chaque valeurs... Ce qui au final serait plus lourd que te refaire un for.
Programmer comme un boeuf... Merci du compliment, en attendant j'attends de voir ta solution, john
Ne connaissant pas les valeurs finales des minimums et maximums...
Cela impliquerait de faire une liste comptant les occurences pour chaque valeurs... Ce qui au final serait plus lourd que te refaire un for.
Programmer comme un boeuf... Merci du compliment, en attendant j'attends de voir ta solution, john
Voici ma solution (avec du retard...), en C, je pense que ça marche comme ça :
#include<stdio.h>
int main(){
int tab[8];
int max, min, cmin, cmax;
int i;
tab[0] = 2;
tab[1] = 1;
tab[2] = 5;
tab[3] = 4;
tab[4] = 5;
tab[5] = 6;
tab[6] = 2;
tab[7] = 1;
cmin = 1;
cmax=1;
min = tab[0];
max = tab[0];
for(i=1; i < 8;++i){
if(tab[i] > max){
cmax = 0;
max = tab[i];
}
if(tab[i] == max){
++cmax;
}
if(tab[i] < min){
cmin = 0;
min = tab[i];
}
if(tab[i] == min){
++cmin;
}
}
printf("min %d max %d cmin %d cmax %d\n", min, max, cmin, cmax);
return 0;
Après je voulais pas que tu prennes ça méchamment, c'était juste pour dire qu'une boucle suffit...
Bonne journée.
#include<stdio.h>
int main(){
int tab[8];
int max, min, cmin, cmax;
int i;
tab[0] = 2;
tab[1] = 1;
tab[2] = 5;
tab[3] = 4;
tab[4] = 5;
tab[5] = 6;
tab[6] = 2;
tab[7] = 1;
cmin = 1;
cmax=1;
min = tab[0];
max = tab[0];
for(i=1; i < 8;++i){
if(tab[i] > max){
cmax = 0;
max = tab[i];
}
if(tab[i] == max){
++cmax;
}
if(tab[i] < min){
cmin = 0;
min = tab[i];
}
if(tab[i] == min){
++cmin;
}
}
printf("min %d max %d cmin %d cmax %d\n", min, max, cmin, cmax);
return 0;
Après je voulais pas que tu prennes ça méchamment, c'était juste pour dire qu'une boucle suffit...
Bonne journée.