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 :

Exercice sur les tableaux


Sujet :

Algorithmes et structures de données

  1. #1
    Membre actif
    Inscrit en
    Novembre 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 29
    Par défaut Exercice sur les tableaux
    Bonsoir,
    Pourriez vous m'aider pour cet exercice?

    ecrire la fonction qui reçoit en paramètre tabnom,un tableau de 100 cases partiellement rempli de noms, et nbmax, le nombre de cases effectivement remplies dans le tableau en question. Cette fonction devra afficher les noms au rythme de 2 par lignes.Tous les noms doivent être affichés (même s'il n'en reste qu'un à afficher sur la dernière ligne). la fonction devra au final retourner le nombre de lignes affichées.

    Pour afficher 2 informations sur la même ligne, vous devez les afficher en même temps:
    afficher info 1,info 2
    On prend donc pour hypothèse que si vous mettez 2 affichages différents,ils seront mis sur 2 lignes différentes.
    L'optimisation du code sera prise en compte dans la notation.

    Rappelez vous que vous avez à votre disposition les opérateurs div et mod:
    a div b donne le résultat de la division entière et a et b (exemple:15 div 6 donne 2)
    a mod b donne le reste de la division entière de a par b (exemple:15 mod 6 donne 3)
    car 6*2=12 et il reste 3 pour arriver à 15

    Merci d'avance

  2. #2
    Expert confirmé

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Désolé on ne fait pas tes devoirs à ta place..

    Ici c'est un forum d'entraide.. On ne t'aiderais pas si on faisait à ta place..

    Dis-nous donc ce que tu as fais, et là on t'aidera..


  3. #3
    Membre actif
    Inscrit en
    Novembre 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 29
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Entier nblig
    Si nbmax > 1 (Alors) 
        pour i = 1 à nbmax par pas de 2
            Afficher tabnom(i) tabnom(i+1)
        finpour
    finsi
    Si MOD(nbmax,2) = 1 (Alors)
        Afficher tabnom(nbmax)
    finsi
    Nblig := nbmax div 2 + nbmax mod 2
    Fin

  4. #4
    Expert confirmé

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Comme tu vas voir, la notion d'optimisation est relative..

    Moi j'aurais fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    entier pair = nbmax mod 2
     
    entier nblig = (nbmax div 2) + pair
     
    pour i = 1 a (nbmax-pair) par pas de 2
       affiche tabnom(i), tabnom(i+1)
    fin pour
     
    si pair = 1
       affiche tabnom(nbmax)
    fin si

  5. #5
    Membre actif
    Inscrit en
    Novembre 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 29
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    Comme tu vas voir, la notion d'optimisation est relative..

    Elle est relative Ok, c'est noté

    Merci beaucoup pour ton aide .

  6. #6
    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 : 52
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut 0/20


    tabnom, un tableau de 100 cases partiellement rempli de noms
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  7. #7
    Expert confirmé

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    j'y ai pensé, mais au vu de l'énoncé et de ce qu'a fait le PO, j'ai supposé que c'était des cases consécutives..

    C'est en effet différent si on ne considère pas les cases consécutives..

    Mais vu que l'énoncé dit d'utiliser "mod, div, et un nombre éventuellement impair", je pense que ce sont des cases consécutives..

    Mais peut-être me goure-je

  8. #8
    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 : 52
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    Mais vu que l'énoncé dit d'utiliser "mod, div, et un nombre éventuellement impair", je pense que ce sont des cases consécutives..

    Mais peut-être me goure-je
    Je pense que le but de l'exercice c'est de mémoriser la première case (non vide) rencontrée et d'attendre d'en trouver une seconde afin d'afficher les 2 ensembles.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  9. #9
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Un simple tant que suffit:
    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
    i <- 1
    nbaffi = 0
    tant que i <= Taille faire
    	tant que i <= Taille et tab[i] = vide faire
    		i <- i+1
    	si i <= Taille alors
    		afficher tab[i]
    		nbaffi <- nbaffi +1
    		si nbaffi = 2 alors
    			aller à la ligne
    			nbaffi = 0
    	  	fin si
    	fin si
    	i <- i+1
    fin tant que
    Quant au nombre de lignes, il se calcule à partir du nombre de mots en utilisant div et mod.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  10. #10
    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 : 52
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut 0/20


    Cette fonction devra afficher les noms au rythme de 2 par lignes. Pour afficher 2 informations sur la même ligne, vous devez les afficher en même temps: afficher info 1,info 2
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  11. #11
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Tu as raison, et de toute façon ce que j'ai écrit est tellement nul qu'on pourrait le mettre en exemple de ce qu'il ne faut pas faire (et dire que j'ai écrit qu'avec une boucle tant que ça suffisait ! )
    Je laisse au P.O. le soin de corriger mon code
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  12. #12
    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 : 52
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Bon, je me lance

    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
     
    Entier first = -1;
     
    POUR i = 1 à 100
    	SI (tabnom[i] n'est pas vide) alors
    		SI (first==-1) ALORS 
    			first=i; 
    		SINON
    			Afficher tabnom[first] , tabnom[i]
    			first=-1;
    		FINSI
    	FINSI
    FIN POUR
     
    SI (first!=-1) ALORS
    	Afficher tabnom[first]
    FINSI
     
    RETOURNE  (nbmax div 2) + (nbmax mod 2);
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  13. #13
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    C'est comme ça que j'avais corrigé mais je préfère les boucles tant que au pour !
    PS je ne savais pas que c'était toi le P.O.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  14. #14
    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 : 52
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par Trap D Voir le message
    PS je ne savais pas que c'était toi le P.O.
    C'était pour éviter de terminer cette discussion sur un échec.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

Discussions similaires

  1. Exercice sur les tableaux
    Par haha1 dans le forum Pascal
    Réponses: 5
    Dernier message: 27/12/2008, 20h13
  2. Exercice sur les tableaux
    Par sayari7 dans le forum Pascal
    Réponses: 2
    Dernier message: 06/12/2008, 15h23
  3. aide pour un exercice sur les tableaux
    Par mimiif dans le forum Caml
    Réponses: 9
    Dernier message: 30/05/2008, 15h49
  4. Réponses: 11
    Dernier message: 04/02/2008, 20h37
  5. Exercice sur les tableaux
    Par IDE dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 06/11/2006, 19h33

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