Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

aide en algorithme



  1. #1
    maribel

    Question aide en algorithme


    ------

    bonjour ; est qu'il y a qq pour me donner l'algorithme en français en utilisant la boucle("pour" par exemple) pour ranger par ordre croissant les elements d'une matrice ligne par ligne : mat(m,n) est une matrice a elements entier qui sont differents entre eux.

    merci de m'aider.

    autre chose : est ce vs pouvez m'aider a ecrire cet algo:
    on ns demande de calculer ou donner l'image d'un vecteur de 10 nombre entier ranger dans un tableau puis de les ecrire. ex: 1 , 5 ,6 ,15 : l'image est: 15, 6, 5,1 .


    j'ai 2 autre exercices que je n'arrive pas a faire merci de m'aider:

    1) on dit qu'un mot est " palindrome " chaque mot qui son image dans le miroire est elle meme ; ex: TCT.

    ecrire l'algorithme qui affiche la lettre suivante; si le mot lu est mot " palindrome " ou non ; par deux façons :

    a) on utilisant deux tableaux T1 etT2.
    b) on utilisant un seul tableau T.


    2) on (V) tableau a une seul dimension qui a (N) ements
    entiers ( 1 <= V[i] <= 50 ).

    on veux chercher combien de fois la valeur (VAL) se répètte dans le tableau (V) et mettre les resultats dans un autre tableaux (L) . ecrire un algorithme faisons ce travail .merci de me répondre.

    exemple :

    V: ( 4 , 7 , 1 , 4 , 0 , 7 , 4 )
    L : ( 1 , 0 , 0 , 3 , 0 , 0 , 2 )

    *L(1 ) = 1 car VAL= 1 est apparu une seul fois dans
    le tableau (V).

    *L(2) = 0 car VAL= 2 n'est pas apparu dans le tableau (V).

    *L(4) = 3 car VAL= 4 est apparu trois fois dans le tableau (V).

    je m'exuse si je vs demande trop car je suis debutante en informatique et j'essaye de comprendre en faisant des exercices mais je block de temps en temps ; c'est pour cela que j'aimerai que vs m'aidiez .
    merci a vous.

    -----

  2. Publicité
  3. #2
    overmind

    Re : aide en algorithme

    Citation Envoyé par maribel Voir le message
    bonjour ; est qu'il y a qq pour me donner l'algorithme en français en utilisant la boucle("pour" par exemple) pour ranger par ordre croissant les elements d'une matrice ligne par ligne : mat(m,n) est une matrice a elements entier qui sont differents entre eux.

    merci de m'aider.
    Google: "tri rapide"...
    autre chose : est ce vs pouvez m'aider a ecrire cet algo:
    on ns demande de calculer ou donner l'image d'un vecteur de 10 nombre entier ranger dans un tableau puis de les ecrire. ex: 1 , 5 ,6 ,15 : l'image est: 15, 6, 5,1 .
    Pour inverser un tableau, demande toi comment tu ferais avec des jetons posés dans des cases. Fait le avec les mains, tu en déduiras automatiquement un algo valable... (en traduisant les limites de l'implémentation, ex: un jeton à la fois...)

    j'ai 2 autre exercices que je n'arrive pas a faire merci de m'aider:

    1) on dit qu'un mot est " palindrome " chaque mot qui son image dans le miroire est elle meme ; ex: TCT.

    ecrire l'algorithme qui affiche la lettre suivante; si le mot lu est mot " palindrome " ou non ; par deux façons :

    a) on utilisant deux tableaux T1 etT2.
    b) on utilisant un seul tableau T.
    Une chaine de caractères est souvent implémenté comme tableau, (en C notamment). Il s'agit d'inverser un tableau et de comparer le résultat à l'original.
    La deuxième question je te laisse réfléchir, c'est pas difficile...
    2) on (V) tableau a une seul dimension qui a (N) ements
    entiers ( 1 <= V[i] <= 50 ).

    on veux chercher combien de fois la valeur (VAL) se répètte dans le tableau (V) et mettre les resultats dans un autre tableaux (L) . ecrire un algorithme faisons ce travail .merci de me répondre.

    exemple :

    V: ( 4 , 7 , 1 , 4 , 0 , 7 , 4 )
    L : ( 1 , 0 , 0 , 3 , 0 , 0 , 2 )

    *L(1 ) = 1 car VAL= 1 est apparu une seul fois dans
    le tableau (V).

    *L(2) = 0 car VAL= 2 n'est pas apparu dans le tableau (V).

    *L(4) = 3 car VAL= 4 est apparu trois fois dans le tableau (V).

    je m'exuse si je vs demande trop car je suis debutante en informatique et j'essaye de comprendre en faisant des exercices mais je block de temps en temps ; c'est pour cela que j'aimerai que vs m'aidiez .
    merci a vous.
    Il faut itérer sur le tableau, et incrémenter la variable L[resultat] à chaque fois...
    Ne pas oublier d'initialiser L[ ] ...

  4. #3
    maribel

    Re : aide en algorithme

    mais je n'ai pas obtenu de résultats!!, si vous pouvez être plus explicite et détailler au sujet de "renversement du tableau-Miroir-", tri par ordre croissant, soit par colonne ou par ligne, d'une matrice.
    SVP, je cherche précisément des algorithmes en Français, avec les boucles tels "tant que", pour.......faire et le plus tôt possible car j'ai des examens à passer la semaine prochaine

    merci d'avance de votre attention et de votre aide

  5. #4
    overmind

    Re : aide en algorithme

    Algo de tri: (en n^2 : [ )
    (en pseudo C, c'est pas bien difficile à comprendre... enfin j'espère)
    Code:
    Fonction: echanger(entier A,entier B):
    {
     entier T; /* on déclare un entier tampon */
     T=A;
     A = B;
     B = T;
     retourne: rien;
    }
    
    
    Fonction: Trier(référence à tab, entier TAILLE):
    {
    pour i = 0, i < TAILLE, et i croissant de  1 en 1:
    {
    pour j = i, j<TAILLE, jcroissant de 1 en 1: 
    {
    si tab[i] < tab[j]: échanger (tab[i],tab[j])
    }
    }
    retourne: rien
    }
    Algo de retournement d'un tableau:
    Code:
    Fonction: mirror(référence de tableau d'entier tab, entier TAILLE)
    {
    pour i=0, jusqu'à partientièrede((TAILLE-1)/2), de 1 en 1:
    {
    échanger(tab[i],tab[TAILLE-i-1]);
    retourne: rien;
    }
    Ensuite il y a le problème avec les palindromes et les matrices.... Tu peux spécifier dans ton énoncé que tu implémentes les chaines de caractères comme des tableaux de caractères, et les matrices comme des tableaux de tableaux... et le tour est joué...

    PS: Pour faire de l'algo, il est à mon avis indispensable de connaitre au moins un language de programmation. Sinon on ne peut pas passer sur machine et donc travailler par soi même ... Commence par apprendre le C, ou python qui est plus facile.

  6. A voir en vidéo sur Futura
  7. #5
    overmind

    Re : aide en algorithme

    Ah au fait, j'ai oublier de préciser que dans la fonction échange, les variables devraient être passées par référence... En fait au départ ça devait être une macro, mais en pseudocode c'est difficile à réaliser...

  8. #6
    overmind

    Re : aide en algorithme

    Juste pour fixer les idées, ce que ça donne en C:
    Code:
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #define TAILLE 100
    #define VAL_MAX 100
    
    
    void classer(int *tab,int taille)
    {
    	
    	for (int i = 0;i<taille;i++)
    	{
    		for (int j=i;j<taille;j++)
    		{
    			if (tab[i]<tab[j])
    				echange(tab+i,tab+j);
    		}
    		
    	}
    }
    
    void echange(int *i,int *j)
    {
    	int temp;
    	temp = *i;
    	*i =*j;
    	*j =temp;
    }
    void init(int *tab, int taille)
    {
    	srand(time(NULL));
    	for (int i=0;i<taille;i++)
    	{
    		tab[i] = rand()%VAL_MAX;
    	}
    }
    void afficher(int *tab, int taille)
    {
    	printf("Affichage du tableau:\n[%d",tab[0]);
    	
    	for (int i=1;i<taille;i++)
    		printf(", %d",tab[i]);
    	printf("]\n");
    }
    
    int main()
    {
    	/* création tableau d'entiers */
    	int tab[TAILLE];
    	init(tab,TAILLE);
    	afficher(tab,TAILLE);
    	classer(tab,TAILLE);
    	afficher(tab,TAILLE);
    	return EXIT_SUCCESS;
    	
    }
    Et la sortie du programme:
    Code:
    boris@Tux-5900 ~/Prog/C/tri $ ./tri
    Affichage du tableau:
    [8, 21, 14, 28, 49, 25, 32, 62, 57, 31, 21, 20, 62, 14, 78, 22, 1, 21, 39, 64, 84, 12, 34, 11, 98, 38, 58, 12, 64, 37, 56, 72, 10, 70, 0, 59, 95, 84, 74, 5, 15, 95, 25, 30, 61, 55, 4, 62, 28, 43, 78, 12, 55, 12, 76, 5, 51, 86, 17, 67, 24, 25, 39, 86, 95, 91, 98, 43, 27, 72, 48, 95, 19, 73, 25, 80, 80, 81, 94, 8, 76, 73, 72, 83, 37, 48, 88, 40, 35, 57, 7, 11, 82, 98, 49, 77, 89, 47, 20, 69]
    Affichage du tableau:
    [98, 98, 98, 95, 95, 95, 95, 94, 91, 89, 88, 86, 86, 84, 84, 83, 82, 81, 80, 80, 78, 78, 77, 76, 76, 74, 73, 73, 72, 72, 72, 70, 69, 67, 64, 64, 62, 62, 62, 61, 59, 58, 57, 57, 56, 55, 55, 51, 49, 49, 48, 48, 47, 43, 43, 40, 39, 39, 38, 37, 37, 35, 34, 32, 31, 30, 28, 28, 27, 25, 25, 25, 25, 24, 22, 21, 21, 21, 20, 20, 19, 17, 15, 14, 14, 12, 12, 12, 12, 11, 11, 10, 8, 8, 7, 5, 5, 4, 1, 0]
    voilà...

  9. Publicité
  10. #7
    maribel

    Wink Re : aide en algorithme

    bonjour overmind ;merci de m'avoir répondu. j'ai mis on pratique votre algo mais ça n'a pas marché ; donc j'ai essayé de faire ses derniers , est ce que vs pouvez me corriger svp:

    1) en utilisant la boucle("pour" par exemple) pour ranger par ordre croissant les elements d'une matrice ligne par ligne : mat(m,n) est une matrice a elements entier qui sont differents entre eux.

    solution;

    pour i = 1, n faire
    pour j = 1, n faire

    si ( mat[i , j+1] < mat[i,j] ) alors

    p <--- i+1
    fsi
    ffp

    V <-------- mat[i,j]
    mat[i,j] <----- mat [p]
    mat [p] <------ mat[i,j]

    ffp

    et pour n ns demande de calculer ou donner l'image d'un vecteur de 10 nombre entier ranger dans un tableau puis de les ecrire. ex: 1 , 5 ,6 ,15 : l'image est: 15, 6, 5,1 .

    solution;

    pour i=1 , 10 faire

    lire v[i];
    ffp

    pour i=1 , 10 faire

    x <----- v[i] ;
    v[i] <------ v [ 10-i+1] ;
    v [ 10-i+1] <-------- v[i] ;
    ffp


    pour i=1 , 10 faire
    ecrire ( v[i] );
    ffp

    pour le palindrome ça y est je l'ai su sauf le dernier :

    on (V) tableau a une seul dimension qui a (N) ements
    entiers ( 1 <= V[i] <= 50 )........ je n' ai pas su faire un algorithme de base valable .

    ............ merci d'avance .............

  11. #8
    overmind

    Re : aide en algorithme

    PARTIE I

    Citation Envoyé par maribel Voir le message


    pour i = 1, n faire
    pour j = 1, n faire

    si ( mat[i , j+1] < mat[i,j] ) alors

    p <--- i+1
    fsi
    ffp

    V <-------- mat[i,j]
    mat[i,j] <----- mat [p]
    mat [p] <------ mat[i,j]
    ffp
    Ecrivons en "vrai francais" cet algo:
    1) On itére sur i, i = 1,2,3 .. n:
    Code:
     pour j = 1, n faire    
             
                si ( mat[i , j+1] < mat[i,j] ) alors
                      
                     p <--- i+1
                 fsi
    Ici, on fait:
    "Vérifions si dans la ligne i de mat, il y a deux entiers décroissants consécutifs. Si cela devait se produire, mettre l'indice du dernier des entiers du derniers des couples décroissants dans p."
    Code:
         V <--------   mat[i,j]
         mat[i,j] <-----  mat [p]
         mat [p] <------ mat[i,j]
    Choses pas claires:
    on assume mat[p] équivalent à mat[i,p], sinon ça ne veut rien dire.
    on assume également que j n'est pas locale à la boucle, et que j garde n comme valeur à la fin de celle ci.

    Ce qui donne:
    "stockage de la fin de la ligne courante dans V"
    "stockage du dernier des nombres sdu dernier des couples de nombres décroissants dans la fin de la ligne."
    "instruction inutile, : A <-B, B <-A..."

    Exemple de traitement d'une ligne de matrice:
    "5 11 9 10" ---------->> "5 11 9 11"
    C'est pas classé du tout ça....

    PARTIE II : inerpretation:
    Lourdes confusions entre parcoursd'une matrice avec deux indices pour les deux dimensions, et parcours d'un tableau avec deux boucles pour le classer.
    Morale: apprendre à trier un tableau d'abord...

    PARTIE III : ce qu'il faut faire.
    Une matrice, c'est plusieurs tableaux les uns en desssous des autres, ok?
    Bon, trier une ligne, c'est trier un tableau. Utilisons ce-que-je suis-sur-qu'il-y-a dans ton cours de programmation, le mot fonction...
    Matrices: ici Mat[i] c'est là i ème ligne de Mat, et Mat [i][j] <--Mat[i,j] comme ça c'est plus clair.

    Admettons que TRIER(tableau) trie le tableau, pour trier la matrice, il faut faire:
    Code:
    pour i de 1 à n
     TRIER(Mat[i])
    fp
    reste à coder TRIER....
    Code:
     
    paramètre: tab
    variable: temp
    pour i de 1 à n
     pour j de i à n
      si tab[i]<tab[j] : (temp <- tab[j];tab[j<-tab[i]; tab[i] <- temp)
    
    fp
    fp
    C'est quand même trivial non?

  12. #9
    overmind

    Re : aide en algorithme

    Ensuite, "donner l'image" ça ne veut rien dire... je ne peux pas "donner l'image" d'un tableau moi, j'ai supposé qu'il s'agissait de l'inverser mais bon...

    Et enfin, le dernier exo c'est "compter le nombre d'occurences dans un tableau", c'est encore plus facile que le reste.

    Dis moi c'est dans quel cycle d'études qu'on te demande de faire ça?

  13. #10
    manu_mars

    Re : aide en algorithme

    Bonsoir
    Je crois qu'il est important aussi d'avoir des notions de ce qu'est un algorithme, pour parvenir a comprendre comment classer un tableau par grandeur croissante/decroissante...

    En gros, l'algorithmique est la demarche qui consiste a resoudre un probleme complique en autant de parties simples a resoudre pour arriver au resultat final. Exemple: Le matin, je me fais un cafe bien chaud.
    Ecrire l'agorithme "Faire du cafe (pret a boire)". De preference, on emploiera des phrases courtes et completes.
    Ca a l'air bete, mais j'ai trouve cet exercice tres instructif lorsque j'ai commence la programmation...
    manu
    lui: "le vide, ca creuse"
    elle: "A table!"

Discussions similaires

  1. algorithme
    Par carop89 dans le forum Mathématiques du supérieur
    Réponses: 15
    Dernier message: 29/10/2007, 18h06
  2. algorithme
    Par sensor dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 30/11/2006, 18h14
  3. algorithme
    Par maribel dans le forum Logiciel - Software - Open Source
    Réponses: 9
    Dernier message: 25/06/2006, 16h29
  4. aide algorithme
    Par jasmina dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 04/04/2006, 22h39
  5. Algorithme
    Par Herbiti dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 26/02/2006, 18h10
Découvrez nos comparatifs produits sur l'informatique et les technologies.