Aide programmation tableau

Fermé
NCE26 - 2 nov. 2008 à 17:39
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 - 4 nov. 2008 à 01:54
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

17 réponses

djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 94
2 nov. 2008 à 18:18
T'as pas crée un bout de script ... ? Un début quoi ?
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
2 nov. 2008 à 18:21
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 mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 94
2 nov. 2008 à 18:22
D'accord avec toi ;)
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131 > djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015
2 nov. 2008 à 18:23
Et moi avec toi.
0
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 mercredi 5 mars 2008 Statut Membre Dernière intervention 12 avril 2014 112
2 nov. 2008 à 22:24
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 mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 94
2 nov. 2008 à 22:38
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 mercredi 5 mars 2008 Statut Membre Dernière intervention 12 avril 2014 112
2 nov. 2008 à 22:39
tu veux dire koi ?
0
ziedzico Messages postés 393 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 12 avril 2014 112
2 nov. 2008 à 22:41
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 mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 94
2 nov. 2008 à 22:50
<?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 mercredi 5 mars 2008 Statut Membre Dernière intervention 12 avril 2014 112
2 nov. 2008 à 22:58
il a sorti laisse tomber
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
3 nov. 2008 à 00:11
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 mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 94
3 nov. 2008 à 00:17
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 lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131 > djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015
3 nov. 2008 à 00:27
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 mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 94 > cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012
3 nov. 2008 à 00:36
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 lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131 > djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015
3 nov. 2008 à 00:43
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 lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
3 nov. 2008 à 01:29
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
3 nov. 2008 à 00:52
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 mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 94
3 nov. 2008 à 11:58
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
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 lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
3 nov. 2008 à 16:43
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 lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012
3 nov. 2008 à 20:27
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835 > NCE26
3 nov. 2008 à 20:50
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
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 lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
3 nov. 2008 à 22:02
Bonsoir,

Il faut que tu commentes ton algo car en ce qui me concerne je ne comprends pas très bien.
0
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 lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
3 nov. 2008 à 23:52
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
Salut Christian,

Merci beaucoup de ton aide.

Bonne Nuit.

Merci.
David
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131 > NCE26
4 nov. 2008 à 01:54
Bonne nuit également.
0