IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

[debutant]exercice algo tableaux


Sujet :

Algorithmes et structures de données

  1. #1
    Membre régulier Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Points : 107
    Points
    107
    Par défaut [debutant]exercice algo tableaux
    Bonsoir,

    Je suis débutant en algo et j'ai un exercice à faire, je souhaiterais avoir votre avis sur ce que j'ai fait.

    Enoncé :
    Ecrire un algorithme permettant à l’utilisateur de saisir un nombre quelconque de valeurs qui devront être stockées dans un tableau. Une fois la saisie terminée l’algorithme doit afficher le nombre de valeurs positives et négatives.
    Toutes les valeurs doivent être ensuite changées en carré et le nouveau tableau de ces valeurs doit être affiché à l’écran.
    L’algorithme, une fois terminé doit afficher le nombre de valeurs supérieures à la moyenne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    Variables : c, i, j, k, x, moy en numérique
    		som en entier 
    Tableaux : tab1 et tab2 de x emplacements en entier
    Début
    	S=0
    	i=0
    	j=0
               x=20
    	som=0
    	 pour i, c variant de 0 à x
    		écrire « Saisir une valeur positive ou négative au clavier » i+1
    		lire tab1[i]
    		tab2[c]=tab[i*i]
    		som=som+tab1[i]
    			si i>0 & i<>0
    				alors  j=j+1
    				sinon k=k+1
    			fsi
    		i suivant
    		moy=som/ (i+1)
    			si tab1[i]>moy
    				alors s=s+1
    			fsi
    	fpour
    	lire j, k
    	écrire « Il ya »& « »& j « »& « valeurs positives »
    	écrire « Il ya »& « »& k « »& « valeurs négatives »
    	lire tab2[c]
    	écrire tab2[c]
    	lire s
    	écrire « Il ya »& « »& s « »& « valeurs au dessus de la moyenne »
    Fin
    Merci d'avance

    tchao
    Il faut toujours avoir l'air d'être con si on veut pouvoir paraitre intelligent de temps en temps.

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    A mon avis, ce n'est pas l'index "i" qui devrait etre au carré.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    (...)
    i suivant
    moy=som/ (i+1)
    si tab1[i]>moy
    (...)
    Il y a un truc qui me semble louche. Je pense que le probleme original c'est de trouver les nombres superieurs a la moyenne TOTALE. Toi tu calcules la moyenne et tu compares au fur et a mesure.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre régulier Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Points : 107
    Points
    107
    Par défaut
    ouai pour le carré ca doit etre plutot :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    tab2[c]=tab1[i]*tab1[i]
    Mais je ne voit paspas ce que tu veut dire. Vu que l'ennoncé est flou sur la moyenne j'ai pris la premiere moyenne. Tu veux dire que je devrais prendre la moyenne des deux moyennes ?
    Il faut toujours avoir l'air d'être con si on veut pouvoir paraitre intelligent de temps en temps.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    En plus la moyenne ne doit pas être calculée dans la boucle....

    Une fois les sommes faites dans la boucle, et seulement à ce moment-là, on peut faire la division..

    Et par conséquent il faut une autre boucle ensuite pour déterminer les valeurs supérieures....
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  5. #5
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par charlix Voir le message
    Mais je ne voit paspas ce que tu veut dire. Vu que l'ennoncé est flou sur la moyenne j'ai pris la premiere moyenne. Tu veux dire que je devrais prendre la moyenne des deux moyennes ?
    Comme le dit souviron34, tu dois faire ca en deux temps. Calculer la somme dans la premiere boucle. Puis calculer la moyenne une fois sortie de la 1ere boucle (en divisant la somme par le nombre d'elements). Et enfin faire une 2nde boucle pour recuperer tous les elements plus grands que la moyenne.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  6. #6
    Membre régulier Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Points : 107
    Points
    107
    Par défaut
    Donc ce code vous parait bien correspondre à l'ennoncé ?

    Mais je ne voit pas pourquoi je dois faire une autre boucle pour calculer les valeurs supérieures à la moyenne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    Variables : c, i, j, k, x, moy en numérique
    		som en entier 
    Tableaux : tab1 et tab2 de x emplacements en entier
    Début
    	S=0
    	i=0
    	j=0
               x=20
    	som=0
    	 pour i, c variant de 0 à x
    		écrire « Saisir une valeur positive ou négative au clavier » i+1
    		lire tab1[i]
    		tab2[c]=tab1[i]*tab1[i]
    		som=som+tab1[i]
    			si i>0 & i<>0
    				alors  j=j+1
    				sinon k=k+1
    			fsi
    		i suivant
    	fpour
    	lire som
    	moy=som/ (x+1)
    	pour i variant de 0 à x
    			si tab1[i]>moy
    				alors s=s+1
    			fsi
    	fpour
    	lire j, k
    	écrire « Il ya »& « »& j « »& « valeurs positives »
    	écrire « Il ya »& « »& k « »& « valeurs négatives »
    	lire tab2[c]
    	écrire tab2[c]
    	lire s
    	écrire « Il ya »& « »& s « »& « valeurs au dessus de la moyenne »
    Fin
    Il faut toujours avoir l'air d'être con si on veut pouvoir paraitre intelligent de temps en temps.

  7. #7
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par charlix Voir le message
    Donc ce code vous parait bien correspondre à l'ennoncé ?
    C'est beaucoup mieux.

    Mais je ne voit pas pourquoi je dois faire une autre boucle pour calculer les valeurs supérieures à la moyenne.
    Parcequ'on ne connait veritablement la moyenne finale que lorsqu'on a pris en compte TOUS les elements. Donc il faut attendre que la 1ere boucle soit finie.

    Quelques petits trucs a fignoler:
    - la variable "c" ne sert a rien (en plus tu as oublié de l'incrementer). Utilise directement "i" comme indice de tab2.
    - la ligne "lire tab2[c]" est louche. Soit tu fais une boucle pour lire tous les element de tab2, soit tu fais juste "lire tab2" (sans index).
    - pour la comprehension, changer le nom des variable "j" "k" et "s" en quelquechose de plus significatif de leur contenu genre "nbNegatif", "nbPositif" et "NbSupMoyenne"
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  8. #8
    Membre régulier Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Points : 107
    Points
    107
    Par défaut
    ouai tu as totalement raison pour la boucle qui était nécessaire je n'avais pas assez réfléchit. Je suis encore un débutant en programmation mais je fait tout pour m'améliorer.

    Merci pour votre aide

    tchao

    charly
    Il faut toujours avoir l'air d'être con si on veut pouvoir paraitre intelligent de temps en temps.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [exercice] les tableaux
    Par PC8826 dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 23/02/2012, 18h09
  2. [exercice] algo sur les tableaux
    Par omzoway dans le forum Algorithmes et structures de données
    Réponses: 31
    Dernier message: 17/05/2011, 17h28
  3. Debutant dans les tableaux
    Par dot-_-net dans le forum Langage
    Réponses: 5
    Dernier message: 22/06/2008, 14h21
  4. Exercice Algo
    Par lecflotyco dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 18/11/2006, 10h33
  5. [Debutant] Livres sur l'algo?
    Par mike55 dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 20/04/2004, 19h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo