Aide programmation tableau

NCE26 -  
cchristian Messages postés 921 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

Je dois faire un exercice mais je bloque.

Pourriez-vous m'aider svp ?

L'exercice dit:

Soit A, un tableau contenant n entiers non triés. Ecrire une procédure qui permet d'écalter A en deux tableaux, T1 et T2 triés et contenant respectivement les éléments impairs et pairs de A.

Merci!

David
A voir également:

17 réponses

djflexlive Messages postés 557 Date d'inscription   Statut Membre Dernière intervention   95
 
T'as pas crée un bout de script ... ? Un début quoi ?
0
cchristian Messages postés 921 Date d'inscription   Statut Membre Dernière intervention   131
 
Bonsoir,

NON , les gars, faut se bouger un peu, faites au moins un début d'embryon de commencement de quelque chose. Que l'on ait pas l'impression d'être pris pour des bourricots.
0
djflexlive Messages postés 557 Date d'inscription   Statut Membre Dernière intervention   95
 
D'accord avec toi ;)
0
cchristian Messages postés 921 Date d'inscription   Statut Membre Dernière intervention   131 > djflexlive Messages postés 557 Date d'inscription   Statut Membre Dernière intervention  
 
Et moi avec toi.
0
NCE26
 
J'ai bien essayé de faire mais je n'y arrive pas du tout...je débute dans la programmation c'est ma première année, c'est pour ça que je demande un peu d'aide...

Merci
David
0
ziedzico Messages postés 393 Date d'inscription   Statut Membre Dernière intervention   112
 
bouge toi avec modulo 2

(X%2)==0 ===>X est pair
sinon =======>X est impair
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
djflexlive Messages postés 557 Date d'inscription   Statut Membre Dernière intervention   95
 
Ben ouais mais ils filent pas d'exercices sans que t'ai quelques connaissances en général ... :O
0
ziedzico Messages postés 393 Date d'inscription   Statut Membre Dernière intervention   112
 
tu veux dire koi ?
0
ziedzico Messages postés 393 Date d'inscription   Statut Membre Dernière intervention   112
 
tu dois remplire les deux tableaux puis les trier

il te faut deux fonctions parametrées
0
djflexlive Messages postés 557 Date d'inscription   Statut Membre Dernière intervention   95
 
<?php

// Tableau A

$a = array('12','51','3','18','66','21');

?>

A toi de faire un peu le reste.
0
ziedzico Messages postés 393 Date d'inscription   Statut Membre Dernière intervention   112
 
il a sorti laisse tomber
0
cchristian Messages postés 921 Date d'inscription   Statut Membre Dernière intervention   131
 
Bonsoir,

A tout hasard en C(++) :
	void raz_Tn (int (*T1), int (*T2), int (*T3), int nb_elemts_T) 
        {          
         int i               = 0                                  ; 

		 for   ( i = 0;   i  < nb_elemts_T;    i++) 
			 {
               T1 [i]      = 0         ;
               T2 [i]      = 0         ;
               T3 [i]      = 0         ;
	
	    	 }
	    }

	void tri_T1 (int (*T1), int nb_elemts_T) 
        {          
         int i               = 0                                  ; 
         int j               = 1                                  ; 
         int int_T1          = 0                                  ; 
         for   ( i = 0;   i  < nb_elemts_T;    i++) 
			 {
              for   ( j = i + 1;   j  <    nb_elemts_T;    j++) 
			     {
                   if ( T1 [i]        >    T1 [j] ) 
			     {
				   int_T1        =    T1 [j] ;
				   T1 [j]        =    T1 [i] ; 
                       T1 [i]        =    int_T1 ; 
				     }
			     }
		     }
	   }

	void parit_Tn (int (*T1), int (*T2), int (*T3), int nb_elemts_T) 
        {          
         int i               = 0                                  ; 
         int j               = 0                                  ; 
         int k               = 0                                  ; 
         int reste           = 0                                  ; 

		 for   ( i = 0;   i  < nb_elemts_T;    i++) 
			 {
               reste = T1 [i] % 2         ;
			   if ( reste    >  0 )
			     {
				 T2 [j] = T1 [i] ; 
				 j++             ; 
			     }
			   else
			     {
				 T3 [k] = T1 [i] ; 
				 k++             ;
			     }
	         }
	   }


int   main  () 
 { 
	int I                    =  0                                 ;
	int N                    =  0                                 ;
               int nb_elemts_T          =  10                               ;

//Affectation des ressources mémoire au tableau.
    int * T1                  =  NULL                              ;
    T1        = (int*) malloc (nb_elemts_T * sizeof (int*))        ;
    int * T2                  =  NULL                              ;
    T2        = (int*) malloc (nb_elemts_T * sizeof (int*))        ;
    int * T3                  =  NULL                              ;
    T3        = (int*) malloc (nb_elemts_T * sizeof (int*))        ;

//Spécifique C++ (à tout hasard) remplacé ici par malloc
//	int * T1		 =  NULL			                  ;
//    T1  			     =  new int	[nb_elemts_T]         ;
//	int * T2		 =  NULL			                  ;
//    T2  			     =  new int	[nb_elemts_T]         ;
//	int * T3		 =  NULL			                  ;
//    T3  			     =  new int	[nb_elemts_T]         ;
//Fin spécifique C++

	IF (T1		==  NULL)		
	  {printf ("nom_pgm: Probleme a la creation du tableau T1")   ;
	   return 	(1)											      ;}
	IF (T2		==  NULL)		
	  {printf ("nom_pgm: Probleme a la creation du tableau T2")   ;
	   return 	(2)											      ;}
	IF (T3		==  NULL)		
	  {printf ("nom_pgm: Probleme a la creation du tableau T3")   ;
	   return 	(3)											      ;}

	raz_Tn       (T1, T2, T3, nb_elemts_T)                       ; 

	for  ( I = 0;  I  <  nb_elemts_T;  I++)
       {
		   T1 [I]      = rand    ();
	   }

	tri_T1       (T1, nb_elemts_T)                                ; 
	
// Pour Contrôles visuels :
	printf ("\n\n\nTABLEAU T1 DES %i VALEURS ALEATOIRES :", nb_elemts_T);
	for  ( I = 0;  I  <  nb_elemts_T;  I++)
       {
		   printf ("\nT1 : %i", T1 [I]);
       }
// fin Pour Contrôles visuels :

	parit_Tn       (T1, T2, T3, nb_elemts_T)                       ; 

// Pour Contrôles visuels :
	printf ("\n\n\nTABLEAU T2 DES VALEURS IMPAIRES :");
	for  ( I = 0;  I  <  nb_elemts_T;  I++)
       {
		   printf ("\n%T2 : %i", T2 [I]);
	   }

	printf ("\n\n\nTABLEAU T3 DES VALEURS PAIRES :");
	for  ( I = 0;  I  <  nb_elemts_T;  I++)
       {
		   printf ("\nT3 : %i", T3 [I]);
	   }
// fin Pour Contrôles visuels :


//Libération des ressources mémoire affectées au tableau.
//Spécifique C++ (à tout hasard remplacé ici par free)
//	delete				  [] T1         						 ;
//Fin spécifique C++
	free			  (T1) ;
	IF (T1					== NULL)		
	  {printf("\nom_pgm: Probleme a la destruction du tableau T1");
	   return             (4)			         ;}
//Spécifique C++ (à tout hasard remplacé ici par free)
//	delete				  [] T2        							 ;
//Fin spécifique C++
	free			  (T2) ;
	IF (T2					== NULL)		
	  {printf("\nom_pgm: Probleme a la destruction du tableau T2");
	   return             (5)			         ;}
//Spécifique C++ (à tout hasard remplacé ici par free)
//	delete				  [] T3         						 ;
//Fin spécifique C++
	free			  (T3) ;
	IF (T3					== NULL)		
	  {printf("\nom_pgm: Probleme a la destruction du tableau T3");
	   return             (4)		         ;}

	printf ("\n       Fin du traitement \n\n" )        ;

    _getch                ()                                     ;

    return                (0)                                    ;
} 
0
djflexlive Messages postés 557 Date d'inscription   Statut Membre Dernière intervention   95
 
Sans blague, faut tout ca en C++ pour faire ce simple exercice ??!!

Après c'est vrai que dans son post, c'est pas précisé en quel language il veut faire ca :)
0
cchristian Messages postés 921 Date d'inscription   Statut Membre Dernière intervention   131 > djflexlive Messages postés 557 Date d'inscription   Statut Membre Dernière intervention  
 
Bah j'ai vu grand, je renseigne le tableau avec des nombres aléatoires, j'édite systématiquement
les résultats (printf) pour contrôles visuels, je donne lorsque c'est utile, les 2 versions
C et C++ (malloc, free),....

Faut bien aider, je me suis fait engueuler (par MP) par un membre qui n'a pas aimé ma
première remarque (voir plus haut) !
0
djflexlive Messages postés 557 Date d'inscription   Statut Membre Dernière intervention   95 > cchristian Messages postés 921 Date d'inscription   Statut Membre Dernière intervention  
 
Lol j'y ai pas eu droit à la remarque, ouf ... :)

Sinon en php, ca doit prendre 10 lignes grand maximum, c'est pour ca que quand j'ai vu ton post j'ai eu très très peur ...

Mais bon à chacun son langage , surtout que j'y connais absolument rien en c++ et php je connais mais j'en suis pas un pro :)
0
cchristian Messages postés 921 Date d'inscription   Statut Membre Dernière intervention   131 > djflexlive Messages postés 557 Date d'inscription   Statut Membre Dernière intervention  
 
En fait c'est dans la discussion "programation c++ besoin d'aide.."
que j'ai fait un mécontent avec le même énoncé de message..........

Quant à moi je ne connais pas php, mais en programmation c'est vrai que
j'ai tendance à m'étaler un peu.
0
cchristian Messages postés 921 Date d'inscription   Statut Membre Dernière intervention   131
 
Version simplifiée :

	void tri_T1 (int (*T1), int nb_elemts_T) 
		{int i = 0,   j = 1,    int_T1  = 0; 
         for   ( i = 0;   i  < nb_elemts_T;    i++) 
			 {
              for   ( j = i + 1;   j <    nb_elemts_T;    j++) 
			     {
                   if ( T1 [i]       >    T1 [j] ) 
				     { int_T1        =    T1 [j] ;
					   T1 [j]        =    T1 [i] ; 
                       T1 [i]        =    int_T1 ;}
			     }
		     }
	   }
	void parit_Tn (int (*T1), int (*T2), int (*T3), int nb_elemts_T) 
		{int i = 0,   j = 0,    k = 0;  
		 for   ( i = 0;   i  < nb_elemts_T;    i++) 
			 {
			   if ( (T1 [i] % 2)    >  0 )
			     {   T2 [j++] = T1 [i] ; }
			   else
			     {   T3 [k++] = T1 [i] ; }
	         }
	   }
int   main  () 
 { 	int I   = 0, nb_elemts_T  =  10                                ;
	int * T1                  =  NULL                              ;
    T1        = (int*) malloc (nb_elemts_T * sizeof (int*))        ;
    int * T2                  =  NULL                              ;
    T2        = (int*) malloc (nb_elemts_T * sizeof (int*))        ;
    int * T3                  =  NULL                              ;
    T3        = (int*) malloc (nb_elemts_T * sizeof (int*))        ;

	for  ( I = 0;  I  <  nb_elemts_T;  I++)
       {  T1 [I]      = rand    (); }

	tri_T1       (T1, nb_elemts_T)                                ; 
	
	printf ("\n\n\nTABLEAU T1 DES %i VALEURS ALEATOIRES :", nb_elemts_T);
	for  ( I = 0;  I  <  nb_elemts_T;  I++)
       { printf ("\nT1 : %i", T1 [I]); }

	parit_Tn       (T1, T2, T3, nb_elemts_T)                       ; 

	printf ("\n\n\nTABLEAU T2 DES VALEURS IMPAIRES :");
	for  ( I = 0;  I  <  nb_elemts_T;  I++)
       { printf ("\n%T2 : %i", T2 [I]);}

	printf ("\n\n\nTABLEAU T3 DES VALEURS PAIRES :");
	for  ( I = 0;  I  <  nb_elemts_T;  I++)
       { printf ("\nT3 : %i", T3 [I]); }

	free  (T1), (T2),   (T3) ;
	_getch                ()                                     ;
    return                (0)                                    ;
} 
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Salut,
Allez, il y a du C++, du PHP. Je propose ma version python ^^.
import random
liste=[random.randint(1,15) for i in range(10)]
b=sorted([j for j in liste if j%2==0])
c=sorted([j for j in liste if j%2])
print liste
print b
print c
0
djflexlive Messages postés 557 Date d'inscription   Statut Membre Dernière intervention   95
 
Version php complète :

<?php
$a = $t1 = $t2 = array();

for ($i=0;$i<=50;$i++)
array_push($a,rand(0,200));

print_r($a);
echo '<br />';

natsort($a);

foreach($a as $tri=>$valeur) {
if ( $valeur%2 != 0 )
array_push($t1,$valeur);
else
array_push($t2,$valeur);
}

print_r($t1);
echo '<br />';
print_r($t2);

?>
0
NCE26
 
Salut,

En fait, on fait ça en Français, un peu comme du C mais en Français.

Merci à tous

David
0
cchristian Messages postés 921 Date d'inscription   Statut Membre Dernière intervention   131
 
Bonjour,

Si C en français, C sous forme algorithmique alors ?

Algorithme :
Ensemble de règles opératoires dont l'application permet de résoudre un problème énoncé au moyen d'un nombre fini d'opérations. Un algorithme peut être traduit, grâce à un langage de programmation, en un programme exécutable par un ordinateur.
© Larousse 2004

0
NCE26 > cchristian Messages postés 921 Date d'inscription   Statut Membre Dernière intervention  
 
Salut,

Oui, c'est exatement ça, en algorithimique.

Merci beaucoup de vos aides et future aide!

David
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846 > NCE26
 
Poste nous le travail que tu as fait jusqu'à maintenant qu'on puisse t'aider.
Si t'as des questions, n'hésite pas ;)
Tu peux t'aider des programmes qui ont été donné jusqu'à maintenant.
0
NCE26
 
Salut,

Voici ce que j'ai fais:

procedure blabla
{tabinit=tableau d'entier
tabimp= pareil
tabpr=pareil
nbpr=entier
nbimp=pareil
t=entier}

{t est la taille du tableau}={nbpr: les nombres pair
nbimp: les nombres impair}

var i entier
nbpr<---tabpr[0]
nbimp<---tabimp[0]

pour i de 0 à t-1
Si tab init[i]=0
alors tabpr[i]<---nbpr
sinon
tabimp[i]<---nbimp
fin si
fin pour
fin procédure

Voilà voilà...si vous pouvez me la corriger ça serait sympa.
0
cchristian Messages postés 921 Date d'inscription   Statut Membre Dernière intervention   131
 
Bonsoir,

Il faut que tu commentes ton algo car en ce qui me concerne je ne comprends pas très bien.
0
NCE26
 
J'ai essayé de faire quelque chose, je vous ai dis, je débute en algorithimique...

En tous cas, l'excercice dit:

Soit A, un tableau contenant n entiers non triés. Ecrire une procédure qui permet d'écalter A en deux tableaux, T1 et T2 triés et contenant respectivement les éléments impairs et pairs de A.

J'ai remplacé quelques appellations, mais à la fin c'est pareil.

Si vous pouvez me le corriger, ça serait super cool, en plus c'est pour demain après-midi...

Merci
David
0
cchristian Messages postés 921 Date d'inscription   Statut Membre Dernière intervention   131
 
Bonsoir,

Voici une base de travail, de réflexion,

DEBUT PGM
 ---Définition et Initialisation des variables élémentaires nb_elemts_T=n, I = 1, J = 1, K = 1.........
 ---Définition et allocation mémoires de 3 tableaux numériques de tailles identiques T1, T2, T3.
    --- FAIRE pour tout les  nb-elemts_T de T2 et T3: 
        --- Initialisation à la valeurs zéro des nb-elemts_T  des 2 tableaux T2  et T3.
    --- FIN FAIRE
    --- FAIRE pour tout les  nb-elemts_T de T3 : 
        --- Chargement des nb_elemts_T du tableau T1 avec des valeurs numériques (nombres aléatoires ?)
    --- FIN FAIRE
    Trier en valeurs ascendantes les éléments du tableau T1 (sous programme ou utilitaire de tri)
    --- FAIRE pour chaque element (e[I]) de T1, progression de 1 à chaque itération jusqu'à e[nb_elemts_T - 1]:
         --- FAIRE une comparison avec les éléments suivants du tableau ( e[I+1], e[I+2], ...e[nb_elemts_T] ) :  
             --- Si element (e[I]) de T1 > element (e[I+n]) de T1
                 --- Permuter les valeurs de :  element (e[I]) de T1 avec element (e[I+n]) de T1
             --- FI SI
         --- FIN FAIRE
    --- FIN FAIRE
    Recherche parité ou non parité (sous programme  I = 1, J = 1, K = 1) :
    --- FAIRE pour chaque element (e[I]) de T1, progression de 1 à chaque itération jusqu'à e[nb_elemts_T]:
         --- Si element (e[I]) de T1 % 2 > 0 (nombre impair dans T2)
             --- valeur contenu dans element (e[I]) de T1 dans élément (e[J++] de T2
         --- SINON  (nombre pair dans T3)
             --- valeur contenu dans element (e[I]) de T1 dans élement (e[K++] de T3
         --- FI SI
    --- FIN FAIRE
    --- FAIRE pour chaque element de T1, T2 et T3,progression de 1 à chaque itération jusqu'à nb_elemts_T :
       ---- Affichage à la console (ou impression papier) par tableau des valeurs qu'ils contiennent..
    --- FIN FAIRE
--- Libération des ressources mémoires (le cas échéant suivant le langage)
.............................  (suite événtuelle du programme)
.............................. 
FIN PGM

NB. Les élément des tableaux sont référencés de 1 à n. Variable++ signifie progression de 1
du contenu de la variable aprés son utilisation dans l'instruction qui la contient.
0
NCE26
 
Salut Christian,

Merci beaucoup de ton aide.

Bonne Nuit.

Merci.
David
0
cchristian Messages postés 921 Date d'inscription   Statut Membre Dernière intervention   131 > NCE26
 
Bonne nuit également.
0